package dispatch import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) // 领取派遣奖励 func (a *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode) { if req.TaskId == 0 { code = pb.ErrorCode_ReqParameterError } return } func (a *apiComp) Receive(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode, data proto.Message) { if code = a.ReceiveCheck(session, req); code != pb.ErrorCode_Success { return } d := a.module.modelDispatch.getDBDispatch(session.GetUserId()) if d == nil { code = pb.ErrorCode_DataNotFound return } tasks, oldTaskIds := a.module.modelDispatch.replaceTask(session.GetUserId(), req.TaskId, d) //更新公告任务 if err := a.module.modelDispatch.updateTasks(session.GetUserId(), d.Nb, tasks); err != nil { a.module.Debug("更新公告失败", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "taskId", Value: req.TaskId}) return } //奖励 for _, t := range oldTaskIds { if t.TaskId == req.TaskId { gd, err := a.module.configure.getDispatchTaskConf(t.TaskId) if err != nil { break } a.module.DispenseRes(session, gd.Reward, true) if t.Exaward { a.module.DispenseRes(session, gd.Rewardex, true) } break } } rsp := &pb.DispatchReceiveResp{ TaskId: req.TaskId, } session.SendMsg(string(a.module.GetType()), "receive", rsp) return }