monitor_job.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. package admin
  2. import (
  3. "gfast/app/model/admin/sys_job"
  4. "gfast/app/service/admin/dict_service"
  5. "gfast/app/service/admin/monitor_service"
  6. "gfast/app/service/admin/user_service"
  7. "gfast/library/response"
  8. "github.com/gogf/gf/frame/g"
  9. "github.com/gogf/gf/net/ghttp"
  10. "github.com/gogf/gf/util/gconv"
  11. "github.com/gogf/gf/util/gvalid"
  12. )
  13. type MonitorJob struct{}
  14. // @Summary 任务列表
  15. // @Description 任务列表
  16. // @Tags 定时任务
  17. // @Param data body sys_job.SelectPageReq true "data"
  18. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  19. // @Router /system/monitor/job/list [get]
  20. // @Security
  21. func (c *MonitorJob) List(r *ghttp.Request) {
  22. var req *sys_job.SelectPageReq
  23. //获取参数
  24. if err := r.Parse(&req); err != nil {
  25. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  26. }
  27. total, page, list, err := monitor_service.JobListByPage(req)
  28. if err != nil {
  29. response.FailJson(true, r, err.Error())
  30. }
  31. //获取相关选项
  32. jobStatus, err := dict_service.GetDictWithDataByType("sys_job_status", "", "全部")
  33. if err != nil {
  34. response.FailJson(true, r, err.Error())
  35. }
  36. jobGroup, err := dict_service.GetDictWithDataByType("sys_job_group", "", "全部")
  37. if err != nil {
  38. response.FailJson(true, r, err.Error())
  39. }
  40. result := g.Map{
  41. "currentPage": page,
  42. "total": total,
  43. "list": list,
  44. "searchStatus": jobStatus,
  45. "searchGroup": jobGroup,
  46. }
  47. response.SusJson(true, r, "任务列表", result)
  48. }
  49. // @Summary 添加任务
  50. // @Description 添加任务
  51. // @Tags 定时任务
  52. // @Param data body sys_job.ReqAdd true "data"
  53. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  54. // @Router /system/monitor/job/add [post]
  55. // @Security
  56. func (c *MonitorJob) Add(r *ghttp.Request) {
  57. if r.Method == "POST" {
  58. var req *sys_job.ReqAdd
  59. //获取参数
  60. if err := r.Parse(&req); err != nil {
  61. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  62. }
  63. userId := user_service.GetLoginID(r) //获取登陆用户id
  64. _, err := monitor_service.AddJob(req, userId)
  65. if err != nil {
  66. response.FailJson(true, r, err.Error())
  67. }
  68. response.SusJson(true, r, "任务添加成功")
  69. }
  70. //获取相关选项
  71. jobStatus, err := dict_service.GetDictWithDataByType("sys_job_status", "", "")
  72. if err != nil {
  73. response.FailJson(true, r, err.Error())
  74. }
  75. jobGroup, err := dict_service.GetDictWithDataByType("sys_job_group", "", "")
  76. if err != nil {
  77. response.FailJson(true, r, err.Error())
  78. }
  79. jobPolicy, err := dict_service.GetDictWithDataByType("sys_job_policy", "", "")
  80. if err != nil {
  81. response.FailJson(true, r, err.Error())
  82. }
  83. res := g.Map{
  84. "jobStatus": jobStatus,
  85. "jobGroup": jobGroup,
  86. "jobPolicy": jobPolicy,
  87. }
  88. response.SusJson(true, r, "添加任务", res)
  89. }
  90. // @Summary 修改任务
  91. // @Description 修改任务
  92. // @Tags 定时任务
  93. // @Param data body sys_job.ReqEdit true "data"
  94. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  95. // @Router /system/monitor/job/edit [post]
  96. // @Security
  97. func (c *MonitorJob) Edit(r *ghttp.Request) {
  98. if r.Method == "POST" {
  99. var req *sys_job.ReqEdit
  100. //获取参数
  101. if err := r.Parse(&req); err != nil {
  102. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  103. }
  104. userId := user_service.GetLoginID(r) //获取登陆用户id
  105. _, err := monitor_service.EditJob(req, userId)
  106. if err != nil {
  107. response.FailJson(true, r, err.Error())
  108. }
  109. response.SusJson(true, r, "修改任务成功")
  110. }
  111. id := r.GetInt64("id")
  112. job, err := monitor_service.GetJobInfoById(id)
  113. if err != nil {
  114. response.FailJson(true, r, err.Error())
  115. }
  116. //获取相关选项
  117. jobStatus, err := dict_service.GetDictWithDataByType("sys_job_status", gconv.String(job.Status), "")
  118. if err != nil {
  119. response.FailJson(true, r, err.Error())
  120. }
  121. jobGroup, err := dict_service.GetDictWithDataByType("sys_job_group", job.JobGroup, "")
  122. if err != nil {
  123. response.FailJson(true, r, err.Error())
  124. }
  125. jobPolicy, err := dict_service.GetDictWithDataByType("sys_job_policy", gconv.String(job.MisfirePolicy), "")
  126. if err != nil {
  127. response.FailJson(true, r, err.Error())
  128. }
  129. res := g.Map{
  130. "jobStatus": jobStatus,
  131. "jobGroup": jobGroup,
  132. "jobPolicy": jobPolicy,
  133. "jobInfo": job,
  134. }
  135. response.SusJson(true, r, "添加任务", res)
  136. }
  137. // @Summary 详情
  138. // @Description 详情
  139. // @Tags 定时任务
  140. // @Param id body integer true "id"
  141. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  142. // @Router /system/monitor/job/details [post]
  143. // @Security
  144. func (c *MonitorJob) Details(r *ghttp.Request) {
  145. id := r.GetInt64("id")
  146. job, err := monitor_service.GetJobInfoById(id)
  147. if err != nil {
  148. response.FailJson(true, r, err.Error())
  149. }
  150. response.SusJson(true, r, "success", job)
  151. }
  152. // @Summary 删除计划任务
  153. // @Description 删除计划任务
  154. // @Tags 定时任务
  155. // @Param ids body integer true "ids[]"
  156. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  157. // @Router /system/monitor/job/delete [delete]
  158. // @Security
  159. func (c *MonitorJob) Delete(r *ghttp.Request) {
  160. ids := r.GetInts("id")
  161. err := monitor_service.DeleteJobByIds(ids)
  162. if err != nil {
  163. response.FailJson(true, r, err.Error())
  164. }
  165. response.SusJson(true, r, "删除成功")
  166. }
  167. // @Summary 启动任务
  168. // @Description 启动任务
  169. // @Tags 定时任务
  170. // @Param id body integer true "id"
  171. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  172. // @Router /system/monitor/job/start [post]
  173. // @Security
  174. func (c *MonitorJob) Start(r *ghttp.Request) {
  175. id := r.GetInt64("id")
  176. job, err := monitor_service.GetJobInfoById(id)
  177. if err != nil {
  178. response.FailJson(true, r, err.Error())
  179. }
  180. err = monitor_service.JobStart(job)
  181. if err != nil {
  182. response.FailJson(true, r, "定时任务管理启动"+err.Error())
  183. }
  184. response.SusJson(true, r, "定时任务管理启动成功")
  185. }
  186. // @Summary 停止任务
  187. // @Description 停止任务
  188. // @Tags 定时任务
  189. // @Param id body integer true "id"
  190. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  191. // @Router /system/monitor/job/stop [post]
  192. // @Security
  193. func (c *MonitorJob) Stop(r *ghttp.Request) {
  194. id := r.GetInt64("id")
  195. job, err := monitor_service.GetJobInfoById(id)
  196. if err != nil {
  197. response.FailJson(true, r, err.Error())
  198. }
  199. err = monitor_service.JobStop(job)
  200. if err != nil {
  201. response.FailJson(true, r, "定时任务管理停止"+err.Error())
  202. }
  203. response.SusJson(true, r, "定时任务管理停止成功")
  204. }