task_data.go 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package youngee_task_service
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/util/gconv"
  5. "youngmini_server/app/dao"
  6. "youngmini_server/app/model"
  7. "youngmini_server/app/model/youngee_talent_model"
  8. "youngmini_server/app/utils"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/net/ghttp"
  11. "github.com/gogf/gf/os/gtime"
  12. )
  13. // 添加数据service
  14. func AddTaskData(r *ghttp.Request) *TalentHttpResult {
  15. var DataInfoReq *youngee_talent_model.AddTaskDataRequest
  16. err := r.ParseForm(&DataInfoReq)
  17. if err != nil {
  18. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  19. }
  20. // 查询该任务id是否有未提交数据
  21. // 查询该任务是否有未提交脚本,无则插入,有则更新
  22. unSubmitData, err := g.DB().Model(model.YounggeeDataInfo{}).Where("task_id = ? and is_submit = 0", DataInfoReq.TaskId).One()
  23. if err != nil {
  24. return &TalentHttpResult{Code: -2, Msg: "YounggeeDataInfo find failed"}
  25. }
  26. if unSubmitData != nil {
  27. _, err = g.DB().Model(model.YounggeeDataInfo{}).Where("Data_id = ?", unSubmitData[dao.YounggeeDataInfo.Columns.DataId]).Delete()
  28. if err != nil {
  29. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo delete failed"}
  30. }
  31. }
  32. // 如果无未提交数据,则直接插入
  33. DataInfo := model.YounggeeDataInfo{
  34. TaskId: DataInfoReq.TaskId,
  35. LikeNumber: DataInfoReq.LikeNumber,
  36. PlayNumber: DataInfoReq.PlayNumber,
  37. CommentNumber: DataInfoReq.CommentNumber,
  38. CollectNumber: DataInfoReq.CollectNumber,
  39. PhotoUrl: DataInfoReq.PhotoUrl,
  40. CreateAt: gtime.Now(),
  41. IsReview: 0,
  42. IsSubmit: 0,
  43. IsOk: 0,
  44. }
  45. _, err = g.DB().Model(model.YounggeeDataInfo{}).Data(DataInfo).Insert()
  46. if err != nil {
  47. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo insert failed"}
  48. }
  49. DataStatus, err := g.DB().Model(model.YoungeeTaskInfo{}).Fields("data_status").Where("task_id = ?", DataInfoReq.TaskId).Value()
  50. if err != nil {
  51. return &TalentHttpResult{Code: -5, Msg: "Get task info failed"}
  52. }
  53. if DataStatus.Int64() == 1 {
  54. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", DataInfoReq.TaskId).Update(g.Map{"data_status": 2})
  55. if err != nil {
  56. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  57. }
  58. } else if DataStatus.Int64() == 3 {
  59. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", DataInfoReq.TaskId).Update(g.Map{"data_status": 4})
  60. if err != nil {
  61. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  62. }
  63. }
  64. return &TalentHttpResult{Code: 0, Msg: "success"}
  65. }
  66. // 提交数据service
  67. func SubmitTaskData(r *ghttp.Request) *TalentHttpResult {
  68. taskId, _ := r.Get("task_id").(string)
  69. taskInfo := model.YoungeeTaskInfo{}
  70. // 查询是否处于违约状态
  71. err1 := g.DB().Model(model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Scan(&taskInfo)
  72. if err1 != nil {
  73. return &TalentHttpResult{Code: -1, Msg: "YoungeeTaskInfo find failed"}
  74. }
  75. if taskInfo.CurDefaultType == 7 || taskInfo.CurDefaultType == 9 {
  76. // 若处于违约状态则解除并更新企业应支付金额
  77. _, 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()
  78. if err1 != nil {
  79. return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo update failed"}
  80. }
  81. // 更新违约记录表
  82. _, 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()
  83. if err1 != nil {
  84. return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
  85. }
  86. }
  87. // 查询该任务是否有已添加或已修改数据
  88. res, err := g.DB().Model(model.YounggeeDataInfo{}).Where("task_id = ? and is_submit = 0", taskId).Count()
  89. if err != nil {
  90. return &TalentHttpResult{Code: -1, Msg: "YounggeeDataInfo find failed"}
  91. }
  92. if res == 1 && (taskInfo.DataStatus == 2 || taskInfo.DataStatus == 4) {
  93. _, 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()
  94. if err != nil {
  95. return &TalentHttpResult{Code: -3, Msg: "YounggeeDataInfo update failed"}
  96. }
  97. _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"task_stage": "14"}).Where("task_id = ?", taskId).Update()
  98. if err != nil {
  99. return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
  100. }
  101. // 记录任务日志-上传数据
  102. taskLog := model.YounggeeTaskLog{
  103. TaskId: taskId,
  104. Content: "上传数据",
  105. LogAt: gtime.Now(),
  106. }
  107. _, err = g.DB().Model(dao.YounggeeTaskLog.Table).Data(&taskLog).Insert()
  108. if err != nil {
  109. return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed"}
  110. }
  111. projectInfo := model.ProjectInfo{}
  112. err1 := g.DB().Model(model.ProjectInfo{}).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectInfo)
  113. if err1 != nil {
  114. return &TalentHttpResult{Code: -8, Msg: "ProjectInfo find failed"}
  115. }
  116. messageInfo := model.YounggeeMessageInfo{
  117. MessageId: 13,
  118. MessageType: 2,
  119. CreatedAt: gtime.Now(),
  120. TalentId: taskInfo.TalentId,
  121. ProjectName: projectInfo.ProjectName,
  122. IsReaded: 0,
  123. IsDeleted: 0,
  124. }
  125. _, err = g.DB().Model(dao.YounggeeMessageInfo.Table).Data(&messageInfo).Insert()
  126. if err != nil {
  127. return &TalentHttpResult{Code: -9, Msg: "YounggeeMessageInfo insert failed"}
  128. }
  129. }
  130. return &TalentHttpResult{Code: 0, Msg: "success"}
  131. }
  132. // 查询数据提交审阅记录service
  133. func GetTaskData(r *ghttp.Request) *TalentHttpResult {
  134. taskId := r.Get("task_id")
  135. res, err := g.DB().Model(dao.YounggeeDataInfo.Table).Where("is_submit = 1 and is_review = 1 and task_id = ?", taskId).OrderAsc("submit_at").All()
  136. if err != nil {
  137. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  138. }
  139. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  140. }
  141. // 查询未提交数据service
  142. func GetUnSubmitTaskData(r *ghttp.Request) *TalentHttpResult {
  143. taskId := r.Get("task_id")
  144. res, err := g.DB().Model(dao.YounggeeDataInfo.Table).Where("is_review = 0 and task_id = ?", taskId).One()
  145. if err != nil {
  146. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  147. }
  148. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  149. }
  150. // 收藏种草项目
  151. func ProjectCollection(r *ghttp.Request) *TalentHttpResult {
  152. tId, _ := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  153. pId := r.GetQueryString("project_id")
  154. record, err := g.DB().Model("younggee_project_collect_info").Where("talent_id = ? and project_id = ?", tId, pId).One()
  155. if err != nil {
  156. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  157. }
  158. if record == nil {
  159. collectionInfo := youngee_talent_model.ProjectCollection{
  160. TalentId: tId,
  161. ProjectId: pId,
  162. CreateTime: gtime.Now(),
  163. Delete: 0,
  164. }
  165. _, err = g.DB().Model("younggee_project_collect_info").Data(collectionInfo).Insert()
  166. } else {
  167. // 如果记录存在,更新 Delete 字段的值 和 收藏时间
  168. fmt.Println("*******", record)
  169. currentDeleteValue := gconv.Int(record["delete"])
  170. newDeleteValue := 1 - currentDeleteValue // 0 改成 1,1 改成 0
  171. _, err = g.DB().Model("younggee_project_collect_info").
  172. Where("talent_id = ? and project_id = ?", tId, pId).
  173. Data(g.Map{
  174. "delete": newDeleteValue,
  175. "create_time": gtime.Now(),
  176. }).Update()
  177. if err != nil {
  178. return &TalentHttpResult{Code: -2, Msg: err.Error()}
  179. }
  180. }
  181. return &TalentHttpResult{Code: 0, Msg: "collection success"}
  182. }