/** * 领取声望奖励 * * @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; } }
/** * 加声望 * * @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, "加声望失败!"); // } }