示例#1
0
 /**
  * 领取声望奖励
  *
  * @param userId
  * @param id
  * @return
  */
 public CommonGoodsBeanBO rewardPrestige(String userId, int id) {
   User user = userService.getByUserId(userId);
   SystemPrestigeRewards rewards = systemPrestigeRewardsDaoCache.getPrestigeRewardsById(id);
   if (rewards == null) {
     throw new ServiceException(SystemConstant.FAIL_CODE, "id=" + id + ",不存在该id的配置");
   }
   // 判断是否达到领取等级
   if (user.getPrestigeLevel() < rewards.getLevel()) {
     throw new ServiceException(LEVEL_LIMIT, "声望等级不足");
   }
   // 判断是否已经领取过了
   if (userPrestigeRewardLogDao.isReward(userId, id)) {
     throw new ServiceException(HAS_REWARD, "已经领取过了");
   }
   UserPrestigeRewardLog log = new UserPrestigeRewardLog();
   log.setUserId(userId);
   log.setId(id);
   log.setCreatedTime(new Date());
   // 给奖励
   if (userPrestigeRewardLogDao.addUserPrestigeRewardLog(log)) {
     return goodsDealService.sendGoods(
         userId,
         GoodsType.Hero.intValue + "," + rewards.getRewards() + ",1",
         GoodsUseType.ADD_PRESTIGE_REWARDS);
   } else {
     ServiceException e = new ServiceException(SystemConstant.FAIL_CODE, "添加日志异常!!");
     LogSystem.error(e, "");
     throw e;
   }
 }
示例#2
0
  /**
   * 声望招募英雄
   *
   * @param userId
   * @param systemHeroId
   * @return
   */
  public Map<String, Object> inviteHero(String userId, int systemHeroId, String heroName) {
    User user = userService.getByUserId(userId);
    SystemInviteHero systemInviteHero =
        this.systemInviteHeroDaoCache.getSystemInviteHero(systemHeroId);

    if (systemInviteHero == null)
      throw new ServiceException(
          SystemConstant.FAIL_CODE,
          "没有配置该英雄??userId[" + userId + "],systemHeroId[" + systemHeroId + "]");

    if (systemInviteHero.getCamp() != 0 && user.getCamp() != systemInviteHero.getCamp())
      throw new ServiceException(CAMP_NOT_MATE, "阵营不匹配");

    // 背包检查
    List<GoodsBeanBO> list = new ArrayList<GoodsBeanBO>();
    GoodsBeanBO goodsBeanBO = new GoodsBeanBO();
    goodsBeanBO.setGoodsId(systemInviteHero.getSystemHeroId());
    goodsBeanBO.setGoodsType(GoodsType.Hero.intValue);
    goodsBeanBO.setGoodsNum(1);
    list.add(goodsBeanBO);
    this.userService.checkBag(userId, list);

    Map<String, Object> map = new HashMap<String, Object>();
    // 各种XX条件判断
    if (user.getGold() < systemInviteHero.getNeedGold())
      throw new ServiceException(SystemErrorCode.GOLD_NOT_ENOUGH, "金币不足");

    if (user.getLevel() < systemInviteHero.getLevel())
      throw new ServiceException(SystemErrorCode.LEVEL_NOT_ENOUGH, "等级不足");

    // 扣金币
    if (!this.userService.reduceGold(
        userId, systemInviteHero.getNeedGold(), GoodsUseType.REDUCE_PRESTIGE_INVITE))
      throw new ServiceException(SystemErrorCode.GOLD_NOT_ENOUGH, "金币不足");

    CommonGoodsBeanBO drop = new CommonGoodsBeanBO();
    this.heroService.addHero(
        userId, systemHeroId, false, heroName, GoodsUseType.ADD_PRESTIGE_INVITE, drop);

    user = this.userService.getByUserId(userId);
    map.put("dr", drop);
    map.put("gd", user.getGold());
    map.put("mon", user.getMoney());
    return map;
  }
示例#3
0
 /**
  * 加声望
  *
  * @param userId
  * @param addAmount
  * @param drop
  */
 public void addPrestige(String userId, int addAmount, int goodsUseType, CommonGoodsBeanBO drop) {
   User user = userService.getByUserId(userId);
   if (user == null) {
     String message = "更新用户声望失败,用户不存在.userId[" + userId + "], addAmount[" + addAmount + "]";
     throw new ServiceException(SystemConstant.FAIL_CODE, message);
   }
   // 如果到了最高等级  则不再加经验
   if (user.getPrestigeLevel() >= systemPrestigeLevelDaoCache.getMaxLevel()) {
     LogSystem.info("userId=" + userId + ",用户已经到达声望最高等级 不再加声望");
     return;
   }
   //		SystemPrestigeLevel systemPrestigeLevel =
   // this.systemPrestigeLevelDaoCache.getPrestigeLevel(addAmount+user.getPrestige());
   // int leveAddCount = 0;
   //		if(systemPrestigeLevel.getLevel()>user.getPrestigeLevel()){
   //			leveAddCount = systemPrestigeLevel.getLevel()-user.getPrestigeLevel();
   //		}
   // 修改经验和等级
   //		boolean success = this.userService.addPrestigeAndPrestigeLevel(userId, addAmount,
   // leveAddCount, goodsUseType, drop);
   //		if(!success){
   //			throw new ServiceException(SystemConstant.FAIL_CODE, "加声望失败!");
   //		}
 }