taskController.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package controllers
  2. import (
  3. "fmt"
  4. "rtzh_elec_temperature/rtelec_app_public_lib/service"
  5. "time"
  6. "github.com/wxnacy/wgo/arrays"
  7. "git.rtzhtech.cn/iss/public-lib/model"
  8. "github.com/spf13/cast"
  9. )
  10. //计划任务相关服务
  11. type TaskController struct {
  12. BaseController
  13. }
  14. //编辑任务(添加或修改)
  15. // @router /edit [post]
  16. func (c *TaskController) EditTask() {
  17. var parameter model.DevTask
  18. parameter.Taskid, _ = c.GetInt64("taskid")
  19. parameter.Appid = cast.ToInt32(service.RtelecManageApp().RegAppID)
  20. parameter.Taskdesc = c.GetString("taskdesc")
  21. parameter.Tasktype, _ = c.GetInt32("tasktype")
  22. startTime := c.GetString("starttime")
  23. if startTime != "" {
  24. startDate, parseErr := time.ParseInLocation("2006-01-02 15:04:05", startTime, time.Local)
  25. if parseErr == nil {
  26. parameter.Starttime = startDate
  27. } else {
  28. c.Data["json"] = c.ApiError("请输入正确的计划任务开始时间!")
  29. c.ServeJSON()
  30. return
  31. }
  32. } else {
  33. c.Data["json"] = c.ApiError("计划任务开始时间不允许为空!")
  34. c.ServeJSON()
  35. return
  36. }
  37. if parameter.Taskdesc == "" {
  38. c.Data["json"] = c.ApiError("计划任务描述不允许为空!")
  39. c.ServeJSON()
  40. return
  41. }
  42. parameter.Runtime, _ = c.GetInt32("runtime")
  43. parameter.Period, _ = c.GetInt32("period")
  44. parameter.Actid, _ = c.GetInt64("actid")
  45. parameter.Status = 3 //默认计时中。只有计时中的任务才会进入等待执行队列
  46. parameter.Pause = 1
  47. taskObj := new(service.TaskService)
  48. taskObj.UserInfo = c.GetCurrentUserInfo_rt()
  49. err := taskObj.EditTask(parameter)
  50. if err == nil {
  51. c.Data["json"] = c.ApiOK("编辑计划任务成功!")
  52. } else {
  53. c.Data["json"] = c.ApiError(err.Error())
  54. }
  55. c.ServeJSON()
  56. }
  57. //编辑任务(添加或修改)
  58. // @router /delete [post]
  59. func (c *TaskController) DeleteTask() {
  60. taskObj := new(service.TaskService)
  61. taskObj.UserInfo = c.GetCurrentUserInfo_rt()
  62. taskId, _ := c.GetInt64("taskid")
  63. if taskId == 0 {
  64. c.Data["json"] = c.ApiError("计划任务id不允许为空(0)!")
  65. } else {
  66. err := taskObj.DeleteTask(taskId)
  67. if err != nil {
  68. c.Data["json"] = c.ApiError(err.Error())
  69. } else {
  70. c.Data["json"] = c.ApiOK("")
  71. }
  72. }
  73. c.ServeJSON()
  74. }
  75. //编辑任务(添加或修改)
  76. // @router /list [get]
  77. func (c *TaskController) TaskList() {
  78. tasktype, _ := c.GetInt("tasktype")
  79. pageIndex, _ := c.GetInt("pageindex", 1)
  80. pageSize, _ := c.GetInt("pagesize", 20)
  81. taskObj := new(service.TaskService)
  82. taskObj.UserInfo = c.GetCurrentUserInfo_rt()
  83. list, err := taskObj.TaskList(tasktype, pageIndex, pageSize)
  84. if err != nil {
  85. c.Data["json"] = c.ApiError(err.Error())
  86. } else {
  87. c.Data["json"] = c.ApiOK(list)
  88. }
  89. c.ServeJSON()
  90. }
  91. //任务暂停或恢复
  92. // @router /pause [post]
  93. func (c *TaskController) TaskPause() {
  94. taskId, _ := c.GetInt64("taskid")
  95. pause, _ := c.GetInt("pause")
  96. if taskId == 0 {
  97. c.Data["json"] = c.ApiError("任务id不允许为空")
  98. c.ServeJSON()
  99. return
  100. }
  101. if pause == 0 {
  102. c.Data["json"] = c.ApiError("暂停或恢复不不允许为空")
  103. c.ServeJSON()
  104. return
  105. } else if pause > 0 {
  106. var pausestatus = []int64{1, 2}
  107. if arrays.ContainsInt(pausestatus, int64(pause)) == -1 {
  108. c.Data["json"] = c.ApiError("任务暂停或恢复状态只允许为1或2")
  109. c.ServeJSON()
  110. return
  111. }
  112. }
  113. var status = 0
  114. if pause == 2 {
  115. status = 4
  116. } else {
  117. status = 3
  118. }
  119. taskObj := new(service.TaskService)
  120. taskObj.UserInfo = c.GetCurrentUserInfo_rt()
  121. err := taskObj.TaskPause(taskId, pause, status)
  122. if err != nil {
  123. c.Data["json"] = c.ApiError(err.Error())
  124. } else {
  125. taskObj.GetTaskInfo()
  126. c.Data["json"] = c.ApiOK("")
  127. if pause == 2 {
  128. new(service.LogService).SaveLog(fmt.Sprintf("任务%d暂停成功", taskId))
  129. } else {
  130. new(service.LogService).SaveLog(fmt.Sprintf("任务%d恢复成功", taskId))
  131. }
  132. }
  133. c.ServeJSON()
  134. }