劲创营---任务项目
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

104 rader
3.6 KiB

  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. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement"
  8. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  9. "fmt"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func UserInfo(c *gin.Context) {
  13. user := svc.GetUser(c)
  14. operator := "0"
  15. role := []string{"comm"}
  16. if user.Info.Level == 3 {
  17. operator = "1"
  18. role = append(role, "operator")
  19. }
  20. res := map[string]interface{}{
  21. "phone": user.Info.Phone,
  22. "is_operator": operator,
  23. "role": role,
  24. }
  25. e.OutSuc(c, res, nil)
  26. return
  27. }
  28. func Index(c *gin.Context) {
  29. user := svc.GetUser(c)
  30. allTaskCount, _ := svc.MasterDb(c).Where("uid=?", user.Info.Uid).Count(&models.CampTaskOperatorTask{})
  31. sql := `SELECT SUM(ctupor.amount) as amount,SUM(IF(ctupor.uid=%d,ctupo.payment,0)) as own_payment,SUM(IF(ctupor.uid=%d,1,0)) as own_count,SUM(IF(ctupor.uid=%d,ctupor.amount,0)) as own_amount,ctupor.level FROM camp_task_user_promotion_order_relate ctupor
  32. LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
  33. WHERE ctupor.oid in(select oid from camp_task_user_promotion_order_relate where uid=%d ) GROUP BY ctupor.level`
  34. sql = fmt.Sprintf(sql, user.Info.Uid, user.Info.Uid, user.Info.Uid, user.Info.Uid)
  35. nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
  36. var firstAmount float64 = 0
  37. var secondAmount float64 = 0
  38. var ownAmount float64 = 0
  39. var count = 0
  40. var sum float64 = 0
  41. for _, v := range nativeString {
  42. if v["level"] == "0" {
  43. firstAmount += utils.StrToFloat64(v["amount"])
  44. }
  45. if v["level"] == "1" {
  46. secondAmount += utils.StrToFloat64(v["amount"])
  47. }
  48. ownAmount += utils.StrToFloat64(v["own_amount"])
  49. sum += utils.StrToFloat64(v["own_payment"])
  50. count += utils.StrToInt(v["own_count"])
  51. }
  52. totalList := []map[string]string{
  53. {"name": "佣金总金额", "value": utils.Float64ToStr(sum), "unit": "¥"},
  54. {"name": "推广总订单数", "value": utils.IntToStr(count), "unit": ""},
  55. {"name": "用户所得", "value": utils.Float64ToStr(firstAmount), "unit": "¥"},
  56. {"name": "团长所得", "value": utils.Float64ToStr(secondAmount), "unit": "¥"},
  57. {"name": "我的分成", "value": utils.Float64ToStr(ownAmount), "unit": "¥"},
  58. }
  59. myTask := make([]map[string]string, 0)
  60. NewCampTaskOperatorTaskDb := implement.NewCampTaskOperatorTaskDb(svc.MasterDb(c))
  61. myTaskList, _, _ := NewCampTaskOperatorTaskDb.FindCampTaskOperatorTaskGroup(user.Info.Uid, 1, 5, "")
  62. if myTaskList != nil {
  63. for _, v := range myTaskList {
  64. tmp := map[string]string{
  65. "id": utils.IntToStr(v.CampTaskOperatorTask.TaskId),
  66. "name": v.Name,
  67. "icon": svc.ImageFormat(c, v.Logo),
  68. }
  69. myTask = append(myTask, tmp)
  70. }
  71. }
  72. hotTask := make([]map[string]string, 0)
  73. NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c))
  74. hotTaskList, _ := NewCampTaskListDb.FindCampTaskList("", "", "1", 1, 5, "success_num desc,id desc")
  75. if hotTaskList != nil {
  76. for _, v := range *hotTaskList {
  77. tmp := map[string]string{
  78. "id": utils.IntToStr(v.Id),
  79. "is_check": "0",
  80. "name": v.Name,
  81. "price": v.Price,
  82. "num": utils.IntToStr(v.Num),
  83. "icon": svc.ImageFormat(c, v.Logo),
  84. "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"),
  85. }
  86. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{})
  87. if counts > 0 {
  88. tmp["is_check"] = "1"
  89. }
  90. hotTask = append(hotTask, tmp)
  91. }
  92. }
  93. res := map[string]interface{}{
  94. "total_list": totalList,
  95. "my_task_count": utils.Int64ToStr(allTaskCount),
  96. "hot_task": hotTask,
  97. "my_task": myTask,
  98. }
  99. e.OutSuc(c, res, nil)
  100. return
  101. }