fix: 参数示例数据的存储规则

This commit is contained in:
TsMask
2024-07-11 10:28:15 +08:00
parent b3d25b7259
commit 96a391c4ce
5 changed files with 140 additions and 49 deletions

View File

@@ -8,7 +8,6 @@ import (
"be.ems/src/framework/utils/ctx"
"be.ems/src/framework/utils/parse"
"be.ems/src/framework/vo/result"
neService "be.ems/src/modules/network_element/service"
"be.ems/src/modules/practical_training/model"
"be.ems/src/modules/practical_training/service"
"github.com/gin-gonic/gin"
@@ -19,7 +18,6 @@ import (
var NewPtNeConfigData = &PtNeConfigDataController{
ptNeConfigDataService: service.NewPtNeConfigDataService,
ptNeConfigDataLogService: service.NewPtNeConfigDataLogService,
neInfoService: neService.NewNeInfoImpl,
}
// 网元参数配置服务
@@ -30,11 +28,9 @@ type PtNeConfigDataController struct {
ptNeConfigDataService service.IPtNeConfigDataService
// 实训教学_网元参数配置数据变更日志服务
ptNeConfigDataLogService service.IPtNeConfigDataLogService
// 网元信息服务
neInfoService neService.INeInfo
}
// 保存为示例配置 (仅管理员/教师操作)
// 保存为示例配置 (仅管理员操作)
//
// POST /saveAsDefault
func (s *PtNeConfigDataController) SaveAsDefault(c *gin.Context) {
@@ -48,24 +44,12 @@ func (s *PtNeConfigDataController) SaveAsDefault(c *gin.Context) {
return
}
// 查询网元获取IP获取网元状态
neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(body.NeType, body.NeId)
if neInfo.NeId != body.NeId || neInfo.IP == "" {
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
return
}
stubType := "" // 存根数据类型 0系统 1班级 2个人
loginUser, _ := ctx.LoginUser(c)
for _, v := range loginUser.User.Roles {
if v.RoleKey == "admin" {
stubType = "0"
} else if v.RoleKey == "teacher" {
stubType = "1"
s.ptNeConfigDataService.SaveAsDefault(body.NeType, body.NeId)
}
}
operaUserName := loginUser.User.NickName
s.ptNeConfigDataService.SaveAsDefaultByType(neInfo, stubType, operaUserName)
c.JSON(200, result.Ok(nil))
}
@@ -83,9 +67,17 @@ func (s *PtNeConfigDataController) ResetAsDefault(c *gin.Context) {
return
}
stubType := "2" // 存根数据类型 0系统 1班级 2个人
operaUserName := ctx.LoginUserToUserName(c)
s.ptNeConfigDataService.ResetAsDefaultByType(body.NeType, stubType, operaUserName)
loginUser, _ := ctx.LoginUser(c)
operaUserName := loginUser.User.UserName
deptId := loginUser.User.DeptID
for _, v := range loginUser.User.Roles {
if v.RoleKey == "teacher" {
s.ptNeConfigDataService.ResetAsDefault(operaUserName, "1", body.NeType, deptId)
}
if v.RoleKey == "student" {
s.ptNeConfigDataService.ResetAsDefault(operaUserName, "2", body.NeType, deptId)
}
}
c.JSON(200, result.Ok(nil))
}
@@ -104,20 +96,36 @@ func (s *PtNeConfigDataController) Info(c *gin.Context) {
return
}
loginUser, _ := ctx.LoginUser(c)
currentUserName := loginUser.User.UserName
deptId := loginUser.User.DeptID
stubType := "2" // 存根数据类型 0系统 1班级 2个人
for _, v := range loginUser.User.Roles {
if v.RoleKey == "admin" {
stubType = "0"
}
if v.RoleKey == "teacher" {
stubType = "1"
}
if v.RoleKey == "student" {
stubType = "2"
}
}
// 优先查询个人的数据,没有就向系统取
param := model.PtNeConfigData{
CreateBy: ctx.LoginUserToUserName(c),
CreateBy: currentUserName,
NeType: querys.NeType,
StubType: "2",
StubType: stubType,
ParamName: querys.ParamName,
DeptId: deptId,
}
info := s.ptNeConfigDataService.SelectByStubType(param)
// 输出数据内容
if info.ParamJson != "" {
c.JSON(200, result.Ok(map[string]any{
"paramType": info.ParamType,
"paramData": info.ParamData,
"type": info.ParamType,
"data": info.ParamData,
}))
return
}
@@ -140,13 +148,28 @@ func (s *PtNeConfigDataController) Edit(c *gin.Context) {
return
}
currentUserName := ctx.LoginUserToUserName(c)
loginUser, _ := ctx.LoginUser(c)
currentUserName := loginUser.User.UserName
deptId := loginUser.User.DeptID
stubType := "2" // 存根数据类型 0系统 1班级 2个人
for _, v := range loginUser.User.Roles {
if v.RoleKey == "admin" {
stubType = "0"
}
if v.RoleKey == "teacher" {
stubType = "1"
}
if v.RoleKey == "student" {
stubType = "2"
}
}
// 优先查询个人的数据,没有就向系统取
param := model.PtNeConfigData{
CreateBy: currentUserName,
NeType: body.NeType,
StubType: "2",
StubType: stubType,
ParamName: body.ParamName,
DeptId: deptId,
}
info := s.ptNeConfigDataService.SelectByStubType(param)
changeLog := model.PtNeConfigDataLog{
@@ -219,18 +242,19 @@ func (s *PtNeConfigDataController) Edit(c *gin.Context) {
changeLog.ParamJsonNew = info.ParamJson
// 个人有数据就更新
if info.StubType == "2" {
if info.StubType == stubType {
info.UpdateBy = currentUserName
s.ptNeConfigDataService.Update(info)
} else {
s.ptNeConfigDataService.Insert(model.PtNeConfigData{
CreateBy: currentUserName,
NeType: info.NeType,
StubType: "2",
StubType: stubType,
ParamName: info.ParamName,
ParamDisplay: info.ParamDisplay,
ParamType: info.ParamType,
ParamJson: info.ParamJson,
DeptId: deptId,
})
}
// 保留变更日志
@@ -255,13 +279,28 @@ func (s *PtNeConfigDataController) Add(c *gin.Context) {
return
}
currentUserName := ctx.LoginUserToUserName(c)
loginUser, _ := ctx.LoginUser(c)
currentUserName := loginUser.User.UserName
deptId := loginUser.User.DeptID
stubType := "2" // 存根数据类型 0系统 1班级 2个人
for _, v := range loginUser.User.Roles {
if v.RoleKey == "admin" {
stubType = "0"
}
if v.RoleKey == "teacher" {
stubType = "1"
}
if v.RoleKey == "student" {
stubType = "2"
}
}
// 优先查询个人的数据,没有就向系统取
param := model.PtNeConfigData{
CreateBy: currentUserName,
NeType: body.NeType,
StubType: "2",
StubType: stubType,
ParamName: body.ParamName,
DeptId: deptId,
}
info := s.ptNeConfigDataService.SelectByStubType(param)
if info.ParamType != "array" || body.Loc == "" {
@@ -317,18 +356,19 @@ func (s *PtNeConfigDataController) Add(c *gin.Context) {
changeLog.ParamJsonNew = info.ParamJson
// 个人有数据就更新
if info.StubType == "2" {
if info.StubType == stubType {
info.UpdateBy = currentUserName
s.ptNeConfigDataService.Update(info)
} else {
s.ptNeConfigDataService.Insert(model.PtNeConfigData{
CreateBy: currentUserName,
NeType: info.NeType,
StubType: "2",
StubType: stubType,
ParamName: info.ParamName,
ParamDisplay: info.ParamDisplay,
ParamType: info.ParamType,
ParamJson: info.ParamJson,
DeptId: deptId,
})
}
// 保留变更日志
@@ -352,13 +392,28 @@ func (s *PtNeConfigDataController) Remove(c *gin.Context) {
return
}
currentUserName := ctx.LoginUserToUserName(c)
loginUser, _ := ctx.LoginUser(c)
currentUserName := loginUser.User.UserName
deptId := loginUser.User.DeptID
stubType := "2" // 存根数据类型 0系统 1班级 2个人
for _, v := range loginUser.User.Roles {
if v.RoleKey == "admin" {
stubType = "0"
}
if v.RoleKey == "teacher" {
stubType = "1"
}
if v.RoleKey == "student" {
stubType = "2"
}
}
// 优先查询个人的数据,没有就向系统取
param := model.PtNeConfigData{
CreateBy: currentUserName,
NeType: query.NeType,
StubType: "2",
StubType: stubType,
ParamName: query.ParamName,
DeptId: deptId,
}
info := s.ptNeConfigDataService.SelectByStubType(param)
if info.ParamType != "array" || query.Loc == "" {
@@ -434,18 +489,19 @@ func (s *PtNeConfigDataController) Remove(c *gin.Context) {
info.ParamJson = string(paramDataByte)
// 个人有数据就更新
if info.StubType == "2" {
if info.StubType == stubType {
info.UpdateBy = currentUserName
s.ptNeConfigDataService.Update(info)
} else {
s.ptNeConfigDataService.Insert(model.PtNeConfigData{
CreateBy: currentUserName,
NeType: info.NeType,
StubType: "2",
StubType: stubType,
ParamName: info.ParamName,
ParamDisplay: info.ParamDisplay,
ParamType: info.ParamType,
ParamJson: info.ParamJson,
DeptId: deptId,
})
}
// 保留变更日志