refactor(ff-game): 重构游戏平台相关代码
- 移除了 GameSecretKeyCurrency 相关的使用 - 优化了货币转换逻辑 - 简化了游戏平台和货币信息的处理- 调整了批量插入逻辑,使其更加通用main-meitian
parent
40208aab98
commit
b35fad13d1
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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<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);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
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
|
||||
.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> gameBettingDetails = new ArrayList<>();
|
||||
List<String> 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)) {
|
||||
|
|
|
@ -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<String, Object> 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<String, Object> 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<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
// GamePlatform gamePlatform = GamePlatform.builder()
|
||||
// .platformType(KMGameType.findSystemByCode(game.getProviderCode()))
|
||||
// .platformCode(GamePlatforms.KM.getCode())
|
||||
// .build();
|
||||
/*List<GamePlatform> 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<Game> gameOnes = gameService.selectGameList(gameOne);
|
||||
|
@ -327,11 +312,11 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
*/
|
||||
private List<KMGameResponse.Game> 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<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
// GamePlatform gamePlatform = GamePlatform.builder()
|
||||
// .platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode()))
|
||||
// .platformCode(GamePlatforms.KM.getCode())
|
||||
// .build();
|
||||
/*List<GamePlatform> 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<Game> 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<NameInfo> 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<GameName> 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<GameName> 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<String, Object> 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<String, Object> 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> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
List<KMBetRecordResponse.Bet> 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())
|
||||
|
|
|
@ -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<Game> 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<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);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
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)) {
|
||||
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> gameBettingDetails = new ArrayList<>();
|
||||
List<String> 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())))
|
||||
|
|
|
@ -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<List<ApiGameInfoResponseDTO>> 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<Game> 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<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);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
apiGameInfoResponseDTO.setSystemGameId(game.getId());
|
||||
Map<String, String> gameName = apiGameInfoResponseDTO.getGameName();
|
||||
/*Map<String, String> gameName = apiGameInfoResponseDTO.getGameName();
|
||||
for (String key : gameName.keySet()) {
|
||||
String name = gameName.get(key);
|
||||
List<GameName> 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<String, Object> 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<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO);
|
||||
List<String> currencys = currencyDTOList.stream()
|
||||
.map(GameSecretKeyCurrencyDTO::getCurrency)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
// List<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO);
|
||||
// List<String> currencys = currencyDTOList.stream()
|
||||
// .map(GameSecretKeyCurrencyDTO::getCurrency)
|
||||
// .distinct()
|
||||
// .collect(Collectors.toList());
|
||||
|
||||
|
||||
Platform platform = betRecordByTimeDTO.getVendor();
|
||||
Set<String> cacheSet = redisCache.getCacheSet(CacheConstants.PG_GAMES_BET_CURRENCY);
|
||||
if (CollectionUtils.isEmpty(cacheSet)) {
|
||||
cacheSet = new HashSet<>();
|
||||
}
|
||||
List<String> 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<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("currency", currencyDTO.getCurrency());
|
||||
paramsMap.put("currency", /*currencyDTO.getCurrency()*/ firstCurrency);
|
||||
paramsMap.put("pageNo", pageNo);
|
||||
paramsMap.put("pageSize", pageSize);
|
||||
Map<String, String> key = this.getKey(betRecordByTimeDTO);
|
||||
|
||||
String systemCurrency = platform.getOurCurrency(firstCurrency);
|
||||
|
||||
|
||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> 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<String, Object> 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<ApiGameBetRecordPageResponseDTO> 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<String, Object> 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<String, Object> 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<ApiGameBetRecordPageResponseDTO> 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<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)) {
|
||||
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> gameBettingDetails = new ArrayList<>();
|
||||
List<String> 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<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,NGPlatforms.PG.getPlatform());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, NGPlatforms.PG.getPlatform());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
|
@ -6,11 +6,10 @@ import java.io.Serializable;
|
|||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* key:我们的币种
|
||||
*
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class CurrencyInfo extends HashMap<String, String> implements Serializable {
|
||||
|
||||
private String currencyId;
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue