|
|
@@ -1,4 +1,5 @@
|
|
|
package com.yingyangfly.core.service.impl;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
@@ -10,13 +11,12 @@ import com.yingyangfly.core.dto.AppCurrentLoginUser;
|
|
|
import com.yingyangfly.core.dto.CurrentLoginUser;
|
|
|
import com.yingyangfly.core.dto.GameDto;
|
|
|
import com.yingyangfly.core.enums.StatusEnums;
|
|
|
+import com.yingyangfly.core.mapper.AppUserMapper;
|
|
|
import com.yingyangfly.core.mapper.GameMapper;
|
|
|
import com.yingyangfly.core.mapper.GameTaskDetailMapper;
|
|
|
import com.yingyangfly.core.mapper.GameUserMapper;
|
|
|
import com.yingyangfly.core.security.util.TokenUtil;
|
|
|
-import com.yingyangfly.core.service.GamePastRecordsService;
|
|
|
-import com.yingyangfly.core.service.GamePlayRecordService;
|
|
|
-import com.yingyangfly.core.service.GameService;
|
|
|
+import com.yingyangfly.core.service.*;
|
|
|
import com.yingyangfly.redis.client.RedisClient;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
@@ -25,8 +25,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 游戏表(Game)表服务实现类
|
|
|
@@ -55,6 +54,15 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
|
|
|
@Resource
|
|
|
private GamePastRecordsService gamePastRecordsService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private AppUserService appUserService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private GameUserService gameUserService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private GameTaskDetailService gameTaskDetailService;
|
|
|
+
|
|
|
@Override
|
|
|
public Game selectByGameCode(String gameCode) {
|
|
|
CurrentLoginUser currentUser = tokenUtil.getCurrentUser();
|
|
|
@@ -104,6 +112,8 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
|
|
|
gameDto.setFullFlag(game.getFullFlag());
|
|
|
//边框
|
|
|
gameDto.setFrameImg(game.getFrameImg());
|
|
|
+ // 科学原理
|
|
|
+ gameDto.setScientificPrinciple(game.getScientificPrinciple());
|
|
|
//游戏标签
|
|
|
SysDictData sysDictData = sysDictDataService.selectByDictTypeAndValue("game_type", game.getGameType());
|
|
|
gameDto.setGameType(sysDictData.getDictLabel());
|
|
|
@@ -136,10 +146,15 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
|
|
|
Integer gamecode = Integer.parseInt(gameDb.getGameCode())+1;
|
|
|
game.setGameCode(String.valueOf(gamecode));
|
|
|
game.setStatus(StatusEnums.OK.getIntCode());
|
|
|
+ // 新增给所有用户加上游戏
|
|
|
+ List<AppUser> appUsers = appUserService.list();
|
|
|
+ List<GameUser> gameUsers = buildGameUsers(game, appUsers);
|
|
|
+ gameUserService.saveBatch(gameUsers);
|
|
|
return save(game);
|
|
|
}
|
|
|
Game gameUpdate = this.getById(game.getId());
|
|
|
if (ObjectUtils.isNotNull(gameUpdate)){
|
|
|
+ // 修改游戏 同步数据给用户游戏
|
|
|
GameUser gameUser = new GameUser();
|
|
|
gameUser.setTotalNum(game.getTotalNum());
|
|
|
gameUser.setGameType(game.getGameType());
|
|
|
@@ -152,6 +167,15 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
|
|
|
LambdaQueryWrapper<GameUser> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(GameUser::getGameCode,gameUpdate.getGameCode());
|
|
|
gameUserMapper.update(gameUser,wrapper);
|
|
|
+ // 修改游戏 同步数据给专属任务游戏
|
|
|
+ GameTaskDetail gameTaskDetail = new GameTaskDetail();
|
|
|
+ gameTaskDetail.setGameName(game.getGameName());
|
|
|
+ gameTaskDetail.setGameType(game.getGameType());
|
|
|
+ gameTaskDetail.setGameUrl(game.getGameUrl());
|
|
|
+ LambdaQueryWrapper<GameTaskDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(GameTaskDetail::getGameCode,gameUpdate.getGameCode());
|
|
|
+ lambdaQueryWrapper.eq(GameTaskDetail::getStatus,"1");
|
|
|
+ gameTaskDetailService.update(gameTaskDetail,lambdaQueryWrapper);
|
|
|
|
|
|
}
|
|
|
return saveOrUpdate(game);
|
|
|
@@ -170,10 +194,45 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
|
|
|
LambdaQueryWrapper<GameUser> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(GameUser::getGameCode,game.getGameCode());
|
|
|
gameUserMapper.delete(wrapper);
|
|
|
+ // 删除理疗任务游戏
|
|
|
+ LambdaQueryWrapper<GameTaskDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(GameTaskDetail::getGameCode,game.getGameCode());
|
|
|
+ lambdaQueryWrapper.eq(GameTaskDetail::getStatus,"1");
|
|
|
+ gameTaskDetailService.remove(lambdaQueryWrapper);
|
|
|
// 删除游戏
|
|
|
return removeById(gameId);
|
|
|
}
|
|
|
|
|
|
+ private List<GameUser> buildGameUsers(Game game, List<AppUser> appUsers){
|
|
|
+ Date current = DateUtil.date();
|
|
|
+ List<GameUser> gameUsers = new ArrayList<>();
|
|
|
+ for (AppUser appUser : appUsers) {
|
|
|
+ GameUser gameUser = new GameUser();
|
|
|
+ gameUser.setId(IdWorker.getId());
|
|
|
+ gameUser.setGameCode(game.getGameCode());
|
|
|
+ gameUser.setGameName(game.getGameName());
|
|
|
+ gameUser.setGameUrl(game.getGameUrl());
|
|
|
+ gameUser.setGameType(game.getGameType());
|
|
|
+ gameUser.setUserId(appUser.getId());
|
|
|
+ gameUser.setUserName(appUser.getName());
|
|
|
+ gameUser.setPlayClass("C");
|
|
|
+ gameUser.setStatus("1");
|
|
|
+ gameUser.setCurrentLevel(1);
|
|
|
+ gameUser.setTotalNum(game.getTotalNum());
|
|
|
+ gameUser.setCreateTime(current);
|
|
|
+ gameUser.setUpdateTime(current);
|
|
|
+ gameUser.setOrgCode(game.getOrgCode());
|
|
|
+ gameUser.setOrgName(game.getOrgName());
|
|
|
+ gameUser.setGameDifficulty(game.getGameDifficulty());
|
|
|
+ gameUser.setGameDifficultyRate(game.getGameDifficultyRate());
|
|
|
+ gameUser.setGameDuration(game.getGameDuration());
|
|
|
+ gameUser.setGameCoverImage(game.getGameCoverImage());
|
|
|
+ gameUsers.add(gameUser);
|
|
|
+ }
|
|
|
+ return gameUsers;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|