From b8d601d3cb869e5a7c0d505faa5174c73e39e8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BF=8A=E5=AE=8F?= <389838709@qq.com> Date: Wed, 27 Nov 2024 18:50:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=AE=A1=E7=90=86=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/cron_func_logs_controller.go | 23 ++++++++++ app/http/entities/backend/cron_func_logs.go | 21 +++++++++ app/http/requestmapping/backend.go | 3 ++ app/http/routes/admin.go | 2 +- .../cronfunclogsmodel/cron_func_logs.go | 43 ++++++++++++++++++ .../cronreportlogsmodel/cron_report_logs.go | 44 +++++++++++++++++++ app/services/cron_func_logs_service.go | 26 +++++++++++ 7 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 app/http/controllers/backend/cron_func_logs_controller.go create mode 100644 app/http/entities/backend/cron_func_logs.go create mode 100644 app/models/cronfunclogsmodel/cron_func_logs.go create mode 100644 app/models/cronreportlogsmodel/cron_report_logs.go create mode 100644 app/services/cron_func_logs_service.go diff --git a/app/http/controllers/backend/cron_func_logs_controller.go b/app/http/controllers/backend/cron_func_logs_controller.go new file mode 100644 index 0000000..b084d69 --- /dev/null +++ b/app/http/controllers/backend/cron_func_logs_controller.go @@ -0,0 +1,23 @@ +package backend + +import ( + "cron_admin/app/constants/errorcode" + "cron_admin/app/http/controllers" + "cron_admin/app/http/entities/backend" + "cron_admin/app/services" + "cron_admin/app/utils/helper" + "cron_admin/app/utils/mapstructure" + "github.com/gin-gonic/gin" +) + +func CronFuncLogsList(c *gin.Context) { + request := controllers.GetRequest(c).(*backend.CronFuncLogsListRequest) + count, DbListInfo, err := services.CronFuncLogsList(request, request.Page, request.Limit) + if err != nil { + controllers.HandRes(c, nil, errorcode.ParamError) + } else { + var DbListResponse []backend.CronFuncLogsListResponse + _ = mapstructure.DecodeWithTime(DbListInfo, &DbListResponse, helper.DefaultFormatLayout) + controllers.HandRes(c, gin.H{"data": DbListResponse, "count": count}, err) + } +} diff --git a/app/http/entities/backend/cron_func_logs.go b/app/http/entities/backend/cron_func_logs.go new file mode 100644 index 0000000..e5c301d --- /dev/null +++ b/app/http/entities/backend/cron_func_logs.go @@ -0,0 +1,21 @@ +package backend + +import "cron_admin/app/http/entities" + +type CronFuncLogsListRequest struct { + entities.PageRequest + CmdId int64 `json:"cmd_id"` + Status int `json:"status"` +} + +type CronFuncLogsListResponse struct { + LogId int64 `json:"log_id"` + CmdId int64 `json:"cmd_id"` + CmdName string `json:"cmd_name"` + ReadExecute string `json:"read_execute"` + WriteExecute string `json:"write_execute"` + FailReason string `json:"fail_reason"` + CreateTime string `json:"create_time"` + UpdateTime string `json:"update_time"` + Status int `json:"status"` +} diff --git a/app/http/requestmapping/backend.go b/app/http/requestmapping/backend.go index c3c3dfa..33b94a1 100644 --- a/app/http/requestmapping/backend.go +++ b/app/http/requestmapping/backend.go @@ -21,4 +21,7 @@ var BackendRequestMap = map[string]func() interface{}{ common.ADMIN_OAUTH_V1 + "/channel/list": func() interface{} { return new(backend.ReportChannelListRequest) }, common.ADMIN_OAUTH_V1 + "/channel/update": func() interface{} { return new(backend.ReportChannelUpdateRequest) }, common.ADMIN_OAUTH_V1 + "/channel/delete": func() interface{} { return new(entities.IdRequest) }, + + // 日志 + common.ADMIN_OAUTH_V1 + "/log/cmd/list": func() interface{} { return new(backend.CronFuncLogsListRequest) }, } diff --git a/app/http/routes/admin.go b/app/http/routes/admin.go index 7d904a3..e764b47 100644 --- a/app/http/routes/admin.go +++ b/app/http/routes/admin.go @@ -67,7 +67,7 @@ func RegisterAdminRoute(router *gin.Engine) { //任务日志 cmdLog := log.Group("/cmd") { - cmdLog.GET("/list", backend.Empty) + cmdLog.POST("/list", backend.CronFuncLogsList) } //消息日志 mesLog := log.Group("/mes") diff --git a/app/models/cronfunclogsmodel/cron_func_logs.go b/app/models/cronfunclogsmodel/cron_func_logs.go new file mode 100644 index 0000000..b7e7e38 --- /dev/null +++ b/app/models/cronfunclogsmodel/cron_func_logs.go @@ -0,0 +1,43 @@ +package cronfunclogsmodel + +import ( + "github.com/qit-team/snow-core/db" + "sync" + "time" +) + +var ( + once sync.Once + m *CronFuncLogsModel +) + +// 实体 +type CronFuncLogs struct { + LogId int64 `xorm:"'log_id' UNSIGNED INT"` + CmdId int64 `xorm:"'cmd_id' INT"` + ReadExecute string `xorm:"'read_execute' json"` + WriteExecute string `xorm:"'write_execute' text"` + FailReason string `xorm:"'fail_reason' text"` + CreateTime time.Time `xorm:"'create_time' datetime"` + UpdateTime time.Time `xorm:"'update_time' timestamp"` + Status int `xorm:"'status' tinyint"` +} + +// 表名 +func (m *CronFuncLogs) TableName() string { + return "cron_func_logs" +} + +// 私有化,防止被外部new +type CronFuncLogsModel struct { + db.Model //组合基础Model,集成基础Model的属性和方法 +} + +// 单例模式 +func GetInstance() *CronFuncLogsModel { + once.Do(func() { + m = new(CronFuncLogsModel) + //m.DiName = "" //设置数据库实例连接,默认db.SingletonMain + }) + return m +} diff --git a/app/models/cronreportlogsmodel/cron_report_logs.go b/app/models/cronreportlogsmodel/cron_report_logs.go new file mode 100644 index 0000000..30c3472 --- /dev/null +++ b/app/models/cronreportlogsmodel/cron_report_logs.go @@ -0,0 +1,44 @@ +package crondbmodel + +import ( + "github.com/qit-team/snow-core/db" + "sync" + "time" +) + +var ( + once sync.Once + m *CronReportLogsModel +) + +// 实体 +type CronReportLogs struct { + ReportId int64 `xorm:"'report_id' UNSIGNED INT"` + FuncLogId int64 `xorm:"'func_log_id' INT"` + CmdId int64 `xorm:"'cmd_id' INT"` + UserId string `xorm:"'user_id' varchar(100)"` + Data string `xorm:"'data' json"` + FailReason string `xorm:"'fail_reason' varchar(200)"` + CreateTime time.Time `xorm:"'create_time' datetime"` + UpdateTime time.Time `xorm:"'update_time' timestamp"` + Status int `xorm:"'status' tinyint"` +} + +// 表名 +func (m *CronReportLogs) TableName() string { + return "cron_report_logs" +} + +// 私有化,防止被外部new +type CronReportLogsModel struct { + db.Model //组合基础Model,集成基础Model的属性和方法 +} + +// 单例模式 +func GetInstance() *CronReportLogsModel { + once.Do(func() { + m = new(CronReportLogsModel) + //m.DiName = "" //设置数据库实例连接,默认db.SingletonMain + }) + return m +} diff --git a/app/services/cron_func_logs_service.go b/app/services/cron_func_logs_service.go new file mode 100644 index 0000000..bbd7a9c --- /dev/null +++ b/app/services/cron_func_logs_service.go @@ -0,0 +1,26 @@ +package services + +import ( + "cron_admin/app/http/entities/backend" + "cron_admin/app/models/cronfunclogsmodel" + "xorm.io/builder" +) + +func CronFuncLogsList(request *backend.CronFuncLogsListRequest, page int, limit int) (count int64, listInfo []cronfunclogsmodel.CronFuncLogs, err error) { + conn := builder.NewCond() + if request.CmdId != 0 { + conn = conn.And(builder.Eq{"CmdId": request.CmdId}) + } + if request.Status != 0 { + conn = conn.And(builder.Eq{"Status": request.Status}) + } + session := cronfunclogsmodel.GetInstance().GetDb().Where(conn) + if page != 0 && limit != 0 { + session = session.Limit(limit, (page-1)*limit) + } + count, err = session.FindAndCount(&listInfo) + if err != nil { + return + } + return +}