work_space.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package youngee_sectask_service
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/frame/g"
  5. "github.com/gogf/gf/net/ghttp"
  6. "youngmini_server/app/dao"
  7. "youngmini_server/app/model"
  8. "youngmini_server/app/model/youngee_talent_model"
  9. "youngmini_server/app/utils"
  10. )
  11. // 获取执行中选品任务列表service
  12. func GetExeSecTaskList(r *ghttp.Request) *TalentHttpResult {
  13. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  14. if err != nil {
  15. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  16. }
  17. taskStageKey := r.GetQueryInt("taskStage", 0)
  18. var whereStr string
  19. switch taskStageKey {
  20. case 4:
  21. // 返回指定talentId的所有数据
  22. whereStr = fmt.Sprintf("talent_id='%s'", tid)
  23. case 5:
  24. // 返回待领悬赏
  25. whereStr = fmt.Sprintf("talent_id='%s' AND reward_stage = 1", tid)
  26. default:
  27. return &TalentHttpResult{Code: -2, Msg: "parse param error"}
  28. }
  29. //查task表全部数据
  30. var secTaskInfoList []youngee_talent_model.SecTaskInfoDetail
  31. err = g.DB().Model(youngee_talent_model.SecTaskInfoDetail{}).WithAll().
  32. Where(whereStr).
  33. Order("task_ddl DESC").
  34. Scan(&secTaskInfoList)
  35. if err != nil {
  36. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  37. }
  38. return &TalentHttpResult{Code: 0, Msg: "success", Data: secTaskInfoList}
  39. }
  40. // 获取选品任务详情
  41. func GetSecTaskDetail(r *ghttp.Request) *TalentHttpResult {
  42. taskId := r.GetQueryInt("task_id", -1)
  43. var secTask *youngee_talent_model.SecTaskInfoDetail
  44. err := g.DB().Model("younggee_sec_task_info").WithAll().Where("task_id = ?", taskId).Scan(&secTask)
  45. if err != nil {
  46. g.Log().Error("Get selection task info failed: " + err.Error())
  47. return &TalentHttpResult{Code: -1, Msg: "Get task info failed"}
  48. }
  49. if secTask == nil {
  50. g.Log().Error("Get selection task info failed, The task does not exist.")
  51. return &TalentHttpResult{Code: -2, Msg: "Task Miss"}
  52. }
  53. var selectionDetail *youngee_talent_model.SelectionDetail
  54. err = g.Model(youngee_talent_model.SelectionDetail{}).WithAll().Where("selection_id", secTask.SelectionId).Scan(&selectionDetail)
  55. if err != nil {
  56. g.Log().Error("Get selection detail failed.")
  57. return &TalentHttpResult{Code: -3, Msg: "Get selection detail failed."}
  58. }
  59. var withdrawStatus = 1
  60. if secTask.SampleMode == 2 {
  61. var taskIncome *model.YounggeeTalentIncome
  62. err = g.Model(dao.YounggeeTalentIncome.Table).Where("sectask_id = ? and income_type = 3", taskId).Scan(&taskIncome)
  63. if err != nil {
  64. return &TalentHttpResult{Code: -3, Msg: "Get return income detail failed."}
  65. }
  66. if taskIncome != nil {
  67. withdrawStatus = taskIncome.WithdrawStatus + 1
  68. }
  69. }
  70. if secTask.TaskMode == 1 {
  71. var taskIncome *model.YounggeeTalentIncome
  72. err = g.Model(dao.YounggeeTalentIncome.Table).Where("sectask_id = ? and income_type = 4", taskId).Scan(&taskIncome)
  73. if err != nil {
  74. return &TalentHttpResult{Code: -3, Msg: "Get reward income detail failed."}
  75. }
  76. if taskIncome != nil && taskIncome.WithdrawStatus == 1 {
  77. withdrawStatus = 2
  78. }
  79. }
  80. taskDetail := &youngee_talent_model.SecTaskDetailResp{
  81. SecTaskInfo: secTask,
  82. SelectionDetail: selectionDetail,
  83. WithdrawStatus: withdrawStatus,
  84. }
  85. return &TalentHttpResult{Code: 0, Msg: "success", Data: taskDetail}
  86. }
  87. // 带货是否满足悬赏条件 if 满足 更新状态
  88. func UpdateRewardStage(r *ghttp.Request) *TalentHttpResult {
  89. //达人id获取
  90. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  91. sid := r.GetQueryString("selection_id")
  92. if err != nil {
  93. return &TalentHttpResult{Code: -1, Msg: "Get talent id failed"}
  94. }
  95. SecTaskInfo := &youngee_talent_model.SecTaskInfoDetail{}
  96. _, err = g.DB().Model(SecTaskInfo).Data("reward_stage", 1).Where("talent_id =? and selection_id =?", tid, sid).Update()
  97. if err != nil {
  98. // 查询失败(未找到结果),返回失败结果
  99. return &TalentHttpResult{Code: -1, Msg: "update failed", Data: nil}
  100. }
  101. // 查询成功,返回成功结果和数据
  102. return &TalentHttpResult{Code: 0, Msg: "success", Data: SecTaskInfo}
  103. }