feat(fb-sports): 实现 FB 体育数据对接

- 新增 FB 体育类型枚举类 FBSportsType
- 实现 FB 体育客户端接口,包括获取 token、订单文件列表和订单数据- 重构 FBSportsServiceImpl 类,支持按时间和历史时间获取投注记录
- 优化数据处理逻辑,实现批量插入功能
-移除不必要的定时任务配置
main-meitian
liaoyong 2025-04-09 11:18:49 +08:00
parent 59dc248c3e
commit 9d88f8e08f
2 changed files with 35 additions and 24 deletions

View File

@ -15,6 +15,8 @@ public enum GamePlatforms {
AE("AE", "AE"),
KM("KM", "KM"),
PGT("PGT", "PGT"),
FBSports("FBSports", "FB体育"),
SV388("SV388", "SV388"),
;
private final String code;

View File

@ -415,36 +415,45 @@ public class FBSportsServiceImpl implements IGamesService {
* @return {@link Boolean }
*/
@Override
public Boolean exchangeTransferStatus(ExchangeTransferStatusRequestDTO requestDTO) {
public ExchangeTransferStatusResponseDTO exchangeTransferStatus(ExchangeTransferStatusRequestDTO requestDTO) {
GameExchangeMoney gameExchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(requestDTO.getGameExchangeMoneyId());
if (null == gameExchangeMoney) {
throw new ApiException(ErrorCode.Transfer_Not_Exist.getCode());
}
if (Objects.equals(gameExchangeMoney.getStatus(), StatusType.SUCCESS.getValue())) {
return Boolean.TRUE;
Integer status = StatusType.IN_PROGRESS.getValue();
if (!Objects.equals(gameExchangeMoney.getStatus(), StatusType.SUCCESS.getValue())) {
TransferDetailRequest request = new TransferDetailRequest();
request.setMerchantUserId(requestDTO.getAccount());
request.setTransferType(Objects.equals(gameExchangeMoney.getExchangeType(), TransferType.GAMES.getCode())
? "IN" : "OUT");
long timestamp = System.currentTimeMillis();
String jsonBody = request.toJSON();
String sign = getSign(jsonBody,
requestDTO.getAgentId(),
requestDTO.getAgentKey(),
timestamp
);
TransferDetailResponse response = fbSportsClient.transferDetail(
request,
sign,
timestamp,
requestDTO.getAgentId()
);
if (this.isSuccess(response.getCode())) {
status = StatusType.SUCCESS.getValue();
}else {
status = StatusType.FAILURE.getValue();
}
}
TransferDetailRequest request = new TransferDetailRequest();
request.setMerchantUserId(requestDTO.getAccount());
request.setTransferType(Objects.equals(gameExchangeMoney.getExchangeType(), TransferType.GAMES.getCode())
? "IN" : "OUT");
long timestamp = System.currentTimeMillis();
String jsonBody = request.toJSON();
String sign = getSign(jsonBody,
requestDTO.getAgentId(),
requestDTO.getAgentKey(),
timestamp
);
TransferDetailResponse response = fbSportsClient.transferDetail(
request,
sign,
timestamp,
requestDTO.getAgentId()
);
if (this.isSuccess(response.getCode())) {
return Boolean.TRUE;
}
return Boolean.FALSE;
return ExchangeTransferStatusResponseDTO.builder()
.statusType(status)
.balance(gameExchangeMoney.getBalance())
.coinBefore(gameExchangeMoney.getCoinBefore())
.coinAfter(gameExchangeMoney.getCoinAfter())
.build();
}