劲创营---任务项目
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

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