refactor(game): 重构游戏服务实现类
- 优化 GameServiceImpl 类的代码结构,增加日志记录和依赖注入 - 新增 insertGameBettingDetails 方法处理游戏投注详细信息插入 - 修改 GameTask 类,使用新的游戏服务方法 - 更新 IGameService 接口,添加新的方法定义main-KM
parent
3571c94fd3
commit
5cddf1b783
|
@ -2,6 +2,7 @@ package com.ff.game.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.dtflys.forest.annotation.Body;
|
||||||
import com.ff.api.response.GameResponse;
|
import com.ff.api.response.GameResponse;
|
||||||
import com.ff.game.api.request.GameUniqueDTO;
|
import com.ff.game.api.request.GameUniqueDTO;
|
||||||
import com.ff.game.domain.Game;
|
import com.ff.game.domain.Game;
|
||||||
|
@ -95,5 +96,14 @@ public interface IGameService
|
||||||
*/
|
*/
|
||||||
List<GameResponse> selectGameResponseList();
|
List<GameResponse> selectGameResponseList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入游戏投注详细信息
|
||||||
|
*
|
||||||
|
* @param startTime 开始时间
|
||||||
|
* @param endTime 结束时间
|
||||||
|
* @param platformCode 平台代码
|
||||||
|
*/
|
||||||
|
void insertGameBettingDetails(Long startTime,Long endTime,String platformCode);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,21 @@ package com.ff.game.service.impl;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.ff.api.response.GameResponse;
|
import com.ff.api.response.GameResponse;
|
||||||
import com.ff.base.constant.ConfigConstants;
|
import com.ff.base.constant.ConfigConstants;
|
||||||
import com.ff.base.utils.DateUtils;
|
import com.ff.base.utils.DateUtils;
|
||||||
|
import com.ff.game.api.IGamesService;
|
||||||
|
import com.ff.game.api.request.BetRecordByTimeDTO;
|
||||||
import com.ff.game.api.request.GameUniqueDTO;
|
import com.ff.game.api.request.GameUniqueDTO;
|
||||||
|
import com.ff.game.api.request.GamesBaseRequestDTO;
|
||||||
|
import com.ff.game.domain.GameSecretKey;
|
||||||
import com.ff.game.dto.GameDTO;
|
import com.ff.game.dto.GameDTO;
|
||||||
|
import com.ff.game.service.IGameSecretKeyService;
|
||||||
import com.ff.member.service.IMemberService;
|
import com.ff.member.service.IMemberService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ff.game.mapper.GameMapper;
|
import com.ff.game.mapper.GameMapper;
|
||||||
|
@ -25,14 +32,21 @@ import javax.annotation.Resource;
|
||||||
* @date 2025-02-10
|
* @date 2025-02-10
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class GameServiceImpl implements IGameService
|
@Slf4j
|
||||||
{
|
public class GameServiceImpl implements IGameService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private GameMapper gameMapper;
|
private GameMapper gameMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IMemberService memberService;
|
private IMemberService memberService;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IGameSecretKeyService gameSecretKeyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Map<String, IGamesService> gamesService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询平台子游戏管理
|
* 查询平台子游戏管理
|
||||||
*
|
*
|
||||||
|
@ -40,8 +54,7 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 平台子游戏管理
|
* @return 平台子游戏管理
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Game selectGameById(Long id)
|
public Game selectGameById(Long id) {
|
||||||
{
|
|
||||||
return gameMapper.selectGameById(id);
|
return gameMapper.selectGameById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,8 +65,7 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 平台子游戏管理
|
* @return 平台子游戏管理
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<Game> selectGameList(Game game)
|
public List<Game> selectGameList(Game game) {
|
||||||
{
|
|
||||||
return gameMapper.selectGameList(game);
|
return gameMapper.selectGameList(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,9 +87,8 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertGame(Game game)
|
public int insertGame(Game game) {
|
||||||
{
|
if (game.getId() == null) {
|
||||||
if (game.getId() == null){
|
|
||||||
game.setId(IdUtil.getSnowflakeNextId());
|
game.setId(IdUtil.getSnowflakeNextId());
|
||||||
}
|
}
|
||||||
game.setCreateTime(DateUtils.getNowDate());
|
game.setCreateTime(DateUtils.getNowDate());
|
||||||
|
@ -91,8 +102,7 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateGame(Game game)
|
public int updateGame(Game game) {
|
||||||
{
|
|
||||||
game.setUpdateTime(DateUtils.getNowDate());
|
game.setUpdateTime(DateUtils.getNowDate());
|
||||||
return gameMapper.updateGame(game);
|
return gameMapper.updateGame(game);
|
||||||
}
|
}
|
||||||
|
@ -104,8 +114,7 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteGameByIds(Long[] ids)
|
public int deleteGameByIds(Long[] ids) {
|
||||||
{
|
|
||||||
return gameMapper.deleteGameByIds(ids);
|
return gameMapper.deleteGameByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,8 +125,7 @@ public class GameServiceImpl implements IGameService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteGameById(Long id)
|
public int deleteGameById(Long id) {
|
||||||
{
|
|
||||||
return gameMapper.deleteGameById(id);
|
return gameMapper.deleteGameById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +142,6 @@ public class GameServiceImpl implements IGameService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 选择游戏唯一列表
|
* 选择游戏唯一列表
|
||||||
*
|
*
|
||||||
|
@ -156,5 +163,36 @@ public class GameServiceImpl implements IGameService
|
||||||
return gameMapper.selectGameResponseList();
|
return gameMapper.selectGameResponseList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入游戏投注详细信息
|
||||||
|
*
|
||||||
|
* @param startTime 开始时间
|
||||||
|
* @param endTime 结束时间
|
||||||
|
* @param platformCode 平台代码
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void insertGameBettingDetails(Long startTime, Long endTime, String platformCode) {
|
||||||
|
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(platformCode).build());
|
||||||
|
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||||
|
try {
|
||||||
|
gamesService.get(platformCode).getGameList(GamesBaseRequestDTO.builder()
|
||||||
|
.agentId(gameSecretKey.getCode())
|
||||||
|
.agentKey(gameSecretKey.getKey())
|
||||||
|
.build());
|
||||||
|
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||||
|
betRecordByTimeDTO.setGamePlatform(gameSecretKey.getPlatform());
|
||||||
|
betRecordByTimeDTO.setStartTime(startTime);
|
||||||
|
betRecordByTimeDTO.setEndTime(endTime);
|
||||||
|
betRecordByTimeDTO.setPage(1);
|
||||||
|
betRecordByTimeDTO.setPageLimit(1000);
|
||||||
|
betRecordByTimeDTO.setAgentId(gameSecretKey.getCode());
|
||||||
|
betRecordByTimeDTO.setAgentKey(gameSecretKey.getKey());
|
||||||
|
gamesService.get(platformCode).getBetRecordByHistoryTime(betRecordByTimeDTO);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("查询 平台 {} 投注记录失败,错误信息 {}", gameSecretKey.getCode(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,7 @@ import com.ff.game.domain.GameExchangeMoney;
|
||||||
import com.ff.game.domain.GameSecretKey;
|
import com.ff.game.domain.GameSecretKey;
|
||||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||||
import com.ff.game.dto.GameSecretKeyDTO;
|
import com.ff.game.dto.GameSecretKeyDTO;
|
||||||
import com.ff.game.service.IGameExchangeMoneyService;
|
import com.ff.game.service.*;
|
||||||
import com.ff.game.service.IGamePlatformService;
|
|
||||||
import com.ff.game.service.IGameSecretKeyCurrencyService;
|
|
||||||
import com.ff.game.service.IGameSecretKeyService;
|
|
||||||
import com.ff.member.domain.Member;
|
import com.ff.member.domain.Member;
|
||||||
import com.ff.member.service.IMemberService;
|
import com.ff.member.service.IMemberService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -77,7 +74,11 @@ public class GameTask {
|
||||||
private IMemberService memberService;
|
private IMemberService memberService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IGameService gameService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入游戏投注详细信息
|
* 插入游戏投注详细信息
|
||||||
|
@ -93,7 +94,7 @@ public class GameTask {
|
||||||
for (String gameKey : gamesService.keySet()) {
|
for (String gameKey : gamesService.keySet()) {
|
||||||
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
||||||
//特殊的平台跳过
|
//特殊的平台跳过
|
||||||
if (NGPlatforms.exists(platformCode)|| GamePlatforms.FC.getInfo().equals(platformCode)) {
|
if (NGPlatforms.exists(platformCode) || GamePlatforms.FC.getInfo().equals(platformCode)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,47 +169,60 @@ public class GameTask {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入历史游戏投注详细信息 部分平台使用
|
* 插入FC游戏投注详细信息
|
||||||
*
|
*
|
||||||
* @param backTime 返回时间
|
* @param backTime 返回时间
|
||||||
*/
|
*/
|
||||||
public void insertHistoryGameBettingDetails(Integer backTime) {
|
public void insertFCHistoryGameBettingDetails(Integer backTime) {
|
||||||
|
|
||||||
//捞取指定分钟前的数据
|
|
||||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||||
Long endTime = DateUtils.getNowDate();
|
Long endTime = DateUtils.getNowDate();
|
||||||
|
//捞取指定分钟前的数据
|
||||||
|
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.FC.getInfo());
|
||||||
for (String gameKey : gamesService.keySet()) {
|
|
||||||
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
|
||||||
|
|
||||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(platformCode).build());
|
|
||||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
|
||||||
try {
|
|
||||||
gamesService.get(gameKey).getGameList(GamesBaseRequestDTO.builder()
|
|
||||||
.agentId(gameSecretKey.getCode())
|
|
||||||
.agentKey(gameSecretKey.getKey())
|
|
||||||
.build());
|
|
||||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
|
||||||
betRecordByTimeDTO.setGamePlatform(gameSecretKey.getPlatform());
|
|
||||||
betRecordByTimeDTO.setStartTime(startTime);
|
|
||||||
betRecordByTimeDTO.setEndTime(endTime);
|
|
||||||
betRecordByTimeDTO.setPage(1);
|
|
||||||
betRecordByTimeDTO.setPageLimit(1000);
|
|
||||||
betRecordByTimeDTO.setAgentId(gameSecretKey.getCode());
|
|
||||||
betRecordByTimeDTO.setAgentKey(gameSecretKey.getKey());
|
|
||||||
gamesService.get(gameKey).getBetRecordByHistoryTime(betRecordByTimeDTO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("查询 平台 {} 投注记录失败,错误信息 {}", gameSecretKey.getCode(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入AE游戏投注详细信息
|
||||||
|
*
|
||||||
|
* @param backTime 返回时间
|
||||||
|
*/
|
||||||
|
public void insertAEHistoryGameBettingDetails(Integer backTime) {
|
||||||
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||||
|
Long endTime = DateUtils.getNowDate();
|
||||||
|
//捞取指定分钟前的数据
|
||||||
|
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.AE.getInfo());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入PGX游戏投注详细信息
|
||||||
|
*
|
||||||
|
* @param backTime 返回时间
|
||||||
|
*/
|
||||||
|
public void insertPGXHistoryGameBettingDetails(Integer backTime) {
|
||||||
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||||
|
Long endTime = DateUtils.getNowDate();
|
||||||
|
//捞取指定分钟前的数据
|
||||||
|
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.PGX.getInfo());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入MT游戏投注详细信息
|
||||||
|
*
|
||||||
|
* @param backTime 返回时间
|
||||||
|
*/
|
||||||
|
public void insertMTHistoryGameBettingDetails(Integer backTime) {
|
||||||
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||||
|
Long endTime = DateUtils.getNowDate();
|
||||||
|
|
||||||
|
//捞取指定分钟前的数据
|
||||||
|
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.MeiTian.getCode());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入游戏ngbetting详细信息
|
* 插入游戏ngbetting详细信息
|
||||||
|
|
Loading…
Reference in New Issue