refactor(game): 重构游戏服务实现类

- 优化 GameServiceImpl 类的代码结构,增加日志记录和依赖注入
- 新增 insertGameBettingDetails 方法处理游戏投注详细信息插入
- 修改 GameTask 类,使用新的游戏服务方法
- 更新 IGameService 接口,添加新的方法定义
main-KM
shi 2025-04-02 09:16:06 +08:00
parent 3571c94fd3
commit 5cddf1b783
3 changed files with 115 additions and 53 deletions

View File

@ -2,6 +2,7 @@ package com.ff.game.service;
import java.util.List;
import com.dtflys.forest.annotation.Body;
import com.ff.api.response.GameResponse;
import com.ff.game.api.request.GameUniqueDTO;
import com.ff.game.domain.Game;
@ -95,5 +96,14 @@ public interface IGameService
*/
List<GameResponse> selectGameResponseList();
/**
*
*
* @param startTime
* @param endTime
* @param platformCode
*/
void insertGameBettingDetails(Long startTime,Long endTime,String platformCode);
}

View File

@ -2,14 +2,21 @@ package com.ff.game.service.impl;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import cn.hutool.core.util.IdUtil;
import com.ff.api.response.GameResponse;
import com.ff.base.constant.ConfigConstants;
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.GamesBaseRequestDTO;
import com.ff.game.domain.GameSecretKey;
import com.ff.game.dto.GameDTO;
import com.ff.game.service.IGameSecretKeyService;
import com.ff.member.service.IMemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ff.game.mapper.GameMapper;
@ -25,14 +32,21 @@ import javax.annotation.Resource;
* @date 2025-02-10
*/
@Service
public class GameServiceImpl implements IGameService
{
@Slf4j
public class GameServiceImpl implements IGameService {
@Autowired
private GameMapper gameMapper;
@Resource
private IMemberService memberService;
@Resource
private IGameSecretKeyService gameSecretKeyService;
@Autowired
private Map<String, IGamesService> gamesService;
/**
*
*
@ -40,8 +54,7 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public Game selectGameById(Long id)
{
public Game selectGameById(Long id) {
return gameMapper.selectGameById(id);
}
@ -52,8 +65,7 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public List<Game> selectGameList(Game game)
{
public List<Game> selectGameList(Game game) {
return gameMapper.selectGameList(game);
}
@ -75,9 +87,8 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public int insertGame(Game game)
{
if (game.getId() == null){
public int insertGame(Game game) {
if (game.getId() == null) {
game.setId(IdUtil.getSnowflakeNextId());
}
game.setCreateTime(DateUtils.getNowDate());
@ -91,8 +102,7 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public int updateGame(Game game)
{
public int updateGame(Game game) {
game.setUpdateTime(DateUtils.getNowDate());
return gameMapper.updateGame(game);
}
@ -104,8 +114,7 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public int deleteGameByIds(Long[] ids)
{
public int deleteGameByIds(Long[] ids) {
return gameMapper.deleteGameByIds(ids);
}
@ -116,8 +125,7 @@ public class GameServiceImpl implements IGameService
* @return
*/
@Override
public int deleteGameById(Long id)
{
public int deleteGameById(Long 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();
}
/**
*
*
* @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);
}
}
}
}

View File

@ -20,10 +20,7 @@ import com.ff.game.domain.GameExchangeMoney;
import com.ff.game.domain.GameSecretKey;
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
import com.ff.game.dto.GameSecretKeyDTO;
import com.ff.game.service.IGameExchangeMoneyService;
import com.ff.game.service.IGamePlatformService;
import com.ff.game.service.IGameSecretKeyCurrencyService;
import com.ff.game.service.IGameSecretKeyService;
import com.ff.game.service.*;
import com.ff.member.domain.Member;
import com.ff.member.service.IMemberService;
import lombok.extern.slf4j.Slf4j;
@ -79,6 +76,10 @@ public class GameTask {
@Resource
private RedisCache redisCache;
@Resource
private IGameService gameService;
/**
*
*/
@ -93,7 +94,7 @@ public class GameTask {
for (String gameKey : gamesService.keySet()) {
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;
}
@ -168,48 +169,61 @@ public class GameTask {
}
/**
* 使
* FC
*
* @param backTime
*/
public void insertHistoryGameBettingDetails(Integer backTime) {
public void insertFCHistoryGameBettingDetails(Integer backTime) {
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
Long endTime = DateUtils.getNowDate();
//捞取指定分钟前的数据
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.FC.getInfo());
}
/**
* 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();
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);
}
}
//捞取指定分钟前的数据
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.MeiTian.getCode());
}
}
/**
* ngbetting
*/