劲创营---任务项目
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.
 
 
 

163 lines
5.3 KiB

  1. package svc
  2. import (
  3. "applet/app/comm/e"
  4. "applet/app/comm/svc"
  5. "applet/app/comm/utils"
  6. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement"
  7. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  8. "github.com/gin-gonic/gin"
  9. )
  10. func UserInfo(c *gin.Context) {
  11. store := svc.GetCampStore(c)
  12. role := []string{"comm"}
  13. user := store
  14. if store.Pid > 0 {
  15. NewCampTaskStoreUserDb := implement.NewCampTaskStoreUserDb(svc.MasterDb(c))
  16. user, _ = NewCampTaskStoreUserDb.GetCampTaskStoreUser(store.Pid)
  17. } else {
  18. role = append(role, "director")
  19. }
  20. if user.IsShowProject == 1 {
  21. role = append(role, "project")
  22. }
  23. res := map[string]interface{}{
  24. "role": role,
  25. "phone": store.Phone,
  26. "amount": "0",
  27. }
  28. storeId := svc.GetCampStoreId(c)
  29. settleCount, _ := svc.MasterDb(c).Where("store_id=?", storeId).Sum(&models.CampTaskStoreUserAmount{}, "amount")
  30. res["amount"] = utils.Float64ToStr(settleCount)
  31. e.OutSuc(c, res, nil)
  32. return
  33. }
  34. func Index(c *gin.Context) {
  35. storeId := svc.GetCampStoreId(c)
  36. //TODO 要根据账号
  37. store := svc.GetCampStore(c)
  38. taskIds := make([]int, 0)
  39. contact := 0
  40. if store.Pid > 0 {
  41. var task = make([]models.CampTaskList, 0)
  42. svc.MasterDb(c).Where("store_id=? and is_delete=0 and contact=?", storeId, store.Id).Find(&task)
  43. for _, v := range task {
  44. taskIds = append(taskIds, v.Id)
  45. }
  46. contact = store.Id
  47. }
  48. taskSee := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId)
  49. if contact > 0 {
  50. taskSee.And("contact=?", contact)
  51. }
  52. allTaskCount, _ := taskSee.Count(&models.CampTaskList{})
  53. orderSee := svc.MasterDb(c).Where("store_id=? and state=1", storeId)
  54. if store.Pid > 0 {
  55. orderSee.In("task_id", taskIds)
  56. }
  57. orderCount, _ := orderSee.Count(&models.CampTaskUserPromotionOrder{})
  58. settleSee := svc.MasterDb(c).Where("store_id=? and settle_time is not null", storeId)
  59. if store.Pid > 0 {
  60. settleSee.In("task_id", taskIds)
  61. }
  62. settleCount, _ := settleSee.Sum(&models.CampTaskUserPromotionOrder{}, "payment")
  63. totalList := []map[string]string{
  64. {"name": "发布总的任务数", "value": utils.Int64ToStr(allTaskCount), "unit": "(个)"},
  65. {"name": "已完成的订单总数", "value": utils.Int64ToStr(orderCount), "unit": "(单)"},
  66. {"name": "已结算的总金额", "value": utils.Float64ToStr(settleCount), "unit": "(元)"},
  67. }
  68. myTask := make([]map[string]string, 0)
  69. var myTaskList []models.CampTaskList
  70. sess := svc.MasterDb(c).Where("store_id=?", storeId)
  71. if contact > 0 {
  72. sess.And("contact=?", contact)
  73. }
  74. sess.Limit(5).OrderBy("apply_time desc,id desc").Find(&myTaskList)
  75. for _, v := range myTaskList {
  76. tmp := map[string]string{
  77. "id": utils.IntToStr(v.Id),
  78. "name": v.Name,
  79. "icon": svc.ImageFormat(c, v.Logo),
  80. }
  81. myTask = append(myTask, tmp)
  82. }
  83. hotTask := make([]map[string]string, 0)
  84. NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c))
  85. hotTaskList, _ := NewCampTaskListDb.FindCampTaskList(utils.IntToStr(storeId), "", "1", 1, 5, "success_num desc,id desc")
  86. if hotTaskList != nil {
  87. for _, v := range *hotTaskList {
  88. tmp := map[string]string{
  89. "id": utils.IntToStr(v.Id),
  90. "name": v.Name,
  91. "price": v.Price,
  92. "num": utils.IntToStr(v.Num),
  93. "icon": svc.ImageFormat(c, v.Logo),
  94. "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"),
  95. }
  96. hotTask = append(hotTask, tmp)
  97. }
  98. }
  99. res := map[string]interface{}{
  100. "total_list": totalList,
  101. "my_task_count": utils.Int64ToStr(allTaskCount),
  102. "my_task": myTask,
  103. "hot_task": hotTask,
  104. }
  105. e.OutSuc(c, res, nil)
  106. return
  107. }
  108. func StoreIndex(c *gin.Context) {
  109. storeId := svc.GetCampStoreId(c)
  110. store := svc.GetCampStore(c)
  111. taskIds := make([]int, 0)
  112. contact := 0
  113. if store.Pid > 0 {
  114. var task = make([]models.CampTaskList, 0)
  115. svc.MasterDb(c).Where("store_id=? and is_delete=0 and contact=?", storeId, store.Id).Find(&task)
  116. for _, v := range task {
  117. taskIds = append(taskIds, v.Id)
  118. }
  119. contact = store.Id
  120. }
  121. taskSee := svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId)
  122. if contact > 0 {
  123. taskSee.And("contact=?", contact)
  124. }
  125. allTaskCount, _ := taskSee.Count(&models.CampTaskList{})
  126. orderSee := svc.MasterDb(c).Where("store_id=? and settle_time is null", storeId)
  127. if store.Pid > 0 {
  128. orderSee.In("task_id", taskIds)
  129. }
  130. orderCount, _ := orderSee.Count(&models.CampTaskUserPromotionOrder{})
  131. orderMoney, _ := orderSee.Sum(&models.CampTaskUserPromotionOrder{}, "payment")
  132. settleCount, _ := svc.MasterDb(c).Where("store_id=?", storeId).Sum(&models.CampTaskStoreUserAmount{}, "amount")
  133. totalList := []map[string]string{
  134. {"name": "当前待结算订单", "value": utils.Int64ToStr(orderCount)},
  135. {"name": "当前待结算金额", "value": "¥" + utils.Float64ToStr(orderMoney)},
  136. {"name": "当前剩余预存金额", "value": "¥" + utils.Float64ToStr(settleCount)},
  137. }
  138. myTask := make([]map[string]string, 0)
  139. var myTaskList []models.CampTaskList
  140. sess := svc.MasterDb(c).Where("store_id=?", storeId)
  141. if contact > 0 {
  142. sess.And("contact=?", contact)
  143. }
  144. sess.Limit(5).OrderBy("apply_time desc,id desc").Find(&myTaskList)
  145. for _, v := range myTaskList {
  146. tmp := map[string]string{
  147. "id": utils.IntToStr(v.Id),
  148. "name": v.Name,
  149. "icon": svc.ImageFormat(c, v.Logo),
  150. }
  151. myTask = append(myTask, tmp)
  152. }
  153. res := map[string]interface{}{
  154. "total_list": totalList,
  155. "my_task_count": utils.Int64ToStr(allTaskCount),
  156. "my_task": myTask,
  157. }
  158. e.OutSuc(c, res, nil)
  159. return
  160. }