task_data.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package youngee_task_service
  2. import (
  3. "youngmini_server/app/dao"
  4. "youngmini_server/app/model"
  5. "youngmini_server/app/model/youngee_talent_model"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/net/ghttp"
  8. "github.com/gogf/gf/os/gtime"
  9. )
  10. // 添加数据service
  11. func AddTaskData(r *ghttp.Request) *TalentHttpResult {
  12. var DataInfoReq *youngee_talent_model.AddTaskDataRequest
  13. err := r.ParseForm(&DataInfoReq)
  14. if err != nil {
  15. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  16. }
  17. // 查询该任务id是否有未提交数据
  18. // 查询该任务是否有未提交脚本,无则插入,有则更新
  19. unSubmitData, err := g.DB().Model(model.YounggeeDataInfo{}).Where("task_id = ? and is_submit = 0", DataInfoReq.TaskId).One()
  20. if err != nil {
  21. return &TalentHttpResult{Code: -2, Msg: "YounggeeDataInfo find failed"}
  22. }
  23. if unSubmitData != nil {
  24. _, err = g.DB().Model(model.YounggeeDataInfo{}).Where("Data_id = ?", unSubmitData[dao.YounggeeDataInfo.Columns.DataId]).Delete()
  25. if err != nil {
  26. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo delete failed"}
  27. }
  28. }
  29. // 如果无未提交数据,则直接插入
  30. DataInfo := model.YounggeeDataInfo{
  31. TaskId: DataInfoReq.TaskId,
  32. LikeNumber: DataInfoReq.LikeNumber,
  33. PlayNumber: DataInfoReq.PlayNumber,
  34. CommentNumber: DataInfoReq.CommentNumber,
  35. CollectNumber: DataInfoReq.CollectNumber,
  36. PhotoUrl: DataInfoReq.PhotoUrl,
  37. CreateAt: gtime.Now(),
  38. IsReview: 0,
  39. IsSubmit: 0,
  40. IsOk: 0,
  41. }
  42. _, err = g.DB().Model(model.YounggeeDataInfo{}).Data(DataInfo).Insert()
  43. if err != nil {
  44. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo insert failed"}
  45. }
  46. DataStatus, err := g.DB().Model(model.YoungeeTaskInfo{}).Fields("data_status").Where("task_id = ?", DataInfoReq.TaskId).Value()
  47. if err != nil {
  48. return &TalentHttpResult{Code: -5, Msg: "Get task info failed"}
  49. }
  50. if DataStatus.Int64() == 1 {
  51. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", DataInfoReq.TaskId).Update(g.Map{"data_status": 2})
  52. if err != nil {
  53. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  54. }
  55. } else if DataStatus.Int64() == 3 {
  56. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", DataInfoReq.TaskId).Update(g.Map{"data_status": 4})
  57. if err != nil {
  58. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  59. }
  60. }
  61. return &TalentHttpResult{Code: 0, Msg: "success"}
  62. }
  63. // 提交数据service
  64. func SubmitTaskData(r *ghttp.Request) *TalentHttpResult {
  65. taskId, _ := r.Get("task_id").(string)
  66. taskInfo := model.YoungeeTaskInfo{}
  67. // 查询是否处于违约状态
  68. err1 := g.DB().Model(model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Scan(&taskInfo)
  69. if err1 != nil {
  70. return &TalentHttpResult{Code: -1, Msg: "YoungeeTaskInfo find failed"}
  71. }
  72. if taskInfo.CurDefaultType == 7 || taskInfo.CurDefaultType == 9 {
  73. // 若处于违约状态则解除并更新企业应支付金额
  74. _, err1 = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"cur_default_type": "0", "real_payment": taskInfo.AllPayment, "err_break_rate": 0}).Where("task_id = ?", taskId).Update()
  75. if err1 != nil {
  76. return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo update failed"}
  77. }
  78. // 更新违约记录表
  79. _, err1 = g.DB().Model(model.YoungeeContractInfo{}).Data(g.Map{"default_status": 2}).Where("task_id = ? and default_status in (?)", taskId, g.Slice{1, 3, 4}).Update()
  80. if err1 != nil {
  81. return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
  82. }
  83. }
  84. // 查询该任务是否有已添加或已修改数据
  85. res, err := g.DB().Model(model.YounggeeDataInfo{}).Where("task_id = ? and is_submit = 0", taskId).Count()
  86. if err != nil {
  87. return &TalentHttpResult{Code: -1, Msg: "YounggeeDataInfo find failed"}
  88. }
  89. if res == 1 && (taskInfo.DataStatus == 2 || taskInfo.DataStatus == 4) {
  90. _, err = g.DB().Model(model.YounggeeDataInfo{}).Data(g.Map{"is_submit": "1", "submit_at": gtime.Now()}).Where("task_id = ? and is_submit = 0", taskId).Update()
  91. if err != nil {
  92. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo update failed"}
  93. }
  94. _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"task_stage": "14"}).Where("task_id = ?", taskId).Update()
  95. if err != nil {
  96. return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
  97. }
  98. // 记录任务日志-上传数据
  99. taskLog := model.YounggeeTaskLog{
  100. TaskId: taskId,
  101. Content: "上传数据",
  102. LogAt: gtime.Now(),
  103. }
  104. _, err = g.DB().Model(dao.YounggeeTaskLog.Table).Data(&taskLog).Insert()
  105. if err != nil {
  106. return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed"}
  107. }
  108. projectInfo := model.ProjectInfo{}
  109. err1 := g.DB().Model(model.ProjectInfo{}).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectInfo)
  110. if err1 != nil {
  111. return &TalentHttpResult{Code: -8, Msg: "ProjectInfo find failed"}
  112. }
  113. messageInfo := model.YounggeeMessageInfo{
  114. MessageId: 13,
  115. MessageType: 2,
  116. CreatedAt: gtime.Now(),
  117. TalentId: taskInfo.TalentId,
  118. ProjectName: projectInfo.ProjectName,
  119. IsReaded: 0,
  120. IsDeleted: 0,
  121. }
  122. _, err = g.DB().Model(dao.YounggeeMessageInfo.Table).Data(&messageInfo).Insert()
  123. if err != nil {
  124. return &TalentHttpResult{Code: -9, Msg: "YounggeeMessageInfo insert failed"}
  125. }
  126. }
  127. return &TalentHttpResult{Code: 0, Msg: "success"}
  128. }
  129. // 查询数据提交审阅记录service
  130. func GetTaskData(r *ghttp.Request) *TalentHttpResult {
  131. taskId := r.Get("task_id")
  132. res, err := g.DB().Model(dao.YounggeeDataInfo.Table).Where("is_submit = 1 and is_review = 1 and task_id = ?", taskId).OrderAsc("submit_at").All()
  133. if err != nil {
  134. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  135. }
  136. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  137. }
  138. // 查询未提交数据service
  139. func GetUnSubmitTaskData(r *ghttp.Request) *TalentHttpResult {
  140. taskId := r.Get("task_id")
  141. res, err := g.DB().Model(dao.YounggeeDataInfo.Table).Where("is_review = 0 and task_id = ?", taskId).One()
  142. if err != nil {
  143. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  144. }
  145. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  146. }