package youngee_sectask_service import ( "fmt" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "youngmini_server/app/dao" "youngmini_server/app/model" "youngmini_server/app/model/youngee_talent_model" "youngmini_server/app/utils" ) // 获取执行中选品任务列表service func GetExeSecTaskList(r *ghttp.Request) *TalentHttpResult { tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) if err != nil { return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"} } taskStageKey := r.GetQueryInt("taskStage", 0) var whereStr string switch taskStageKey { case 4: // 返回指定talentId的所有数据 whereStr = fmt.Sprintf("talent_id='%s'", tid) case 5: // 返回待领悬赏 whereStr = fmt.Sprintf("talent_id='%s' AND reward_stage = 1", tid) default: return &TalentHttpResult{Code: -2, Msg: "parse param error"} } //查task表全部数据 var secTaskInfoList []youngee_talent_model.SecTaskInfoDetail err = g.DB().Model(youngee_talent_model.SecTaskInfoDetail{}).WithAll(). Where(whereStr). Order("task_ddl DESC"). Scan(&secTaskInfoList) if err != nil { return &TalentHttpResult{Code: -1, Msg: err.Error()} } return &TalentHttpResult{Code: 0, Msg: "success", Data: secTaskInfoList} } // 获取选品任务详情 func GetSecTaskDetail(r *ghttp.Request) *TalentHttpResult { taskId := r.GetQueryInt("task_id", -1) var secTask *youngee_talent_model.SecTaskInfoDetail err := g.DB().Model("younggee_sec_task_info").WithAll().Where("task_id = ?", taskId).Scan(&secTask) if err != nil { g.Log().Error("Get selection task info failed: " + err.Error()) return &TalentHttpResult{Code: -1, Msg: "Get task info failed"} } if secTask == nil { g.Log().Error("Get selection task info failed, The task does not exist.") return &TalentHttpResult{Code: -2, Msg: "Task Miss"} } var selectionDetail *youngee_talent_model.SelectionDetail err = g.Model(youngee_talent_model.SelectionDetail{}).WithAll().Where("selection_id", secTask.SelectionId).Scan(&selectionDetail) if err != nil { g.Log().Error("Get selection detail failed.") return &TalentHttpResult{Code: -3, Msg: "Get selection detail failed."} } var withdrawStatus = 1 if secTask.SampleMode == 2 { var taskIncome *model.YounggeeTalentIncome err = g.Model(dao.YounggeeTalentIncome.Table).Where("sectask_id = ? and income_type = 3", taskId).Scan(&taskIncome) if err != nil { return &TalentHttpResult{Code: -3, Msg: "Get return income detail failed."} } if taskIncome != nil { withdrawStatus = taskIncome.WithdrawStatus + 1 } } if secTask.TaskMode == 1 { var taskIncome *model.YounggeeTalentIncome err = g.Model(dao.YounggeeTalentIncome.Table).Where("sectask_id = ? and income_type = 4", taskId).Scan(&taskIncome) if err != nil { return &TalentHttpResult{Code: -3, Msg: "Get reward income detail failed."} } if taskIncome != nil && taskIncome.WithdrawStatus == 1 { withdrawStatus = 2 } } taskDetail := &youngee_talent_model.SecTaskDetailResp{ SecTaskInfo: secTask, SelectionDetail: selectionDetail, WithdrawStatus: withdrawStatus, } return &TalentHttpResult{Code: 0, Msg: "success", Data: taskDetail} } // 带货是否满足悬赏条件 if 满足 更新状态 func UpdateRewardStage(r *ghttp.Request) *TalentHttpResult { //达人id获取 tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) sid := r.GetQueryString("selection_id") if err != nil { return &TalentHttpResult{Code: -1, Msg: "Get talent id failed"} } SecTaskInfo := &youngee_talent_model.SecTaskInfoDetail{} _, err = g.DB().Model(SecTaskInfo).Data("reward_stage", 1).Where("talent_id =? and selection_id =?", tid, sid).Update() if err != nil { // 查询失败(未找到结果),返回失败结果 return &TalentHttpResult{Code: -1, Msg: "update failed", Data: nil} } // 查询成功,返回成功结果和数据 return &TalentHttpResult{Code: 0, Msg: "success", Data: SecTaskInfo} }