1
0
Files
omc_api/src/modules/network_element/controller/ne_version.go
2024-04-30 20:37:27 +08:00

153 lines
4.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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))
}