yaorongkeji 3 months ago
parent
commit
ef62e49751

+ 41 - 42
hcp-core/src/main/java/com/yingyangfly/core/service/impl/GamePlayRecordServiceImpl.java

@@ -99,6 +99,47 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
 
 
         gamePlayRecord.setGameType(game.getGameType());
         gamePlayRecord.setGameType(game.getGameType());
 
 
+       //如果是任务 则更新当前关卡
+       if ("A".equals(gamePlayRecord.getPlayClass())) {
+           GameTask gameTask = gameTaskService.findMyCurrentTask(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()), appCurrentLoginUser.getId(),"1");
+           QueryWrapper<GameTaskDetail> queryWrapper = new QueryWrapper<>();
+           queryWrapper.eq("game_code", gamePlayRecord.getGameCode());
+           queryWrapper.eq("user_id", appCurrentLoginUser.getId());
+           queryWrapper.eq("status", "1");
+           queryWrapper.eq("task_id", gameTask.getId());
+           GameTaskDetail gameTaskDetail = gameTaskDetailMapper.selectOne(queryWrapper);
+           gamePlayRecord.setGameRelevancyId(gameTaskDetail.getId());
+           Integer playTime = gamePlayRecord.getDuration();
+           if (ObjectUtils.isNotNull(gameTaskDetail.getPlayTime())){
+               playTime = playTime + gameTaskDetail.getPlayTime();
+           }
+           gameTaskDetail.setPlayTime(playTime);
+           if ("0".equals(gamePlayRecord.getIsPass())){
+               Integer currentLevel = gamePlayRecord.getGameLevel();
+               gameTaskDetail.setGameLevel(currentLevel + 1 > gameTaskDetail.getTotalNum().intValue() ? currentLevel : currentLevel + 1);
+               Integer gameScore = gamePlayRecord.getGameScore()+gameTaskDetail.getGameScore();
+               gameTaskDetail.setGameScore(gameScore);
+
+               if (gameTaskDetail.getTotalNum().intValue() == currentLevel) {
+                   gameTaskDetail.setStatus("0");
+                   gameTaskDetail.setIsPass(gamePlayRecord.getIsPass());
+                   //更新任务当前进度
+                   updateTaskProgress(gameTaskDetail);
+                   //如果当前游戏是任务,并且成功,获取当前用户脑力值并+1
+                   updateUserMentalEnergy(appCurrentLoginUser, gamePlayRecord);
+               }
+               gameTaskDetail.setUpdateTime(new Date());
+               gameTaskDetailMapper.updateById(gameTaskDetail);
+           }
+           if ("1".equals(gamePlayRecord.getIsPass())) {
+               gameTaskDetail.setStatus("0");
+               gameTaskDetail.setIsPass(gamePlayRecord.getIsPass());
+               gameTaskDetail.setUpdateTime(new Date());
+               gameTaskDetailMapper.updateById(gameTaskDetail);
+               //更新任务当前进度
+               updateTaskProgress(gameTaskDetail);
+           }
+       }
         executor.execute(() -> {
         executor.execute(() -> {
             log.info("<<<<<<<<<<<<<异步保存游戏记录开始:{}>>>>>>>>>>>>>>", JSON.toJSONString(gamePlayRecord));
             log.info("<<<<<<<<<<<<<异步保存游戏记录开始:{}>>>>>>>>>>>>>>", JSON.toJSONString(gamePlayRecord));
             // 训练类型(A 任务,B推荐,C自由训练)训练成功更新关卡
             // 训练类型(A 任务,B推荐,C自由训练)训练成功更新关卡
@@ -118,48 +159,6 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
                     gamePlayRecord.setGameRelevancyId(gameUser.getId());
                     gamePlayRecord.setGameRelevancyId(gameUser.getId());
                 }
                 }
             }
             }
-            //如果是任务 则更新当前关卡
-            if ("A".equals(gamePlayRecord.getPlayClass())) {
-                GameTask gameTask = gameTaskService.findMyCurrentTask(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()), appCurrentLoginUser.getId(),"1");
-                QueryWrapper<GameTaskDetail> queryWrapper = new QueryWrapper<>();
-                queryWrapper.eq("game_code", gamePlayRecord.getGameCode());
-                queryWrapper.eq("user_id", appCurrentLoginUser.getId());
-                queryWrapper.eq("status", "1");
-                queryWrapper.eq("task_id", gameTask.getId());
-                GameTaskDetail gameTaskDetail = gameTaskDetailMapper.selectOne(queryWrapper);
-                gamePlayRecord.setGameRelevancyId(gameTaskDetail.getId());
-                Integer playTime = gamePlayRecord.getDuration();
-                if (ObjectUtils.isNotNull(gameTaskDetail.getPlayTime())){
-                    playTime = playTime + gameTaskDetail.getPlayTime();
-                }
-                gameTaskDetail.setPlayTime(playTime);
-                if ("0".equals(gamePlayRecord.getIsPass())){
-                    Integer currentLevel = gamePlayRecord.getGameLevel();
-                    gameTaskDetail.setGameLevel(currentLevel + 1 > gameTaskDetail.getTotalNum().intValue() ? currentLevel : currentLevel + 1);
-                    Integer gameScore = gamePlayRecord.getGameScore()+gameTaskDetail.getGameScore();
-                    gameTaskDetail.setGameScore(gameScore);
-
-                    if (gameTaskDetail.getTotalNum().intValue() == currentLevel) {
-                        gameTaskDetail.setStatus("0");
-                        gameTaskDetail.setIsPass(gamePlayRecord.getIsPass());
-                        //更新任务当前进度
-                        updateTaskProgress(gameTaskDetail);
-                        //如果当前游戏是任务,并且成功,获取当前用户脑力值并+1
-                        updateUserMentalEnergy(appCurrentLoginUser, gamePlayRecord);
-                    }
-                    gameTaskDetail.setUpdateTime(new Date());
-                    gameTaskDetailMapper.updateById(gameTaskDetail);
-                }
-                if ("1".equals(gamePlayRecord.getIsPass())) {
-                    gameTaskDetail.setStatus("0");
-                    gameTaskDetail.setIsPass(gamePlayRecord.getIsPass());
-                    gameTaskDetail.setUpdateTime(new Date());
-                    gameTaskDetailMapper.updateById(gameTaskDetail);
-                    //更新任务当前进度
-                    updateTaskProgress(gameTaskDetail);
-                }
-            }
-
 
 
             //保存游戏记录
             //保存游戏记录
             gamePlayRecord.setId(IdUtils.get32UUID());
             gamePlayRecord.setId(IdUtils.get32UUID());

+ 2 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/impl/GameServiceImpl.java

@@ -207,6 +207,8 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
         GamePastRecords gamePastRecords = new GamePastRecords();
         GamePastRecords gamePastRecords = new GamePastRecords();
         BeanUtils.copyProperties(game,gamePastRecords);
         BeanUtils.copyProperties(game,gamePastRecords);
         gamePastRecords.setId(IdWorker.getId());
         gamePastRecords.setId(IdWorker.getId());
+        gamePastRecords.setCreateTime(new Date());
+        gamePastRecords.setUpdateTime(new Date());
         gamePastRecordsService.save(gamePastRecords);
         gamePastRecordsService.save(gamePastRecords);
         // 删除 用户游戏
         // 删除 用户游戏
         LambdaQueryWrapper<GameUser> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<GameUser> wrapper = new LambdaQueryWrapper<>();