package library /* * 单个英雄剧情id 奖励 */ import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) LvRewardCheck(session comm.IUserSession, req *pb.LibraryLvRewardReq) (errdata *pb.ErrorData) { if req.Oid == "" || req.Lv <= 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } } return } // 英雄回礼 func (this *apiComp) LvReward(session comm.IUserSession, req *pb.LibraryLvRewardReq) (errdata *pb.ErrorData) { var ( atno []*pb.UserAtno ) if errdata = this.LvRewardCheck(session, req); errdata != nil { return // 参数校验失败直接返回 } _heroFetter := this.module.modelFetter.getOneHeroFetter(session.GetUserId(), req.Oid) if _heroFetter == nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } return } if _heroFetter.Lvprize == nil { _heroFetter.Lvprize = map[int32]int32{} } if _, ok := _heroFetter.Lvprize[req.Lv]; ok { errdata = &pb.ErrorData{ // 重复领奖 Code: pb.ErrorCode_LibraryReward, Title: pb.ErrorCode_LibraryReward.ToString(), Message: fmt.Sprintf("重复领奖,领奖等级:%d", req.Lv), } return } confData, err := this.module.configure.GetFavorability(_heroFetter.Heroid, req.Lv) if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } return } _heroFetter.Lvprize[req.Lv] = 1 // 发奖 if errdata, atno = this.module.DispenseAtno(session, confData.ReturnReward, true); errdata != nil { this.module.Errorf("GetStoryReward err:add item : %v", confData.ReturnReward) return } mapData := make(map[string]interface{}, 0) mapData["lvprize"] = _heroFetter.Lvprize this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, mapData) session.SendMsg(string(this.module.GetType()), LibraryLvRewardResp, &pb.LibraryLvRewardResp{ Data: _heroFetter, Reward: atno, }) go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { this.module.WriteUserLog(session.GetUserId(), req, comm.GMResAddType, "LibraryLvRewardReq", atno) }) return }