dt_task.go 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. package daytask
  2. import (
  3. model "go_server/model/biz_modules/daytask"
  4. "go_server/model/common/response"
  5. "go_server/service/base"
  6. "github.com/gin-gonic/gin"
  7. )
  8. // DtTaskCategoryService 任务分类服务
  9. type DtTaskCategoryService struct {
  10. base.BizCommonService
  11. }
  12. func (s *DtTaskCategoryService) Get(c *gin.Context) {
  13. s.SetDbAlias("daytask")
  14. base.NewBaseHandler(model.NewDtTaskCategory()).Get(c, s.DB())
  15. }
  16. func (s *DtTaskCategoryService) Find(c *gin.Context) {
  17. s.SetDbAlias("daytask")
  18. type request[T any] struct {
  19. base.ListRequest[T]
  20. Id *int64 `form:"id"`
  21. Name *string `form:"name"`
  22. Platform *string `form:"platform"`
  23. Status *int8 `form:"status"`
  24. }
  25. req := new(request[model.DtTaskCategory])
  26. if err := c.BindQuery(req); err != nil {
  27. response.Resp(c, err.Error())
  28. return
  29. }
  30. db := s.DB()
  31. if req.Id != nil && *req.Id != 0 {
  32. db = db.Where("id", req.Id)
  33. }
  34. if req.Name != nil && *req.Name != "" {
  35. db = db.Where("name LIKE ?", "%"+*req.Name+"%")
  36. }
  37. if req.Platform != nil && *req.Platform != "" {
  38. db = db.Where("platform", req.Platform)
  39. }
  40. if req.Status != nil {
  41. db = db.Where("status", req.Status)
  42. }
  43. db = db.Order("sort ASC")
  44. colInfo := s.GetColumnCommentFromStruct(model.DtTaskCategory{})
  45. resp, err := base.NewQueryBaseHandler(model.NewDtTaskCategory()).List(db, req)
  46. if err != nil {
  47. response.Resp(c, err.Error())
  48. return
  49. }
  50. response.Resp(c, map[string]interface{}{
  51. "cols": colInfo,
  52. "list": resp.List,
  53. "paging": resp.Paging,
  54. })
  55. }
  56. func (s *DtTaskCategoryService) Create(c *gin.Context) {
  57. s.SetDbAlias("daytask")
  58. base.NewBaseHandler(model.NewDtTaskCategory()).Create(c, s.DB())
  59. }
  60. func (s *DtTaskCategoryService) Update(c *gin.Context) {
  61. s.SetDbAlias("daytask")
  62. base.NewBaseHandler(model.NewDtTaskCategory()).UpdateOne(c, s.DB())
  63. }
  64. func (s *DtTaskCategoryService) Delete(c *gin.Context) {
  65. s.SetDbAlias("daytask")
  66. base.NewBaseHandler(model.NewDtTaskCategory()).DeleteOne(c, s.DB())
  67. }
  68. // DtTaskService 任务服务
  69. type DtTaskService struct {
  70. base.BizCommonService
  71. }
  72. func (s *DtTaskService) Get(c *gin.Context) {
  73. s.SetDbAlias("daytask")
  74. base.NewBaseHandler(model.NewDtTask()).Get(c, s.DB())
  75. }
  76. func (s *DtTaskService) Find(c *gin.Context) {
  77. s.SetDbAlias("daytask")
  78. type request[T any] struct {
  79. base.ListRequest[T]
  80. Id *int64 `form:"id"`
  81. TaskNo *string `form:"taskNo"`
  82. CategoryId *int64 `form:"categoryId"`
  83. Title *string `form:"title"`
  84. TaskType *int8 `form:"taskType"`
  85. Status *int8 `form:"status"`
  86. MinLevel *int `form:"minLevel"`
  87. BeginTime *int64 `form:"beginTime"`
  88. EndTime *int64 `form:"endTime"`
  89. }
  90. req := new(request[model.DtTask])
  91. if err := c.BindQuery(req); err != nil {
  92. response.Resp(c, err.Error())
  93. return
  94. }
  95. db := s.DB()
  96. if req.Id != nil && *req.Id != 0 {
  97. db = db.Where("id", req.Id)
  98. }
  99. if req.TaskNo != nil && *req.TaskNo != "" {
  100. db = db.Where("task_no", req.TaskNo)
  101. }
  102. if req.CategoryId != nil && *req.CategoryId != 0 {
  103. db = db.Where("category_id", req.CategoryId)
  104. }
  105. if req.Title != nil && *req.Title != "" {
  106. db = db.Where("title LIKE ?", "%"+*req.Title+"%")
  107. }
  108. if req.TaskType != nil {
  109. db = db.Where("task_type", req.TaskType)
  110. }
  111. if req.Status != nil {
  112. db = db.Where("status", req.Status)
  113. }
  114. if req.MinLevel != nil {
  115. db = db.Where("min_level >= ?", req.MinLevel)
  116. }
  117. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  118. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  119. }
  120. colInfo := s.GetColumnCommentFromStruct(model.DtTask{})
  121. resp, err := base.NewQueryBaseHandler(model.NewDtTask()).List(db, req)
  122. if err != nil {
  123. response.Resp(c, err.Error())
  124. return
  125. }
  126. response.Resp(c, map[string]interface{}{
  127. "cols": colInfo,
  128. "list": resp.List,
  129. "paging": resp.Paging,
  130. })
  131. }
  132. func (s *DtTaskService) Create(c *gin.Context) {
  133. s.SetDbAlias("daytask")
  134. base.NewBaseHandler(model.NewDtTask()).Create(c, s.DB())
  135. }
  136. func (s *DtTaskService) Update(c *gin.Context) {
  137. s.SetDbAlias("daytask")
  138. base.NewBaseHandler(model.NewDtTask()).UpdateOne(c, s.DB())
  139. }
  140. func (s *DtTaskService) Delete(c *gin.Context) {
  141. s.SetDbAlias("daytask")
  142. base.NewBaseHandler(model.NewDtTask()).DeleteOne(c, s.DB())
  143. }
  144. // DtTaskStepService 任务步骤服务
  145. type DtTaskStepService struct {
  146. base.BizCommonService
  147. }
  148. func (s *DtTaskStepService) Get(c *gin.Context) {
  149. s.SetDbAlias("daytask")
  150. base.NewBaseHandler(model.NewDtTaskStep()).Get(c, s.DB())
  151. }
  152. func (s *DtTaskStepService) Find(c *gin.Context) {
  153. s.SetDbAlias("daytask")
  154. type request[T any] struct {
  155. base.ListRequest[T]
  156. TaskId *int64 `form:"taskId"`
  157. }
  158. req := new(request[model.DtTaskStep])
  159. if err := c.BindQuery(req); err != nil {
  160. response.Resp(c, err.Error())
  161. return
  162. }
  163. db := s.DB()
  164. if req.TaskId != nil && *req.TaskId != 0 {
  165. db = db.Where("task_id", req.TaskId)
  166. }
  167. db = db.Order("step_no ASC, sort ASC")
  168. colInfo := s.GetColumnCommentFromStruct(model.DtTaskStep{})
  169. resp, err := base.NewQueryBaseHandler(model.NewDtTaskStep()).List(db, req)
  170. if err != nil {
  171. response.Resp(c, err.Error())
  172. return
  173. }
  174. response.Resp(c, map[string]interface{}{
  175. "cols": colInfo,
  176. "list": resp.List,
  177. "paging": resp.Paging,
  178. })
  179. }
  180. func (s *DtTaskStepService) Create(c *gin.Context) {
  181. s.SetDbAlias("daytask")
  182. base.NewBaseHandler(model.NewDtTaskStep()).Create(c, s.DB())
  183. }
  184. func (s *DtTaskStepService) Update(c *gin.Context) {
  185. s.SetDbAlias("daytask")
  186. base.NewBaseHandler(model.NewDtTaskStep()).UpdateOne(c, s.DB())
  187. }
  188. func (s *DtTaskStepService) Delete(c *gin.Context) {
  189. s.SetDbAlias("daytask")
  190. base.NewBaseHandler(model.NewDtTaskStep()).DeleteOne(c, s.DB())
  191. }
  192. // DtUserTaskService 用户任务记录服务
  193. type DtUserTaskService struct {
  194. base.BizCommonService
  195. }
  196. func (s *DtUserTaskService) Get(c *gin.Context) {
  197. s.SetDbAlias("daytask")
  198. base.NewBaseHandler(model.NewDtUserTask()).Get(c, s.DB())
  199. }
  200. func (s *DtUserTaskService) Find(c *gin.Context) {
  201. s.SetDbAlias("daytask")
  202. type request[T any] struct {
  203. base.ListRequest[T]
  204. Id *int64 `form:"id"`
  205. OrderNo *string `form:"orderNo"`
  206. UserId *int64 `form:"userId"`
  207. UserUid *string `form:"userUid"`
  208. TaskId *int64 `form:"taskId"`
  209. TaskNo *string `form:"taskNo"`
  210. Status *int8 `form:"status"`
  211. BeginTime *int64 `form:"beginTime"`
  212. EndTime *int64 `form:"endTime"`
  213. }
  214. req := new(request[model.DtUserTask])
  215. if err := c.BindQuery(req); err != nil {
  216. response.Resp(c, err.Error())
  217. return
  218. }
  219. db := s.DB()
  220. if req.Id != nil && *req.Id != 0 {
  221. db = db.Where("id", req.Id)
  222. }
  223. if req.OrderNo != nil && *req.OrderNo != "" {
  224. db = db.Where("order_no", req.OrderNo)
  225. }
  226. if req.UserId != nil && *req.UserId != 0 {
  227. db = db.Where("user_id", req.UserId)
  228. }
  229. if req.UserUid != nil && *req.UserUid != "" {
  230. db = db.Where("user_uid", req.UserUid)
  231. }
  232. if req.TaskId != nil && *req.TaskId != 0 {
  233. db = db.Where("task_id", req.TaskId)
  234. }
  235. if req.TaskNo != nil && *req.TaskNo != "" {
  236. db = db.Where("task_no", req.TaskNo)
  237. }
  238. if req.Status != nil {
  239. db = db.Where("status", req.Status)
  240. }
  241. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  242. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  243. }
  244. colInfo := s.GetColumnCommentFromStruct(model.DtUserTask{})
  245. resp, err := base.NewQueryBaseHandler(model.NewDtUserTask()).List(db, req)
  246. if err != nil {
  247. response.Resp(c, err.Error())
  248. return
  249. }
  250. response.Resp(c, map[string]interface{}{
  251. "cols": colInfo,
  252. "list": resp.List,
  253. "paging": resp.Paging,
  254. })
  255. }
  256. func (s *DtUserTaskService) Create(c *gin.Context) {
  257. s.SetDbAlias("daytask")
  258. base.NewBaseHandler(model.NewDtUserTask()).Create(c, s.DB())
  259. }
  260. func (s *DtUserTaskService) Update(c *gin.Context) {
  261. s.SetDbAlias("daytask")
  262. base.NewBaseHandler(model.NewDtUserTask()).UpdateOne(c, s.DB())
  263. }
  264. func (s *DtUserTaskService) Delete(c *gin.Context) {
  265. s.SetDbAlias("daytask")
  266. base.NewBaseHandler(model.NewDtUserTask()).DeleteOne(c, s.DB())
  267. }
  268. // Audit 审核任务
  269. func (s *DtUserTaskService) Audit(c *gin.Context) {
  270. s.SetDbAlias("daytask")
  271. type request struct {
  272. Id int64 `json:"id" binding:"required"`
  273. Status int8 `json:"status" binding:"required"` // 2=通过 3=拒绝
  274. AuditRemark string `json:"auditRemark"`
  275. RejectReason string `json:"rejectReason"`
  276. }
  277. var req request
  278. if err := c.ShouldBindJSON(&req); err != nil {
  279. response.Resp(c, err.Error())
  280. return
  281. }
  282. if req.Status != 2 && req.Status != 3 {
  283. response.Resp(c, "状态值无效")
  284. return
  285. }
  286. updates := map[string]interface{}{
  287. "status": req.Status,
  288. "audit_remark": req.AuditRemark,
  289. "audit_time": c.GetInt64("now"),
  290. }
  291. if req.Status == 3 {
  292. updates["reject_reason"] = req.RejectReason
  293. }
  294. err := s.DB().Model(&model.DtUserTask{}).Where("id = ? AND status = 1", req.Id).Updates(updates).Error
  295. if err != nil {
  296. response.Resp(c, err.Error())
  297. return
  298. }
  299. response.Resp(c, "操作成功")
  300. }