fix: not reload for batch add & delete failed imsi length < 15

This commit is contained in:
zhangsz
2025-04-15 16:07:50 +08:00
parent 09b6eb7350
commit e1edf203c9
5 changed files with 123 additions and 67 deletions

View File

@@ -20,16 +20,16 @@ import (
// 实例化控制层 Controller 结构体
var NewController = &Controller{
volteUserService: NewVoLTEService,
neInfoService: neService.NewNeInfo,
imsUserService: NewVoLTEService,
neInfoService: neService.NewNeInfo,
}
// IMS用户信息 控制层处理
//
// @Description IMS用户信息 控制层处理
type Controller struct {
volteUserService *Service // IMS User信息服务
neInfoService *neService.NeInfo // 网元信息服务
imsUserService *Service // IMS User信息服务
neInfoService *neService.NeInfo // 网元信息服务
}
func (s *Controller) ResetData(c *gin.Context) {
@@ -40,7 +40,7 @@ func (s *Controller) ResetData(c *gin.Context) {
return
}
data := s.volteUserService.ResetData(neId)
data := s.imsUserService.ResetData(neId)
c.JSON(200, result.OkData(data))
}
@@ -57,7 +57,7 @@ func (s *Controller) List(c *gin.Context) {
}
}
}
data := s.volteUserService.SelectPage(querys)
data := s.imsUserService.SelectPage(querys)
c.JSON(200, result.Ok(data))
}
@@ -98,8 +98,8 @@ func (s *Controller) Info(c *gin.Context) {
}
// 解析返回的数据
u := s.volteUserService.ParseInfo(imsi, neId, data)
s.volteUserService.Insert(neId, u)
u := s.imsUserService.ParseInfo(imsi, neId, data)
s.imsUserService.Insert(neId, u)
c.JSON(200, result.OkData(u))
}
@@ -111,9 +111,9 @@ func (s *Controller) Add(c *gin.Context) {
return
}
var body VoLTEUser
var body IMSUser
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil || len(body.IMSI) < IMSI_MAX_LENGTH {
if err != nil || (len(body.IMSI) < IMSI_MAX_LENGTH && body.Tag == TAG_VoLTE) {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
@@ -134,7 +134,7 @@ func (s *Controller) Add(c *gin.Context) {
// 发送MML
cmd := fmt.Sprintf("add imsuser:imsi=%s,", body.IMSI)
cmd += s.volteUserService.ParseCommandParams(body)
cmd += s.imsUserService.ParseCommandParams(body)
data, err := telnet.ConvertToStr(telnetClient, cmd)
if err != nil {
c.JSON(200, result.ErrMsg(err.Error()))
@@ -144,7 +144,7 @@ func (s *Controller) Add(c *gin.Context) {
// 命令ok时
if strings.Contains(data, "ok") {
body.NeId = neId
s.volteUserService.Insert(neId, body)
s.imsUserService.Insert(neId, body)
}
c.JSON(200, result.OkData(data))
}
@@ -158,9 +158,9 @@ func (s *Controller) Adds(c *gin.Context) {
return
}
var body VoLTEUser
var body IMSUser
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil || len(body.IMSI) < IMSI_MAX_LENGTH {
if err != nil || (len(body.IMSI) < IMSI_MAX_LENGTH && body.Tag == TAG_VoLTE) {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
@@ -181,7 +181,7 @@ func (s *Controller) Adds(c *gin.Context) {
// 发送MML
cmd := fmt.Sprintf("baa imsuser:start_imsi=%s,start_msisdn=%s,sub_num=%s,", body.IMSI, body.MSISDN, num)
cmd += s.volteUserService.ParseCommandParams(body)
cmd += s.imsUserService.ParseCommandParams(body)
// 去除msisdn参数避免重复
omemsisdn := fmt.Sprintf(",msisdn=%s,", body.MSISDN)
cmd = strings.Replace(cmd, omemsisdn, ",", 1)
@@ -202,9 +202,9 @@ func (s *Controller) Edit(c *gin.Context) {
return
}
var body VoLTEUser
var body IMSUser
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil || len(body.IMSI) < IMSI_MAX_LENGTH {
if err != nil || (len(body.IMSI) < IMSI_MAX_LENGTH && body.Tag == TAG_VoLTE) {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
@@ -225,7 +225,7 @@ func (s *Controller) Edit(c *gin.Context) {
// 发送MML
cmd := fmt.Sprintf("mod imsuser:imsi=%s,", body.IMSI)
cmd += s.volteUserService.ParseCommandParams(body)
cmd += s.imsUserService.ParseCommandParams(body)
data, err := telnet.ConvertToStr(telnetClient, cmd)
if err != nil {
c.JSON(200, result.ErrMsg(err.Error()))
@@ -235,7 +235,7 @@ func (s *Controller) Edit(c *gin.Context) {
// 命令ok时
if strings.Contains(data, "ok") {
body.NeId = neId
s.volteUserService.Insert(neId, body)
s.imsUserService.Insert(neId, body)
}
c.JSON(200, result.OkData(data))
}
@@ -244,7 +244,7 @@ func (s *Controller) Remove(c *gin.Context) {
language := ctx.AcceptLanguage(c)
neId := c.Param("neId")
imsi := c.Param("imsi")
if neId == "" || len(imsi) < IMSI_MAX_LENGTH {
if neId == "" || imsi == "" {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
@@ -282,7 +282,7 @@ func (s *Controller) Remove(c *gin.Context) {
}
// 命令ok时
if strings.Contains(data, "ok") {
s.volteUserService.Delete(neId, imsi)
s.imsUserService.Delete(neId, imsi)
}
resultData[imsi] = data
}
@@ -295,7 +295,7 @@ func (s *Controller) Removes(c *gin.Context) {
neId := c.Param("neId")
imsi := c.Param("imsi")
num := c.Param("num")
if neId == "" || len(imsi) < IMSI_MAX_LENGTH || num == "" {
if neId == "" || imsi == "" || num == "" {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
@@ -324,7 +324,7 @@ func (s *Controller) Removes(c *gin.Context) {
// 命令ok时
if strings.Contains(data, "ok") {
s.volteUserService.LoadData(neId, imsi, num)
s.imsUserService.LoadData(neId, imsi, num)
}
c.JSON(200, result.OkData(data))
}
@@ -357,15 +357,15 @@ func (s *Controller) Export(c *gin.Context) {
querys["pageNum"] = 1
querys["pageSize"] = 10000
data := s.volteUserService.SelectPage(querys)
data := s.imsUserService.SelectPage(querys)
if parse.Number(data["total"]) == 0 {
// 导出数据记录为空
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
return
}
rows := data["rows"].([]VoLTEUser)
rows := data["rows"].([]IMSUser)
// rows := s.volteUserService.SelectList(VoLTEUser{NeId: neId})
// rows := s.imsUserService.SelectList(IMSUser{NeId: neId})
if len(rows) <= 0 {
// 导出数据记录为空
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
@@ -474,11 +474,11 @@ func (s *Controller) Import(c *gin.Context) {
if strings.Contains(data, "ok") {
if strings.HasSuffix(body.UploadPath, ".csv") {
data := file.ReadFileCSV(localFilePath)
go s.volteUserService.InsertData(neInfo.NeId, "csv", data)
go s.imsUserService.InsertData(neInfo.NeId, "csv", data)
}
if strings.HasSuffix(body.UploadPath, ".txt") {
data := file.ReadFileTXT(",", localFilePath)
go s.volteUserService.InsertData(neInfo.NeId, "txt", data)
go s.imsUserService.InsertData(neInfo.NeId, "txt", data)
}
}
c.JSON(200, result.OkMsg(data))