From a2d8d900c669fa6b24d1d4f471ee6c0443c7dd8d Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 19 Jul 2024 17:30:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=82=E6=95=B0=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=BF=98=E5=8E=9F=E5=88=B0=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=89=8D=E5=90=8E=E7=9A=84=E5=8A=9F=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/pt_ne_config_data_log.go | 89 ++++++++++++++++++- .../practical_training/practical_training.go | 4 + .../repository/pt_ne_config_apply.impl.go | 2 +- .../repository/pt_ne_config_data_log.impl.go | 6 +- 4 files changed, 97 insertions(+), 4 deletions(-) diff --git a/src/modules/practical_training/controller/pt_ne_config_data_log.go b/src/modules/practical_training/controller/pt_ne_config_data_log.go index 253023d6..f9039823 100644 --- a/src/modules/practical_training/controller/pt_ne_config_data_log.go +++ b/src/modules/practical_training/controller/pt_ne_config_data_log.go @@ -7,12 +7,15 @@ import ( "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" + "be.ems/src/modules/practical_training/model" "be.ems/src/modules/practical_training/service" "github.com/gin-gonic/gin" + "github.com/gin-gonic/gin/binding" ) // NewPtNeConfigDataLog 实例化控制层 var NewPtNeConfigDataLog = &PtNeConfigDataLog{ + ptNeConfigDataService: service.NewPtNeConfigDataService, ptNeConfigDataLogService: service.NewPtNeConfigDataLogService, } @@ -20,22 +23,104 @@ var NewPtNeConfigDataLog = &PtNeConfigDataLog{ // // PATH /neConfigDataLog type PtNeConfigDataLog struct { + // 实训教学_网元参数配置服务 + ptNeConfigDataService service.IPtNeConfigDataService // 实训教学_网元参数配置数据变更日志服务 ptNeConfigDataLogService service.IPtNeConfigDataLogService } -// 网元参数配置数据变更日志信息 +// 网元参数配置数据变更日志列表 // // GET / func (s *PtNeConfigDataLog) Info(c *gin.Context) { query := ctx.QueryMap(c) // 指定查询个人的数据 - query["stubType"] = "2" + loginUser, _ := ctx.LoginUser(c) + currentUserName := loginUser.User.UserName + 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, ok := query["student"]; ok && v != "" { + currentUserName = v.(string) + stubType = "2" + } + } + if v.RoleKey == "student" { + stubType = "2" + } + } + query["stubType"] = stubType + query["createBy"] = currentUserName data := s.ptNeConfigDataLogService.SelectPage(query) c.JSON(200, result.Ok(data)) } +// 网元参数配置数据变更日志还原到数据 +// +// PUT /restore +func (s *PtNeConfigDataLog) Restore(c *gin.Context) { + language := ctx.AcceptLanguage(c) + var body struct { + ID string `json:"id" binding:"required"` // 变更日志ID + Value string `json:"value" binding:"required,oneof=old new"` // 还原属性 old旧信息 new新信息 + } + if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil { + c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) + return + } + loginUser, _ := ctx.LoginUser(c) + currentUserName := loginUser.User.UserName + deptId := loginUser.User.DeptID + stubType := "2" // 存根数据类型 0系统 1班级 2个人 + + // 变更日志 + logInfo := s.ptNeConfigDataLogService.SelectById(body.ID) + if logInfo.ID != body.ID && logInfo.CreateBy != currentUserName { + // 变更日志信息不正确! + c.JSON(200, result.ErrMsg("Change log information is incorrect!")) + return + } + + // 优先查询个人的数据,没有就向系统取 + param := model.PtNeConfigData{ + CreateBy: currentUserName, + NeType: logInfo.NeType, + StubType: stubType, + ParamName: logInfo.ParamName, + DeptId: deptId, + } + info := s.ptNeConfigDataService.SelectByStubType(param) + // 变更日志 + changeLog := model.PtNeConfigDataLog{ + CreateBy: currentUserName, + StubType: info.StubType, + NeType: info.NeType, + ParamName: info.ParamName, + ParamDisplay: info.ParamDisplay, + ParamType: info.ParamType, + OperaType: 0, + ParamJsonOld: info.ParamJson, + } + + if body.Value == "old" { + info.ParamJson = logInfo.ParamJsonOld + } else { + info.ParamJson = logInfo.ParamJsonNew + } + changeLog.ParamJsonNew = info.ParamJson + info.UpdateBy = currentUserName + s.ptNeConfigDataService.Update(info) + // 保留变更日志 + s.ptNeConfigDataLogService.Insert(changeLog) + c.JSON(200, result.Ok(nil)) +} + // 网元参数配置数据变更日志删除 // // DELETE / diff --git a/src/modules/practical_training/practical_training.go b/src/modules/practical_training/practical_training.go index 6ee39ad6..d02fc3c2 100644 --- a/src/modules/practical_training/practical_training.go +++ b/src/modules/practical_training/practical_training.go @@ -56,6 +56,10 @@ func Setup(router *gin.Engine) { middleware.PreAuthorize(nil), controller.NewPtNeConfigDataLog.Info, ) + neConfigDataLogGroup.PUT("/restore", + middleware.PreAuthorize(nil), + controller.NewPtNeConfigDataLog.Restore, + ) neConfigDataLogGroup.DELETE("", middleware.PreAuthorize(map[string][]string{"hasRoles": {"admin"}}), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neConfigDataLog", collectlogs.BUSINESS_TYPE_DELETE)), diff --git a/src/modules/practical_training/repository/pt_ne_config_apply.impl.go b/src/modules/practical_training/repository/pt_ne_config_apply.impl.go index 2713b5c0..daf6d9f8 100644 --- a/src/modules/practical_training/repository/pt_ne_config_apply.impl.go +++ b/src/modules/practical_training/repository/pt_ne_config_apply.impl.go @@ -93,7 +93,7 @@ func (r *PtNeConfigApplyRepository) SelectPage(query map[string]any) map[string] // 分页 pageNum, pageSize := repo.PageNumSize(query["pageNum"], query["pageSize"]) - pageSql := " limit ?,? " + pageSql := " ORDER BY id desc limit ?,? " params = append(params, pageNum*pageSize) params = append(params, pageSize) diff --git a/src/modules/practical_training/repository/pt_ne_config_data_log.impl.go b/src/modules/practical_training/repository/pt_ne_config_data_log.impl.go index e05ecd3d..00b481d4 100644 --- a/src/modules/practical_training/repository/pt_ne_config_data_log.impl.go +++ b/src/modules/practical_training/repository/pt_ne_config_data_log.impl.go @@ -60,6 +60,10 @@ func (r *PtNeConfigDataLogRepository) SelectPage(query map[string]any) map[strin // 查询条件拼接 var conditions []string var params []any + if v, ok := query["createBy"]; ok && v != "" { + conditions = append(conditions, "create_by = ?") + params = append(params, v) + } if v, ok := query["neType"]; ok && v != "" { conditions = append(conditions, "ne_type = ?") params = append(params, v) @@ -108,7 +112,7 @@ func (r *PtNeConfigDataLogRepository) SelectPage(query map[string]any) map[strin // 分页 pageNum, pageSize := repo.PageNumSize(query["pageNum"], query["pageSize"]) - pageSql := " limit ?,? " + pageSql := " ORDER BY create_time desc limit ?,? " params = append(params, pageNum*pageSize) params = append(params, pageSize)