劲创营---任务项目
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

svc_task.go 7.6 KiB

2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
4 일 전
2 주 전
2 주 전
2 주 전
1 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package svc
  2. import (
  3. "applet/app/comm/db"
  4. "applet/app/comm/e"
  5. "applet/app/comm/svc"
  6. "applet/app/comm/utils"
  7. svc3 "applet/app/custom/svc"
  8. "applet/app/operator/md"
  9. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement"
  10. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  11. "encoding/json"
  12. "fmt"
  13. "github.com/gin-gonic/gin"
  14. "time"
  15. )
  16. func TaskUp(c *gin.Context) {
  17. var args map[string]string
  18. if err := c.ShouldBindJSON(&args); err != nil {
  19. e.OutErr(c, e.ERR_INVALID_ARGS)
  20. return
  21. }
  22. user := svc.GetUser(c)
  23. update, _ := svc.MasterDb(c).Where("task_id=? and uid=?", args["id"], user.Info.Uid).Count(&models.CampTaskOperatorTask{})
  24. if update > 0 {
  25. e.OutErr(c, 400, e.NewErr(400, "该任务已上架"))
  26. return
  27. }
  28. var data = models.CampTaskOperatorTask{
  29. TaskId: utils.StrToInt(args["id"]),
  30. Uid: user.Info.Uid,
  31. CreateTime: time.Now(),
  32. }
  33. insert, _ := svc.MasterDb(c).Insert(&data)
  34. if insert == 0 {
  35. e.OutErr(c, 400, e.NewErr(400, "上架失败"))
  36. return
  37. }
  38. e.OutSuc(c, "success", nil)
  39. return
  40. }
  41. func TaskDown(c *gin.Context) {
  42. var args map[string]string
  43. if err := c.ShouldBindJSON(&args); err != nil {
  44. e.OutErr(c, e.ERR_INVALID_ARGS)
  45. return
  46. }
  47. user := svc.GetUser(c)
  48. update, _ := svc.MasterDb(c).Where("id=? and uid=?", args["id"], user.Info.Uid).Delete(&models.CampTaskOperatorTask{})
  49. if update == 0 {
  50. e.OutErr(c, 400, e.NewErr(400, "下架失败"))
  51. return
  52. }
  53. e.OutSuc(c, "success", nil)
  54. return
  55. }
  56. func TaskList(c *gin.Context) {
  57. var args md.TaskListReq
  58. if err := c.ShouldBindJSON(&args); err != nil {
  59. e.OutErr(c, e.ERR_INVALID_ARGS)
  60. return
  61. }
  62. user := svc.GetUser(c)
  63. hotTask := make([]map[string]interface{}, 0)
  64. var hotTaskList []models.CampTaskList
  65. sess := svc.MasterDb(c).Where("up_down_state=?", 1)
  66. if args.Cid != "" {
  67. sess.And("first_cid=?", args.Cid)
  68. }
  69. if args.SettleType != "" {
  70. sess.And("settle_type=?", args.SettleType)
  71. }
  72. total, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("success_num desc,id desc").FindAndCount(&hotTaskList)
  73. for _, v := range hotTaskList {
  74. label := make([]string, 0)
  75. DetailInfo := make([]string, 0)
  76. tmp := map[string]interface{}{
  77. "id": utils.IntToStr(v.Id),
  78. "is_check": "0",
  79. "name": v.Name,
  80. "price": v.Price,
  81. "num": utils.IntToStr(v.Num),
  82. "icon": svc.ImageFormat(c, v.Logo),
  83. "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"),
  84. "detail_info": DetailInfo,
  85. "label": label,
  86. }
  87. taskDetailDb := implement.NewCampTaskDetailDb(svc.MasterDb(c))
  88. taskDetail, _ := taskDetailDb.GetCampTaskDetailById(utils.IntToStr(v.Id))
  89. if taskDetail != nil {
  90. json.Unmarshal([]byte(taskDetail.DetailInfo), &DetailInfo)
  91. tmp["detail_info"] = DetailInfo
  92. }
  93. json.Unmarshal([]byte(v.Label), &label)
  94. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{})
  95. if counts > 0 {
  96. tmp["is_check"] = "1"
  97. }
  98. hotTask = append(hotTask, tmp)
  99. }
  100. taskCate := make([]map[string]string, 0)
  101. taskCateList := make([]models.CampTaskCate, 0)
  102. svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
  103. for _, v := range taskCateList {
  104. if v.Pid > 0 {
  105. continue
  106. }
  107. tmp := map[string]string{
  108. "name": v.Name, "value": utils.IntToStr(v.Id),
  109. }
  110. taskCate = append(taskCate, tmp)
  111. }
  112. res := map[string]interface{}{
  113. "cate_list": taskCate,
  114. "settle_type": []map[string]string{
  115. {"name": "T+1", "value": "0"},
  116. {"name": "T+7", "value": "1"},
  117. {"name": "T+30", "value": "2"},
  118. },
  119. "total": total, "list": hotTask,
  120. }
  121. e.OutSuc(c, res, nil)
  122. return
  123. }
  124. func TaskDetail(c *gin.Context) {
  125. var args md.TaskListReq
  126. if err := c.ShouldBindJSON(&args); err != nil {
  127. e.OutErr(c, e.ERR_INVALID_ARGS)
  128. return
  129. }
  130. user := svc.GetUser(c)
  131. var hotTaskList models.CampTaskList
  132. svc.MasterDb(c).Where("id=?", args.Id).Get(&hotTaskList)
  133. label := make([]string, 0)
  134. DetailInfo := make([]string, 0)
  135. tmp := map[string]interface{}{
  136. "id": utils.IntToStr(hotTaskList.Id),
  137. "is_check": "0",
  138. "name": hotTaskList.Name,
  139. "price": hotTaskList.Price,
  140. "num": utils.IntToStr(hotTaskList.Num),
  141. "icon": svc.ImageFormat(c, hotTaskList.Logo),
  142. "timer": hotTaskList.StartTime.Format("2006-01-02") + "至" + hotTaskList.EndTime.Format("2006-01-02"),
  143. "detail_info": DetailInfo,
  144. "label": label,
  145. }
  146. taskDetailDb := implement.NewCampTaskDetailDb(svc.MasterDb(c))
  147. taskDetail, _ := taskDetailDb.GetCampTaskDetailById(utils.IntToStr(hotTaskList.Id))
  148. if taskDetail != nil {
  149. json.Unmarshal([]byte(taskDetail.DetailInfo), &DetailInfo)
  150. tmp["detail_info"] = DetailInfo
  151. }
  152. json.Unmarshal([]byte(hotTaskList.Label), &label)
  153. tmp["label"] = label
  154. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, hotTaskList.Id).Count(&models.CampTaskOperatorTask{})
  155. if counts > 0 {
  156. tmp["is_check"] = "1"
  157. }
  158. e.OutSuc(c, tmp, nil)
  159. return
  160. }
  161. func TaskUpList(c *gin.Context) {
  162. var args md.OperatorTaskReq
  163. if err := c.ShouldBindJSON(&args); err != nil {
  164. e.OutErr(c, e.ERR_INVALID_ARGS)
  165. return
  166. }
  167. user := svc.GetUser(c)
  168. sqlCount := `select count(*) as count FROM camp_task_operator_task
  169. WHERE uid=%d `
  170. sqlCount = fmt.Sprintf(sqlCount, user.Info.Uid)
  171. nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sqlCount)
  172. var total = 0
  173. hotTask := make([]map[string]string, 0)
  174. for _, v := range nativeStringCount {
  175. total = utils.StrToInt(v["count"])
  176. }
  177. sql := `select ctl.name as task_name,ctl.price as price,ctot.create_time,ctl.up_down_state,ctl.is_delete,ctot.id,ctot.task_id
  178. FROM camp_task_operator_task ctot
  179. LEFT JOIN camp_task_list ctl on ctot.task_id=ctl.id
  180. WHERE ctot.uid=%d order by ctot.id desc %s`
  181. sql = fmt.Sprintf(sql, user.Info.Uid, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
  182. nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
  183. for _, v := range nativeString {
  184. _, firstPrice, secondPrice, _, _ := svc3.CommPrice(c, v["price"])
  185. orderCount := "0"
  186. commission := "0"
  187. sql1 := `select COUNT(*) as count,SUM(ctupor.amount) as amount
  188. FROM camp_task_user_promotion_order_relate ctupor
  189. LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
  190. WHERE ctupor.uid=%d and ctupo.task_id=%s`
  191. sql1 = fmt.Sprintf(sql1, user.Info.Uid, v["task_id"])
  192. queryNativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql1)
  193. for _, v1 := range queryNativeString {
  194. orderCount = v1["count"]
  195. commission = v1["amount"]
  196. }
  197. tmp := map[string]string{
  198. "task_name": v["task_name"],
  199. "id": v["id"],
  200. "base_price": v["price"],
  201. "first_price": firstPrice,
  202. "second_price": secondPrice,
  203. "create_time": v["create_time"],
  204. "order_count": orderCount,
  205. "commission": commission,
  206. }
  207. hotTask = append(hotTask, tmp)
  208. }
  209. task := make([]map[string]string, 0)
  210. taskList := make([]models.CampTaskList, 0)
  211. svc.MasterDb(c).Where("state=?", 1).OrderBy("sort desc,id desc").Find(&taskList)
  212. for _, v := range taskList {
  213. tmp := map[string]string{
  214. "name": v.Name, "value": utils.IntToStr(v.Id),
  215. }
  216. task = append(task, tmp)
  217. }
  218. taskCate := make([]map[string]string, 0)
  219. taskCateList := make([]models.CampTaskCate, 0)
  220. svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
  221. for _, v := range taskCateList {
  222. if v.Pid > 0 {
  223. continue
  224. }
  225. tmp := map[string]string{
  226. "name": v.Name, "value": utils.IntToStr(v.Id),
  227. }
  228. taskCate = append(taskCate, tmp)
  229. }
  230. res := map[string]interface{}{
  231. "total": total, "list": hotTask,
  232. }
  233. e.OutSuc(c, res, nil)
  234. return
  235. }