|
|
@@ -99,6 +99,47 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
|
|
|
|
|
|
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(() -> {
|
|
|
log.info("<<<<<<<<<<<<<异步保存游戏记录开始:{}>>>>>>>>>>>>>>", JSON.toJSONString(gamePlayRecord));
|
|
|
// 训练类型(A 任务,B推荐,C自由训练)训练成功更新关卡
|
|
|
@@ -118,48 +159,6 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
|
|
|
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());
|