package dispatch import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) func (a *apiComp) AutoreceiveCheck(session comm.IUserSession, req *pb.DispatchAutoReceiveReq) (errdata *pb.ErrorData) { return } func (a *apiComp) Autoreceive(session comm.IUserSession, req *pb.DispatchAutoReceiveReq) (errdata *pb.ErrorData) { var ( info *pb.DBDispatch res []*cfg.Gameatn rss []*pb.DispatchTaskRsp atno []*pb.UserAtno err error ) rsp := &pb.DispatchAutoReceiveResp{} if info, err = a.module.modelDispatch.getDBDispatch(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Message: err.Error(), } return } // var flag bool for _, v := range info.Nb.Tasks { if v.Status == 2 { // flag = true info.Nb.TaskCount++ info.Nb.WeekCount++ continue } } tasks, oldTasks := a.module.modelDispatch.replaceFinishedTask(session.GetUserId(), info) //更新公告任务 if err := a.module.modelDispatch.updateTasks(session.GetUserId(), info.Nb, tasks); err != nil { a.module.Debug("更新公告失败", log.Field{Key: "uid", Value: session.GetUserId()}) return } //奖励 for _, t := range oldTasks { gd, err := a.module.configure.getDispatchTaskConf(t.TaskId) if err != nil { break } //a.module.DispenseRes(session, gd.Reward, true) res = append(res, gd.Reward...) rs := &pb.DispatchTaskRsp{ TaskId: t.TaskId, } if t.Exaward { rs.Exaward = t.Exaward res = append(res, gd.Rewardex...) //a.module.DispenseRes(session, gd.Rewardex, true) } rss = append(rss, rs) } if errdata, atno = a.module.DispenseAtno(session, res, true); errdata != nil { return } rsp.Task = rss session.SendMsg(string(a.module.GetType()), "autoreceive", rsp) go a.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { a.module.WriteUserLog(session.GetUserId(), req, comm.GMResAddType, "DispatchAutoReceiveReq", atno) }) return }