123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package assignment
- import (
- "database/sql"
- "fmt"
- "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
- }
- //悬赏结算
- //1.检查余额是否足够
- remainMoney, err := g.DB().Model("enterprise").Fields("available_balance").Where("enterprise_id = ?", req).Value()
- if err != nil {
- fmt.Println("database")
- }
- remain := remainMoney.Int()
- if remain < req.PayMoney {
- fmt.Println("余额不足")
- return nil, err
- }
- fmt.Println("余额充足")
- _, err = g.DB().Model("enterprise").Data(g.Map{"available_balance": remain - req.PayMoney}).Where("enterprise_id = ?", req.EnterpriseId).Update()
- //2.更新selection的settelamout
- oldvalue, err := g.DB().Model("younggee_selection_info").Fields("settlement_amount").Where("selection_id=?", req.SelectionId).Value()
- oldvalue1 := oldvalue.Int()
- _, err = g.DB().Model("younggee_selection_info").Data(g.Map{"settlement_amount": oldvalue1 + req.PayMoney}).Where("selection_id=?", req.SelectionId).Update()
- //3.更新sectask表中的任务状态
- _, err = g.DB().Model("younggee_sec_task_info").Data(g.Map{
- "updated_at": gtime.Now(),
- "completed_data": gtime.Now(),
- "task_stage": 10,
- "reward_stage": 2, //已结算
- }).Where("task_id=?", req.TaskId).Update()
- //4.插入一条达人收入数据
- _, err = g.DB().Model("younggee_talent_income").Data(g.Map{
- "selection_id": req.SelectionId,
- "talent_id": tid,
- "sectask_id": req.TaskId,
- "income": req.PayMoney,
- "income_at": gtime.Now(),
- }).Save()
- 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
- }
|