plugins_manage.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // ==========================================================================
  2. // GFast自动生成控制器相关代码,只生成一次,按需修改,再次生成不会覆盖.
  3. // 生成日期:2021-08-31 17:58:43
  4. // 生成路径: gfast/app/system/api/plugins_manage.go
  5. // 生成人:gfast
  6. // ==========================================================================
  7. package api
  8. import (
  9. "gfast/app/system/dao"
  10. "gfast/app/system/service"
  11. "github.com/gogf/gf/frame/g"
  12. "github.com/gogf/gf/net/ghttp"
  13. "github.com/gogf/gf/text/gstr"
  14. "github.com/gogf/gf/util/gvalid"
  15. )
  16. type pluginsManage struct {
  17. SystemBase
  18. }
  19. var PluginsManage = new(pluginsManage)
  20. // List 列表
  21. func (c *pluginsManage) List(r *ghttp.Request) {
  22. var req *dao.PluginsManageSearchReq
  23. //获取参数
  24. if err := r.Parse(&req); err != nil {
  25. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  26. }
  27. req.Ctx = r.GetCtx()
  28. total, page, list, err := service.PluginsManage.GetList(req)
  29. if err != nil {
  30. c.FailJsonExit(r, err.Error())
  31. }
  32. result := g.Map{
  33. "currentPage": page,
  34. "total": total,
  35. "list": list,
  36. }
  37. c.SusJsonExit(r, result)
  38. }
  39. // Get 获取
  40. func (c *pluginsManage) Get(r *ghttp.Request) {
  41. id := r.GetInt64("id")
  42. info, err := service.PluginsManage.GetInfoById(r.GetCtx(), id)
  43. if err != nil {
  44. c.FailJsonExit(r, err.Error())
  45. }
  46. c.SusJsonExit(r, info)
  47. }
  48. // ChangeStatus 修改状态
  49. func (c *pluginsManage) ChangeStatus(r *ghttp.Request) {
  50. var req *dao.PluginsManageStatusReq
  51. //获取参数
  52. if err := r.Parse(&req); err != nil {
  53. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  54. }
  55. if err := service.PluginsManage.ChangeStatus(r.GetCtx(), req); err != nil {
  56. c.FailJsonExit(r, err.Error())
  57. } else {
  58. c.SusJsonExit(r, "状态设置成功")
  59. }
  60. }
  61. // Install 插件安装
  62. func (c *pluginsManage) Install(r *ghttp.Request) {
  63. var req *dao.PluginsManageInstallReq
  64. //获取参数
  65. if err := r.Parse(&req); err != nil {
  66. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  67. }
  68. if req.RToken == "" {
  69. c.SusJsonExit(r, g.Map{
  70. "code": -401,
  71. "msg": "请登录",
  72. })
  73. }
  74. err := service.PluginsManage.Install(r.GetCtx(), req)
  75. if err != nil {
  76. c.FailJsonExit(r, err.Error())
  77. }
  78. c.SusJsonExit(r, "安装成功")
  79. }
  80. // Captcha 获取验证码
  81. func (c *pluginsManage) Captcha(r *ghttp.Request) {
  82. idKeyC, base64stringC, err := service.PluginsManage.GetCaptcha(r.GetCtx())
  83. if err != nil {
  84. c.FailJsonExit(r, err.Error())
  85. }
  86. c.SusJsonExit(r, g.Map{
  87. "base64stringC": base64stringC,
  88. "idKeyC": idKeyC,
  89. })
  90. }
  91. // LoginR 登录插件服务
  92. func (c *pluginsManage) LoginR(r *ghttp.Request) {
  93. var req *dao.PluginRLoginFormReq
  94. // 通过Parse方法解析获取参数
  95. err := r.Parse(&req)
  96. if err != nil {
  97. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  98. }
  99. var userInfo g.Map
  100. userInfo, err = service.PluginsManage.LoginR(r.GetCtx(), req)
  101. if err != nil {
  102. c.FailJsonExit(r, err.Error())
  103. }
  104. c.SusJsonExit(r, userInfo)
  105. }
  106. // InstallOffLine 离线安装
  107. func (c *pluginsManage) InstallOffLine(r *ghttp.Request) {
  108. upFile := r.GetUploadFile("file")
  109. f, err := upFile.Open()
  110. if err != nil {
  111. c.FailJsonExit(r, err.Error())
  112. }
  113. defer f.Close()
  114. d := make([]byte, upFile.Size)
  115. _, err = f.Read(d)
  116. if err != nil {
  117. c.FailJsonExit(r, err.Error())
  118. }
  119. fileName := upFile.Filename
  120. fileName = gstr.SubStr(fileName, gstr.PosR(fileName, "=")+1,
  121. gstr.PosR(fileName, ".")-gstr.PosR(fileName, "=")-1)
  122. err = service.PluginsManage.PluginIsExists(r.GetCtx(), fileName)
  123. if err != nil {
  124. c.FailJsonExit(r, err.Error())
  125. }
  126. err = service.PluginsManage.InstallFile(r.GetCtx(), d, fileName)
  127. if err != nil {
  128. c.FailJsonExit(r, err.Error())
  129. }
  130. c.SusJsonExit(r)
  131. }