|
|
@@ -70,6 +70,18 @@ public class LevelController {
|
|
|
return ResultVOUtil.success(map);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取全部关卡列表
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("/getLevelList")
|
|
|
+ public ResultVO getLevelList(@RequestParam(value = "userId") String userId) {
|
|
|
+ Map map = levelJumpService.findLevels(userId);
|
|
|
+ return ResultVOUtil.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 过关调用此处,第一次过关,添加对应的信息
|
|
|
* 只处理levelJump信息
|
|
|
@@ -81,19 +93,24 @@ public class LevelController {
|
|
|
@GetMapping("/passTheLevel")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public ResultVO passTheLevel(@RequestParam(value = "userId") String userId,
|
|
|
- @RequestParam(value = "levelType") Integer eventType,
|
|
|
+ //@RequestParam(value = "levelType") Integer eventType,
|
|
|
@RequestParam(value = "levelId") Integer eventId) {
|
|
|
|
|
|
// todo 后面看是否需要处理判断过关条件
|
|
|
+ // todo 判断是否存在关卡
|
|
|
+ LevelJump levelJump = levelJumpService.findById(eventId);
|
|
|
+ if (levelJump == null){
|
|
|
+ return ResultVOUtil.error(ResultEnum.LEVEL_ERROR.getCode(),ResultEnum.LEVEL_ERROR.getMessage());
|
|
|
+ }
|
|
|
//根据id和类型获取关卡信息
|
|
|
- UserLevel userLevel = userLevelService.findByUserIdAndEventType(userId, eventType);
|
|
|
+ UserLevel userLevel = userLevelService.findByUserIdAndEventType(userId, levelJump.getType());
|
|
|
|
|
|
if (userLevel == null) {
|
|
|
userLevel = new UserLevel();
|
|
|
userLevel.setUserId(userId);
|
|
|
userLevel.setCreateTime(new Date());
|
|
|
//1 代表 levelJump
|
|
|
- userLevel.setEventType(eventType);
|
|
|
+ userLevel.setEventType(levelJump.getType());
|
|
|
userLevel.setPassedState(eventId.toString());
|
|
|
//本身已解锁的默认不用记录解锁
|
|
|
userLevel.setUnlockState("");
|
|
|
@@ -118,9 +135,10 @@ public class LevelController {
|
|
|
//todo 过关后,发放对应奖励,金币,钻石和荣誉,等等。
|
|
|
|
|
|
Map map = new HashMap();
|
|
|
- UserReward userReward = userRewardService.findByUserIdAndEventId(userId,eventId);
|
|
|
- if (eventType.equals(1)) {
|
|
|
- LevelJump levelJump = levelJumpService.findById(eventId);
|
|
|
+ UserReward userReward = userRewardService.findByUserIdAndEventId(userId, eventId);
|
|
|
+ //todo 暂时吧跳绳和拳击奖励放一起
|
|
|
+ if (levelJump.getType().equals(1) || levelJump.getType().equals(2)) {
|
|
|
+ //LevelJump levelJump = levelJumpService.findById(eventId);
|
|
|
LevelHonorDTO levelHonorDTO = levelHonorService.findByHonorType(levelJump.getRewardHonor());
|
|
|
if (userReward == null) {
|
|
|
userReward = new UserReward();
|
|
|
@@ -128,12 +146,12 @@ public class LevelController {
|
|
|
userReward.setCreateTime(new Date());
|
|
|
userReward.setEventId(levelJump.getId());
|
|
|
userReward.setEventName(levelJump.getName());
|
|
|
- userReward.setEventType(eventType);
|
|
|
+ userReward.setEventType(levelJump.getType());
|
|
|
userReward.setEventState(1);
|
|
|
userReward.setPlayCount(1);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//如果存在数据,+1次数
|
|
|
- userReward.setPlayCount(userReward.getPlayCount()+1);
|
|
|
+ userReward.setPlayCount(userReward.getPlayCount() + 1);
|
|
|
}
|
|
|
userReward.setGold(levelJump.getRewardGold());
|
|
|
userReward.setDiamond(levelJump.getRewardDiamond());
|
|
|
@@ -145,15 +163,17 @@ public class LevelController {
|
|
|
userRewardService.saveUserReward(userReward);
|
|
|
//如果需要奖励
|
|
|
//todo 奖励用户相应信息
|
|
|
- UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(userId, levelJump.getRewardGold(), levelJump.getRewardDiamond(),true);
|
|
|
+ UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(userId, levelJump.getRewardGold(), levelJump.getRewardDiamond(), true);
|
|
|
|
|
|
- map.put("rewardHonor",levelHonorDTO);
|
|
|
- map.put("rewardGold",levelJump.getRewardGold());
|
|
|
- map.put("rewardDiamond",levelJump.getRewardDiamond());
|
|
|
+ map.put("rewardHonor", levelHonorDTO);
|
|
|
+ map.put("rewardGold", levelJump.getRewardGold());
|
|
|
+ map.put("rewardDiamond", levelJump.getRewardDiamond());
|
|
|
//返回一个钱包情况
|
|
|
map.put("gold", userWallets.getGold());
|
|
|
map.put("diamond", userWallets.getDiamond());
|
|
|
|
|
|
+ }else{
|
|
|
+ //todo
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -164,10 +184,16 @@ public class LevelController {
|
|
|
|
|
|
@GetMapping("/unlockLevel")
|
|
|
public ResultVO UnlockLevel(@RequestParam(value = "userId") String userId,
|
|
|
- @RequestParam(value = "numberType") Integer numberType,
|
|
|
- @RequestParam(value = "levelType") Integer eventType,
|
|
|
+ //@RequestParam(value = "numberType") Integer numberType,
|
|
|
+ //@RequestParam(value = "levelType") Integer eventType,
|
|
|
@RequestParam(value = "levelId") Integer eventId) {
|
|
|
|
|
|
+ // todo 判断是否存在关卡
|
|
|
+ LevelJump levelJump = levelJumpService.findById(eventId);
|
|
|
+ if (levelJump == null){
|
|
|
+ return ResultVOUtil.error(ResultEnum.LEVEL_ERROR.getCode(),ResultEnum.LEVEL_ERROR.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
//0自动解锁
|
|
|
//单人模式解锁条件:1上一关,2金币,3钻石,
|
|
|
@@ -175,7 +201,7 @@ public class LevelController {
|
|
|
//1.第一步先判断除了金币和钻石的条件。目前除了2,3.其余的只有一个条件需要判断
|
|
|
// 单人条件下,只需要判断上一关的是否已经解锁
|
|
|
// 拿到用户记录的关卡数据 levelType = levelJump(1),
|
|
|
- UserLevel userLevel = userLevelService.findByUserIdAndEventType(userId, eventType);
|
|
|
+ UserLevel userLevel = userLevelService.findByUserIdAndEventType(userId, levelJump.getType());
|
|
|
if (userLevel == null) {
|
|
|
//提示必须通过第一个自动解锁的关卡。这样才能记录
|
|
|
return ResultVOUtil.error(ResultEnum.MUST_PASS_FIRST_LEVEL.getCode(), ResultEnum.MUST_PASS_FIRST_LEVEL.getMessage());
|
|
|
@@ -198,8 +224,8 @@ public class LevelController {
|
|
|
Boolean isPassed = false;
|
|
|
List<Map> _unlockMapList = new ArrayList<>();
|
|
|
//单人条件下判断上一关一个条件
|
|
|
- if (numberType.equals(1)) {
|
|
|
- List<LevelJump> levelJumpList = levelJumpService.findLevelJumpsByNumberType(numberType, Sort.Direction.ASC);
|
|
|
+ if (levelJump.getNumberType().equals(1)) {
|
|
|
+ List<LevelJump> levelJumpList = levelJumpService.findLevelJumpsByNumberType(levelJump.getNumberType(), Sort.Direction.ASC);
|
|
|
for (int i = 0; i < levelJumpList.size(); i++) {
|
|
|
curLevelJump = levelJumpList.get(i);
|
|
|
if (curLevelJump.getId().equals(eventId)) {
|
|
|
@@ -209,7 +235,7 @@ public class LevelController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- } else if (numberType.equals(2)) {
|
|
|
+ } else if (levelJump.getNumberType().equals(2)) {
|
|
|
//2人模式下,处理条件是需要判断单人模式下对应的关卡是否解锁
|
|
|
//todo 拿到当前条件下得limitLevel
|
|
|
curLevelJump = levelJumpService.findById(eventId);
|
|
|
@@ -243,7 +269,7 @@ public class LevelController {
|
|
|
} else {
|
|
|
//如果需要扣除金币或者钻石
|
|
|
//todo 获取用户钱包信息
|
|
|
- UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(userId, curLevelJump.getConsumeGold(), curLevelJump.getConsumeDiamond(),false);
|
|
|
+ UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(userId, curLevelJump.getConsumeGold(), curLevelJump.getConsumeDiamond(), false);
|
|
|
|
|
|
//扣费后记录关卡信息
|
|
|
userLevelService.saveUserLevel(userLevel);
|
|
|
@@ -255,12 +281,12 @@ public class LevelController {
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- if (eventType.equals(1)) {
|
|
|
+ if (levelJump.getType().equals(1) || levelJump.getType().equals(2)) {
|
|
|
//目前levelJump = 1
|
|
|
- if (numberType.equals(1)) {
|
|
|
+ if (levelJump.getNumberType().equals(1)) {
|
|
|
return ResultVOUtil.error(ResultEnum.PREVIOUS_LEVEL_NO_PASSED.getCode(), ResultEnum.PREVIOUS_LEVEL_NO_PASSED.getMessage());
|
|
|
|
|
|
- } else if (numberType.equals(2)) {
|
|
|
+ } else if (levelJump.getNumberType().equals(2)) {
|
|
|
return ResultVOUtil.error(ResultEnum.ASSOCIATED_LEVEL_NO_UNLOCKED.getCode(), ResultEnum.ASSOCIATED_LEVEL_NO_UNLOCKED.getMessage(), _unlockMapList);
|
|
|
|
|
|
}
|
|
|
@@ -282,7 +308,6 @@ public class LevelController {
|
|
|
|
|
|
/**
|
|
|
* pk 关卡奖励
|
|
|
- *
|
|
|
*/
|
|
|
@GetMapping("/pkLevelReward")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -326,8 +351,8 @@ public class LevelController {
|
|
|
Map map = new HashMap();
|
|
|
String decFriendId = RSAUtils.privateDecrypt(friendRSA, RSAUtils.getPrivateKey(friendIdPrivateKey));
|
|
|
|
|
|
- String curId = isMyWin?userId:decFriendId;
|
|
|
- UserReward userReward = userRewardService.findByUserIdAndEventId(curId,eventId);
|
|
|
+ String curId = isMyWin ? userId : decFriendId;
|
|
|
+ UserReward userReward = userRewardService.findByUserIdAndEventId(curId, eventId);
|
|
|
if (eventType.equals(1)) {
|
|
|
LevelJump levelJump = levelJumpService.findById(eventId);
|
|
|
LevelHonorDTO levelHonorDTO = levelHonorService.findByHonorType(levelJump.getRewardHonor());
|
|
|
@@ -340,9 +365,9 @@ public class LevelController {
|
|
|
userReward.setEventType(eventType);
|
|
|
userReward.setEventState(1);
|
|
|
userReward.setPlayCount(1);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//如果存在数据,+1次数
|
|
|
- userReward.setPlayCount(userReward.getPlayCount()+1);
|
|
|
+ userReward.setPlayCount(userReward.getPlayCount() + 1);
|
|
|
}
|
|
|
userReward.setGold(levelJump.getRewardGold());
|
|
|
userReward.setDiamond(levelJump.getRewardDiamond());
|
|
|
@@ -355,13 +380,13 @@ public class LevelController {
|
|
|
|
|
|
//如果需要奖励
|
|
|
//todo 奖励用户相应信息
|
|
|
- UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(curId, levelJump.getRewardGold(), levelJump.getRewardDiamond(),true);
|
|
|
+ UserWallets userWallets = userWalletsService.modifyGoldAndDiamondInUserWallets(curId, levelJump.getRewardGold(), levelJump.getRewardDiamond(), true);
|
|
|
|
|
|
- map.put("rewardHonor",levelHonorDTO);
|
|
|
- map.put("rewardGold",levelJump.getRewardGold());
|
|
|
- map.put("rewardDiamond",levelJump.getRewardDiamond());
|
|
|
+ map.put("rewardHonor", levelHonorDTO);
|
|
|
+ map.put("rewardGold", levelJump.getRewardGold());
|
|
|
+ map.put("rewardDiamond", levelJump.getRewardDiamond());
|
|
|
//如果是自己赢的,返回给当前客户端一个自己用户的钱包情况
|
|
|
- if(isMyWin){
|
|
|
+ if (isMyWin) {
|
|
|
map.put("gold", userWallets.getGold());
|
|
|
map.put("diamond", userWallets.getDiamond());
|
|
|
}
|