diff --git a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java index 745d42e..130cf65 100644 --- a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java @@ -250,6 +250,7 @@ public class ApiMemberController extends BaseController { key.setCode(keyInfo.getCode()); key.setKey(keyInfo.getKey()); key.setCurrency(targetCurrency); + key.setSystemCurrency(memberInfoAllApiRequest.getCurrencyCode()); keys.add(key); } // 创建线程池 @@ -276,6 +277,7 @@ public class ApiMemberController extends BaseController { .accounts(member.getGameAccount()) .agentId(gameSecretKey.getCode()) .currency(gameSecretKey.getCurrency()) + .systemCurrency(gameSecretKey.getSystemCurrency()) .agentKey(gameSecretKey.getKey()) .build(); //查询余额 @@ -317,6 +319,7 @@ public class ApiMemberController extends BaseController { private String code; private String currency; private String key; + private String systemCurrency; } } diff --git a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java index c7abe9e..0db9694 100644 --- a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java @@ -255,15 +255,18 @@ public class GamesJILIServiceImpl implements IGamesService { game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.JILI.getCode()) + 1); game.setGameName(gamesDataDTO.getName().getZhCN()); game.setCreateBy(Constants.SYSTEM); + + List 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); } else { game = games.get(0); } gamesDataDTO.setSystemGameId(game.getId()); - List 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 gameNames = gameNameService.selectGameNameList(GameName .builder() @@ -411,11 +414,8 @@ public class GamesJILIServiceImpl implements IGamesService { //判断是否获取成功 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(); //获取下一页数据 while (dataBean.getPagination().getCurrentPage() != dataBean.getPagination().getTotalPages() && dataBean.getPagination().getTotalPages() > 0) { @@ -429,7 +429,7 @@ public class GamesJILIServiceImpl implements IGamesService { dataBean = betRecordJILIResponse.getData(); if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) { //数据插入 - this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO, currency, targetCurrency); + this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO); } else { log.error("GameBettingDataJILIServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordJILIResponse.getErrorCode(), betRecordJILIResponse.getMessage()); } @@ -715,7 +715,7 @@ public class GamesJILIServiceImpl implements IGamesService { * @param betRecordJILIResponse 投注记录jiliresponse * @return {@link Integer } */ - private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse, BetRecordByTimeDTO betRecordByTimeDTO, String systemCurrency, String currency) { + private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse, BetRecordByTimeDTO betRecordByTimeDTO) { List gameBettingDetails = new ArrayList<>(); List wagersIds = new ArrayList<>(); //数据组装 @@ -723,8 +723,9 @@ public class GamesJILIServiceImpl implements IGamesService { //数据转化 for (JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO : dataBean.getResult()) { GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder() - .systemCurrencyCode(systemCurrency) - .currencyCode(currency) + .systemCurrencyCode(betRecordByTimeDTO.getSystemCurrency()) + .platform(betRecordByTimeDTO.getVendor()) + .currencyCode(betRecordByTimeDTO.getCurrency()) .platform(betRecordByTimeDTO.getVendor()) .data(jiliBetRecordDataResponseDTO).build()); if (!ObjectUtils.isEmpty(bettingDetails)) { diff --git a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java index 3326c1d..d3d32ee 100644 --- a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java @@ -8,7 +8,6 @@ import com.ff.base.core.redis.RedisCache; import com.ff.base.enums.*; import com.ff.base.exception.base.ApiException; 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.JsonUtil; 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.xk.dto.XKGamesDTO; import com.ff.game.domain.*; -import com.ff.game.dto.GameSecretKeyCurrencyDTO; import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; @@ -53,20 +51,12 @@ public class GamesKMServiceImpl implements IGamesService { @Resource private IPlatformService platformService; - @Resource - private ISysConfigService configService; - @Resource private RedisCache redisCache; @Resource private IGameExchangeMoneyService gameExchangeMoneyService; - - @Resource - private IGamePlatformService gamePlatformService; - - @Resource private IGameService gameService; @@ -74,14 +64,6 @@ public class GamesKMServiceImpl implements IGamesService { @Resource private IMemberService memberService; - @Resource - private IGameFreeRecordService gameFreeRecordService; - @Resource - private IGameSecretKeyService gameSecretKeyService; - - @Resource - private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService; - @Resource private KMClient KMClient; @@ -186,14 +168,14 @@ public class GamesKMServiceImpl implements IGamesService { public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO) { log.info("GamesDGServiceImpl [getMemberInfo] 请求参数 {}", memberInfoRequestDTO); Map paramsMap = new HashMap<>(); - Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts()); - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.KM.getInfo()) - .currency(member.getCurrencyCode()) - .build()); +// Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts()); +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.KM.getInfo()) +// .currency(member.getCurrencyCode()) +// .build()); paramsMap.put("userid", memberInfoRequestDTO.getAccounts()); - paramsMap.put("cur", currencyDTO.getCurrency()); + paramsMap.put("cur", memberInfoRequestDTO.getCurrency()); Map headerMap = this.getKey(memberInfoRequestDTO); KMBalanceResponse memberInfo = KMClient.getMemberInfo(JsonUtil.mapToQueryString(paramsMap), headerMap); if (ObjectUtils.isEmpty(memberInfo.getErrorCode()) || this.getIsSuccess(memberInfo.getErrorCode())) { @@ -214,17 +196,17 @@ public class GamesKMServiceImpl implements IGamesService { log.info("GamesKMServiceImpl [loginWithoutRedirect] 请求参数 {}", gamesLogin); String kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount()); if (StringUtils.isEmpty(kmUserToken)) { - Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount()); - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.KM.getInfo()) - .currency(member.getCurrencyCode()) - .build()); +// Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount()); +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.KM.getInfo()) +// .currency(member.getCurrencyCode()) +// .build()); CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder() .account(gamesLogin.getAccount()) .agentId(gamesLogin.getAgentId()) .agentKey(gamesLogin.getAgentKey()) - .currency(currencyDTO.getCurrency()) + .currency(gamesLogin.getCurrency()) .build(); this.createMember(gamesBaseRequestDTO); 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()))) .collect(Collectors.toList()); for (KMGameResponse.Game game : games) { - GamePlatform gamePlatform = GamePlatform.builder() - .platformType(KMGameType.findSystemByCode(game.getProviderCode())) - .platformCode(GamePlatforms.KM.getCode()) - .build(); - List gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); +// GamePlatform gamePlatform = GamePlatform.builder() +// .platformType(KMGameType.findSystemByCode(game.getProviderCode())) +// .platformCode(GamePlatforms.KM.getCode()) +// .build(); + /*List gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); //没有此平台就新增一个平台 if (CollectionUtils.isEmpty(gamePlatforms)) { gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(game.getProviderCode())); @@ -300,9 +282,12 @@ public class GamesKMServiceImpl implements IGamesService { gamePlatformService.insertGamePlatform(gamePlatform); } else { gamePlatform = gamePlatforms.get(0); - } + }*/ + Integer platformType = KMGameType.findSystemByCode(game.getProviderCode()); Game gameOne = Game.builder() - .platformId(gamePlatform.getId()) + //.platformId(gamePlatform.getId()) + .platformCode(GamePlatforms.KM.getCode()) + .platformType(platformType) .gameCode(game.getCode()) .build(); List gameOnes = gameService.selectGameList(gameOne); @@ -327,11 +312,11 @@ public class GamesKMServiceImpl implements IGamesService { */ private List gameList(KMGameResponse gameList, Integer ingress) { for (KMGameResponse.Game gamesDataDTO : gameList.getGames()) { - GamePlatform gamePlatform = GamePlatform.builder() - .platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode())) - .platformCode(GamePlatforms.KM.getCode()) - .build(); - List gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); +// GamePlatform gamePlatform = GamePlatform.builder() +// .platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode())) +// .platformCode(GamePlatforms.KM.getCode()) +// .build(); + /*List gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform); //没有此平台就新增一个平台 if (CollectionUtils.isEmpty(gamePlatforms)) { gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(gamesDataDTO.getProviderCode())); @@ -340,9 +325,12 @@ public class GamesKMServiceImpl implements IGamesService { gamePlatformService.insertGamePlatform(gamePlatform); } else { gamePlatform = gamePlatforms.get(0); - } + }*/ + Integer platformType = KMGameType.findSystemByCode(gamesDataDTO.getProviderCode()); Game game = Game.builder() - .platformId(gamePlatform.getId()) + //.platformId(gamePlatform.getId()) + .platformCode(GamePlatforms.KM.getCode()) + .platformType(platformType) .gameCode(gamesDataDTO.getCode()) .build(); List games = gameService.selectGameList(game); @@ -351,24 +339,27 @@ public class GamesKMServiceImpl implements IGamesService { game.setGameSourceType(gamesDataDTO.getProviderCode()); game.setFreespin(Boolean.FALSE); 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.setCreateBy(Constants.SYSTEM); game.setIngress(ingress); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN")); + game.setNameInfo(nameInfos); gameService.insertGame(game); } else { game = games.get(0); } gamesDataDTO.setSystemGameId(game.getId()); - List gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); - if (CollectionUtils.isEmpty(gameNames)) { - gameNameService.insertGameName(GameName.builder() - .gameId(game.getId()) - .gameName(game.getGameName()) - .langCode("zh-CN") - .createBy(Constants.SYSTEM) - .build()); - } +// List gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); +// if (CollectionUtils.isEmpty(gameNames)) { +// gameNameService.insertGameName(GameName.builder() +// .gameId(game.getId()) +// .gameName(game.getGameName()) +// .langCode("zh-CN") +// .createBy(Constants.SYSTEM) +// .build()); +// } } return gameList.getGames(); @@ -384,10 +375,10 @@ public class GamesKMServiceImpl implements IGamesService { @Transactional public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { log.info("GamesKMServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO); - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.KM.getInfo()) - .currency(exchangeTransferMoneyRequestDTO.getCurrency()) - .build()); +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.KM.getInfo()) +// .currency(exchangeTransferMoneyRequestDTO.getCurrency()) +// .build()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); String transactionId = GamePlatforms.KM.getInfo() + IdUtils.simpleUUID(); @@ -407,7 +398,7 @@ public class GamesKMServiceImpl implements IGamesService { .quota(exchangeTransferMoneyRequestDTO.getQuota()) .balance(exchangeTransferMoneyRequestDTO.getAmount()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) - .currencyCode(currencyDTO.getSystemCurrency()) + .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency()) .memberId(member.getId()) .transactionId(transactionId) .platformCode(GamePlatforms.KM.getInfo()) @@ -430,7 +421,7 @@ public class GamesKMServiceImpl implements IGamesService { Map params = new LinkedHashMap<>(); params.put("userid", exchangeTransferMoneyRequestDTO.getAccount()); params.put("amt", amount); - params.put("cur", currencyDTO.getCurrency()); + params.put("cur", exchangeTransferMoneyRequestDTO.getCurrency()); params.put("txid", transactionId); Map headerMap = this.getKey(exchangeTransferMoneyRequestDTO); @@ -503,9 +494,7 @@ public class GamesKMServiceImpl implements IGamesService { KMBetRecordResponse betRecordByTime = KMClient.getBetRecordByTime(JsonUtil.mapToQueryString(params), key); if (ObjectUtils.isEmpty(betRecordByTime.getErrorCode()) || this.getIsSuccess(betRecordByTime.getErrorCode())) { - this.batchInsert(betRecordByTime); - - + this.batchInsert(betRecordByTime, betRecordByTimeDTO); return Boolean.TRUE; } else { log.error("GamesKMServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordByTime.getErrorCode(), betRecordByTime.getErrorDescription()); @@ -628,14 +617,18 @@ public class GamesKMServiceImpl implements IGamesService { * * @param betRecordByTime dg投注记录响应dto */ - private void batchInsert(KMBetRecordResponse betRecordByTime) { + private void batchInsert(KMBetRecordResponse betRecordByTime, BetRecordByTimeDTO betRecordByTimeDTO) { List gameBettingDetails = new ArrayList<>(); List wagersIds = new ArrayList<>(); //数据组装 List report = betRecordByTime.getBets(); //数据转化 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)) { bettingDetails.setId(IdUtil.getSnowflakeNextId()); gameBettingDetails.add(bettingDetails); @@ -666,12 +659,11 @@ public class GamesKMServiceImpl implements IGamesService { public GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO) { //转化类 KMBetRecordResponse.Bet resultBean = (KMBetRecordResponse.Bet) gamesDataBuildDTO.getData(); - - - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.KM.getInfo()) - .currency(resultBean.getCurrency()) - .build()); +// +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.KM.getInfo()) +// .currency(resultBean.getCurrency()) +// .build()); 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() .tenantKey(member.getTenantKey()) //保存我们的币种id - .currencyCode(currencyDTO.getSystemCurrency()) + .currencyCode(systemCurrency) .memberId(member.getId()) .gameCode(gamesDataDTO.getCode()) .gameType(PlatformType.CARD_GAME.getCode()) - .platformCode(GamePlatforms.KM.getInfo()) + .platformCode(GamePlatforms.KM.getCode()) .gameId(GAME_ID) .gameName(gamesDataDTO.getName()) .gameStatus(gameStatus) .gameStatusType(1) - .gameCurrencyCode(currencyDTO.getCurrency()) + .gameCurrencyCode(resultBean.getCurrency()) .account(resultBean.getUserId()) .wagersId(resultBean.getId()) .wagersTime(resultBean.getBeton().getTime()) diff --git a/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java index 79c92a2..ad63dd9 100644 --- a/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java @@ -10,7 +10,6 @@ import com.ff.base.enums.*; import com.ff.base.exception.base.ApiException; import com.ff.base.exception.base.BaseException; 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.utils.DateUtils; 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.request.*; import com.ff.game.domain.*; -import com.ff.game.dto.GameSecretKeyCurrencyDTO; -import com.ff.game.service.*; +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.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -55,20 +55,12 @@ import java.util.stream.Collectors; @Slf4j public class MeiTianGameServiceImpl implements IGamesService { - - @Resource - private ISysConfigService configService; - @Resource private RedisCache redisCache; @Resource private IGameExchangeMoneyService gameExchangeMoneyService; - @Resource - private IGamePlatformService gamePlatformService; - - @Resource private IGameService gameService; @@ -82,11 +74,6 @@ public class MeiTianGameServiceImpl implements IGamesService { @Resource private IGameBettingDetailsService gameBettingDetailsService; - @Resource - private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService; - - @Resource - private IGameNameService gameNameService; @Autowired private SysConfigServiceImpl sysConfigServiceImpl; @@ -230,7 +217,7 @@ public class MeiTianGameServiceImpl implements IGamesService { MeiTianGamesDTO gameList = new MeiTianGamesDTO(); for (MeiTianGameDataDTO gamesDataDTO : gameList.getData()) { - GamePlatform gamePlatform = GamePlatform.builder() + /* GamePlatform gamePlatform = GamePlatform.builder() .platformType(MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId())) .platformCode(GamePlatforms.MT.getCode()) .build(); @@ -243,9 +230,12 @@ public class MeiTianGameServiceImpl implements IGamesService { gamePlatformService.insertGamePlatform(gamePlatform); } else { gamePlatform = gamePlatforms.get(0); - } + }*/ + Integer platformType = MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId()); Game game = Game.builder() - .platformId(gamePlatform.getId()) + //.platformId(gamePlatform.getId()) + .platformCode(GamePlatforms.MT.getCode()) + .platformType(platformType) .gameCode(String.valueOf(gamesDataDTO.getGameId())) .build(); List games = gameService.selectGameList(game); @@ -253,16 +243,21 @@ public class MeiTianGameServiceImpl implements IGamesService { if (CollectionUtils.isEmpty(games)) { game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId())); game.setFreespin(false); - game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1); + game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.MT.getCode()) + 1); game.setGameName(gamesDataDTO.getCnName()); game.setCreateBy(Constants.SYSTEM); + + List 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); } else { game = games.get(0); } gamesDataDTO.setSystemGameId(game.getId()); - List gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); + /*List gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build()); if (CollectionUtils.isEmpty(gameNames)) { gameNameService.insertGameName(GameName.builder() .gameId(game.getId()) @@ -270,15 +265,13 @@ public class MeiTianGameServiceImpl implements IGamesService { .langCode("zh-CN") .createBy(Constants.SYSTEM) .build()); -// gameNameService.insertGameName(GameName.builder() .gameId(game.getId()) .gameName(gamesDataDTO.getEnName()) .langCode("en-US") .createBy(Constants.SYSTEM) .build()); - } - + }*/ } @@ -298,9 +291,9 @@ public class MeiTianGameServiceImpl implements IGamesService { @Override @Transactional public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { - GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .code(exchangeTransferMoneyRequestDTO.getAgentId()) - .currency(exchangeTransferMoneyRequestDTO.getCurrency()).build()); +// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .code(exchangeTransferMoneyRequestDTO.getAgentId()) +// .currency(exchangeTransferMoneyRequestDTO.getCurrency()).build()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); String transactionId = GamePlatforms.MT.getCode() + IdUtils.simpleUUID(); @@ -322,7 +315,7 @@ public class MeiTianGameServiceImpl implements IGamesService { .quota(exchangeTransferMoneyRequestDTO.getQuota()) .balance(exchangeTransferMoneyRequestDTO.getAmount()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) - .currencyCode(gameSecretKey.getSystemCurrency()) + .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency()) .memberId(member.getId()) .transactionId(transactionId) .platformCode(GamePlatforms.MT.getCode()) @@ -332,7 +325,8 @@ public class MeiTianGameServiceImpl implements IGamesService { exchangeMoney.setTransactionId(transactionId); - String key = gameSecretKey.getKey(); +// String key = gameSecretKey.getKey(); + String key = exchangeTransferMoneyRequestDTO.getAgentKey(); String merchantId = exchangeTransferMoneyRequestDTO.getAgentId(); String playerName = exchangeTransferMoneyRequestDTO.getAccount(); String coins = exchangeTransferMoneyRequestDTO.getAmount().setScale(4, RoundingMode.DOWN).toString(); @@ -464,7 +458,7 @@ public class MeiTianGameServiceImpl implements IGamesService { return Boolean.TRUE; } //数据插入 - this.batchInsert(recordResponse); + this.batchInsert(recordResponse, betRecordByTimeDTO); MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1); SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey); if (config == null) { @@ -532,7 +526,7 @@ public class MeiTianGameServiceImpl implements IGamesService { return Boolean.TRUE; } //数据插入 - this.batchInsert(recordResponse); + this.batchInsert(recordResponse, betRecordByTimeDTO); MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1); syncDateMap.put(date, Long.parseLong(dataBean.getRowID())); SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey); @@ -693,7 +687,7 @@ public class MeiTianGameServiceImpl implements IGamesService { * * @param recordResponse 投注记录 */ - private void batchInsert(MeiTianBetRecordResponseDTO recordResponse) { + private void batchInsert(MeiTianBetRecordResponseDTO recordResponse, BetRecordByTimeDTO betRecordByTimeDTO) { List gameBettingDetails = new ArrayList<>(); List wagersIds = new ArrayList<>(); //数据组装 @@ -705,6 +699,7 @@ public class MeiTianGameServiceImpl implements IGamesService { //数据转化 for (MeiTianBetRecordResponseDTO.DataBean dataBean : dataList) { GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder() + .platform(betRecordByTimeDTO.getVendor()) .data(dataBean).build()); if (!ObjectUtils.isEmpty(bettingDetails)) { bettingDetails.setId(IdUtil.getSnowflakeNextId()); @@ -737,10 +732,10 @@ public class MeiTianGameServiceImpl implements IGamesService { //转化类 MeiTianBetRecordResponseDTO.DataBean dataBean = (MeiTianBetRecordResponseDTO.DataBean) gamesDataBuildDTO.getData(); - GameSecretKeyCurrencyDTO gameSecretKey = - gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .currency(dataBean.getCurrency()) - .platformCode(GamePlatforms.MT.getCode()).build()); +// GameSecretKeyCurrencyDTO gameSecretKey = +// gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .currency(dataBean.getCurrency()) +// .platformCode(GamePlatforms.MT.getCode()).build()); Member member = memberService.selectMemberByGameAccount(dataBean.getPlayerName()); @@ -754,11 +749,13 @@ public class MeiTianGameServiceImpl implements IGamesService { int compareResult = originPayoffAmount.compareTo(BigDecimal.ZERO); long gameTime = getTime(dataBean.getGameDate()); + Platform platform = gamesDataBuildDTO.getPlatform(); + String systemCurrency = platform.getOurCurrency(dataBean.getCurrency()); //数据构造 GameBettingDetails gameBettingDetails = GameBettingDetails.builder() .tenantKey(member.getTenantKey()) //保存我们的币种id - .currencyCode(gameSecretKey.getSystemCurrency()) + .currencyCode(systemCurrency) .memberId(member.getId()) .gameCode(dataBean.getGameCode()) .gameType(MeiTianGameType.findSystemByCode(Integer.parseInt(dataBean.getGameType()))) diff --git a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java index 8f40651..9bf0f95 100644 --- a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java @@ -19,8 +19,12 @@ import com.ff.game.api.ng.client.NGClient; import com.ff.game.api.ng.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; -import com.ff.game.dto.*; -import com.ff.game.service.*; +import com.ff.game.dto.GameBettingDetailsDTO; +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.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -65,11 +69,6 @@ public class GamesPGServiceImpl implements IGamesService { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; - - @Resource - private IGamePlatformService gamePlatformService; - - @Resource private IGameService gameService; @@ -77,33 +76,15 @@ public class GamesPGServiceImpl implements IGamesService { @Resource private IMemberService memberService; - @Resource - private IGameFreeRecordService gameFreeRecordService; - - @Resource - private IGameSecretKeyService gameSecretKeyService; - @Resource private NGClient ngClient; - @Resource private KeyConfig keyConfig; @Resource private IGameBettingDetailsService gameBettingDetailsService; - @Resource - private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService; - - @Resource - private IGameNameService gameNameService; - - - @Resource - private IGameSecretKeyLangService gameSecretKeyLangService; - - @Autowired @Qualifier("threadPoolTaskExecutor") private ThreadPoolTaskExecutor threadPoolTaskExecutor; @@ -252,7 +233,7 @@ public class GamesPGServiceImpl implements IGamesService { ApiNGResponseDTO> gameList = ngClient.getGameList(paramsMap, headerMap); if (this.getIsSuccess(gameList.getCode())) { for (ApiGameInfoResponseDTO apiGameInfoResponseDTO : gameList.getData()) { - GamePlatform gamePlatform = GamePlatform.builder() + /*GamePlatform gamePlatform = GamePlatform.builder() .platformType(NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType())) .platformCode(GamePlatforms.PG.getCode()) .build(); @@ -265,9 +246,12 @@ public class GamesPGServiceImpl implements IGamesService { gamePlatformService.insertGamePlatform(gamePlatform); } else { gamePlatform = gamePlatforms.get(0); - } + }*/ + Integer platformType = NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType()); Game game = Game.builder() - .platformId(gamePlatform.getId()) +// .platformId(gamePlatform.getId()) + .platformCode(GamePlatforms.PG.getCode()) + .platformType(platformType) .gameCode(apiGameInfoResponseDTO.getGameCode()) .build(); List games = gameService.selectGameList(game); @@ -276,15 +260,20 @@ public class GamesPGServiceImpl implements IGamesService { game.setGameSourceType(String.valueOf(apiGameInfoResponseDTO.getGameType())); game.setFreespin(Boolean.FALSE); 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.setCreateBy(Constants.SYSTEM); + List 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); } else { game = games.get(0); } apiGameInfoResponseDTO.setSystemGameId(game.getId()); - Map gameName = apiGameInfoResponseDTO.getGameName(); + /*Map gameName = apiGameInfoResponseDTO.getGameName(); for (String key : gameName.keySet()) { String name = gameName.get(key); List gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(name).build()); @@ -309,7 +298,7 @@ public class GamesPGServiceImpl implements IGamesService { .build()); } } - } + }*/ } @@ -334,11 +323,11 @@ public class GamesPGServiceImpl implements IGamesService { public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) { log.info("GamesNGServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO); - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.PG.getCode()) - .code(exchangeTransferMoneyRequestDTO.getAgentId()) - .currency(exchangeTransferMoneyRequestDTO.getCurrency()) - .build()); +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.PG.getCode()) +// .code(exchangeTransferMoneyRequestDTO.getAgentId()) +// .currency(exchangeTransferMoneyRequestDTO.getCurrency()) +// .build()); Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount()); String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32); @@ -358,7 +347,7 @@ public class GamesPGServiceImpl implements IGamesService { .quota(exchangeTransferMoneyRequestDTO.getQuota()) .balance(exchangeTransferMoneyRequestDTO.getAmount()) .exchangeType(exchangeTransferMoneyRequestDTO.getTransferType()) - .currencyCode(currencyDTO.getSystemCurrency()) + .currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency()) .memberId(member.getId()) .transactionId(transactionId) .platformCode(GamePlatforms.PG.getCode()) @@ -372,7 +361,7 @@ public class GamesPGServiceImpl implements IGamesService { .accounts(member.getGameAccount()) .agentId(exchangeTransferMoneyRequestDTO.getAgentId()) .agentKey(exchangeTransferMoneyRequestDTO.getAgentKey()) - .currency(currencyDTO.getCurrency()) + .currency(exchangeTransferMoneyRequestDTO.getCurrency()) .build(); MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO); //判断是不是转出 @@ -384,7 +373,7 @@ public class GamesPGServiceImpl implements IGamesService { Map paramsMap = new HashMap<>(); paramsMap.put("platType", NGPlatforms.PG.getCode()); paramsMap.put("playerId", exchangeTransferMoneyRequestDTO.getAccount()); - paramsMap.put("currency", currencyDTO.getCurrency()); + paramsMap.put("currency", exchangeTransferMoneyRequestDTO.getCurrency()); paramsMap.put("type", type); paramsMap.put("amount", exchangeTransferMoneyRequestDTO.getAmount()); paramsMap.put("orderId", transactionId); @@ -399,7 +388,7 @@ public class GamesPGServiceImpl implements IGamesService { gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO(); exchangeTransferStatusRequestDTO.setAccount(exchangeTransferMoneyRequestDTO.getAccount()); - exchangeTransferStatusRequestDTO.setCurrency(currencyDTO.getCurrency()); + exchangeTransferStatusRequestDTO.setCurrency(exchangeTransferMoneyRequestDTO.getCurrency()); exchangeTransferStatusRequestDTO.setOrderId(transactionId); exchangeTransferStatusRequestDTO.setAgentId(exchangeTransferMoneyRequestDTO.getAgentId()); exchangeTransferStatusRequestDTO.setAgentKey(exchangeTransferMoneyRequestDTO.getAgentKey()); @@ -467,17 +456,19 @@ public class GamesPGServiceImpl implements IGamesService { GameSecretKeyCurrencyDTO gameSecretKeyDTO = new GameSecretKeyCurrencyDTO(); gameSecretKeyDTO.setPlatformCodes(NGPlatforms.getAllPlatforms()); - List currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO); - List currencys = currencyDTOList.stream() - .map(GameSecretKeyCurrencyDTO::getCurrency) - .distinct() - .collect(Collectors.toList()); +// List currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO); +// List currencys = currencyDTOList.stream() +// .map(GameSecretKeyCurrencyDTO::getCurrency) +// .distinct() +// .collect(Collectors.toList()); + Platform platform = betRecordByTimeDTO.getVendor(); Set cacheSet = redisCache.getCacheSet(CacheConstants.PG_GAMES_BET_CURRENCY); if (CollectionUtils.isEmpty(cacheSet)) { cacheSet = new HashSet<>(); } + List currencys = new ArrayList<>(platform.getCurrencyInfo().values()); //如果长度一致则清空缓存循环币种 if (cacheSet.size() >= currencys.size()) { cacheSet = new HashSet<>(); @@ -488,22 +479,24 @@ public class GamesPGServiceImpl implements IGamesService { String firstCurrency = currencys.get(0); - GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCode(GamePlatforms.PG.getCode()) - .currency(firstCurrency) - .build()); +// GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCode(GamePlatforms.PG.getCode()) +// .currency(firstCurrency) +// .build()); - betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); - betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); +// betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); +// betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); int pageNo = 1; int pageSize = 2000; Map paramsMap = new HashMap<>(); - paramsMap.put("currency", currencyDTO.getCurrency()); + paramsMap.put("currency", /*currencyDTO.getCurrency()*/ firstCurrency); paramsMap.put("pageNo", pageNo); paramsMap.put("pageSize", pageSize); Map key = this.getKey(betRecordByTimeDTO); + String systemCurrency = platform.getOurCurrency(firstCurrency); + ApiNGResponseDTO betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key); @@ -517,7 +510,7 @@ public class GamesPGServiceImpl implements IGamesService { ApiGameBetRecordPageResponseDTO data = result.getData(); //数据组装 - this.batchInsert(data); + this.batchInsert(data, systemCurrency, firstCurrency); //总页数 // 计算总页数,确保不会遗漏 @@ -528,19 +521,19 @@ public class GamesPGServiceImpl implements IGamesService { pageNoAtomic.incrementAndGet(); //请求参数 Map paramMap = new HashMap<>(); - paramMap.put("currency", currencyDTO.getCurrency()); + paramMap.put("currency", /*currencyDTO.getCurrency()*/firstCurrency); paramMap.put("pageNo", pageNoAtomic.get()); paramMap.put("pageSize", pageSize); SleepUtil.sleep(10000); ApiNGResponseDTO betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key); data = betRecordByTimePage.getData(); //数据组装 - this.batchInsert(data); + this.batchInsert(data, systemCurrency, firstCurrency); } } - getBetRecordByHistoryTime(betRecordByTimeDTO, currencyDTO); + getBetRecordByHistoryTime(betRecordByTimeDTO, systemCurrency, firstCurrency); return Boolean.TRUE; } @@ -548,9 +541,9 @@ public class GamesPGServiceImpl implements IGamesService { * 按历史时间获取投注记录 * * @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分钟前的数据 Long startTimes = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -30); @@ -578,12 +571,12 @@ public class GamesPGServiceImpl implements IGamesService { .format(Instant.ofEpochMilli(betRecordByTimeDTO.getEndTime())); - betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); - betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); + //betRecordByTimeDTO.setAgentId(currencyDTO.getCode()); + //betRecordByTimeDTO.setAgentKey(currencyDTO.getKey()); int pageNo = 1; int pageSize = 2000; Map paramsMap = new HashMap<>(); - paramsMap.put("currency", currencyDTO.getCurrency()); + paramsMap.put("currency", /*currencyDTO.getCurrency()*/ currency); paramsMap.put("pageNo", pageNo); paramsMap.put("pageSize", pageSize); paramsMap.put("startTime", startTime); @@ -601,7 +594,7 @@ public class GamesPGServiceImpl implements IGamesService { ApiGameBetRecordPageResponseDTO data = result.getData(); //数据组装 - this.batchInsert(data); + this.batchInsert(data, systemCurrency, currency); //总页数 // 计算总页数,确保不会遗漏 @@ -612,7 +605,7 @@ public class GamesPGServiceImpl implements IGamesService { pageNoAtomic.incrementAndGet(); //请求参数 Map paramMap = new HashMap<>(); - paramMap.put("currency", currencyDTO.getCurrency()); + paramMap.put("currency", /*currencyDTO.getCurrency()*/ currency); paramMap.put("pageNo", pageNoAtomic.get()); paramMap.put("pageSize", pageSize); paramMap.put("startTime", startTime); @@ -621,13 +614,14 @@ public class GamesPGServiceImpl implements IGamesService { ApiNGResponseDTO betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key); 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()); } + /** * 游戏演示登录 * @@ -731,7 +726,6 @@ public class GamesPGServiceImpl implements IGamesService { } - /** * 数据构建 * @@ -750,15 +744,18 @@ public class GamesPGServiceImpl implements IGamesService { } String platform = ngPlatforms.getPlatform(); - List games = gameService.selectGameDTOList(GameDTO.builder().gameName(resultBean.getGameName()).platformCode(platform).build()); + List games = gameService.selectGameDTOList(GameDTO.builder() + .gameName(resultBean.getGameName()) + .platformCode(platform) + .build()); if (CollectionUtils.isEmpty(games)) { return null; } Game gamesDataDTO = games.get(0); - GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() - .platformCodes(NGPlatforms.getAllPlatforms()) - .currency(resultBean.getCurrency()) - .build()); +// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder() +// .platformCodes(NGPlatforms.getAllPlatforms()) +// .currency(resultBean.getCurrency()) +// .build()); Member member = memberService.selectMemberByGameAccount(resultBean.getPlayerId()); if (ObjectUtils.isEmpty(member)) { @@ -778,7 +775,7 @@ public class GamesPGServiceImpl implements IGamesService { GameBettingDetails gameBettingDetails = GameBettingDetails.builder() .tenantKey(member.getTenantKey()) //保存我们的币种id - .currencyCode(currencyDTO.getSystemCurrency()) + .currencyCode(gamesDataBuildDTO.getSystemCurrencyCode()) .memberId(member.getId()) .gameCode(gamesDataDTO.getGameCode()) .gameType(NGGameType.findSystemByCode(resultBean.getGameType())) @@ -814,12 +811,15 @@ public class GamesPGServiceImpl implements IGamesService { * * @param data 数据 */ - private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data) { + private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data, String systemCurrency, String currency) { List gameBettingDetails = new ArrayList<>(); List wagersIds = new ArrayList<>(); //数据转化 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)) { bettingDetails.setId(IdUtil.getSnowflakeNextId()); gameBettingDetails.add(bettingDetails); @@ -828,7 +828,7 @@ public class GamesPGServiceImpl implements IGamesService { } if (!CollectionUtils.isEmpty(gameBettingDetails)) { //查询重复数据id - List removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,NGPlatforms.PG.getPlatform()); + List removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, NGPlatforms.PG.getPlatform()); //用steam流清除list中与wagersIds集合相同的数据 gameBettingDetails = gameBettingDetails.stream() .filter(detail -> !removeWagersIds.contains(detail.getWagersId())) diff --git a/ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java b/ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java index 22c6e80..173c9b5 100644 --- a/ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java +++ b/ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java @@ -6,11 +6,10 @@ import java.io.Serializable; import java.util.HashMap; /** + * key:我们的币种 + * * @author cengy */ @Data public class CurrencyInfo extends HashMap implements Serializable { - - private String currencyId; - } 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 1732f03..58fefee 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 @@ -113,6 +113,10 @@ public class GameTask { betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); betRecordByTimeDTO.setKeyInfo(keyInfo); betRecordByTimeDTO.setVendor(platform); + + betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); + betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); + gamesService.get(platformCode + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO); } catch (Exception e) { log.error("同步平台投注记录失败platformCode:{}", platformCode, e); @@ -153,6 +157,9 @@ public class GameTask { betRecordByTimeDTO.setKeyInfo(keyInfo); betRecordByTimeDTO.setVendor(platform); + betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); + betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); + gamesService.get(platformCode + Constants.SERVICE).getBetRecordByHistoryTime(betRecordByTimeDTO); } catch (Exception e) { log.error("同步平台投注记录失败platformCode:{}", platformCode, e);