修改夺宝精灵用户等级限制逻辑

This commit is contained in:
liaozetao
2023-12-08 16:00:38 +08:00
parent e87a1eebac
commit a80450047c

View File

@@ -2,9 +2,13 @@ package com.accompany.business.service.treasure;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.accompany.business.constant.activities.ActivitesPackTypeEnum;
import com.accompany.business.enums.UserActPropertyObjType;
import com.accompany.business.enums.resource.ResourceCodeEnum;
import com.accompany.business.enums.resource.RuleCodeEnum;
import com.accompany.business.model.resource.Resource;
import com.accompany.business.model.treasure.*;
import com.accompany.business.model.user.UserActPropertyInfoRecord;
import com.accompany.business.model.user.UserActPropertyInfoV2;
@@ -19,11 +23,13 @@ import com.accompany.business.service.headwear.HeadwearService;
import com.accompany.business.service.level.LevelService;
import com.accompany.business.service.nameplate.UserNameplateService;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.resource.ResourceService;
import com.accompany.business.service.user.UserActPropertyInfoRecordService;
import com.accompany.business.vo.treasure.SeizeTreasureSalvageConfig;
import com.accompany.business.vo.treasure.salvage.SeizeTreasureElfSalvageRecordVo;
import com.accompany.business.vo.treasure.salvage.SeizeTreasureElfSalvageReq;
import com.accompany.common.exception.ApiException;
import com.accompany.core.base.UidContextHolder;
import com.accompany.core.service.message.MessageRobotPushService;
import com.accompany.business.service.room.RoomService;
import com.accompany.business.service.user.UserActPropertyInfoV2Service;
@@ -69,6 +75,7 @@ import com.accompany.core.service.common.JedisLockService;
import com.accompany.core.service.common.JedisService;
import com.accompany.core.vo.UserLevelVo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.extern.slf4j.Slf4j;
@@ -149,6 +156,9 @@ public class SeizeTreasureService {
private MessageRobotPushService messageRobotPushService;
@Autowired
private WebSecurityConfig webSecurityConfig;
@Autowired
private ResourceService resourceService;
private Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
@@ -243,13 +253,9 @@ public class SeizeTreasureService {
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
public List<SeizeTreasurePoolRewardVo> forestDraw(Long uid, Integer poolLevel, Integer drawNum) throws IOException {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ServiceException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService forestDraw uid:{} poolLevel:{} drawNum:{}", uid, poolLevel, drawNum);
Long propId = this.getReducePropId(poolLevel);
// 扣除道具
@@ -965,10 +971,7 @@ public class SeizeTreasureService {
}
public void sendElf(Long uid, Long elfId, Long targetUid) {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ServiceException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService sendElf uid:{} elfId:{} targetUid:{}", uid, elfId, targetUid);
@@ -999,10 +1002,7 @@ public class SeizeTreasureService {
}
public void askForElf(Long elfId, Long uid, Long targetUid) {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ServiceException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService askForElf uid:{} elfId:{} targetUid:{}", uid, elfId, targetUid);
@@ -1028,10 +1028,7 @@ public class SeizeTreasureService {
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
public SeizeTreasureElfVo compoundElf(Long uid, SeizeTreasureElfCompoundReq compoundReqs) {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ServiceException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService compoundElf uid:{} compoundReqs:{}", uid, compoundReqs);
@@ -1206,10 +1203,7 @@ public class SeizeTreasureService {
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
public SeizeTreasureRewardBaseVo convert(Long uid, Long roomUid, Long itemId) {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ServiceException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService convert uid:{} roomUid:{} itemId:{}", uid, roomUid, itemId);
@@ -1274,7 +1268,7 @@ public class SeizeTreasureService {
if (ConvertType.ELF.equals(convertItem.getType())) {
Users users = usersService.getUsersByUid(uid);
Room room = roomService.getRoomByUid(roomUid);
SpringContextHolder.getBean(SeizeTreasureService.class).afterElfConvert(users, room, convertItem.getLevel(), convertReward, actConfig.getUserLevelLimit());
SpringContextHolder.getBean(SeizeTreasureService.class).afterElfConvert(users, room, convertItem.getLevel(), convertReward, getActConfig().getUserLevelLimit());
}
return convertReward;
}
@@ -1402,10 +1396,7 @@ public class SeizeTreasureService {
*/
@Transactional(rollbackFor = Exception.class)
public List<SeizeTreasureElfSalvageRecordVo> elfSalvage(Long uid, SeizeTreasureElfSalvageReq salvageReq) {
SeizeTreasureConfig actConfig = this.getActConfig();
actConfig.checkOpen(uid);
UserLevelVo userLevel = levelService.getUserLevelVo(uid);
if (userLevel == null || actConfig.getUserLevelLimit().compareTo(userLevel.getExperLevelSeq()) > 0) {
if (!checkAuthority()) {
throw new ApiException(BusiStatus.NOT_ENOUGH_LEVEL);
}
log.info("SeizeTreasureService elfSalvage uid : {}, salvageReq : {}", uid, salvageReq);
@@ -1475,5 +1466,9 @@ public class SeizeTreasureService {
return records;
}
public boolean checkAuthority() {
Resource resource = resourceService.getResource(ResourceCodeEnum.SEIZE_TREASURE.name());
return resource != null;
}
}