劲创营---任务项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

152 lines
4.4 KiB

  1. package svc
  2. import (
  3. "applet/app/comm/e"
  4. "applet/app/comm/svc"
  5. "applet/app/comm/utils"
  6. "applet/app/operator/md"
  7. md2 "applet/app/store/md"
  8. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement"
  9. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  10. "encoding/json"
  11. "github.com/gin-gonic/gin"
  12. "time"
  13. )
  14. func TaskUp(c *gin.Context) {
  15. var args map[string]string
  16. if err := c.ShouldBindJSON(&args); err != nil {
  17. e.OutErr(c, e.ERR_INVALID_ARGS)
  18. return
  19. }
  20. user := svc.GetUser(c)
  21. update, _ := svc.MasterDb(c).Where("task_id=? and uid=?", args["id"], user.Info.Uid).Count(&models.CampTaskOperatorTask{})
  22. if update > 0 {
  23. e.OutErr(c, 400, e.NewErr(400, "该任务已上架"))
  24. return
  25. }
  26. var data = models.CampTaskOperatorTask{
  27. TaskId: utils.StrToInt(args["id"]),
  28. Uid: user.Info.Uid,
  29. CreateTime: time.Now(),
  30. }
  31. insert, _ := svc.MasterDb(c).Insert(&data)
  32. if insert == 0 {
  33. e.OutErr(c, 400, e.NewErr(400, "上架失败"))
  34. return
  35. }
  36. e.OutSuc(c, "success", nil)
  37. return
  38. }
  39. func TaskDown(c *gin.Context) {
  40. var args map[string]string
  41. if err := c.ShouldBindJSON(&args); err != nil {
  42. e.OutErr(c, e.ERR_INVALID_ARGS)
  43. return
  44. }
  45. user := svc.GetUser(c)
  46. update, _ := svc.MasterDb(c).Where("task_id=? and uid=?", args["id"], user.Info.Uid).Delete(&models.CampTaskOperatorTask{})
  47. if update == 0 {
  48. e.OutErr(c, 400, e.NewErr(400, "下架失败"))
  49. return
  50. }
  51. e.OutSuc(c, "success", nil)
  52. return
  53. }
  54. func TaskList(c *gin.Context) {
  55. var args md.TaskListReq
  56. if err := c.ShouldBindJSON(&args); err != nil {
  57. e.OutErr(c, e.ERR_INVALID_ARGS)
  58. return
  59. }
  60. user := svc.GetUser(c)
  61. hotTask := make([]map[string]string, 0)
  62. var hotTaskList []models.CampTaskList
  63. sess := svc.MasterDb(c).Where("up_down_state=?", 1)
  64. if args.Cid != "" {
  65. sess.And("first_cid=?", args.Cid)
  66. }
  67. if args.SettleType != "" {
  68. sess.And("settle_type=?", args.SettleType)
  69. }
  70. total, _ := sess.Limit(utils.StrToInt(args.P), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("success_num desc,id desc").FindAndCount(&hotTaskList)
  71. for _, v := range hotTaskList {
  72. tmp := map[string]string{
  73. "id": utils.IntToStr(v.Id),
  74. "is_check": "0",
  75. "name": v.Name,
  76. "price": v.Price,
  77. "num": utils.IntToStr(v.Num),
  78. "icon": svc.ImageFormat(c, v.Logo),
  79. "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"),
  80. }
  81. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{})
  82. if counts > 0 {
  83. tmp["is_check"] = "1"
  84. }
  85. hotTask = append(hotTask, tmp)
  86. }
  87. taskCate := make([]map[string]string, 0)
  88. taskCateList := make([]models.CampTaskCate, 0)
  89. svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
  90. for _, v := range taskCateList {
  91. if v.Pid > 0 {
  92. continue
  93. }
  94. tmp := map[string]string{
  95. "name": v.Name, "value": utils.IntToStr(v.Id),
  96. }
  97. taskCate = append(taskCate, tmp)
  98. }
  99. res := map[string]interface{}{
  100. "cate_list": taskCate,
  101. "settle_type": []map[string]string{
  102. {"name": "T+1", "value": "0"},
  103. {"name": "T+7", "value": "1"},
  104. {"name": "月结", "value": "2"},
  105. },
  106. "total": total, "list": hotTask,
  107. }
  108. e.OutSuc(c, res, nil)
  109. return
  110. }
  111. func TaskDetail(c *gin.Context) {
  112. var args map[string]string
  113. if err := c.ShouldBindJSON(&args); err != nil {
  114. e.OutErr(c, e.ERR_INVALID_ARGS)
  115. return
  116. }
  117. user := svc.GetUser(c)
  118. taskDb := implement.NewCampTaskListDb(svc.MasterDb(c))
  119. task, _ := taskDb.GetCampTaskById(args["id"])
  120. res := md2.TaskAllDetail{}
  121. res.Label = make([]string, 0)
  122. res.DetailInfo = make([]string, 0)
  123. if task != nil {
  124. taskDetailDb := implement.NewCampTaskDetailDb(svc.MasterDb(c))
  125. taskDetail, _ := taskDetailDb.GetCampTaskDetailById(args["id"])
  126. res = md2.TaskAllDetail{
  127. Id: utils.IntToStr(task.Id),
  128. Name: task.Name,
  129. Icon: svc.ImageFormat(c, task.Logo),
  130. Price: task.Price,
  131. Num: utils.IntToStr(task.Num),
  132. Timer: task.StartTime.Format("2006-01-02") + "至" + task.EndTime.Format("2006-01-02"),
  133. }
  134. if taskDetail != nil {
  135. DetailInfo := make([]string, 0)
  136. json.Unmarshal([]byte(taskDetail.DetailInfo), &DetailInfo)
  137. res.DetailInfo = DetailInfo
  138. }
  139. label := make([]string, 0)
  140. json.Unmarshal([]byte(task.Label), &label)
  141. res.Label = label
  142. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, task.Id).Count(&models.CampTaskOperatorTask{})
  143. if counts > 0 {
  144. res.IsCheck = "1"
  145. }
  146. }
  147. e.OutSuc(c, res, nil)
  148. return
  149. }