package dispatch import ( "errors" "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" "google.golang.org/protobuf/proto" ) // 刷新 func (a *apiComp) RefreshCheck(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode) { return } func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode, data proto.Message) { d := a.module.modelDispatch.getDBDispatch(session.GetUserId()) if d == nil { code = pb.ErrorCode_DataNotFound return } if d.Nb != nil { if d.Nb.FreeCount > 0 { //更新刷新次数 if err := a.module.modelDispatch.updateFreeCount(session.GetUserId(), d.Nb); err != nil { var customer = new(comm.CustomError) if errors.As(err, &customer) { code = customer.Code } else { code = pb.ErrorCode_DBError } return } } else { refreshCount := a.module.ModuleTools.GetGlobalConf().DispatchRefreshtimes if d.Nb.RefreshCount >= refreshCount { code = pb.ErrorCode_DispatchRefreshMax return } //消耗金币 money := a.module.ModuleTools.GetGlobalConf().DispatchCheckmoney if code = a.module.CheckRes(session, []*cfg.Gameatn{money}); code != pb.ErrorCode_Success { return } if code = a.module.ConsumeRes(session, []*cfg.Gameatn{money}, true); code != pb.ErrorCode_Success { return } if err := a.module.modelDispatch.updateRefreshCount(session.GetUserId(), d.Nb); err != nil { code = pb.ErrorCode_DBError return } } } //刷新公告(随机新的任务 包括未领取和正在进行的任务) tasks, err := a.module.modelDispatch.taskRandom(session.GetUserId(), d) if err != nil { return } //更新公告任务 if err := a.module.modelDispatch.updateTasks(session.GetUserId(), d.Nb, tasks); err != nil { a.module.Debug("更新公告失败", log.Field{Key: "uid", Value: session.GetUserId()}) return } rsp := &pb.DispatchRefreshResp{ FreeCount: d.Nb.FreeCount, RefreshCount: d.Nb.RefreshCount, } session.SendMsg(string(a.module.GetType()), "refresh", rsp) return }