diff --git a/server/api/v1/sys_system.go b/server/api/v1/sys_system.go index dbf6a5b7..b18fe759 100644 --- a/server/api/v1/sys_system.go +++ b/server/api/v1/sys_system.go @@ -5,10 +5,7 @@ import ( "gin-vue-admin/model" "gin-vue-admin/model/response" "gin-vue-admin/service" - "os" - "os/exec" - "runtime" - "strconv" + "gin-vue-admin/utils" "github.com/gin-gonic/gin" "go.uber.org/zap" @@ -54,13 +51,7 @@ func SetSystemConfig(c *gin.Context) { // @Success 200 {string} string "{"code":0,"data":{},"msg":"重启系统成功"}" // @Router /system/reloadSystem [post] func ReloadSystem(c *gin.Context) { - if runtime.GOOS == "windows" { - response.FailWithMessage("系统不支持", c) - return - } - pid := os.Getpid() - cmd := exec.Command("kill", "-1", strconv.Itoa(pid)) - err := cmd.Run() + err := utils.Reload() if err != nil { global.GVA_LOG.Error("重启系统失败!", zap.Any("err", err)) response.FailWithMessage("重启系统失败", c) diff --git a/server/config.yaml b/server/config.yaml index 7d005764..fb77272f 100644 --- a/server/config.yaml +++ b/server/config.yaml @@ -70,6 +70,7 @@ local: # autocode configuration autocode: + transfer-restart: true root: "" server: /server server-api: /api/v1 diff --git a/server/config/auto_code.go b/server/config/auto_code.go index 18cd32f6..f941e398 100644 --- a/server/config/auto_code.go +++ b/server/config/auto_code.go @@ -1,17 +1,18 @@ package config type Autocode struct { - Root string `mapstructure:"root" json:"root" yaml:"root"` - Server string `mapstructure:"server" json:"server" yaml:"server"` - SApi string `mapstructure:"server-api" json:"serverApi" yaml:"server-api"` - SInitialize string `mapstructure:"server-initialize" json:"serverInitialize" yaml:"server-initialize"` - SModel string `mapstructure:"server-model" json:"serverModel" yaml:"server-model"` - SRequest string `mapstructure:"server-request" json:"serverRequest" yaml:"server-request"` - SRouter string `mapstructure:"server-router" json:"serverRouter" yaml:"server-router"` - SService string `mapstructure:"server-service" json:"serverService" yaml:"server-service"` - Web string `mapstructure:"web" json:"web" yaml:"web"` - WApi string `mapstructure:"web-api" json:"webApi" yaml:"web-api"` - WForm string `mapstructure:"web-form" json:"webForm" yaml:"web-form"` - WTable string `mapstructure:"web-table" json:"webTable" yaml:"web-table"` - WFlow string `mapstructure:"web-flow" json:"webFlow" yaml:"web-flow"` + TransferRestart bool `mapstructure:"transfer-restart" json:"transferRestart" yaml:"transfer-restart"` + Root string `mapstructure:"root" json:"root" yaml:"root"` + Server string `mapstructure:"server" json:"server" yaml:"server"` + SApi string `mapstructure:"server-api" json:"serverApi" yaml:"server-api"` + SInitialize string `mapstructure:"server-initialize" json:"serverInitialize" yaml:"server-initialize"` + SModel string `mapstructure:"server-model" json:"serverModel" yaml:"server-model"` + SRequest string `mapstructure:"server-request" json:"serverRequest" yaml:"server-request"` + SRouter string `mapstructure:"server-router" json:"serverRouter" yaml:"server-router"` + SService string `mapstructure:"server-service" json:"serverService" yaml:"server-service"` + Web string `mapstructure:"web" json:"web" yaml:"web"` + WApi string `mapstructure:"web-api" json:"webApi" yaml:"web-api"` + WForm string `mapstructure:"web-form" json:"webForm" yaml:"web-form"` + WTable string `mapstructure:"web-table" json:"webTable" yaml:"web-table"` + WFlow string `mapstructure:"web-flow" json:"webFlow" yaml:"web-flow"` } diff --git a/server/service/sys_auto_code.go b/server/service/sys_auto_code.go index 835b02bd..4e529ecb 100644 --- a/server/service/sys_auto_code.go +++ b/server/service/sys_auto_code.go @@ -146,6 +146,11 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) { if err != nil { return err } + if global.GVA_CONFIG.AutoCode.TransferRestart { + go func() { + _ = utils.Reload() + }() + } return errors.New("创建代码成功并移动文件成功") } else { // 打包 if err := utils.ZipFiles("./ginvueadmin.zip", fileList, ".", "."); err != nil { diff --git a/server/utils/reload.go b/server/utils/reload.go new file mode 100644 index 00000000..de5499bf --- /dev/null +++ b/server/utils/reload.go @@ -0,0 +1,18 @@ +package utils + +import ( + "errors" + "os" + "os/exec" + "runtime" + "strconv" +) + +func Reload() error { + if runtime.GOOS == "windows" { + return errors.New("系统不支持") + } + pid := os.Getpid() + cmd := exec.Command("kill", "-1", strconv.Itoa(pid)) + return cmd.Run() +}