task_sketch.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package youngee_talent_service
  2. import (
  3. "strings"
  4. "youngmini_server/app/dao"
  5. "youngmini_server/app/model"
  6. "youngmini_server/app/model/youngee_talent_model"
  7. "github.com/gogf/gf/frame/g"
  8. "github.com/gogf/gf/net/ghttp"
  9. "github.com/gogf/gf/os/gtime"
  10. )
  11. // 添加初稿service
  12. func AddTaskSketch(r *ghttp.Request) *TalentHttpResult {
  13. var sketchInfoReq *youngee_talent_model.AddTaskSketchRequest
  14. err := r.ParseForm(&sketchInfoReq)
  15. if err != nil {
  16. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  17. }
  18. photoUrl := strings.Split(sketchInfoReq.PhotoUrl, ",")
  19. // 查询该任务id是否有未提交初稿
  20. // 查询该任务是否有未提交脚本,无则插入,有则更新
  21. unSubmitSketch, err := g.DB().Model(model.YounggeeSketchInfo{}).Where("task_id = ? and is_submit = 0", sketchInfoReq.TaskId).One()
  22. if err != nil {
  23. return &TalentHttpResult{Code: -2, Msg: "YounggeeSketchInfo find failed"}
  24. }
  25. if unSubmitSketch != nil {
  26. // 如果有未提交初稿,则删除并重新添加
  27. _, err := g.DB().Model(model.YounggeeSketchPhoto{}).Where("sketch_id = ?", unSubmitSketch[dao.YounggeeSketchInfo.Columns.SketchId]).Delete()
  28. if err != nil {
  29. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchPhoto delete failed"}
  30. }
  31. _, err = g.DB().Model(model.YounggeeSketchInfo{}).Where("sketch_id = ?", unSubmitSketch[dao.YounggeeSketchInfo.Columns.SketchId]).Delete()
  32. if err != nil {
  33. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchInfo delete failed"}
  34. }
  35. }
  36. // 如果无未提交初稿,则直接插入
  37. sketchInfo := model.YounggeeSketchInfo{
  38. TaskId: sketchInfoReq.TaskId,
  39. Title: sketchInfoReq.Title,
  40. Type: sketchInfoReq.Type,
  41. Content: sketchInfoReq.Content,
  42. CreateAt: gtime.Now(),
  43. IsReview: 0,
  44. IsSubmit: 0,
  45. IsOk: 0,
  46. }
  47. sketchId, err := g.DB().Model(model.YounggeeSketchInfo{}).Data(sketchInfo).InsertAndGetId()
  48. if err != nil {
  49. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchInfo insert failed"}
  50. }
  51. for _, v := range photoUrl {
  52. _, err := g.DB().Model(model.YounggeeSketchPhoto{}).Data(g.Map{"sketch_id": sketchId, "photo_url": v, "symbol": sketchInfoReq.Type, "create_at": gtime.Now()}).Insert()
  53. if err != nil {
  54. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchPhoto insert failed"}
  55. }
  56. }
  57. sketchStatus, err := g.DB().Model(model.YoungeeTaskInfo{}).Fields("sketch_status").Where("task_id = ?", sketchInfoReq.TaskId).Value()
  58. if err != nil {
  59. return &TalentHttpResult{Code: -5, Msg: "Get task info failed"}
  60. }
  61. if sketchStatus.Int64() == 1 {
  62. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", sketchInfoReq.TaskId).Update(g.Map{"sketch_status": 2})
  63. if err != nil {
  64. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  65. }
  66. } else if sketchStatus.Int64() == 3 {
  67. _, err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", sketchInfoReq.TaskId).Update(g.Map{"sketch_status": 4})
  68. if err != nil {
  69. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  70. }
  71. }
  72. return &TalentHttpResult{Code: 0, Msg: "success"}
  73. }
  74. // 提交初稿service
  75. func SubmitTaskSketch(r *ghttp.Request) *TalentHttpResult {
  76. taskId, _ := r.Get("task_id").(string) // 查询是否处于违约状态
  77. taskInfo := model.YoungeeTaskInfo{}
  78. // 查询是否处于违约状态
  79. err1 := g.DB().Model(model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Scan(&taskInfo)
  80. if err1 != nil {
  81. return &TalentHttpResult{Code: -1, Msg: "YoungeeTaskInfo find failed"}
  82. }
  83. if taskInfo.CurDefaultType == 3 || taskInfo.CurDefaultType == 9 {
  84. // 若处于违约状态则解除并更新企业应支付金额
  85. _, 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()
  86. if err1 != nil {
  87. return &TalentHttpResult{Code: -2, Msg: "YoungeeTaskInfo update failed"}
  88. }
  89. // 更新违约记录表
  90. _, 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()
  91. if err1 != nil {
  92. return &TalentHttpResult{Code: -2, Msg: "YoungeeContractInfo update failed"}
  93. }
  94. }
  95. // 查询该任务是否有已添加或已修改初稿
  96. res, err := g.DB().Model(model.YounggeeSketchInfo{}).Where("task_id = ? and is_submit = 0", taskId).Count()
  97. if err != nil {
  98. return &TalentHttpResult{Code: -1, Msg: "YounggeeSketchInfo find failed"}
  99. }
  100. if res == 1 && (taskInfo.SketchStatus == 2 || taskInfo.SketchStatus == 4) {
  101. _, err = g.DB().Model(model.YounggeeSketchInfo{}).Data(g.Map{"is_submit": "1", "submit_at": gtime.Now()}).Where("task_id = ? and is_submit = 0", taskId).Update()
  102. if err != nil {
  103. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchInfo update failed"}
  104. }
  105. _, err = g.DB().Model(model.YoungeeTaskInfo{}).Data(g.Map{"task_stage": "10"}).Where("task_id = ?", taskId).Update()
  106. if err != nil {
  107. return &TalentHttpResult{Code: -4, Msg: "YoungeeTaskInfo update failed"}
  108. }
  109. // 记录任务日志-上传初稿
  110. taskLog := model.YounggeeTaskLog{
  111. TaskId: taskId,
  112. Content: "上传初稿",
  113. LogAt: gtime.Now(),
  114. }
  115. _, err = g.DB().Model(dao.YounggeeTaskLog.Table).Data(&taskLog).Insert()
  116. if err != nil {
  117. return &TalentHttpResult{Code: -5, Msg: "YounggeeTaskLog insert failed"}
  118. }
  119. projectInfo := model.ProjectInfo{}
  120. err1 := g.DB().Model(model.ProjectInfo{}).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectInfo)
  121. if err1 != nil {
  122. return &TalentHttpResult{Code: -8, Msg: "ProjectInfo find failed"}
  123. }
  124. messageInfo := model.YounggeeMessageInfo{
  125. MessageId: 11,
  126. MessageType: 2,
  127. CreatedAt: gtime.Now(),
  128. TalentId: taskInfo.TalentId,
  129. ProjectName: projectInfo.ProjectName,
  130. IsReaded: 0,
  131. IsDeleted: 0,
  132. }
  133. _, err = g.DB().Model(dao.YounggeeMessageInfo.Table).Data(&messageInfo).Insert()
  134. if err != nil {
  135. return &TalentHttpResult{Code: -9, Msg: "YounggeeMessageInfo insert failed"}
  136. }
  137. }
  138. return &TalentHttpResult{Code: 0, Msg: "success"}
  139. }
  140. // 查询脚本提交审阅记录service
  141. func GetTaskSketch(r *ghttp.Request) *TalentHttpResult {
  142. taskId := r.Get("task_id")
  143. var sketchInfoList []*youngee_talent_model.TaskSketchInfo
  144. err := g.DB().Model(dao.YounggeeSketchInfo.Table).Where("is_submit = 1 and is_review = 1 and task_id = ?", taskId).OrderAsc("submit_at").Scan(&sketchInfoList)
  145. if err != nil {
  146. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  147. }
  148. for _, v := range sketchInfoList {
  149. var sketchPhotoList []*youngee_talent_model.YounggeeSketchPhoto
  150. err = g.DB().Model(dao.YounggeeSketchPhoto.Table).Where("sketch_id = ?", v.SketchId).Scan(&sketchPhotoList)
  151. if err != nil {
  152. return &TalentHttpResult{Code: -2, Msg: err.Error()}
  153. }
  154. v.Photo = sketchPhotoList
  155. }
  156. return &TalentHttpResult{Code: 0, Msg: "success", Data: sketchInfoList}
  157. }
  158. // 查询未提交初稿service
  159. func GetUnSubmitTaskSketch(r *ghttp.Request) *TalentHttpResult {
  160. taskId := r.Get("task_id")
  161. var unSubmitSketch *youngee_talent_model.TaskSketchInfo
  162. err := g.DB().Model(dao.YounggeeSketchInfo.Table).Where("is_review = 0 and task_id = ?", taskId).OrderAsc("submit_at").Scan(&unSubmitSketch)
  163. if err != nil {
  164. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  165. }
  166. var sketchPhotoList []*youngee_talent_model.YounggeeSketchPhoto
  167. err = g.DB().Model(dao.YounggeeSketchPhoto.Table).Where("sketch_id = ?", unSubmitSketch.SketchId).Scan(&sketchPhotoList)
  168. if err != nil {
  169. return &TalentHttpResult{Code: -2, Msg: err.Error()}
  170. }
  171. unSubmitSketch.Photo = sketchPhotoList
  172. return &TalentHttpResult{Code: 0, Msg: "success", Data: unSubmitSketch}
  173. }