package controller import ( "strings" "be.ems/src/framework/i18n" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_element/model" neService "be.ems/src/modules/network_element/service" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" ) // 实例化控制层 NeVersionController 结构体 var NewNeVersion = &NeVersionController{ neVersionService: neService.NewNeVersionImpl, } // 网元版本信息请求 // // PATH /version type NeVersionController struct { // 网元版本信息服务 neVersionService neService.INeVersion } // 网元版本信息列表 // // GET /list func (s *NeVersionController) List(c *gin.Context) { querys := ctx.QueryMap(c) data := s.neVersionService.SelectPage(querys) c.JSON(200, result.Ok(data)) } // 网元版本信息信息 // // GET /:versionId func (s *NeVersionController) Info(c *gin.Context) { language := ctx.AcceptLanguage(c) versionId := c.Param("versionId") if versionId == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } neVersion := s.neVersionService.SelectById(versionId) if neVersion.ID != versionId { // 没有可访问网元版本数据! c.JSON(200, result.ErrMsg(i18n.TKey(language, "neVersion.noData"))) return } c.JSON(200, result.OkData(neVersion)) } // 网元版本信息新增 // // POST / func (s *NeVersionController) Add(c *gin.Context) { language := ctx.AcceptLanguage(c) var body model.NeVersion err := c.ShouldBindBodyWith(&body, binding.JSON) if err != nil || body.ID != "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } // 检查属性值唯一 uniqueInfo := s.neVersionService.CheckUniqueTypeAndID(body.NeType, body.NeId, "") if !uniqueInfo { // 网元版本操作【%s】失败,网元类型信息已存在 msg := i18n.TTemplate(language, "neVersion.errKeyExists", map[string]any{"name": body.NeType}) c.JSON(200, result.ErrMsg(msg)) return } body.CreateBy = ctx.LoginUserToUserName(c) insertId := s.neVersionService.Insert(body) if insertId != "" { c.JSON(200, result.Ok(nil)) return } c.JSON(200, result.Err(nil)) } // 网元版本信息修改 // // PUT / func (s *NeVersionController) Edit(c *gin.Context) { language := ctx.AcceptLanguage(c) var body model.NeVersion err := c.ShouldBindBodyWith(&body, binding.JSON) if err != nil || body.ID == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } // 检查属性值唯一 uniqueInfo := s.neVersionService.CheckUniqueTypeAndID(body.NeType, body.NeId, body.ID) if !uniqueInfo { // 网元版本操作【%s】失败,网元类型信息已存在 msg := i18n.TTemplate(language, "neVersion.errKeyExists", map[string]any{"name": body.NeType}) c.JSON(200, result.ErrMsg(msg)) return } // 检查是否存在 neVersion := s.neVersionService.SelectById(body.ID) if neVersion.ID != body.ID { // 没有可访问网元版本数据! c.JSON(200, result.ErrMsg(i18n.TKey(language, "neVersion.noData"))) return } body.UpdateBy = ctx.LoginUserToUserName(c) rows := s.neVersionService.Update(body) if rows > 0 { c.JSON(200, result.Ok(nil)) return } c.JSON(200, result.Err(nil)) } // 网元版本信息删除 // // DELETE /:versionIds func (s *NeVersionController) Remove(c *gin.Context) { language := ctx.AcceptLanguage(c) versionIds := c.Param("versionIds") if versionIds == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } // 处理字符转id数组后去重 ids := strings.Split(versionIds, ",") uniqueIDs := parse.RemoveDuplicates(ids) if len(uniqueIDs) <= 0 { c.JSON(200, result.Err(nil)) return } rows, err := s.neVersionService.DeleteByIds(uniqueIDs) if err != nil { c.JSON(200, result.ErrMsg(i18n.TKey(language, err.Error()))) return } msg := i18n.TTemplate(language, "app.common.deleteSuccess", map[string]any{"num": rows}) c.JSON(200, result.OkMsg(msg)) }