diff --git a/src/modules/monitor/controller/monitor.go b/src/modules/monitor/controller/monitor.go index 0bb3281d..2c2d2e27 100644 --- a/src/modules/monitor/controller/monitor.go +++ b/src/modules/monitor/controller/monitor.go @@ -40,7 +40,7 @@ func (s *MonitorController) Load(c *gin.Context) { } err := c.ShouldBindQuery(&querys) if err != nil { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } diff --git a/src/modules/monitor/controller/sys_cache.go b/src/modules/monitor/controller/sys_cache.go index 17312874..b4815b49 100644 --- a/src/modules/monitor/controller/sys_cache.go +++ b/src/modules/monitor/controller/sys_cache.go @@ -33,13 +33,13 @@ func (s *SysCacheController) Info(c *gin.Context) { // GET /getNames func (s *SysCacheController) Names(c *gin.Context) { caches := []model.SysCache{ - model.NewSysCacheNames("用户信息", cachekey.LOGIN_TOKEN_KEY), - model.NewSysCacheNames("配置信息", cachekey.SYS_CONFIG_KEY), - model.NewSysCacheNames("数据字典", cachekey.SYS_DICT_KEY), - model.NewSysCacheNames("验证码", cachekey.CAPTCHA_CODE_KEY), - model.NewSysCacheNames("防重提交", cachekey.REPEAT_SUBMIT_KEY), - model.NewSysCacheNames("限流处理", cachekey.RATE_LIMIT_KEY), - model.NewSysCacheNames("密码错误次数", cachekey.PWD_ERR_CNT_KEY), + model.NewSysCacheNames("user", cachekey.LOGIN_TOKEN_KEY), + model.NewSysCacheNames("configuration", cachekey.SYS_CONFIG_KEY), + model.NewSysCacheNames("dictionary", cachekey.SYS_DICT_KEY), + model.NewSysCacheNames("captcha", cachekey.CAPTCHA_CODE_KEY), + model.NewSysCacheNames("anti-submission", cachekey.REPEAT_SUBMIT_KEY), + model.NewSysCacheNames("current-limiting", cachekey.RATE_LIMIT_KEY), + model.NewSysCacheNames("password-errors-number", cachekey.PWD_ERR_CNT_KEY), } c.JSON(200, result.OkData(caches)) } @@ -50,7 +50,7 @@ func (s *SysCacheController) Names(c *gin.Context) { func (s *SysCacheController) Keys(c *gin.Context) { cacheName := c.Param("cacheName") if cacheName == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } caches := []model.SysCache{} @@ -71,7 +71,7 @@ func (s *SysCacheController) Value(c *gin.Context) { cacheName := c.Param("cacheName") cacheKey := c.Param("cacheKey") if cacheName == "" || cacheKey == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } @@ -90,7 +90,7 @@ func (s *SysCacheController) Value(c *gin.Context) { func (s *SysCacheController) ClearCacheName(c *gin.Context) { cacheName := c.Param("cacheName") if cacheName == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } @@ -114,7 +114,7 @@ func (s *SysCacheController) ClearCacheKey(c *gin.Context) { cacheName := c.Param("cacheName") cacheKey := c.Param("cacheKey") if cacheName == "" || cacheKey == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } @@ -131,12 +131,12 @@ func (s *SysCacheController) ClearCacheKey(c *gin.Context) { // DELETE /clearCacheSafe func (s *SysCacheController) ClearCacheSafe(c *gin.Context) { caches := []model.SysCache{ - model.NewSysCacheNames("配置信息", cachekey.SYS_CONFIG_KEY), - model.NewSysCacheNames("数据字典", cachekey.SYS_DICT_KEY), - model.NewSysCacheNames("验证码", cachekey.CAPTCHA_CODE_KEY), - model.NewSysCacheNames("防重提交", cachekey.REPEAT_SUBMIT_KEY), - model.NewSysCacheNames("限流处理", cachekey.RATE_LIMIT_KEY), - model.NewSysCacheNames("密码错误次数", cachekey.PWD_ERR_CNT_KEY), + model.NewSysCacheNames("configuration", cachekey.SYS_CONFIG_KEY), + model.NewSysCacheNames("dictionary", cachekey.SYS_DICT_KEY), + model.NewSysCacheNames("captcha", cachekey.CAPTCHA_CODE_KEY), + model.NewSysCacheNames("anti-submission", cachekey.REPEAT_SUBMIT_KEY), + model.NewSysCacheNames("current-limiting", cachekey.RATE_LIMIT_KEY), + model.NewSysCacheNames("password-errors-number", cachekey.PWD_ERR_CNT_KEY), } for _, v := range caches { cacheKeys, err := redis.GetKeys("", v.CacheName+":*") diff --git a/src/modules/monitor/controller/sys_job.go b/src/modules/monitor/controller/sys_job.go index 31bed89e..095c7b30 100644 --- a/src/modules/monitor/controller/sys_job.go +++ b/src/modules/monitor/controller/sys_job.go @@ -50,7 +50,7 @@ func (s *SysJobController) List(c *gin.Context) { func (s *SysJobController) Info(c *gin.Context) { jobId := c.Param("jobId") if jobId == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } @@ -69,20 +69,22 @@ func (s *SysJobController) Add(c *gin.Context) { var body model.SysJob err := c.ShouldBindBodyWith(&body, binding.JSON) if err != nil || body.JobID != "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } // 检查cron表达式格式 if parse.CronExpression(body.CronExpression) == 0 { - msg := fmt.Sprintf("调度任务新增【%s】失败,Cron表达式不正确", body.JobName) + // 调度任务新增【%s】失败,Cron表达式不正确 + msg := fmt.Sprintf("Scheduling task add [%s] fails with incorrect Cron expression", body.JobName) c.JSON(200, result.ErrMsg(msg)) return } // 检查任务调用传入参数是否json格式 if body.TargetParams != "" { - msg := fmt.Sprintf("调度任务新增【%s】失败,任务传入参数json字符串不正确", body.JobName) + // 调度任务新增【%s】失败,任务传入参数json字符串不正确 + msg := fmt.Sprintf("Scheduling task add [%s] failed, task incoming parameter json string is incorrect", body.JobName) if len(body.TargetParams) < 7 { c.JSON(200, result.ErrMsg(msg)) return @@ -96,7 +98,8 @@ func (s *SysJobController) Add(c *gin.Context) { // 检查属性值唯一 uniqueJob := s.sysJobService.CheckUniqueJobName(body.JobName, body.JobGroup, "") if !uniqueJob { - msg := fmt.Sprintf("调度任务新增【%s】失败,同任务组内有相同任务名称", body.JobName) + // 调度任务新增【%s】失败,同任务组内有相同任务名称 + msg := fmt.Sprintf("Scheduling tasks with new [%s] failures, with the same task name in the same task group", body.JobName) c.JSON(200, result.ErrMsg(msg)) return } @@ -117,20 +120,22 @@ func (s *SysJobController) Edit(c *gin.Context) { var body model.SysJob err := c.ShouldBindBodyWith(&body, binding.JSON) if err != nil || body.JobID == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } // 检查cron表达式格式 if parse.CronExpression(body.CronExpression) == 0 { - msg := fmt.Sprintf("调度任务修改【%s】失败,Cron表达式不正确", body.JobName) + // 调度任务修改【%s】失败,Cron表达式不正确 + msg := fmt.Sprintf("Scheduling task modification [%s] fails with incorrect Cron expression", body.JobName) c.JSON(200, result.ErrMsg(msg)) return } // 检查任务调用传入参数是否json格式 if body.TargetParams != "" { - msg := fmt.Sprintf("调度任务修改【%s】失败,任务传入参数json字符串不正确", body.JobName) + // 调度任务修改【%s】失败,任务传入参数json字符串不正确 + msg := fmt.Sprintf("Scheduling task modification [%s] failed, task incoming parameter json string is not correct", body.JobName) if len(body.TargetParams) < 7 { c.JSON(200, result.ErrMsg(msg)) return @@ -144,7 +149,8 @@ func (s *SysJobController) Edit(c *gin.Context) { // 检查属性值唯一 uniqueJob := s.sysJobService.CheckUniqueJobName(body.JobName, body.JobGroup, body.JobID) if !uniqueJob { - msg := fmt.Sprintf("调度任务修改【%s】失败,同任务组内有相同任务名称", body.JobName) + // 调度任务修改【%s】失败,同任务组内有相同任务名称 + msg := fmt.Sprintf("Scheduling task modification [%s] failed with the same task name in the same task group", body.JobName) c.JSON(200, result.ErrMsg(msg)) return } @@ -164,7 +170,7 @@ func (s *SysJobController) Edit(c *gin.Context) { func (s *SysJobController) Remove(c *gin.Context) { jobIds := c.Param("jobIds") if jobIds == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } // 处理字符转id数组后去重 @@ -179,7 +185,7 @@ func (s *SysJobController) Remove(c *gin.Context) { c.JSON(200, result.ErrMsg(err.Error())) return } - msg := fmt.Sprintf("删除成功:%d", rows) + msg := fmt.Sprintf("Deleted successfully: %d", rows) c.JSON(200, result.OkMsg(msg)) } @@ -195,20 +201,22 @@ func (s *SysJobController) Status(c *gin.Context) { } err := c.ShouldBindBodyWith(&body, binding.JSON) if err != nil { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } // 检查是否存在 job := s.sysJobService.SelectJobById(body.JobId) if job.JobID != body.JobId { - c.JSON(200, result.ErrMsg("没有权限访问调度任务数据!")) + // 没有可访问调度任务数据! + c.JSON(200, result.ErrMsg("No accessible scheduling task data!")) return } // 与旧值相等不变更 if job.Status == body.Status { - c.JSON(200, result.ErrMsg("变更状态与旧值相等!")) + // 变更状态与旧值相等! + c.JSON(200, result.ErrMsg("Change status equals old value!")) return } @@ -229,14 +237,15 @@ func (s *SysJobController) Status(c *gin.Context) { func (s *SysJobController) Run(c *gin.Context) { jobId := c.Param("jobId") if jobId == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } // 检查是否存在 job := s.sysJobService.SelectJobById(jobId) if job.JobID != jobId { - c.JSON(200, result.ErrMsg("没有权限访问调度任务数据!")) + // 没有可访问调度任务数据! + c.JSON(200, result.ErrMsg("No accessible scheduling task data!")) return } @@ -264,7 +273,8 @@ func (s *SysJobController) Export(c *gin.Context) { querys := ctx.BodyJSONMap(c) data := s.sysJobService.SelectJobPage(querys) if data["total"].(int64) == 0 { - c.JSON(200, result.ErrMsg("导出数据记录为空")) + // 导出数据记录为空 + c.JSON(200, result.ErrMsg("Export data record is empty")) return } rows := data["rows"].([]model.SysJob) @@ -273,16 +283,16 @@ func (s *SysJobController) Export(c *gin.Context) { fileName := fmt.Sprintf("job_export_%d_%d.xlsx", len(rows), time.Now().UnixMilli()) // 第一行表头标题 headerCells := map[string]string{ - "A1": "任务编号", - "B1": "任务名称", - "C1": "任务组名", - "D1": "调用目标", - "E1": "传入参数", - "F1": "执行表达式", - "G1": "出错策略", - "H1": "并发执行", - "I1": "任务状态", - "J1": "备注说明", + "A1": "JobID", + "B1": "JobName", + "C1": "JobGroupName", + "D1": "InvokeTarget", + "E1": "TargetParams", + "F1": "CronExpression", + "G1": "MisfirePolicy", + "H1": "Concurrent", + "I1": "Status", + "J1": "Remark", } // 读取任务组名字典数据 dictSysJobGroup := s.sysDictDataService.SelectDictDataByType("sys_job_group") @@ -298,20 +308,20 @@ func (s *SysJobController) Export(c *gin.Context) { break } } - misfirePolicy := "放弃执行" + misfirePolicy := "Abandon execution" if row.MisfirePolicy == "1" { - misfirePolicy = "立即执行" + misfirePolicy = "Execute immediately" } else if row.MisfirePolicy == "2" { - misfirePolicy = "执行一次" + misfirePolicy = "Execute once" } - concurrent := "禁止" + concurrent := "prohibit" if row.Concurrent == "1" { - concurrent = "允许" + concurrent = "allow" } // 状态 - statusValue := "失败" + statusValue := "fail" if row.Status == "1" { - statusValue = "成功" + statusValue = "successes" } dataCells = append(dataCells, map[string]any{ "A" + idx: row.JobID, diff --git a/src/modules/monitor/controller/sys_job_log.go b/src/modules/monitor/controller/sys_job_log.go index 640b1fa4..0e920958 100644 --- a/src/modules/monitor/controller/sys_job_log.go +++ b/src/modules/monitor/controller/sys_job_log.go @@ -50,7 +50,7 @@ func (s *SysJobLogController) List(c *gin.Context) { func (s *SysJobLogController) Info(c *gin.Context) { jobLogId := c.Param("jobLogId") if jobLogId == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } data := s.sysJobLogService.SelectJobLogById(jobLogId) @@ -67,7 +67,7 @@ func (s *SysJobLogController) Info(c *gin.Context) { func (s *SysJobLogController) Remove(c *gin.Context) { jobLogIds := c.Param("jobLogIds") if jobLogIds == "" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } @@ -80,7 +80,8 @@ func (s *SysJobLogController) Remove(c *gin.Context) { } rows := s.sysJobLogService.DeleteJobLogByIds(uniqueIDs) if rows > 0 { - msg := fmt.Sprintf("删除成功:%d", rows) + // 删除成功:%d + msg := fmt.Sprintf("Deleted successfully: %d", rows) c.JSON(200, result.OkMsg(msg)) return } @@ -107,7 +108,7 @@ func (s *SysJobLogController) Export(c *gin.Context) { querys := ctx.BodyJSONMap(c) data := s.sysJobLogService.SelectJobLogPage(querys) if data["total"].(int64) == 0 { - c.JSON(200, result.ErrMsg("导出数据记录为空")) + c.JSON(200, result.ErrMsg("Export data record is empty")) return } rows := data["rows"].([]model.SysJobLog) @@ -116,14 +117,14 @@ func (s *SysJobLogController) Export(c *gin.Context) { fileName := fmt.Sprintf("jobLog_export_%d_%d.xlsx", len(rows), time.Now().UnixMilli()) // 第一行表头标题 headerCells := map[string]string{ - "A1": "日志序号", - "B1": "任务名称", - "C1": "任务组名", - "D1": "调用目标", - "E1": "传入参数", - "F1": "日志信息", - "G1": "执行状态", - "H1": "记录时间", + "A1": "JobLogID", + "B1": "JobName", + "C1": "JobGroupName", + "D1": "InvokeTarget", + "E1": "TargetParams", + "F1": "JobMsg", + "G1": "Status", + "H1": "Time", } // 读取任务组名字典数据 dictSysJobGroup := s.sysDictDataService.SelectDictDataByType("sys_job_group") @@ -140,9 +141,9 @@ func (s *SysJobLogController) Export(c *gin.Context) { } } // 状态 - statusValue := "失败" + statusValue := "Fail" if row.Status == "1" { - statusValue = "成功" + statusValue = "Success" } dataCells = append(dataCells, map[string]any{ "A" + idx: row.JobLogID, diff --git a/src/modules/monitor/controller/sys_user_online.go b/src/modules/monitor/controller/sys_user_online.go index 721ee67b..dcd0107f 100644 --- a/src/modules/monitor/controller/sys_user_online.go +++ b/src/modules/monitor/controller/sys_user_online.go @@ -112,7 +112,7 @@ func (s *SysUserOnlineController) List(c *gin.Context) { func (s *SysUserOnlineController) ForceLogout(c *gin.Context) { tokenId := c.Param("tokenId") if tokenId == "" || tokenId == "*" { - c.JSON(400, result.CodeMsg(400, "参数错误")) + c.JSON(400, result.CodeMsg(400, "parameter error")) return } diff --git a/src/modules/monitor/monitor.go b/src/modules/monitor/monitor.go index 2a279bc3..80a3663a 100644 --- a/src/modules/monitor/monitor.go +++ b/src/modules/monitor/monitor.go @@ -80,18 +80,18 @@ func Setup(router *gin.Engine) { ) sysJobLogGroup.DELETE("/:jobLogIds", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:remove"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务日志信息", collectlogs.BUSINESS_TYPE_DELETE)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task Log", collectlogs.BUSINESS_TYPE_DELETE)), controller.NewSysJobLog.Remove, ) sysJobLogGroup.DELETE("/clean", repeat.RepeatSubmit(5), middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:remove"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务日志信息", collectlogs.BUSINESS_TYPE_CLEAN)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task Log", collectlogs.BUSINESS_TYPE_CLEAN)), controller.NewSysJobLog.Clean, ) sysJobLogGroup.POST("/export", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:export"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务日志信息", collectlogs.BUSINESS_TYPE_EXPORT)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task Log", collectlogs.BUSINESS_TYPE_EXPORT)), controller.NewSysJobLog.Export, ) } @@ -109,39 +109,39 @@ func Setup(router *gin.Engine) { ) sysJobGroup.POST("", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:add"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_INSERT)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_INSERT)), controller.NewSysJob.Add, ) sysJobGroup.PUT("", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:edit"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_UPDATE)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_UPDATE)), controller.NewSysJob.Edit, ) sysJobGroup.DELETE("/:jobIds", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:remove"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_DELETE)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_DELETE)), controller.NewSysJob.Remove, ) sysJobGroup.PUT("/changeStatus", repeat.RepeatSubmit(5), middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:changeStatus"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_UPDATE)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_UPDATE)), controller.NewSysJob.Status, ) sysJobGroup.PUT("/run/:jobId", repeat.RepeatSubmit(10), middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:changeStatus"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_UPDATE)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_UPDATE)), controller.NewSysJob.Run, ) sysJobGroup.PUT("/resetQueueJob", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:changeStatus"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_CLEAN)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_CLEAN)), controller.NewSysJob.ResetQueueJob, ) sysJobGroup.POST("/export", middleware.PreAuthorize(map[string][]string{"hasPerms": {"monitor:job:export"}}), - collectlogs.OperateLog(collectlogs.OptionNew("调度任务信息", collectlogs.BUSINESS_TYPE_EXPORT)), + collectlogs.OperateLog(collectlogs.OptionNew("Scheduling Task", collectlogs.BUSINESS_TYPE_EXPORT)), controller.NewSysJob.Export, ) } diff --git a/src/modules/monitor/service/sys_job.impl.go b/src/modules/monitor/service/sys_job.impl.go index a6fd24e7..0fcd7497 100644 --- a/src/modules/monitor/service/sys_job.impl.go +++ b/src/modules/monitor/service/sys_job.impl.go @@ -1,7 +1,7 @@ package service import ( - "errors" + "fmt" "ems.agt/src/framework/constants/common" "ems.agt/src/framework/cron" @@ -85,7 +85,8 @@ func (r *SysJobImpl) DeleteJobByIds(jobIds []string) (int64, error) { // 检查是否存在 jobs := r.sysJobRepository.SelectJobByIds(jobIds) if len(jobs) <= 0 { - return 0, errors.New("没有权限访问调度任务数据!") + // 没有可访问调度任务数据! + return 0, fmt.Errorf("There is no accessible scheduling task data!") } if len(jobs) == len(jobIds) { // 清除任务 @@ -95,7 +96,8 @@ func (r *SysJobImpl) DeleteJobByIds(jobIds []string) (int64, error) { rows := r.sysJobRepository.DeleteJobByIds(jobIds) return rows, nil } - return 0, errors.New("删除调度任务信息失败!") + // 删除调度任务信息失败! + return 0, fmt.Errorf("Failed to delete scheduling task information!") } // ChangeStatus 任务调度状态修改