package library /* * 单个英雄剧情id 奖励 */ import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) LvRewardCheck(session comm.IUserSession, req *pb.LibraryLvRewardReq) (code pb.ErrorCode) { if req.Oid == "" || req.Lv <= 0 { code = pb.ErrorCode_ReqParameterError } return } // 英雄回礼 func (this *apiComp) LvReward(session comm.IUserSession, req *pb.LibraryLvRewardReq) (code pb.ErrorCode, data *pb.ErrorData) { resp := &pb.LibraryLvRewardResp{} code = this.LvRewardCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } _heroFetter := this.module.modelFetter.getOneHeroFetter(session.GetUserId(), req.Oid) if _heroFetter == nil { code = pb.ErrorCode_ReqParameterError return } if _heroFetter.Lvprize == nil { _heroFetter.Lvprize = map[int32]int32{} } if _, ok := _heroFetter.Lvprize[req.Lv]; ok { code = pb.ErrorCode_LibraryReward // 重复领奖 return } confData, err := this.module.configure.GetFavorability(_heroFetter.Heroid, req.Lv) if err != nil { code = pb.ErrorCode_ReqParameterError data.Message = err.Error() return } _heroFetter.Lvprize[req.Lv] = 1 // 发奖 code = this.module.DispenseRes(session, confData.ReturnReward, true) if code != pb.ErrorCode_Success { this.module.Errorf("GetStoryReward err:add item : %v", confData.ReturnReward) } mapData := make(map[string]interface{}, 0) mapData["lvprize"] = _heroFetter.Lvprize this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, mapData) resp.Data = _heroFetter session.SendMsg(string(this.module.GetType()), LibraryLvRewardResp, resp) return }