package youngee_talent_service import ( "fmt" "log" "time" "youngmini_server/app/dao" "youngmini_server/app/model" "youngmini_server/app/model/youngee_talent_model" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/os/gtime" ) func GetAutoTime(r *ghttp.Request) *TalentHttpResult { var getAutoTimeReq *youngee_talent_model.GetAutoTimeReq err := r.ParseForm(&getAutoTimeReq) if err != nil { return &TalentHttpResult{Code: -1, Msg: "params error"} } // 查询任务 var taskInfo model.YoungeeTaskInfo err = g.Model(dao.YoungeeTaskInfo.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } // 查询项目 var projectIndo model.ProjectInfo err = g.Model(dao.ProjectInfo.Table).Where("project_id = ?", taskInfo.ProjectId).Scan(&projectIndo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } // 查询项目对应的违约规则 var autoInfo model.InfoAutoTask err = g.Model(dao.InfoAutoTask.Table).Where("auto_task_id = ?", projectIndo.AutoTaskId).Scan(&autoInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } t := gtime.Now() // 更新违约时间 switch getAutoTimeReq.Type { case 1: // 脚本首次提交 var taskLogisticInfo model.YoungeeTaskLogistics err = g.Model(dao.YoungeeTaskLogistics.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskLogisticInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.ScriptDefault) + "h") t = taskLogisticInfo.SignedTime.Add(dd) _, err = g.Model(dao.YoungeeTaskLogistics.Table).Where("logistics_id = ?", taskLogisticInfo.LogisticsId).Update(g.Map{"auto_script_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 2: // 脚本修改后提交 var scriptInfoList []*model.YounggeeScriptInfo var scriptInfo model.YounggeeScriptInfo err = g.Model(dao.YounggeeScriptInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("script_id").Scan(&scriptInfoList) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } for _, v := range scriptInfoList { scriptInfo = *v } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.ScriptDefault) + "h") t = scriptInfo.RejectAt.Add(dd) _, err = g.Model(dao.YounggeeScriptInfo.Table).Where("script_id = ?", scriptInfo.ScriptId).Update(g.Map{"auto_script_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 3: // 初稿首次提交-视频 var scriptInfo model.YounggeeScriptInfo err = g.Model(dao.YounggeeScriptInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&scriptInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInMv) + "h") t = scriptInfo.AgreeAt.Add(dd) _, err = g.Model(dao.YounggeeScriptInfo.Table).Where("script_id = ?", scriptInfo.ScriptId).Update(g.Map{"auto_sketch_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 4: // 初稿首次提交-图文 var taskLogisticInfo model.YoungeeTaskLogistics err = g.Model(dao.YoungeeTaskLogistics.Table).Where("task_id = ?", getAutoTimeReq.TaskId).Scan(&taskLogisticInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInPic) + "h") t = taskLogisticInfo.SignedTime.Add(dd) _, err = g.Model(dao.YoungeeTaskLogistics.Table).Where("logistics_id = ?", taskLogisticInfo.LogisticsId).Update(g.Map{"auto_sketch_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 5: // 初稿修改后提交-视频 var sketchInfoList []*model.YounggeeSketchInfo var sketchInfo model.YounggeeSketchInfo err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("sketch_id").Scan(&sketchInfoList) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } for _, v := range sketchInfoList { sketchInfo = *v } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInMv) + "h") t = sketchInfo.RejectAt.Add(dd) _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_sketch_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 6: // 初稿修改后提交-图片 var sketchInfoList []*model.YounggeeSketchInfo var sketchInfo model.YounggeeSketchInfo err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("sketch_id").Scan(&sketchInfoList) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } for _, v := range sketchInfoList { sketchInfo = *v } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.DraftDefaultInPic) + "h") t = sketchInfo.RejectAt.Add(dd) _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_sketch_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 7: // 链接首次提交 var sketchInfo model.YounggeeSketchInfo err = g.Model(dao.YounggeeSketchInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&sketchInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.LinkBreach) + "h") t = sketchInfo.AgreeAt.Add(dd) _, err = g.Model(dao.YounggeeSketchInfo.Table).Where("sketch_id = ?", sketchInfo.SketchId).Update(g.Map{"auto_link_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 8: // 链接修改后提交 var linkInfoList []*model.YounggeeLinkInfo var linkInfo model.YounggeeLinkInfo err = g.Model(dao.YounggeeLinkInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("link_id").Scan(&linkInfoList) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } for _, v := range linkInfoList { linkInfo = *v } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.LinkBreach) + "h") t = linkInfo.RejectAt.Add(dd) _, err = g.Model(dao.YounggeeLinkInfo.Table).Where("link_id = ?", linkInfo.LinkId).Update(g.Map{"auto_link_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 9: // 数据首次提交 var linkInfo model.YounggeeLinkInfo err = g.Model(dao.YounggeeLinkInfo.Table).Where("task_id = ? and is_ok = 1", getAutoTimeReq.TaskId).Scan(&linkInfo) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.CaseCloseDefault) + "h") t = linkInfo.AgreeAt.Add(dd) _, err = g.Model(dao.YounggeeLinkInfo.Table).Where("link_id = ?", linkInfo.LinkId).Update(g.Map{"auto_data_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break case 10: // 数据修改后提交 var dataInfoList []*model.YounggeeDataInfo var dataInfo model.YounggeeDataInfo err = g.Model(dao.YounggeeDataInfo.Table).Where("task_id = ? and is_review = 1", getAutoTimeReq.TaskId).Order("data_id").Scan(&dataInfoList) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } for _, v := range dataInfoList { dataInfo = *v } dd, _ := time.ParseDuration(fmt.Sprintf("%d", autoInfo.CaseCloseDefault) + "h") t = dataInfo.RejectAt.Add(dd) _, err = g.Model(dao.YounggeeDataInfo.Table).Where("data_id = ?", dataInfo.DataId).Update(g.Map{"auto_data_break_at": t}) if err != nil { log.Println("GetMessage error:", err) return &TalentHttpResult{Code: -2, Msg: "Get task message failed"} } break } return &TalentHttpResult{Code: 0, Msg: "success", Data: t} }