refactor(ff-game): 重构游戏平台相关代码
- 移除了 GameSecretKeyCurrency 相关的使用 - 优化了货币转换逻辑 - 简化了游戏平台和货币信息的处理- 调整了批量插入逻辑,使其更加通用main-meitian
parent
40208aab98
commit
b35fad13d1
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)) {
|
||||||
|
|
|
@ -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 dg投注记录响应dto
|
* @param betRecordByTime dg投注记录响应dto
|
||||||
*/
|
*/
|
||||||
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())
|
||||||
|
|
|
@ -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())))
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue