From 4608415ac89a734dcb323ed9110ce058439ff657 Mon Sep 17 00:00:00 2001 From: renzhiyuan <465386466@qq.com> Date: Wed, 8 Apr 2026 14:46:31 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E5=A4=8D=E5=88=B6=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3=202.=E5=8D=87?= =?UTF-8?q?=E7=BA=A7go=E7=89=88=E6=9C=AC=E5=88=B01.26.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/http/controllers/backend/cmd_controller.go | 7 +++++++ app/http/entities/backend/cmd.go | 4 ++++ app/http/requestmapping/backend.go | 1 + app/http/routes/admin.go | 2 ++ app/services/cmd_service/cmd_service.go | 16 +++++++++++++++- go.mod | 2 +- 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/http/controllers/backend/cmd_controller.go b/app/http/controllers/backend/cmd_controller.go index ee5e7de..b3c42a2 100644 --- a/app/http/controllers/backend/cmd_controller.go +++ b/app/http/controllers/backend/cmd_controller.go @@ -5,6 +5,7 @@ import ( "cron_admin/app/http/controllers" "cron_admin/app/http/entities/backend" cmd_services "cron_admin/app/services/cmd_service" + "github.com/gin-gonic/gin" ) @@ -37,6 +38,12 @@ func CmdDel(c *gin.Context) { controllers.HandRes(c, nil, err) } +func CmdCopy(c *gin.Context) { + request := controllers.GetRequest(c).(*backend.CmdCopyRequest) + err := cmd_services.Copy(request) + controllers.HandRes(c, nil, err) +} + func CmdStop(c *gin.Context) { request := controllers.GetRequest(c).(*backend.CmdStopRequest) err := cmd_services.Stop(request) diff --git a/app/http/entities/backend/cmd.go b/app/http/entities/backend/cmd.go index 1b1550d..89ad6b8 100644 --- a/app/http/entities/backend/cmd.go +++ b/app/http/entities/backend/cmd.go @@ -85,6 +85,10 @@ type CmdDeleteRequest struct { CmdId int `json:"cmd_id" validate:"required" form:"cmd_id" example:""` } +type CmdCopyRequest struct { + CmdId int `json:"cmd_id" validate:"required" form:"cmd_id" example:""` +} + type CmdStartRequest struct { CmdId int `json:"cmd_id" validate:"required" form:"cmd_id" example:""` } diff --git a/app/http/requestmapping/backend.go b/app/http/requestmapping/backend.go index 88d378d..52e1d68 100644 --- a/app/http/requestmapping/backend.go +++ b/app/http/requestmapping/backend.go @@ -41,6 +41,7 @@ var BackendRequestMap = map[string]func() interface{}{ common.ADMIN_OAUTH_V1 + "/cmd/list": func() interface{} { return new(backend.CmdListRequest) }, common.ADMIN_OAUTH_V1 + "/cmd/add": func() interface{} { return new(backend.CmdAddRequest) }, common.ADMIN_OAUTH_V1 + "/cmd/edit": func() interface{} { return new(backend.CmdEditRequest) }, + common.ADMIN_OAUTH_V1 + "/cmd/copy": func() interface{} { return new(backend.CmdCopyRequest) }, common.ADMIN_OAUTH_V1 + "/cmd/del": func() interface{} { return new(backend.CmdDeleteRequest) }, common.ADMIN_OAUTH_V1 + "/cmd/start": func() interface{} { return new(backend.CmdStartRequest) }, common.ADMIN_OAUTH_V1 + "/cmd/stop": func() interface{} { return new(backend.CmdStopRequest) }, diff --git a/app/http/routes/admin.go b/app/http/routes/admin.go index e2bec0e..9fc887e 100644 --- a/app/http/routes/admin.go +++ b/app/http/routes/admin.go @@ -7,6 +7,7 @@ import ( "cron_admin/app/http/trace" "cron_admin/app/utils" "cron_admin/config" + "github.com/gin-gonic/gin" "github.com/qit-team/snow-core/http/middleware" ) @@ -56,6 +57,7 @@ func RegisterAdminRoute(router *gin.Engine) { cmd.POST("/add", backend.CmdAdd) cmd.POST("/edit", backend.CmdEdit) cmd.DELETE("/del", backend.CmdDel) + cmd.POST("/copy", backend.CmdCopy) cmd.POST("/start", backend.CmdStart) cmd.POST("/stop", backend.CmdStop) cmd.POST("/test/read", backend.CmdTestRead) diff --git a/app/services/cmd_service/cmd_service.go b/app/services/cmd_service/cmd_service.go index 7b6ea22..46ea9cc 100644 --- a/app/services/cmd_service/cmd_service.go +++ b/app/services/cmd_service/cmd_service.go @@ -11,10 +11,11 @@ import ( "cron_admin/app/utils/excute" "cron_admin/app/utils/mapstructure" "fmt" - "github.com/ahmetb/go-linq/v3" "strconv" "strings" "time" + + "github.com/ahmetb/go-linq/v3" "xorm.io/builder" ) @@ -81,6 +82,19 @@ func Del(request *backend.CmdDeleteRequest) (err error) { return } +func Copy(request *backend.CmdCopyRequest) (err error) { + var data croncmdmodel.CronCmd + _, err = croncmdmodel.GetInstance().GetDb().ID(request.CmdId).Get(&data) + if err != nil { + return + } + data.CmdId = 0 + data.Status = common.CMD_STATUS_STOP + data.CmdName = data.CmdName + "_copy" + _, err = croncmdmodel.GetInstance().GetDb().InsertOne(data) + return +} + func Start(request *backend.CmdStartRequest) (err error) { var data croncmdmodel.CronCmd exists, err := croncmdmodel.GetInstance().GetDb().ID(request.CmdId).Get(&data) diff --git a/go.mod b/go.mod index 9fb368b..c220e3a 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module cron_admin -go 1.21 +go 1.26.1 require ( gitee.com/chengdu_blue_brothers/openapi-go-sdk v0.0.2