task_link.go 5.9 KB

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