rustdesk.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package admin
  2. import (
  3. "Gwen/global"
  4. "Gwen/http/request/admin"
  5. "Gwen/http/response"
  6. "Gwen/model"
  7. "Gwen/service"
  8. "github.com/gin-gonic/gin"
  9. )
  10. type Rustdesk struct {
  11. }
  12. type RustdeskCmd struct {
  13. Cmd string `json:"cmd"`
  14. Option string `json:"option"`
  15. }
  16. func (r *Rustdesk) CmdList(c *gin.Context) {
  17. q := &admin.PageQuery{}
  18. if err := c.ShouldBindQuery(q); err != nil {
  19. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  20. return
  21. }
  22. res := service.AllService.ServerCmdService.List(q.Page, 9999)
  23. //在列表前添加系统命令
  24. list := make([]*model.ServerCmd, 0)
  25. list = append(list, model.SysServerCmds...)
  26. list = append(list, res.ServerCmds...)
  27. res.ServerCmds = list
  28. response.Success(c, res)
  29. }
  30. func (r *Rustdesk) CmdDelete(c *gin.Context) {
  31. f := &model.ServerCmd{}
  32. if err := c.ShouldBindJSON(f); err != nil {
  33. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  34. return
  35. }
  36. if f.Id == 0 {
  37. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError"))
  38. return
  39. }
  40. ex := service.AllService.ServerCmdService.Info(f.Id)
  41. if ex.Id == 0 {
  42. response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
  43. return
  44. }
  45. err := service.AllService.ServerCmdService.Delete(ex)
  46. if err != nil {
  47. response.Fail(c, 101, err.Error())
  48. return
  49. }
  50. response.Success(c, nil)
  51. }
  52. func (r *Rustdesk) CmdCreate(c *gin.Context) {
  53. f := &model.ServerCmd{}
  54. if err := c.ShouldBindJSON(f); err != nil {
  55. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  56. return
  57. }
  58. errList := global.Validator.ValidStruct(c, f)
  59. if len(errList) > 0 {
  60. response.Fail(c, 101, errList[0])
  61. return
  62. }
  63. err := service.AllService.ServerCmdService.Create(f)
  64. if err != nil {
  65. response.Fail(c, 101, err.Error())
  66. return
  67. }
  68. response.Success(c, nil)
  69. }
  70. func (r *Rustdesk) CmdUpdate(c *gin.Context) {
  71. f := &model.ServerCmd{}
  72. if err := c.ShouldBindJSON(f); err != nil {
  73. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  74. return
  75. }
  76. errList := global.Validator.ValidStruct(c, f)
  77. if len(errList) > 0 {
  78. response.Fail(c, 101, errList[0])
  79. return
  80. }
  81. ex := service.AllService.ServerCmdService.Info(f.Id)
  82. if ex.Id == 0 {
  83. response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
  84. return
  85. }
  86. err := service.AllService.ServerCmdService.Update(f)
  87. if err != nil {
  88. response.Fail(c, 101, err.Error())
  89. return
  90. }
  91. response.Success(c, nil)
  92. }
  93. func (r *Rustdesk) SendCmd(c *gin.Context) {
  94. rc := &RustdeskCmd{}
  95. c.ShouldBindJSON(rc)
  96. if rc.Cmd == "" {
  97. response.Fail(c, 101, "cmd is required")
  98. return
  99. }
  100. res, err := service.AllService.ServerCmdService.SendCmd(rc.Cmd, rc.Option)
  101. if err != nil {
  102. response.Fail(c, 101, err.Error())
  103. return
  104. }
  105. response.Success(c, res)
  106. }