package assignment import ( "database/sql" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/os/gtime" "youngmini_server/app/dao" "youngmini_server/app/model/youngee_talent_model" "youngmini_server/app/system/message" "youngmini_server/app/system/sectask" "youngmini_server/app/system/sectasklog" "youngmini_server/app/system/selection" "youngmini_server/app/utils" ) var service = new(assignmentService) type assignmentService struct { } func (s *assignmentService) Add(r *ghttp.Request, req *AddAssignmentReq) (res sql.Result, err error) { tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) if err != nil { return nil, err } res, err = dao.YounggeeAssignmentInfo.Ctx(r.GetCtx()).Insert(req) if err != nil { return nil, err } // 2. 更新任务阶段 上传截图, updateStageReq := sectask.UpdateStageReq{ TaskId: req.TaskId, TaskStage: 9, //任务状态变成待结算9 AssignmentStatus: 2, //作业上传状态变成2(已添加) RewardStage: 1, //上传截图,变成待领悬赏 } SecTaskInfo := &youngee_talent_model.SecTaskInfoDetail{} _, err = g.DB().Model(SecTaskInfo).Data(g.Map{ "task_stage": updateStageReq.TaskStage, "assignment_status": updateStageReq.AssignmentStatus, "reward_stage": updateStageReq.RewardStage, }).Where("task_id =? ", req.TaskId).Update() //err = sectask.UpdateStageAndStatus(r.Context(), &updateStageReq) if err != nil { return nil, err } // 3. 插入日志 addSecTaskLogReq := sectasklog.AddSecTaskLogReq{ TaskId: req.TaskId, Content: "上传作业", LogAt: gtime.Now(), } err = sectasklog.Add(r.Context(), addSecTaskLogReq) if err != nil { return nil, err } //4. 插入消息 // 查询选品项目信息 selectionInfo, err := selection.GetDetailByTaskId(r.Context(), req.TaskId) if err != nil { return nil, err } addMessageReq := message.AddMessageReq{ MessageId: 29, MessageType: 2, CreatedAt: gtime.Now(), TalentId: tid, ProjectName: selectionInfo.SelectionName, IsReaded: 0, IsDeleted: 0, } // 插入消息 err = message.Add(r.Context(), addMessageReq) if err != nil { return nil, err } return } func (s *assignmentService) List(r *ghttp.Request) (res ListAssignmentRes, err error) { sortCondition := string(dao.YounggeeAssignmentInfo.Columns.SubmitAt + " ASC") whereCondition := g.Map{ dao.YounggeeAssignmentInfo.Columns.IsReview: 1, } err = dao.YounggeeAssignmentInfo.Ctx(r.GetCtx()).Where(whereCondition).Order(sortCondition).Scan(&res.AssignmentList) if err != nil { return } return }