auto_time.go 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package youngee_talent_service
  2. import (
  3. "fmt"
  4. "log"
  5. "time"
  6. "youngmini_server/app/dao"
  7. "youngmini_server/app/model"
  8. "youngmini_server/app/model/youngee_talent_model"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/net/ghttp"
  11. "github.com/gogf/gf/os/gtime"
  12. )
  13. func GetAutoTime(r *ghttp.Request) *TalentHttpResult {
  14. var getAutoTimeReq *youngee_talent_model.GetAutoTimeReq
  15. err := r.ParseForm(&getAutoTimeReq)
  16. if err != nil {
  17. return &TalentHttpResult{Code: -1, Msg: "params error"}
  18. }
  19. // 查询任务
  20. var taskInfo model.YoungeeTaskInfo
  21. err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskInfo)
  22. if err != nil {
  23. log.Println("GetMessage error:", err)
  24. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  25. }
  26. // 查询项目
  27. var projectIndo model.ProjectInfo
  28. err = g.Model(dao.ProjectInfo.Table).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectIndo)
  29. if err != nil {
  30. log.Println("GetMessage error:", err)
  31. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  32. }
  33. // 查询项目对应的违约规则
  34. var autoInfo model.InfoAutoTask
  35. err = g.Model(dao.InfoAutoTask.Table).Where("auto_task_id = ?", projectIndo.AutoTaskId).Scan(&autoInfo)
  36. if err != nil {
  37. log.Println("GetMessage error:", err)
  38. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  39. }
  40. t := gtime.Now()
  41. // 更新违约时间
  42. switch getAutoTimeReq.Type {
  43. case 1: // 脚本首次提交
  44. var taskLogisticInfo model.YoungeeTaskLogistics
  45. err = g.Model(dao.YoungeeTaskLogistics.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskLogisticInfo)
  46. if err != nil {
  47. log.Println("GetMessage error:", err)
  48. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  49. }
  50. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.ScriptDefault) + "h")
  51. t = taskLogisticInfo.SignedTime.Add(dd)
  52. _, err = g.Model(dao.YoungeeTaskLogistics.Table).Where("logistics_id = ?", taskLogisticInfo.LogisticsId).Update(g.Map{"auto_script_break_at": t})
  53. if err != nil {
  54. log.Println("GetMessage error:", err)
  55. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  56. }
  57. break
  58. case 2: // 脚本修改后提交
  59. var scriptInfoList []*model.YounggeeScriptInfo
  60. var scriptInfo model.YounggeeScriptInfo
  61. err = g.Model(dao.YounggeeScriptInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("script_id").Scan(&scriptInfoList)
  62. if err != nil {
  63. log.Println("GetMessage error:", err)
  64. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  65. }
  66. for _, v := range scriptInfoList {
  67. scriptInfo = *v
  68. }
  69. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.ScriptDefault) + "h")
  70. t = scriptInfo.RejectAt.Add(dd)
  71. _, err = g.Model(dao.YounggeeScriptInfo.Table).Where("script_id = ?", scriptInfo.ScriptId).Update(g.Map{"auto_script_break_at": t})
  72. if err != nil {
  73. log.Println("GetMessage error:", err)
  74. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  75. }
  76. break
  77. case 3: // 初稿首次提交-视频
  78. var scriptInfo model.YounggeeScriptInfo
  79. err = g.Model(dao.YounggeeScriptInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&scriptInfo)
  80. if err != nil {
  81. log.Println("GetMessage error:", err)
  82. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  83. }
  84. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInMv) + "h")
  85. t = scriptInfo.AgreeAt.Add(dd)
  86. _, err = g.Model(dao.YounggeeScriptInfo.Table).Where("script_id = ?", scriptInfo.ScriptId).Update(g.Map{"auto_sketch_break_at": t})
  87. if err != nil {
  88. log.Println("GetMessage error:", err)
  89. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  90. }
  91. break
  92. case 4: // 初稿首次提交-图文
  93. var taskLogisticInfo model.YoungeeTaskLogistics
  94. err = g.Model(dao.YoungeeTaskLogistics.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskLogisticInfo)
  95. if err != nil {
  96. log.Println("GetMessage error:", err)
  97. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  98. }
  99. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInPic) + "h")
  100. t = taskLogisticInfo.SignedTime.Add(dd)
  101. _, err = g.Model(dao.YoungeeTaskLogistics.Table).Where("logistics_id = ?", taskLogisticInfo.LogisticsId).Update(g.Map{"auto_sketch_break_at": t})
  102. if err != nil {
  103. log.Println("GetMessage error:", err)
  104. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  105. }
  106. break
  107. case 5: // 初稿修改后提交-视频
  108. var sketchInfoList []*model.YounggeeSketchInfo
  109. var sketchInfo model.YounggeeSketchInfo
  110. err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("sketch_id").Scan(&sketchInfoList)
  111. if err != nil {
  112. log.Println("GetMessage error:", err)
  113. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  114. }
  115. for _, v := range sketchInfoList {
  116. sketchInfo = *v
  117. }
  118. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInMv) + "h")
  119. t = sketchInfo.RejectAt.Add(dd)
  120. _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_sketch_break_at": t})
  121. if err != nil {
  122. log.Println("GetMessage error:", err)
  123. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  124. }
  125. break
  126. case 6: // 初稿修改后提交-图片
  127. var sketchInfoList []*model.YounggeeSketchInfo
  128. var sketchInfo model.YounggeeSketchInfo
  129. err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("sketch_id").Scan(&sketchInfoList)
  130. if err != nil {
  131. log.Println("GetMessage error:", err)
  132. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  133. }
  134. for _, v := range sketchInfoList {
  135. sketchInfo = *v
  136. }
  137. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInPic) + "h")
  138. t = sketchInfo.RejectAt.Add(dd)
  139. _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_sketch_break_at": t})
  140. if err != nil {
  141. log.Println("GetMessage error:", err)
  142. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  143. }
  144. break
  145. case 7: // 链接首次提交
  146. var sketchInfo model.YounggeeSketchInfo
  147. err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&sketchInfo)
  148. if err != nil {
  149. log.Println("GetMessage error:", err)
  150. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  151. }
  152. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.LinkBreach) + "h")
  153. t = sketchInfo.AgreeAt.Add(dd)
  154. _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_link_break_at": t})
  155. if err != nil {
  156. log.Println("GetMessage error:", err)
  157. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  158. }
  159. break
  160. case 8: // 链接修改后提交
  161. var linkInfoList []*model.YounggeeLinkInfo
  162. var linkInfo model.YounggeeLinkInfo
  163. err = g.Model(dao.YounggeeLinkInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("link_id").Scan(&linkInfoList)
  164. if err != nil {
  165. log.Println("GetMessage error:", err)
  166. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  167. }
  168. for _, v := range linkInfoList {
  169. linkInfo = *v
  170. }
  171. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.LinkBreach) + "h")
  172. t = linkInfo.RejectAt.Add(dd)
  173. _, err = g.Model(dao.YounggeeLinkInfo.Table).Where("link_id = ?", linkInfo.LinkId).Update(g.Map{"auto_link_break_at": t})
  174. if err != nil {
  175. log.Println("GetMessage error:", err)
  176. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  177. }
  178. break
  179. case 9: // 数据首次提交
  180. var linkInfo model.YounggeeLinkInfo
  181. err = g.Model(dao.YounggeeLinkInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&linkInfo)
  182. if err != nil {
  183. log.Println("GetMessage error:", err)
  184. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  185. }
  186. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.CaseCloseDefault) + "h")
  187. t = linkInfo.AgreeAt.Add(dd)
  188. _, err = g.Model(dao.YounggeeLinkInfo.Table).Where("link_id = ?", linkInfo.LinkId).Update(g.Map{"auto_data_break_at": t})
  189. if err != nil {
  190. log.Println("GetMessage error:", err)
  191. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  192. }
  193. break
  194. case 10: // 数据修改后提交
  195. var dataInfoList []*model.YounggeeDataInfo
  196. var dataInfo model.YounggeeDataInfo
  197. err = g.Model(dao.YounggeeDataInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("data_id").Scan(&dataInfoList)
  198. if err != nil {
  199. log.Println("GetMessage error:", err)
  200. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  201. }
  202. for _, v := range dataInfoList {
  203. dataInfo = *v
  204. }
  205. dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.CaseCloseDefault) + "h")
  206. t = dataInfo.RejectAt.Add(dd)
  207. _, err = g.Model(dao.YounggeeDataInfo.Table).Where("data_id = ?", dataInfo.DataId).Update(g.Map{"auto_data_break_at": t})
  208. if err != nil {
  209. log.Println("GetMessage error:", err)
  210. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  211. }
  212. break
  213. }
  214. return &TalentHttpResult{Code: 0, Msg: "success", Data: t}
  215. }