diff --git a/ff-game/src/main/java/com/ff/game/service/IGameService.java b/ff-game/src/main/java/com/ff/game/service/IGameService.java index 07e47ee..8c8572c 100644 --- a/ff-game/src/main/java/com/ff/game/service/IGameService.java +++ b/ff-game/src/main/java/com/ff/game/service/IGameService.java @@ -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 selectGameResponseList(); + /** + * 插入游戏投注详细信息 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param platformCode 平台代码 + */ + void insertGameBettingDetails(Long startTime,Long endTime,String platformCode); + } diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java index 1dcab48..f828da0 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java @@ -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 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 selectGameList(Game game) - { + public List 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 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); + } + } + } + } diff --git a/ff-game/src/main/java/com/ff/quartz/task/GameTask.java b/ff-game/src/main/java/com/ff/quartz/task/GameTask.java index fe43fbe..8a9f90b 100644 --- a/ff-game/src/main/java/com/ff/quartz/task/GameTask.java +++ b/ff-game/src/main/java/com/ff/quartz/task/GameTask.java @@ -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; @@ -77,7 +74,11 @@ public class GameTask { private IMemberService memberService; @Resource - private RedisCache redisCache; + 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,47 +169,60 @@ 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(); - - - for (String gameKey : gamesService.keySet()) { - String platformCode = gameKey.replace(Constants.SERVICE, ""); - - List 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.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(); + + //捞取指定分钟前的数据 + gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.MeiTian.getCode()); + + } /** * 插入游戏ngbetting详细信息