package admin import ( "Gwen/global" "Gwen/http/request/admin" "Gwen/http/response" "Gwen/model" "Gwen/service" "github.com/gin-gonic/gin" ) type Rustdesk struct { } type RustdeskCmd struct { Cmd string `json:"cmd"` Option string `json:"option"` } func (r *Rustdesk) CmdList(c *gin.Context) { q := &admin.PageQuery{} if err := c.ShouldBindQuery(q); err != nil { response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error()) return } res := service.AllService.ServerCmdService.List(q.Page, 9999) //在列表前添加系统命令 list := make([]*model.ServerCmd, 0) list = append(list, model.SysServerCmds...) list = append(list, res.ServerCmds...) res.ServerCmds = list response.Success(c, res) } func (r *Rustdesk) CmdDelete(c *gin.Context) { f := &model.ServerCmd{} if err := c.ShouldBindJSON(f); err != nil { response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error()) return } if f.Id == 0 { response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")) return } ex := service.AllService.ServerCmdService.Info(f.Id) if ex.Id == 0 { response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound")) return } err := service.AllService.ServerCmdService.Delete(ex) if err != nil { response.Fail(c, 101, err.Error()) return } response.Success(c, nil) } func (r *Rustdesk) CmdCreate(c *gin.Context) { f := &model.ServerCmd{} if err := c.ShouldBindJSON(f); err != nil { response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error()) return } errList := global.Validator.ValidStruct(c, f) if len(errList) > 0 { response.Fail(c, 101, errList[0]) return } err := service.AllService.ServerCmdService.Create(f) if err != nil { response.Fail(c, 101, err.Error()) return } response.Success(c, nil) } func (r *Rustdesk) CmdUpdate(c *gin.Context) { f := &model.ServerCmd{} if err := c.ShouldBindJSON(f); err != nil { response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error()) return } errList := global.Validator.ValidStruct(c, f) if len(errList) > 0 { response.Fail(c, 101, errList[0]) return } ex := service.AllService.ServerCmdService.Info(f.Id) if ex.Id == 0 { response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound")) return } err := service.AllService.ServerCmdService.Update(f) if err != nil { response.Fail(c, 101, err.Error()) return } response.Success(c, nil) } func (r *Rustdesk) SendCmd(c *gin.Context) { rc := &RustdeskCmd{} c.ShouldBindJSON(rc) if rc.Cmd == "" { response.Fail(c, 101, "cmd is required") return } res, err := service.AllService.ServerCmdService.SendCmd(rc.Cmd, rc.Option) if err != nil { response.Fail(c, 101, err.Error()) return } response.Success(c, res) }