refactor(ff-game): 重构游戏平台相关代码

- 移除了 GameSecretKeyCurrency 相关的使用
- 优化了货币转换逻辑
- 简化了游戏平台和货币信息的处理- 调整了批量插入逻辑,使其更加通用
main-meitian
liaoyong 2025-04-07 11:22:47 +08:00
parent 40208aab98
commit b35fad13d1
7 changed files with 201 additions and 200 deletions

View File

@ -250,6 +250,7 @@ public class ApiMemberController extends BaseController {
key.setCode(keyInfo.getCode()); key.setCode(keyInfo.getCode());
key.setKey(keyInfo.getKey()); key.setKey(keyInfo.getKey());
key.setCurrency(targetCurrency); key.setCurrency(targetCurrency);
key.setSystemCurrency(memberInfoAllApiRequest.getCurrencyCode());
keys.add(key); keys.add(key);
} }
// 创建线程池 // 创建线程池
@ -276,6 +277,7 @@ public class ApiMemberController extends BaseController {
.accounts(member.getGameAccount()) .accounts(member.getGameAccount())
.agentId(gameSecretKey.getCode()) .agentId(gameSecretKey.getCode())
.currency(gameSecretKey.getCurrency()) .currency(gameSecretKey.getCurrency())
.systemCurrency(gameSecretKey.getSystemCurrency())
.agentKey(gameSecretKey.getKey()) .agentKey(gameSecretKey.getKey())
.build(); .build();
//查询余额 //查询余额
@ -317,6 +319,7 @@ public class ApiMemberController extends BaseController {
private String code; private String code;
private String currency; private String currency;
private String key; private String key;
private String systemCurrency;
} }
} }

View File

@ -255,15 +255,18 @@ public class GamesJILIServiceImpl implements IGamesService {
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.JILI.getCode()) + 1); game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.JILI.getCode()) + 1);
game.setGameName(gamesDataDTO.getName().getZhCN()); game.setGameName(gamesDataDTO.getName().getZhCN());
game.setCreateBy(Constants.SYSTEM); game.setCreateBy(Constants.SYSTEM);
List<NameInfo> nameInfos = new ArrayList<>();
nameInfos.add(new NameInfo(gamesDataDTO.getName().getZhCN(), "zh-CN"));
nameInfos.add(new NameInfo(gamesDataDTO.getName().getEnUS(), "en-US"));
game.setNameInfo(nameInfos);
gameService.insertGame(game); gameService.insertGame(game);
} else { } else {
game = games.get(0); game = games.get(0);
} }
gamesDataDTO.setSystemGameId(game.getId()); gamesDataDTO.setSystemGameId(game.getId());
List<NameInfo> nameInfos = new ArrayList<>();
nameInfos.add(new NameInfo(gamesDataDTO.getName().getZhCN(), "zh-CN"));
nameInfos.add(new NameInfo(gamesDataDTO.getName().getEnUS(), "en-US"));
game.setNameInfo(nameInfos);
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName /*List<GameName> gameNames = gameNameService.selectGameNameList(GameName
.builder() .builder()
@ -411,11 +414,8 @@ public class GamesJILIServiceImpl implements IGamesService {
//判断是否获取成功 //判断是否获取成功
if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) { if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) {
KeyInfo keyInfo = betRecordByTimeDTO.getKeyInfo();
String currency = keyInfo.getCurrency();
String targetCurrency = betRecordByTimeDTO.getVendor().getOurCurrency(currency);
//数据插入 //数据插入
this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO, currency, targetCurrency); this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO);
JILIBetRecordResponseDTO.DataBean dataBean = betRecordJILIResponse.getData(); JILIBetRecordResponseDTO.DataBean dataBean = betRecordJILIResponse.getData();
//获取下一页数据 //获取下一页数据
while (dataBean.getPagination().getCurrentPage() != dataBean.getPagination().getTotalPages() && dataBean.getPagination().getTotalPages() > 0) { while (dataBean.getPagination().getCurrentPage() != dataBean.getPagination().getTotalPages() && dataBean.getPagination().getTotalPages() > 0) {
@ -429,7 +429,7 @@ public class GamesJILIServiceImpl implements IGamesService {
dataBean = betRecordJILIResponse.getData(); dataBean = betRecordJILIResponse.getData();
if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) { if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) {
//数据插入 //数据插入
this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO, currency, targetCurrency); this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO);
} else { } else {
log.error("GameBettingDataJILIServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordJILIResponse.getErrorCode(), betRecordJILIResponse.getMessage()); log.error("GameBettingDataJILIServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordJILIResponse.getErrorCode(), betRecordJILIResponse.getMessage());
} }
@ -715,7 +715,7 @@ public class GamesJILIServiceImpl implements IGamesService {
* @param betRecordJILIResponse jiliresponse * @param betRecordJILIResponse jiliresponse
* @return {@link Integer } * @return {@link Integer }
*/ */
private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse, BetRecordByTimeDTO betRecordByTimeDTO, String systemCurrency, String currency) { private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
List<GameBettingDetails> gameBettingDetails = new ArrayList<>(); List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
List<String> wagersIds = new ArrayList<>(); List<String> wagersIds = new ArrayList<>();
//数据组装 //数据组装
@ -723,8 +723,9 @@ public class GamesJILIServiceImpl implements IGamesService {
//数据转化 //数据转化
for (JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO : dataBean.getResult()) { for (JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO : dataBean.getResult()) {
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder() GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
.systemCurrencyCode(systemCurrency) .systemCurrencyCode(betRecordByTimeDTO.getSystemCurrency())
.currencyCode(currency) .platform(betRecordByTimeDTO.getVendor())
.currencyCode(betRecordByTimeDTO.getCurrency())
.platform(betRecordByTimeDTO.getVendor()) .platform(betRecordByTimeDTO.getVendor())
.data(jiliBetRecordDataResponseDTO).build()); .data(jiliBetRecordDataResponseDTO).build());
if (!ObjectUtils.isEmpty(bettingDetails)) { if (!ObjectUtils.isEmpty(bettingDetails)) {

View File

@ -8,7 +8,6 @@ import com.ff.base.core.redis.RedisCache;
import com.ff.base.enums.*; import com.ff.base.enums.*;
import com.ff.base.exception.base.ApiException; import com.ff.base.exception.base.ApiException;
import com.ff.base.exception.base.BaseException; import com.ff.base.exception.base.BaseException;
import com.ff.base.system.service.ISysConfigService;
import com.ff.base.utils.DateUtils; import com.ff.base.utils.DateUtils;
import com.ff.base.utils.JsonUtil; import com.ff.base.utils.JsonUtil;
import com.ff.base.utils.StringUtils; import com.ff.base.utils.StringUtils;
@ -21,7 +20,6 @@ import com.ff.game.api.km.dto.*;
import com.ff.game.api.request.*; import com.ff.game.api.request.*;
import com.ff.game.api.xk.dto.XKGamesDTO; import com.ff.game.api.xk.dto.XKGamesDTO;
import com.ff.game.domain.*; import com.ff.game.domain.*;
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
import com.ff.game.service.*; import com.ff.game.service.*;
import com.ff.member.domain.Member; import com.ff.member.domain.Member;
import com.ff.member.service.IMemberService; import com.ff.member.service.IMemberService;
@ -53,20 +51,12 @@ public class GamesKMServiceImpl implements IGamesService {
@Resource @Resource
private IPlatformService platformService; private IPlatformService platformService;
@Resource
private ISysConfigService configService;
@Resource @Resource
private RedisCache redisCache; private RedisCache redisCache;
@Resource @Resource
private IGameExchangeMoneyService gameExchangeMoneyService; private IGameExchangeMoneyService gameExchangeMoneyService;
@Resource
private IGamePlatformService gamePlatformService;
@Resource @Resource
private IGameService gameService; private IGameService gameService;
@ -74,14 +64,6 @@ public class GamesKMServiceImpl implements IGamesService {
@Resource @Resource
private IMemberService memberService; private IMemberService memberService;
@Resource
private IGameFreeRecordService gameFreeRecordService;
@Resource
private IGameSecretKeyService gameSecretKeyService;
@Resource
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
@Resource @Resource
private KMClient KMClient; private KMClient KMClient;
@ -186,14 +168,14 @@ public class GamesKMServiceImpl implements IGamesService {
public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO) { public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO) {
log.info("GamesDGServiceImpl [getMemberInfo] 请求参数 {}", memberInfoRequestDTO); log.info("GamesDGServiceImpl [getMemberInfo] 请求参数 {}", memberInfoRequestDTO);
Map<String, Object> paramsMap = new HashMap<>(); Map<String, Object> paramsMap = new HashMap<>();
Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts()); // Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts());
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCode(GamePlatforms.KM.getInfo()) // .platformCode(GamePlatforms.KM.getInfo())
.currency(member.getCurrencyCode()) // .currency(member.getCurrencyCode())
.build()); // .build());
paramsMap.put("userid", memberInfoRequestDTO.getAccounts()); paramsMap.put("userid", memberInfoRequestDTO.getAccounts());
paramsMap.put("cur", currencyDTO.getCurrency()); paramsMap.put("cur", memberInfoRequestDTO.getCurrency());
Map<String, Object> headerMap = this.getKey(memberInfoRequestDTO); Map<String, Object> headerMap = this.getKey(memberInfoRequestDTO);
KMBalanceResponse memberInfo = KMClient.getMemberInfo(JsonUtil.mapToQueryString(paramsMap), headerMap); KMBalanceResponse memberInfo = KMClient.getMemberInfo(JsonUtil.mapToQueryString(paramsMap), headerMap);
if (ObjectUtils.isEmpty(memberInfo.getErrorCode()) || this.getIsSuccess(memberInfo.getErrorCode())) { if (ObjectUtils.isEmpty(memberInfo.getErrorCode()) || this.getIsSuccess(memberInfo.getErrorCode())) {
@ -214,17 +196,17 @@ public class GamesKMServiceImpl implements IGamesService {
log.info("GamesKMServiceImpl [loginWithoutRedirect] 请求参数 {}", gamesLogin); log.info("GamesKMServiceImpl [loginWithoutRedirect] 请求参数 {}", gamesLogin);
String kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount()); String kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount());
if (StringUtils.isEmpty(kmUserToken)) { if (StringUtils.isEmpty(kmUserToken)) {
Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount()); // Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount());
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCode(GamePlatforms.KM.getInfo()) // .platformCode(GamePlatforms.KM.getInfo())
.currency(member.getCurrencyCode()) // .currency(member.getCurrencyCode())
.build()); // .build());
CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder() CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
.account(gamesLogin.getAccount()) .account(gamesLogin.getAccount())
.agentId(gamesLogin.getAgentId()) .agentId(gamesLogin.getAgentId())
.agentKey(gamesLogin.getAgentKey()) .agentKey(gamesLogin.getAgentKey())
.currency(currencyDTO.getCurrency()) .currency(gamesLogin.getCurrency())
.build(); .build();
this.createMember(gamesBaseRequestDTO); this.createMember(gamesBaseRequestDTO);
kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount()); kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount());
@ -287,11 +269,11 @@ public class GamesKMServiceImpl implements IGamesService {
.anyMatch(pc -> pc.getCode().equals(mobile.getCode()))) .anyMatch(pc -> pc.getCode().equals(mobile.getCode())))
.collect(Collectors.toList()); .collect(Collectors.toList());
for (KMGameResponse.Game game : games) { for (KMGameResponse.Game game : games) {
GamePlatform gamePlatform = GamePlatform.builder() // GamePlatform gamePlatform = GamePlatform.builder()
.platformType(KMGameType.findSystemByCode(game.getProviderCode())) // .platformType(KMGameType.findSystemByCode(game.getProviderCode()))
.platformCode(GamePlatforms.KM.getCode()) // .platformCode(GamePlatforms.KM.getCode())
.build(); // .build();
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); /*List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
//没有此平台就新增一个平台 //没有此平台就新增一个平台
if (CollectionUtils.isEmpty(gamePlatforms)) { if (CollectionUtils.isEmpty(gamePlatforms)) {
gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(game.getProviderCode())); gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(game.getProviderCode()));
@ -300,9 +282,12 @@ public class GamesKMServiceImpl implements IGamesService {
gamePlatformService.insertGamePlatform(gamePlatform); gamePlatformService.insertGamePlatform(gamePlatform);
} else { } else {
gamePlatform = gamePlatforms.get(0); gamePlatform = gamePlatforms.get(0);
} }*/
Integer platformType = KMGameType.findSystemByCode(game.getProviderCode());
Game gameOne = Game.builder() Game gameOne = Game.builder()
.platformId(gamePlatform.getId()) //.platformId(gamePlatform.getId())
.platformCode(GamePlatforms.KM.getCode())
.platformType(platformType)
.gameCode(game.getCode()) .gameCode(game.getCode())
.build(); .build();
List<Game> gameOnes = gameService.selectGameList(gameOne); List<Game> gameOnes = gameService.selectGameList(gameOne);
@ -327,11 +312,11 @@ public class GamesKMServiceImpl implements IGamesService {
*/ */
private List<KMGameResponse.Game> gameList(KMGameResponse gameList, Integer ingress) { private List<KMGameResponse.Game> gameList(KMGameResponse gameList, Integer ingress) {
for (KMGameResponse.Game gamesDataDTO : gameList.getGames()) { for (KMGameResponse.Game gamesDataDTO : gameList.getGames()) {
GamePlatform gamePlatform = GamePlatform.builder() // GamePlatform gamePlatform = GamePlatform.builder()
.platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode())) // .platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode()))
.platformCode(GamePlatforms.KM.getCode()) // .platformCode(GamePlatforms.KM.getCode())
.build(); // .build();
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); /*List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
//没有此平台就新增一个平台 //没有此平台就新增一个平台
if (CollectionUtils.isEmpty(gamePlatforms)) { if (CollectionUtils.isEmpty(gamePlatforms)) {
gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(gamesDataDTO.getProviderCode())); gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(gamesDataDTO.getProviderCode()));
@ -340,9 +325,12 @@ public class GamesKMServiceImpl implements IGamesService {
gamePlatformService.insertGamePlatform(gamePlatform); gamePlatformService.insertGamePlatform(gamePlatform);
} else { } else {
gamePlatform = gamePlatforms.get(0); gamePlatform = gamePlatforms.get(0);
} }*/
Integer platformType = KMGameType.findSystemByCode(gamesDataDTO.getProviderCode());
Game game = Game.builder() Game game = Game.builder()
.platformId(gamePlatform.getId()) //.platformId(gamePlatform.getId())
.platformCode(GamePlatforms.KM.getCode())
.platformType(platformType)
.gameCode(gamesDataDTO.getCode()) .gameCode(gamesDataDTO.getCode())
.build(); .build();
List<Game> games = gameService.selectGameList(game); List<Game> games = gameService.selectGameList(game);
@ -351,24 +339,27 @@ public class GamesKMServiceImpl implements IGamesService {
game.setGameSourceType(gamesDataDTO.getProviderCode()); game.setGameSourceType(gamesDataDTO.getProviderCode());
game.setFreespin(Boolean.FALSE); game.setFreespin(Boolean.FALSE);
game.setDemoStatus(gamesDataDTO.getSupportDemoUrl()); game.setDemoStatus(gamesDataDTO.getSupportDemoUrl());
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1); game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.KM.getCode()) + 1);
game.setGameName(gamesDataDTO.getName()); game.setGameName(gamesDataDTO.getName());
game.setCreateBy(Constants.SYSTEM); game.setCreateBy(Constants.SYSTEM);
game.setIngress(ingress); game.setIngress(ingress);
List<NameInfo> nameInfos = new ArrayList<>();
nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN"));
game.setNameInfo(nameInfos);
gameService.insertGame(game); gameService.insertGame(game);
} else { } else {
game = games.get(0); game = games.get(0);
} }
gamesDataDTO.setSystemGameId(game.getId()); gamesDataDTO.setSystemGameId(game.getId());
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); // List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
if (CollectionUtils.isEmpty(gameNames)) { // if (CollectionUtils.isEmpty(gameNames)) {
gameNameService.insertGameName(GameName.builder() // gameNameService.insertGameName(GameName.builder()
.gameId(game.getId()) // .gameId(game.getId())
.gameName(game.getGameName()) // .gameName(game.getGameName())
.langCode("zh-CN") // .langCode("zh-CN")
.createBy(Constants.SYSTEM) // .createBy(Constants.SYSTEM)
.build()); // .build());
} // }
} }
return gameList.getGames(); return gameList.getGames();
@ -384,10 +375,10 @@ public class GamesKMServiceImpl implements IGamesService {
@Transactional @Transactional
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
log.info("GamesKMServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO); log.info("GamesKMServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCode(GamePlatforms.KM.getInfo()) // .platformCode(GamePlatforms.KM.getInfo())
.currency(exchangeTransferMoneyRequestDTO.getCurrency()) // .currency(exchangeTransferMoneyRequestDTO.getCurrency())
.build()); // .build());
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
String transactionId = GamePlatforms.KM.getInfo() + IdUtils.simpleUUID(); String transactionId = GamePlatforms.KM.getInfo() + IdUtils.simpleUUID();
@ -407,7 +398,7 @@ public class GamesKMServiceImpl implements IGamesService {
.quota(exchangeTransferMoneyRequestDTO.getQuota()) .quota(exchangeTransferMoneyRequestDTO.getQuota())
.balance(exchangeTransferMoneyRequestDTO.getAmount()) .balance(exchangeTransferMoneyRequestDTO.getAmount())
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
.currencyCode(currencyDTO.getSystemCurrency()) .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
.memberId(member.getId()) .memberId(member.getId())
.transactionId(transactionId) .transactionId(transactionId)
.platformCode(GamePlatforms.KM.getInfo()) .platformCode(GamePlatforms.KM.getInfo())
@ -430,7 +421,7 @@ public class GamesKMServiceImpl implements IGamesService {
Map<String, Object> params = new LinkedHashMap<>(); Map<String, Object> params = new LinkedHashMap<>();
params.put("userid", exchangeTransferMoneyRequestDTO.getAccount()); params.put("userid", exchangeTransferMoneyRequestDTO.getAccount());
params.put("amt", amount); params.put("amt", amount);
params.put("cur", currencyDTO.getCurrency()); params.put("cur", exchangeTransferMoneyRequestDTO.getCurrency());
params.put("txid", transactionId); params.put("txid", transactionId);
Map<String, Object> headerMap = this.getKey(exchangeTransferMoneyRequestDTO); Map<String, Object> headerMap = this.getKey(exchangeTransferMoneyRequestDTO);
@ -503,9 +494,7 @@ public class GamesKMServiceImpl implements IGamesService {
KMBetRecordResponse betRecordByTime = KMClient.getBetRecordByTime(JsonUtil.mapToQueryString(params), key); KMBetRecordResponse betRecordByTime = KMClient.getBetRecordByTime(JsonUtil.mapToQueryString(params), key);
if (ObjectUtils.isEmpty(betRecordByTime.getErrorCode()) || this.getIsSuccess(betRecordByTime.getErrorCode())) { if (ObjectUtils.isEmpty(betRecordByTime.getErrorCode()) || this.getIsSuccess(betRecordByTime.getErrorCode())) {
this.batchInsert(betRecordByTime); this.batchInsert(betRecordByTime, betRecordByTimeDTO);
return Boolean.TRUE; return Boolean.TRUE;
} else { } else {
log.error("GamesKMServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordByTime.getErrorCode(), betRecordByTime.getErrorDescription()); log.error("GamesKMServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordByTime.getErrorCode(), betRecordByTime.getErrorDescription());
@ -628,14 +617,18 @@ public class GamesKMServiceImpl implements IGamesService {
* *
* @param betRecordByTime dgdto * @param betRecordByTime dgdto
*/ */
private void batchInsert(KMBetRecordResponse betRecordByTime) { private void batchInsert(KMBetRecordResponse betRecordByTime, BetRecordByTimeDTO betRecordByTimeDTO) {
List<GameBettingDetails> gameBettingDetails = new ArrayList<>(); List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
List<String> wagersIds = new ArrayList<>(); List<String> wagersIds = new ArrayList<>();
//数据组装 //数据组装
List<KMBetRecordResponse.Bet> report = betRecordByTime.getBets(); List<KMBetRecordResponse.Bet> report = betRecordByTime.getBets();
//数据转化 //数据转化
for (KMBetRecordResponse.Bet bean : report) { for (KMBetRecordResponse.Bet bean : report) {
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build()); GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
//.systemCurrencyCode(systemCurrency)
//.currencyCode(targetCurrency)
.platform(betRecordByTimeDTO.getVendor())
.data(bean).build());
if (!ObjectUtils.isEmpty(bettingDetails)) { if (!ObjectUtils.isEmpty(bettingDetails)) {
bettingDetails.setId(IdUtil.getSnowflakeNextId()); bettingDetails.setId(IdUtil.getSnowflakeNextId());
gameBettingDetails.add(bettingDetails); gameBettingDetails.add(bettingDetails);
@ -666,12 +659,11 @@ public class GamesKMServiceImpl implements IGamesService {
public GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO) { public GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO) {
//转化类 //转化类
KMBetRecordResponse.Bet resultBean = (KMBetRecordResponse.Bet) gamesDataBuildDTO.getData(); KMBetRecordResponse.Bet resultBean = (KMBetRecordResponse.Bet) gamesDataBuildDTO.getData();
//
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // .platformCode(GamePlatforms.KM.getInfo())
.platformCode(GamePlatforms.KM.getInfo()) // .currency(resultBean.getCurrency())
.currency(resultBean.getCurrency()) // .build());
.build());
Member member = memberService.selectMemberByGameAccount(resultBean.getUserId()); Member member = memberService.selectMemberByGameAccount(resultBean.getUserId());
@ -697,20 +689,22 @@ public class GamesKMServiceImpl implements IGamesService {
} }
Platform platform = gamesDataBuildDTO.getPlatform();
String systemCurrency = platform.getOurCurrency(resultBean.getCurrency());
//数据构造 //数据构造
GameBettingDetails gameBettingDetails = GameBettingDetails.builder() GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
.tenantKey(member.getTenantKey()) .tenantKey(member.getTenantKey())
//保存我们的币种id //保存我们的币种id
.currencyCode(currencyDTO.getSystemCurrency()) .currencyCode(systemCurrency)
.memberId(member.getId()) .memberId(member.getId())
.gameCode(gamesDataDTO.getCode()) .gameCode(gamesDataDTO.getCode())
.gameType(PlatformType.CARD_GAME.getCode()) .gameType(PlatformType.CARD_GAME.getCode())
.platformCode(GamePlatforms.KM.getInfo()) .platformCode(GamePlatforms.KM.getCode())
.gameId(GAME_ID) .gameId(GAME_ID)
.gameName(gamesDataDTO.getName()) .gameName(gamesDataDTO.getName())
.gameStatus(gameStatus) .gameStatus(gameStatus)
.gameStatusType(1) .gameStatusType(1)
.gameCurrencyCode(currencyDTO.getCurrency()) .gameCurrencyCode(resultBean.getCurrency())
.account(resultBean.getUserId()) .account(resultBean.getUserId())
.wagersId(resultBean.getId()) .wagersId(resultBean.getId())
.wagersTime(resultBean.getBeton().getTime()) .wagersTime(resultBean.getBeton().getTime())

View File

@ -10,7 +10,6 @@ import com.ff.base.enums.*;
import com.ff.base.exception.base.ApiException; import com.ff.base.exception.base.ApiException;
import com.ff.base.exception.base.BaseException; import com.ff.base.exception.base.BaseException;
import com.ff.base.system.domain.SysConfig; import com.ff.base.system.domain.SysConfig;
import com.ff.base.system.service.ISysConfigService;
import com.ff.base.system.service.impl.SysConfigServiceImpl; import com.ff.base.system.service.impl.SysConfigServiceImpl;
import com.ff.base.utils.DateUtils; import com.ff.base.utils.DateUtils;
import com.ff.base.utils.sign.Md5Utils; import com.ff.base.utils.sign.Md5Utils;
@ -20,8 +19,9 @@ import com.ff.game.api.meitian.client.MeiTianClient;
import com.ff.game.api.meitian.dto.*; import com.ff.game.api.meitian.dto.*;
import com.ff.game.api.request.*; import com.ff.game.api.request.*;
import com.ff.game.domain.*; import com.ff.game.domain.*;
import com.ff.game.dto.GameSecretKeyCurrencyDTO; import com.ff.game.service.IGameBettingDetailsService;
import com.ff.game.service.*; import com.ff.game.service.IGameExchangeMoneyService;
import com.ff.game.service.IGameService;
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;
@ -55,20 +55,12 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class MeiTianGameServiceImpl implements IGamesService { public class MeiTianGameServiceImpl implements IGamesService {
@Resource
private ISysConfigService configService;
@Resource @Resource
private RedisCache redisCache; private RedisCache redisCache;
@Resource @Resource
private IGameExchangeMoneyService gameExchangeMoneyService; private IGameExchangeMoneyService gameExchangeMoneyService;
@Resource
private IGamePlatformService gamePlatformService;
@Resource @Resource
private IGameService gameService; private IGameService gameService;
@ -82,11 +74,6 @@ public class MeiTianGameServiceImpl implements IGamesService {
@Resource @Resource
private IGameBettingDetailsService gameBettingDetailsService; private IGameBettingDetailsService gameBettingDetailsService;
@Resource
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
@Resource
private IGameNameService gameNameService;
@Autowired @Autowired
private SysConfigServiceImpl sysConfigServiceImpl; private SysConfigServiceImpl sysConfigServiceImpl;
@ -230,7 +217,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
MeiTianGamesDTO gameList = new MeiTianGamesDTO(); MeiTianGamesDTO gameList = new MeiTianGamesDTO();
for (MeiTianGameDataDTO gamesDataDTO : gameList.getData()) { for (MeiTianGameDataDTO gamesDataDTO : gameList.getData()) {
GamePlatform gamePlatform = GamePlatform.builder() /* GamePlatform gamePlatform = GamePlatform.builder()
.platformType(MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId())) .platformType(MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId()))
.platformCode(GamePlatforms.MT.getCode()) .platformCode(GamePlatforms.MT.getCode())
.build(); .build();
@ -243,9 +230,12 @@ public class MeiTianGameServiceImpl implements IGamesService {
gamePlatformService.insertGamePlatform(gamePlatform); gamePlatformService.insertGamePlatform(gamePlatform);
} else { } else {
gamePlatform = gamePlatforms.get(0); gamePlatform = gamePlatforms.get(0);
} }*/
Integer platformType = MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId());
Game game = Game.builder() Game game = Game.builder()
.platformId(gamePlatform.getId()) //.platformId(gamePlatform.getId())
.platformCode(GamePlatforms.MT.getCode())
.platformType(platformType)
.gameCode(String.valueOf(gamesDataDTO.getGameId())) .gameCode(String.valueOf(gamesDataDTO.getGameId()))
.build(); .build();
List<Game> games = gameService.selectGameList(game); List<Game> games = gameService.selectGameList(game);
@ -253,16 +243,21 @@ public class MeiTianGameServiceImpl implements IGamesService {
if (CollectionUtils.isEmpty(games)) { if (CollectionUtils.isEmpty(games)) {
game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId())); game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId()));
game.setFreespin(false); game.setFreespin(false);
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1); game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.MT.getCode()) + 1);
game.setGameName(gamesDataDTO.getCnName()); game.setGameName(gamesDataDTO.getCnName());
game.setCreateBy(Constants.SYSTEM); game.setCreateBy(Constants.SYSTEM);
List<NameInfo> nameInfos = new ArrayList<>();
nameInfos.add(new NameInfo(gamesDataDTO.getCnName(), "zh-CN"));
nameInfos.add(new NameInfo(gamesDataDTO.getEnName(), "en-US"));
game.setNameInfo(nameInfos);
gameService.insertGame(game); gameService.insertGame(game);
} else { } else {
game = games.get(0); game = games.get(0);
} }
gamesDataDTO.setSystemGameId(game.getId()); gamesDataDTO.setSystemGameId(game.getId());
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); /*List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
if (CollectionUtils.isEmpty(gameNames)) { if (CollectionUtils.isEmpty(gameNames)) {
gameNameService.insertGameName(GameName.builder() gameNameService.insertGameName(GameName.builder()
.gameId(game.getId()) .gameId(game.getId())
@ -270,15 +265,13 @@ public class MeiTianGameServiceImpl implements IGamesService {
.langCode("zh-CN") .langCode("zh-CN")
.createBy(Constants.SYSTEM) .createBy(Constants.SYSTEM)
.build()); .build());
//
gameNameService.insertGameName(GameName.builder() gameNameService.insertGameName(GameName.builder()
.gameId(game.getId()) .gameId(game.getId())
.gameName(gamesDataDTO.getEnName()) .gameName(gamesDataDTO.getEnName())
.langCode("en-US") .langCode("en-US")
.createBy(Constants.SYSTEM) .createBy(Constants.SYSTEM)
.build()); .build());
} }*/
} }
@ -298,9 +291,9 @@ public class MeiTianGameServiceImpl implements IGamesService {
@Override @Override
@Transactional @Transactional
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.code(exchangeTransferMoneyRequestDTO.getAgentId()) // .code(exchangeTransferMoneyRequestDTO.getAgentId())
.currency(exchangeTransferMoneyRequestDTO.getCurrency()).build()); // .currency(exchangeTransferMoneyRequestDTO.getCurrency()).build());
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
String transactionId = GamePlatforms.MT.getCode() + IdUtils.simpleUUID(); String transactionId = GamePlatforms.MT.getCode() + IdUtils.simpleUUID();
@ -322,7 +315,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
.quota(exchangeTransferMoneyRequestDTO.getQuota()) .quota(exchangeTransferMoneyRequestDTO.getQuota())
.balance(exchangeTransferMoneyRequestDTO.getAmount()) .balance(exchangeTransferMoneyRequestDTO.getAmount())
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
.currencyCode(gameSecretKey.getSystemCurrency()) .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
.memberId(member.getId()) .memberId(member.getId())
.transactionId(transactionId) .transactionId(transactionId)
.platformCode(GamePlatforms.MT.getCode()) .platformCode(GamePlatforms.MT.getCode())
@ -332,7 +325,8 @@ public class MeiTianGameServiceImpl implements IGamesService {
exchangeMoney.setTransactionId(transactionId); exchangeMoney.setTransactionId(transactionId);
String key = gameSecretKey.getKey(); // String key = gameSecretKey.getKey();
String key = exchangeTransferMoneyRequestDTO.getAgentKey();
String merchantId = exchangeTransferMoneyRequestDTO.getAgentId(); String merchantId = exchangeTransferMoneyRequestDTO.getAgentId();
String playerName = exchangeTransferMoneyRequestDTO.getAccount(); String playerName = exchangeTransferMoneyRequestDTO.getAccount();
String coins = exchangeTransferMoneyRequestDTO.getAmount().setScale(4, RoundingMode.DOWN).toString(); String coins = exchangeTransferMoneyRequestDTO.getAmount().setScale(4, RoundingMode.DOWN).toString();
@ -464,7 +458,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
return Boolean.TRUE; return Boolean.TRUE;
} }
//数据插入 //数据插入
this.batchInsert(recordResponse); this.batchInsert(recordResponse, betRecordByTimeDTO);
MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1); MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1);
SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey); SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey);
if (config == null) { if (config == null) {
@ -532,7 +526,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
return Boolean.TRUE; return Boolean.TRUE;
} }
//数据插入 //数据插入
this.batchInsert(recordResponse); this.batchInsert(recordResponse, betRecordByTimeDTO);
MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1); MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1);
syncDateMap.put(date, Long.parseLong(dataBean.getRowID())); syncDateMap.put(date, Long.parseLong(dataBean.getRowID()));
SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey); SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey);
@ -693,7 +687,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
* *
* @param recordResponse * @param recordResponse
*/ */
private void batchInsert(MeiTianBetRecordResponseDTO recordResponse) { private void batchInsert(MeiTianBetRecordResponseDTO recordResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
List<GameBettingDetails> gameBettingDetails = new ArrayList<>(); List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
List<String> wagersIds = new ArrayList<>(); List<String> wagersIds = new ArrayList<>();
//数据组装 //数据组装
@ -705,6 +699,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
//数据转化 //数据转化
for (MeiTianBetRecordResponseDTO.DataBean dataBean : dataList) { for (MeiTianBetRecordResponseDTO.DataBean dataBean : dataList) {
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder() GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
.platform(betRecordByTimeDTO.getVendor())
.data(dataBean).build()); .data(dataBean).build());
if (!ObjectUtils.isEmpty(bettingDetails)) { if (!ObjectUtils.isEmpty(bettingDetails)) {
bettingDetails.setId(IdUtil.getSnowflakeNextId()); bettingDetails.setId(IdUtil.getSnowflakeNextId());
@ -737,10 +732,10 @@ public class MeiTianGameServiceImpl implements IGamesService {
//转化类 //转化类
MeiTianBetRecordResponseDTO.DataBean dataBean = (MeiTianBetRecordResponseDTO.DataBean) gamesDataBuildDTO.getData(); MeiTianBetRecordResponseDTO.DataBean dataBean = (MeiTianBetRecordResponseDTO.DataBean) gamesDataBuildDTO.getData();
GameSecretKeyCurrencyDTO gameSecretKey = // GameSecretKeyCurrencyDTO gameSecretKey =
gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.currency(dataBean.getCurrency()) // .currency(dataBean.getCurrency())
.platformCode(GamePlatforms.MT.getCode()).build()); // .platformCode(GamePlatforms.MT.getCode()).build());
Member member = memberService.selectMemberByGameAccount(dataBean.getPlayerName()); Member member = memberService.selectMemberByGameAccount(dataBean.getPlayerName());
@ -754,11 +749,13 @@ public class MeiTianGameServiceImpl implements IGamesService {
int compareResult = originPayoffAmount.compareTo(BigDecimal.ZERO); int compareResult = originPayoffAmount.compareTo(BigDecimal.ZERO);
long gameTime = getTime(dataBean.getGameDate()); long gameTime = getTime(dataBean.getGameDate());
Platform platform = gamesDataBuildDTO.getPlatform();
String systemCurrency = platform.getOurCurrency(dataBean.getCurrency());
//数据构造 //数据构造
GameBettingDetails gameBettingDetails = GameBettingDetails.builder() GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
.tenantKey(member.getTenantKey()) .tenantKey(member.getTenantKey())
//保存我们的币种id //保存我们的币种id
.currencyCode(gameSecretKey.getSystemCurrency()) .currencyCode(systemCurrency)
.memberId(member.getId()) .memberId(member.getId())
.gameCode(dataBean.getGameCode()) .gameCode(dataBean.getGameCode())
.gameType(MeiTianGameType.findSystemByCode(Integer.parseInt(dataBean.getGameType()))) .gameType(MeiTianGameType.findSystemByCode(Integer.parseInt(dataBean.getGameType())))

View File

@ -19,8 +19,12 @@ import com.ff.game.api.ng.client.NGClient;
import com.ff.game.api.ng.dto.*; import com.ff.game.api.ng.dto.*;
import com.ff.game.api.request.*; import com.ff.game.api.request.*;
import com.ff.game.domain.*; import com.ff.game.domain.*;
import com.ff.game.dto.*; import com.ff.game.dto.GameBettingDetailsDTO;
import com.ff.game.service.*; import com.ff.game.dto.GameDTO;
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
import com.ff.game.service.IGameBettingDetailsService;
import com.ff.game.service.IGameExchangeMoneyService;
import com.ff.game.service.IGameService;
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;
@ -65,11 +69,6 @@ public class GamesPGServiceImpl implements IGamesService {
@Resource @Resource
private IGameExchangeMoneyService gameExchangeMoneyService; private IGameExchangeMoneyService gameExchangeMoneyService;
@Resource
private IGamePlatformService gamePlatformService;
@Resource @Resource
private IGameService gameService; private IGameService gameService;
@ -77,33 +76,15 @@ public class GamesPGServiceImpl implements IGamesService {
@Resource @Resource
private IMemberService memberService; private IMemberService memberService;
@Resource
private IGameFreeRecordService gameFreeRecordService;
@Resource
private IGameSecretKeyService gameSecretKeyService;
@Resource @Resource
private NGClient ngClient; private NGClient ngClient;
@Resource @Resource
private KeyConfig keyConfig; private KeyConfig keyConfig;
@Resource @Resource
private IGameBettingDetailsService gameBettingDetailsService; private IGameBettingDetailsService gameBettingDetailsService;
@Resource
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
@Resource
private IGameNameService gameNameService;
@Resource
private IGameSecretKeyLangService gameSecretKeyLangService;
@Autowired @Autowired
@Qualifier("threadPoolTaskExecutor") @Qualifier("threadPoolTaskExecutor")
private ThreadPoolTaskExecutor threadPoolTaskExecutor; private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@ -252,7 +233,7 @@ public class GamesPGServiceImpl implements IGamesService {
ApiNGResponseDTO<List<ApiGameInfoResponseDTO>> gameList = ngClient.getGameList(paramsMap, headerMap); ApiNGResponseDTO<List<ApiGameInfoResponseDTO>> gameList = ngClient.getGameList(paramsMap, headerMap);
if (this.getIsSuccess(gameList.getCode())) { if (this.getIsSuccess(gameList.getCode())) {
for (ApiGameInfoResponseDTO apiGameInfoResponseDTO : gameList.getData()) { for (ApiGameInfoResponseDTO apiGameInfoResponseDTO : gameList.getData()) {
GamePlatform gamePlatform = GamePlatform.builder() /*GamePlatform gamePlatform = GamePlatform.builder()
.platformType(NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType())) .platformType(NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType()))
.platformCode(GamePlatforms.PG.getCode()) .platformCode(GamePlatforms.PG.getCode())
.build(); .build();
@ -265,9 +246,12 @@ public class GamesPGServiceImpl implements IGamesService {
gamePlatformService.insertGamePlatform(gamePlatform); gamePlatformService.insertGamePlatform(gamePlatform);
} else { } else {
gamePlatform = gamePlatforms.get(0); gamePlatform = gamePlatforms.get(0);
} }*/
Integer platformType = NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType());
Game game = Game.builder() Game game = Game.builder()
.platformId(gamePlatform.getId()) // .platformId(gamePlatform.getId())
.platformCode(GamePlatforms.PG.getCode())
.platformType(platformType)
.gameCode(apiGameInfoResponseDTO.getGameCode()) .gameCode(apiGameInfoResponseDTO.getGameCode())
.build(); .build();
List<Game> games = gameService.selectGameList(game); List<Game> games = gameService.selectGameList(game);
@ -276,15 +260,20 @@ public class GamesPGServiceImpl implements IGamesService {
game.setGameSourceType(String.valueOf(apiGameInfoResponseDTO.getGameType())); game.setGameSourceType(String.valueOf(apiGameInfoResponseDTO.getGameType()));
game.setFreespin(Boolean.FALSE); game.setFreespin(Boolean.FALSE);
game.setDemoStatus(Boolean.TRUE); game.setDemoStatus(Boolean.TRUE);
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1); game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.PG.getCode()) + 1);
game.setGameName(apiGameInfoResponseDTO.getGameName().get("zh-hans")); game.setGameName(apiGameInfoResponseDTO.getGameName().get("zh-hans"));
game.setCreateBy(Constants.SYSTEM); game.setCreateBy(Constants.SYSTEM);
List<NameInfo> nameInfos = new ArrayList<>();
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hans"), "zh-CN"));
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hant"), "zh-TW"));
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("en"), "en-US"));
game.setNameInfo(nameInfos);
gameService.insertGame(game); gameService.insertGame(game);
} else { } else {
game = games.get(0); game = games.get(0);
} }
apiGameInfoResponseDTO.setSystemGameId(game.getId()); apiGameInfoResponseDTO.setSystemGameId(game.getId());
Map<String, String> gameName = apiGameInfoResponseDTO.getGameName(); /*Map<String, String> gameName = apiGameInfoResponseDTO.getGameName();
for (String key : gameName.keySet()) { for (String key : gameName.keySet()) {
String name = gameName.get(key); String name = gameName.get(key);
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(name).build()); List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(name).build());
@ -309,7 +298,7 @@ public class GamesPGServiceImpl implements IGamesService {
.build()); .build());
} }
} }
} }*/
} }
@ -334,11 +323,11 @@ public class GamesPGServiceImpl implements IGamesService {
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
log.info("GamesNGServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO); log.info("GamesNGServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCode(GamePlatforms.PG.getCode()) // .platformCode(GamePlatforms.PG.getCode())
.code(exchangeTransferMoneyRequestDTO.getAgentId()) // .code(exchangeTransferMoneyRequestDTO.getAgentId())
.currency(exchangeTransferMoneyRequestDTO.getCurrency()) // .currency(exchangeTransferMoneyRequestDTO.getCurrency())
.build()); // .build());
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32); String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32);
@ -358,7 +347,7 @@ public class GamesPGServiceImpl implements IGamesService {
.quota(exchangeTransferMoneyRequestDTO.getQuota()) .quota(exchangeTransferMoneyRequestDTO.getQuota())
.balance(exchangeTransferMoneyRequestDTO.getAmount()) .balance(exchangeTransferMoneyRequestDTO.getAmount())
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
.currencyCode(currencyDTO.getSystemCurrency()) .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
.memberId(member.getId()) .memberId(member.getId())
.transactionId(transactionId) .transactionId(transactionId)
.platformCode(GamePlatforms.PG.getCode()) .platformCode(GamePlatforms.PG.getCode())
@ -372,7 +361,7 @@ public class GamesPGServiceImpl implements IGamesService {
.accounts(member.getGameAccount()) .accounts(member.getGameAccount())
.agentId(exchangeTransferMoneyRequestDTO.getAgentId()) .agentId(exchangeTransferMoneyRequestDTO.getAgentId())
.agentKey(exchangeTransferMoneyRequestDTO.getAgentKey()) .agentKey(exchangeTransferMoneyRequestDTO.getAgentKey())
.currency(currencyDTO.getCurrency()) .currency(exchangeTransferMoneyRequestDTO.getCurrency())
.build(); .build();
MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO); MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO);
//判断是不是转出 //判断是不是转出
@ -384,7 +373,7 @@ public class GamesPGServiceImpl implements IGamesService {
Map<String, Object> paramsMap = new HashMap<>(); Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("platType", NGPlatforms.PG.getCode()); paramsMap.put("platType", NGPlatforms.PG.getCode());
paramsMap.put("playerId", exchangeTransferMoneyRequestDTO.getAccount()); paramsMap.put("playerId", exchangeTransferMoneyRequestDTO.getAccount());
paramsMap.put("currency", currencyDTO.getCurrency()); paramsMap.put("currency", exchangeTransferMoneyRequestDTO.getCurrency());
paramsMap.put("type", type); paramsMap.put("type", type);
paramsMap.put("amount", exchangeTransferMoneyRequestDTO.getAmount()); paramsMap.put("amount", exchangeTransferMoneyRequestDTO.getAmount());
paramsMap.put("orderId", transactionId); paramsMap.put("orderId", transactionId);
@ -399,7 +388,7 @@ public class GamesPGServiceImpl implements IGamesService {
gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney);
ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO(); ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO();
exchangeTransferStatusRequestDTO.setAccount(exchangeTransferMoneyRequestDTO.getAccount()); exchangeTransferStatusRequestDTO.setAccount(exchangeTransferMoneyRequestDTO.getAccount());
exchangeTransferStatusRequestDTO.setCurrency(currencyDTO.getCurrency()); exchangeTransferStatusRequestDTO.setCurrency(exchangeTransferMoneyRequestDTO.getCurrency());
exchangeTransferStatusRequestDTO.setOrderId(transactionId); exchangeTransferStatusRequestDTO.setOrderId(transactionId);
exchangeTransferStatusRequestDTO.setAgentId(exchangeTransferMoneyRequestDTO.getAgentId()); exchangeTransferStatusRequestDTO.setAgentId(exchangeTransferMoneyRequestDTO.getAgentId());
exchangeTransferStatusRequestDTO.setAgentKey(exchangeTransferMoneyRequestDTO.getAgentKey()); exchangeTransferStatusRequestDTO.setAgentKey(exchangeTransferMoneyRequestDTO.getAgentKey());
@ -467,17 +456,19 @@ public class GamesPGServiceImpl implements IGamesService {
GameSecretKeyCurrencyDTO gameSecretKeyDTO = new GameSecretKeyCurrencyDTO(); GameSecretKeyCurrencyDTO gameSecretKeyDTO = new GameSecretKeyCurrencyDTO();
gameSecretKeyDTO.setPlatformCodes(NGPlatforms.getAllPlatforms()); gameSecretKeyDTO.setPlatformCodes(NGPlatforms.getAllPlatforms());
List<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO); // List<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO);
List<String> currencys = currencyDTOList.stream() // List<String> currencys = currencyDTOList.stream()
.map(GameSecretKeyCurrencyDTO::getCurrency) // .map(GameSecretKeyCurrencyDTO::getCurrency)
.distinct() // .distinct()
.collect(Collectors.toList()); // .collect(Collectors.toList());
Platform platform = betRecordByTimeDTO.getVendor();
Set<String> cacheSet = redisCache.getCacheSet(CacheConstants.PG_GAMES_BET_CURRENCY); Set<String> cacheSet = redisCache.getCacheSet(CacheConstants.PG_GAMES_BET_CURRENCY);
if (CollectionUtils.isEmpty(cacheSet)) { if (CollectionUtils.isEmpty(cacheSet)) {
cacheSet = new HashSet<>(); cacheSet = new HashSet<>();
} }
List<String> currencys = new ArrayList<>(platform.getCurrencyInfo().values());
//如果长度一致则清空缓存循环币种 //如果长度一致则清空缓存循环币种
if (cacheSet.size() >= currencys.size()) { if (cacheSet.size() >= currencys.size()) {
cacheSet = new HashSet<>(); cacheSet = new HashSet<>();
@ -488,22 +479,24 @@ public class GamesPGServiceImpl implements IGamesService {
String firstCurrency = currencys.get(0); String firstCurrency = currencys.get(0);
GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCode(GamePlatforms.PG.getCode()) // .platformCode(GamePlatforms.PG.getCode())
.currency(firstCurrency) // .currency(firstCurrency)
.build()); // .build());
betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); // betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); // betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
int pageNo = 1; int pageNo = 1;
int pageSize = 2000; int pageSize = 2000;
Map<String, Object> paramsMap = new HashMap<>(); Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("currency", currencyDTO.getCurrency()); paramsMap.put("currency", /*currencyDTO.getCurrency()*/ firstCurrency);
paramsMap.put("pageNo", pageNo); paramsMap.put("pageNo", pageNo);
paramsMap.put("pageSize", pageSize); paramsMap.put("pageSize", pageSize);
Map<String, String> key = this.getKey(betRecordByTimeDTO); Map<String, String> key = this.getKey(betRecordByTimeDTO);
String systemCurrency = platform.getOurCurrency(firstCurrency);
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key); ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key);
@ -517,7 +510,7 @@ public class GamesPGServiceImpl implements IGamesService {
ApiGameBetRecordPageResponseDTO data = result.getData(); ApiGameBetRecordPageResponseDTO data = result.getData();
//数据组装 //数据组装
this.batchInsert(data); this.batchInsert(data, systemCurrency, firstCurrency);
//总页数 //总页数
// 计算总页数,确保不会遗漏 // 计算总页数,确保不会遗漏
@ -528,19 +521,19 @@ public class GamesPGServiceImpl implements IGamesService {
pageNoAtomic.incrementAndGet(); pageNoAtomic.incrementAndGet();
//请求参数 //请求参数
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("currency", currencyDTO.getCurrency()); paramMap.put("currency", /*currencyDTO.getCurrency()*/firstCurrency);
paramMap.put("pageNo", pageNoAtomic.get()); paramMap.put("pageNo", pageNoAtomic.get());
paramMap.put("pageSize", pageSize); paramMap.put("pageSize", pageSize);
SleepUtil.sleep(10000); SleepUtil.sleep(10000);
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key); ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
data = betRecordByTimePage.getData(); data = betRecordByTimePage.getData();
//数据组装 //数据组装
this.batchInsert(data); this.batchInsert(data, systemCurrency, firstCurrency);
} }
} }
getBetRecordByHistoryTime(betRecordByTimeDTO, currencyDTO); getBetRecordByHistoryTime(betRecordByTimeDTO, systemCurrency, firstCurrency);
return Boolean.TRUE; return Boolean.TRUE;
} }
@ -548,9 +541,9 @@ public class GamesPGServiceImpl implements IGamesService {
* *
* *
* @param betRecordByTimeDTO dto * @param betRecordByTimeDTO dto
* @param currencyDTO dto * @param currency
*/ */
private void getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO, GameSecretKeyCurrencyDTO currencyDTO) { private void getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO, String systemCurrency, String currency /*GameSecretKeyCurrencyDTO currencyDTO*/) {
//捞取指定30分钟前的数据 //捞取指定30分钟前的数据
Long startTimes = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -30); Long startTimes = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -30);
@ -578,12 +571,12 @@ public class GamesPGServiceImpl implements IGamesService {
.format(Instant.ofEpochMilli(betRecordByTimeDTO.getEndTime())); .format(Instant.ofEpochMilli(betRecordByTimeDTO.getEndTime()));
betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); //betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); //betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
int pageNo = 1; int pageNo = 1;
int pageSize = 2000; int pageSize = 2000;
Map<String, Object> paramsMap = new HashMap<>(); Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("currency", currencyDTO.getCurrency()); paramsMap.put("currency", /*currencyDTO.getCurrency()*/ currency);
paramsMap.put("pageNo", pageNo); paramsMap.put("pageNo", pageNo);
paramsMap.put("pageSize", pageSize); paramsMap.put("pageSize", pageSize);
paramsMap.put("startTime", startTime); paramsMap.put("startTime", startTime);
@ -601,7 +594,7 @@ public class GamesPGServiceImpl implements IGamesService {
ApiGameBetRecordPageResponseDTO data = result.getData(); ApiGameBetRecordPageResponseDTO data = result.getData();
//数据组装 //数据组装
this.batchInsert(data); this.batchInsert(data, systemCurrency, currency);
//总页数 //总页数
// 计算总页数,确保不会遗漏 // 计算总页数,确保不会遗漏
@ -612,7 +605,7 @@ public class GamesPGServiceImpl implements IGamesService {
pageNoAtomic.incrementAndGet(); pageNoAtomic.incrementAndGet();
//请求参数 //请求参数
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("currency", currencyDTO.getCurrency()); paramMap.put("currency", /*currencyDTO.getCurrency()*/ currency);
paramMap.put("pageNo", pageNoAtomic.get()); paramMap.put("pageNo", pageNoAtomic.get());
paramMap.put("pageSize", pageSize); paramMap.put("pageSize", pageSize);
paramMap.put("startTime", startTime); paramMap.put("startTime", startTime);
@ -621,13 +614,14 @@ public class GamesPGServiceImpl implements IGamesService {
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key); ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
data = betRecordByTimePage.getData(); data = betRecordByTimePage.getData();
//数据组装 //数据组装
this.batchInsert(data); this.batchInsert(data, systemCurrency, currency);
} }
}); });
} }
} }
/** /**
* *
* *
@ -719,6 +713,7 @@ public class GamesPGServiceImpl implements IGamesService {
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
} }
/** /**
* *
* *
@ -731,7 +726,6 @@ public class GamesPGServiceImpl implements IGamesService {
} }
/** /**
* *
* *
@ -750,15 +744,18 @@ public class GamesPGServiceImpl implements IGamesService {
} }
String platform = ngPlatforms.getPlatform(); String platform = ngPlatforms.getPlatform();
List<Game> games = gameService.selectGameDTOList(GameDTO.builder().gameName(resultBean.getGameName()).platformCode(platform).build()); List<Game> games = gameService.selectGameDTOList(GameDTO.builder()
.gameName(resultBean.getGameName())
.platformCode(platform)
.build());
if (CollectionUtils.isEmpty(games)) { if (CollectionUtils.isEmpty(games)) {
return null; return null;
} }
Game gamesDataDTO = games.get(0); Game gamesDataDTO = games.get(0);
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() // GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
.platformCodes(NGPlatforms.getAllPlatforms()) // .platformCodes(NGPlatforms.getAllPlatforms())
.currency(resultBean.getCurrency()) // .currency(resultBean.getCurrency())
.build()); // .build());
Member member = memberService.selectMemberByGameAccount(resultBean.getPlayerId()); Member member = memberService.selectMemberByGameAccount(resultBean.getPlayerId());
if (ObjectUtils.isEmpty(member)) { if (ObjectUtils.isEmpty(member)) {
@ -778,7 +775,7 @@ public class GamesPGServiceImpl implements IGamesService {
GameBettingDetails gameBettingDetails = GameBettingDetails.builder() GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
.tenantKey(member.getTenantKey()) .tenantKey(member.getTenantKey())
//保存我们的币种id //保存我们的币种id
.currencyCode(currencyDTO.getSystemCurrency()) .currencyCode(gamesDataBuildDTO.getSystemCurrencyCode())
.memberId(member.getId()) .memberId(member.getId())
.gameCode(gamesDataDTO.getGameCode()) .gameCode(gamesDataDTO.getGameCode())
.gameType(NGGameType.findSystemByCode(resultBean.getGameType())) .gameType(NGGameType.findSystemByCode(resultBean.getGameType()))
@ -814,12 +811,15 @@ public class GamesPGServiceImpl implements IGamesService {
* *
* @param data * @param data
*/ */
private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data) { private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data, String systemCurrency, String currency) {
List<GameBettingDetails> gameBettingDetails = new ArrayList<>(); List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
List<String> wagersIds = new ArrayList<>(); List<String> wagersIds = new ArrayList<>();
//数据转化 //数据转化
for (ApiGameBetRecordPageResponseDTO.GameBetRecord bean : data.getList()) { for (ApiGameBetRecordPageResponseDTO.GameBetRecord bean : data.getList()) {
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build()); GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
.systemCurrencyCode(systemCurrency)
.currencyCode(currency)
.data(bean).build());
if (!ObjectUtils.isEmpty(bettingDetails)) { if (!ObjectUtils.isEmpty(bettingDetails)) {
bettingDetails.setId(IdUtil.getSnowflakeNextId()); bettingDetails.setId(IdUtil.getSnowflakeNextId());
gameBettingDetails.add(bettingDetails); gameBettingDetails.add(bettingDetails);

View File

@ -6,11 +6,10 @@ import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
/** /**
* key:
*
* @author cengy * @author cengy
*/ */
@Data @Data
public class CurrencyInfo extends HashMap<String, String> implements Serializable { public class CurrencyInfo extends HashMap<String, String> implements Serializable {
private String currencyId;
} }

View File

@ -113,6 +113,10 @@ public class GameTask {
betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); betRecordByTimeDTO.setAgentKey(keyInfo.getKey());
betRecordByTimeDTO.setKeyInfo(keyInfo); betRecordByTimeDTO.setKeyInfo(keyInfo);
betRecordByTimeDTO.setVendor(platform); betRecordByTimeDTO.setVendor(platform);
betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency());
betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency()));
gamesService.get(platformCode + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO); gamesService.get(platformCode + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO);
} catch (Exception e) { } catch (Exception e) {
log.error("同步平台投注记录失败platformCode:{}", platformCode, e); log.error("同步平台投注记录失败platformCode:{}", platformCode, e);
@ -153,6 +157,9 @@ public class GameTask {
betRecordByTimeDTO.setKeyInfo(keyInfo); betRecordByTimeDTO.setKeyInfo(keyInfo);
betRecordByTimeDTO.setVendor(platform); betRecordByTimeDTO.setVendor(platform);
betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency());
betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency()));
gamesService.get(platformCode + Constants.SERVICE).getBetRecordByHistoryTime(betRecordByTimeDTO); gamesService.get(platformCode + Constants.SERVICE).getBetRecordByHistoryTime(betRecordByTimeDTO);
} catch (Exception e) { } catch (Exception e) {
log.error("同步平台投注记录失败platformCode:{}", platformCode, e); log.error("同步平台投注记录失败platformCode:{}", platformCode, e);