refactor(ff-game): 重构 FB 和 SV388 平台的转账逻辑

- 移除 FBSports 和 SV388 平台的重复代码
- 优化交易 ID 生成逻辑,支持不同平台的格式
-调整 CreateOrderServiceImpl 中的平台判断逻辑
- 重构 FBSportsServiceImpl 和 SV388GamesServiceImpl 中的转账方法
main-pgt
shi 2025-04-11 11:03:24 +08:00
parent 9fa259268e
commit 537b23a420
3 changed files with 10 additions and 54 deletions

View File

@ -103,6 +103,10 @@ public class CreateOrderServiceImpl extends AbstractStepProcessor {
return GamePlatforms.KM.getInfo() + IdUtils.simpleUUID();
case PGT:
return gameExchangeMoneyService.getTransactionId(GamePlatforms.PGT.getInfo(), 17);
case FBSports:
return GamePlatforms.FBSports.getCode() + IdUtils.simpleUUID();
case SV388:
return GamePlatforms.SV388.getCode() + IdUtils.simpleUUID();
}
throw new ApiException(ErrorCode.PLATFORM_NOT_EXIST.getCode());
}

View File

@ -229,34 +229,8 @@ public class SV388GamesServiceImpl implements IGamesService {
@Transactional
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
String transactionId = GamePlatforms.SV388.getCode() + IdUtils.simpleUUID();
List<GameExchangeMoney> gameExchangeMonies = gameExchangeMoneyService.selectGameExchangeMoneyList(
GameExchangeMoney.builder()
.tenantKey(exchangeTransferMoneyRequestDTO.getTenantKey())
.orderId(exchangeTransferMoneyRequestDTO.getOrderId())
.build()
);
Assert.isTrue(CollectionUtils.isEmpty(gameExchangeMonies), "订单号重复");
GameExchangeMoney exchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(exchangeTransferMoneyRequestDTO.getGameExchangeId());
//获取下一个自增id
GameExchangeMoney exchangeMoney = GameExchangeMoney
.builder()
.tenantKey(exchangeTransferMoneyRequestDTO.getTenantKey())
.orderId(exchangeTransferMoneyRequestDTO.getOrderId())
.quota(exchangeTransferMoneyRequestDTO.getQuota())
.balance(exchangeTransferMoneyRequestDTO.getAmount())
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
.memberId(member.getId())
.transactionId(transactionId)
.platformCode(GamePlatforms.SV388.getCode())
.build();
exchangeMoney.setCreateBy(Constants.SYSTEM);
exchangeMoney.setStatus(StatusType.IN_PROGRESS.getValue());
exchangeMoney.setStep(GameExchangeStep.CREATE_ORDER.getCode());
exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode());
gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney);
Map<String, Object> params = this.getKey(exchangeTransferMoneyRequestDTO);
@ -265,13 +239,13 @@ public class SV388GamesServiceImpl implements IGamesService {
if (TransferType.GAMES.getCode().equals(exchangeTransferMoneyRequestDTO.getTransferType())) {
params.put("userId", exchangeTransferMoneyRequestDTO.getAccount());
params.put("txCode", transactionId);
params.put("txCode", exchangeTransferMoneyRequestDTO.getTransactionId());
params.put("transferAmount", exchangeTransferMoneyRequestDTO.getAmount());
deposit = sv388Client.deposit(params);
} else {
params.put("userId", exchangeTransferMoneyRequestDTO.getAccount());
params.put("txCode", transactionId);
params.put("txCode", exchangeTransferMoneyRequestDTO.getTransactionId());
params.put("withdrawType", 1);
deposit = sv388Client.withdraw(params);
}

View File

@ -130,31 +130,9 @@ public class FBSportsServiceImpl implements IGamesService {
@Transactional
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO requestDTO) {
Member member = memberService.selectMemberByGameAccount(requestDTO.getAccount());
String transactionId = GamePlatforms.FBSports.getCode() + IdUtils.simpleUUID();
List<GameExchangeMoney> gameExchangeMonies = gameExchangeMoneyService.selectGameExchangeMoneyList(
GameExchangeMoney.builder()
.tenantKey(requestDTO.getTenantKey())
.orderId(requestDTO.getOrderId())
.build()
);
Assert.isTrue(CollectionUtils.isEmpty(gameExchangeMonies), "订单号重复");
//获取下一个自增id
GameExchangeMoney exchangeMoney = GameExchangeMoney
.builder()
.orderId(requestDTO.getOrderId())
.tenantKey(requestDTO.getTenantKey())
.quota(requestDTO.getQuota())
.balance(requestDTO.getAmount())
.exchangeType(requestDTO.getTransferType())
.currencyCode(requestDTO.getSystemCurrency())
.memberId(member.getId())
.transactionId(transactionId)
.platformCode(GamePlatforms.FBSports.getCode())
.build();
exchangeMoney.setCreateBy(Constants.SYSTEM);
//接口限制限制50字符
exchangeMoney.setTransactionId(transactionId);
GameExchangeMoney exchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(requestDTO.getGameExchangeId());
// 转入
if (requestDTO.getTransferType().equals(TransferType.GAMES.getCode())) {
TransferInRequest request = new TransferInRequest();