From 3236b4ab558f58958bea14979b6d4658c6cfc450 Mon Sep 17 00:00:00 2001 From: shi Date: Fri, 11 Apr 2025 15:20:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor(game):=20=E9=87=8D=E6=9E=84=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E5=B9=B3=E5=8F=B0=E4=BA=A4=E6=98=93ID=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 CreateOrderServiceImpl 中的 getTransactionId 方法 - 在每个游戏平台的实现类中添加 getTransactionId 方法,具体实现如下: - GamesAEServiceImpl - GamesDGServiceImpl - GamesFCServiceImpl - GamesJILIServiceImpl - GamesKMServiceImpl - GamesPGServiceImpl - GamesPGTServiceImpl - GamesPGXServiceImpl - GamesSAServiceImpl - 更新 DBSportsServiceImpl 和 FBSportsServiceImpl 中的交易ID生成逻辑 - 重构后的交易ID生成逻辑更清晰,每个平台有自己的实现方式 --- .../java/com/ff/base/utils/DateUtils.java | 44 +++++++++++-- .../java/com/ff/game/api/IGamesService.java | 8 +++ .../game/api/ae/impl/GamesAEServiceImpl.java | 17 +++++ .../api}/db/address/DBSportsAddress.java | 2 +- .../api}/db/client/DBSportsClient.java | 6 +- .../api}/db/dto/CreateUserRequest.java | 2 +- .../api}/db/dto/CreateUserResponse.java | 2 +- .../{sports/fb => game/api/db}/dto/Enums.java | 2 +- .../api}/db/dto/GetBetListRequest.java | 2 +- .../api}/db/dto/GetBetListResponse.java | 2 +- .../api}/db/dto/GetMemberInfoRequest.java | 2 +- .../api}/db/dto/GetMemberInfoResponse.java | 2 +- .../api}/db/dto/KickUserRequest.java | 2 +- .../api}/db/dto/KickUserResponse.java | 2 +- .../api}/db/dto/LoginRequest.java | 2 +- .../api}/db/dto/LoginResponse.java | 2 +- .../api}/db/dto/TransferDetailRequest.java | 2 +- .../api}/db/dto/TransferDetailResponse.java | 2 +- .../api}/db/dto/TransferRequest.java | 2 +- .../api}/db/dto/TransferResponse.java | 2 +- .../api}/db/impl/DBSportsServiceImpl.java | 65 +++++++++---------- .../dg/service/impl/GamesDGServiceImpl.java | 18 +++++ .../exchange/impl/CreateOrderServiceImpl.java | 58 +++-------------- .../api}/fb/address/FBSportsAddress.java | 2 +- .../api}/fb/client/FBSportsClient.java | 6 +- .../api}/fb/dto/CreateUserRequest.java | 2 +- .../api}/fb/dto/CreateUserResponse.java | 2 +- .../{sports/db => game/api/fb}/dto/Enums.java | 2 +- .../api}/fb/dto/GetMemberInfoRequest.java | 2 +- .../api}/fb/dto/GetMemberInfoResponse.java | 2 +- .../api}/fb/dto/GetTokenRequest.java | 2 +- .../api}/fb/dto/GetTokenResponse.java | 2 +- .../api}/fb/dto/GetUrlRequest.java | 2 +- .../api}/fb/dto/GetUrlResponse.java | 2 +- .../api}/fb/dto/OrderFilesRequest.java | 2 +- .../api}/fb/dto/OrderFilesResponse.java | 2 +- .../api}/fb/dto/OrderInfoRequest.java | 2 +- .../api}/fb/dto/OrderInfoResponse.java | 2 +- .../api}/fb/dto/TransferDetailRequest.java | 2 +- .../api}/fb/dto/TransferDetailResponse.java | 2 +- .../api}/fb/dto/TransferInRequest.java | 2 +- .../api}/fb/dto/TransferInResponse.java | 2 +- .../api}/fb/dto/TransferOutRequest.java | 2 +- .../api}/fb/dto/TransferOutResponse.java | 2 +- .../api}/fb/impl/FBSportsServiceImpl.java | 44 +++++++++---- .../game/api/fc/impl/GamesFCServiceImpl.java | 18 +++++ .../service/impl/GamesJILIServiceImpl.java | 16 +++++ .../game/api/km/impl/GamesKMServiceImpl.java | 18 +++++ .../meitian/impl/MeiTianGameServiceImpl.java | 16 +++++ .../ng/service/impl/GamesPGServiceImpl.java | 43 +++++++++++- .../api/pgt/impl/GamesPGTServiceImpl.java | 16 ++++- .../api/pgx/dto/PGXBetHistoryResponse.java | 4 +- .../api/pgx/impl/GamesPGXServiceImpl.java | 26 +++++++- .../api/request/TransactionIdRequestDTO.java | 25 +++++++ .../game/api/sa/impl/GamesSAServiceImpl.java | 24 +++++++ .../api/sv388/impl/SV388GamesServiceImpl.java | 22 ++++++- .../xk/service/impl/GamesXKServiceImpl.java | 16 ++++- 57 files changed, 428 insertions(+), 154 deletions(-) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/address/DBSportsAddress.java (95%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/client/DBSportsClient.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/CreateUserRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/CreateUserResponse.java (92%) rename ff-game/src/main/java/com/ff/{sports/fb => game/api/db}/dto/Enums.java (61%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/GetBetListRequest.java (98%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/GetBetListResponse.java (99%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/GetMemberInfoRequest.java (95%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/GetMemberInfoResponse.java (94%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/KickUserRequest.java (94%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/KickUserResponse.java (90%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/LoginRequest.java (98%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/LoginResponse.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/TransferDetailRequest.java (95%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/TransferDetailResponse.java (97%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/TransferRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/dto/TransferResponse.java (92%) rename ff-game/src/main/java/com/ff/{sports => game/api}/db/impl/DBSportsServiceImpl.java (91%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/address/FBSportsAddress.java (95%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/client/FBSportsClient.java (97%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/CreateUserRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/CreateUserResponse.java (90%) rename ff-game/src/main/java/com/ff/{sports/db => game/api/fb}/dto/Enums.java (61%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetMemberInfoRequest.java (94%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetMemberInfoResponse.java (97%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetTokenRequest.java (95%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetTokenResponse.java (98%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetUrlRequest.java (88%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/GetUrlResponse.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/OrderFilesRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/OrderFilesResponse.java (93%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/OrderInfoRequest.java (94%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/OrderInfoResponse.java (99%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferDetailRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferDetailResponse.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferInRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferInResponse.java (91%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferOutRequest.java (96%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/dto/TransferOutResponse.java (91%) rename ff-game/src/main/java/com/ff/{sports => game/api}/fb/impl/FBSportsServiceImpl.java (94%) create mode 100644 ff-game/src/main/java/com/ff/game/api/request/TransactionIdRequestDTO.java diff --git a/ff-base/src/main/java/com/ff/base/utils/DateUtils.java b/ff-base/src/main/java/com/ff/base/utils/DateUtils.java index 4f598c9..a473e18 100644 --- a/ff-base/src/main/java/com/ff/base/utils/DateUtils.java +++ b/ff-base/src/main/java/com/ff/base/utils/DateUtils.java @@ -38,11 +38,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String DAY_END_TIME = "23:59:59"; - public static final String ISO_8601_FORMAT= "yyyy-MM-dd'T'HH:mm:ss"; + public static final String ISO_8601_FORMAT = "yyyy-MM-dd'T'HH:mm:ss"; - - public static final String ISO_8601_FORMAT_Z= "yyyy-MM-dd'T'HH:mm:ss'Z'"; + public static final String ISO_8601_FORMAT_Z = "yyyy-MM-dd'T'HH:mm:ss'Z'"; /** @@ -213,8 +212,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { * 将时间戳转换为指定格式的时间字符串 * * @param timestamp 时间戳(毫秒) - * @param format 目标时间格式,例如:yyyy-MM-dd'T'HH:mm:ssXXX - * @param timeZone 时区,例如:GMT+8,UTC等 + * @param format 目标时间格式,例如:yyyy-MM-dd'T'HH:mm:ssXXX + * @param timeZone 时区,例如:GMT+8,UTC等 * @return 格式化后的时间字符串 */ public static String convertTimestampToFormattedDate(long timestamp, String format, String timeZone) { @@ -251,7 +250,6 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { } - /** * 增加 LocalDate ==> Date */ @@ -943,4 +941,38 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static boolean isBetween(Long value, Long minValue, Long maxValue) { return value >= minValue && value <= maxValue; } + + /** + * 将日期字符串转换为指定时区的毫秒时间戳 + * + * @param dateString 日期字符串,格式为 "yyyy-MM-dd'T'HH:mm:ss.SSS" + * @param timezone 时区(如 UTC、Asia/Shanghai) + * @return 时区下的毫秒时间戳 + * @throws Exception 日期解析异常 + */ + public static long convertToMillisWithTimezone(String dateString, String timezone) { + try { + // 设置日期格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); + + // 设置解析时使用的时区 + sdf.setTimeZone(TimeZone.getTimeZone(timezone)); + + // 解析日期字符串为 Date 对象 + Date date = sdf.parse(dateString); + + // 获取项目默认时区 + TimeZone defaultTimeZone = TimeZone.getDefault(); + + // 使用默认时区的 Calendar 计算 + Calendar calendar = Calendar.getInstance(defaultTimeZone); + calendar.setTime(date); + + // 返回该时区对应的毫秒时间戳 + return calendar.getTimeInMillis(); + } catch (Exception e) { + return 0; + } + + } } diff --git a/ff-game/src/main/java/com/ff/game/api/IGamesService.java b/ff-game/src/main/java/com/ff/game/api/IGamesService.java index d8ed023..00585dd 100644 --- a/ff-game/src/main/java/com/ff/game/api/IGamesService.java +++ b/ff-game/src/main/java/com/ff/game/api/IGamesService.java @@ -52,6 +52,14 @@ public interface IGamesService { */ String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO); + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO); + /** * 按代理id进行交换转账 diff --git a/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java index 8aeaee6..df220be 100644 --- a/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java @@ -218,10 +218,27 @@ public class GamesAEServiceImpl implements IGamesService { game.setNameInfo(Collections.singletonList(nameInfo)); game.setGameId(StringUtils.addSuffix(GamePlatforms.AE.getCode(), 1)); gameService.insertGame(game); + }else { + NameInfo nameInfo = new NameInfo(); + nameInfo.setLang("zh-CN"); + nameInfo.setName("AE大厅"); + game.setNameInfo(Collections.singletonList(nameInfo)); + gameService.updateGame(game); } return CacheConstants.AE_GAMES; } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.AE.getCode() + IdUtils.simpleUUID(); + } + /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/sports/db/address/DBSportsAddress.java b/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java similarity index 95% rename from ff-game/src/main/java/com/ff/sports/db/address/DBSportsAddress.java rename to ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java index c2e1843..f32e3a0 100644 --- a/ff-game/src/main/java/com/ff/sports/db/address/DBSportsAddress.java +++ b/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.address; +package com.ff.game.api.db.address; import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; diff --git a/ff-game/src/main/java/com/ff/sports/db/client/DBSportsClient.java b/ff-game/src/main/java/com/ff/game/api/db/client/DBSportsClient.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/db/client/DBSportsClient.java rename to ff-game/src/main/java/com/ff/game/api/db/client/DBSportsClient.java index c144449..8e62ece 100644 --- a/ff-game/src/main/java/com/ff/sports/db/client/DBSportsClient.java +++ b/ff-game/src/main/java/com/ff/game/api/db/client/DBSportsClient.java @@ -1,8 +1,8 @@ -package com.ff.sports.db.client; +package com.ff.game.api.db.client; import com.dtflys.forest.annotation.*; -import com.ff.sports.db.address.DBSportsAddress; -import com.ff.sports.db.dto.*; +import com.ff.game.api.db.address.DBSportsAddress; +import com.ff.game.api.db.dto.*; /** * @author cengy diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/CreateUserRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/db/dto/CreateUserRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserRequest.java index b8e3366..e80f80a 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/CreateUserRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/CreateUserResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserResponse.java similarity index 92% rename from ff-game/src/main/java/com/ff/sports/db/dto/CreateUserResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserResponse.java index ce2c62e..e299ed2 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/CreateUserResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/CreateUserResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/Enums.java b/ff-game/src/main/java/com/ff/game/api/db/dto/Enums.java similarity index 61% rename from ff-game/src/main/java/com/ff/sports/fb/dto/Enums.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/Enums.java index cf2bd48..618297b 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/Enums.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/Enums.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.db.dto; /** * @author cengy diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/GetBetListRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListRequest.java similarity index 98% rename from ff-game/src/main/java/com/ff/sports/db/dto/GetBetListRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListRequest.java index 13f95cd..9ec24af 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/GetBetListRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/GetBetListResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListResponse.java similarity index 99% rename from ff-game/src/main/java/com/ff/sports/db/dto/GetBetListResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListResponse.java index aace488..08db342 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/GetBetListResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/GetBetListResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoRequest.java similarity index 95% rename from ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoRequest.java index 5255cb6..98f5e5b 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoResponse.java similarity index 94% rename from ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoResponse.java index 1f329c0..c10cf48 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/GetMemberInfoResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/GetMemberInfoResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/KickUserRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/KickUserRequest.java similarity index 94% rename from ff-game/src/main/java/com/ff/sports/db/dto/KickUserRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/KickUserRequest.java index 809825d..33bcf0e 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/KickUserRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/KickUserRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/KickUserResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/KickUserResponse.java similarity index 90% rename from ff-game/src/main/java/com/ff/sports/db/dto/KickUserResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/KickUserResponse.java index 065e66a..0f27fd3 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/KickUserResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/KickUserResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/LoginRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/LoginRequest.java similarity index 98% rename from ff-game/src/main/java/com/ff/sports/db/dto/LoginRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/LoginRequest.java index f120b9b..d2dc47e 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/LoginRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/LoginRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/LoginResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/LoginResponse.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/db/dto/LoginResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/LoginResponse.java index eafb9ba..10ef3c6 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/LoginResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/LoginResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailRequest.java similarity index 95% rename from ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailRequest.java index 342144d..4a6a2a1 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailResponse.java similarity index 97% rename from ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailResponse.java index 77fba58..42866b1 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/TransferDetailResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferDetailResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/TransferRequest.java b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/db/dto/TransferRequest.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/TransferRequest.java index 9b500d3..03991af 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/TransferRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import com.ff.base.utils.sign.Md5Utils; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/TransferResponse.java b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferResponse.java similarity index 92% rename from ff-game/src/main/java/com/ff/sports/db/dto/TransferResponse.java rename to ff-game/src/main/java/com/ff/game/api/db/dto/TransferResponse.java index 1ada1ab..5e563f5 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/TransferResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/db/dto/TransferResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.db.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/impl/DBSportsServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/db/impl/DBSportsServiceImpl.java similarity index 91% rename from ff-game/src/main/java/com/ff/sports/db/impl/DBSportsServiceImpl.java rename to ff-game/src/main/java/com/ff/game/api/db/impl/DBSportsServiceImpl.java index 2b74435..321695d 100644 --- a/ff-game/src/main/java/com/ff/sports/db/impl/DBSportsServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/db/impl/DBSportsServiceImpl.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.impl; +package com.ff.game.api.db.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.constant.CacheConstants; @@ -12,6 +12,7 @@ import com.ff.base.utils.StringUtils; import com.ff.base.utils.sign.Md5Utils; import com.ff.base.utils.uuid.IdUtils; import com.ff.game.api.IGamesService; +import com.ff.game.api.db.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; import com.ff.game.service.IGameBettingDetailsService; @@ -19,12 +20,10 @@ 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 com.ff.sports.db.client.DBSportsClient; -import com.ff.sports.db.dto.*; +import com.ff.game.api.db.client.DBSportsClient; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; @@ -120,37 +119,13 @@ public class DBSportsServiceImpl implements IGamesService { @Transactional public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO requestDTO) { - Member member = memberService.selectMemberByGameAccount(requestDTO.getAccount()); - String transactionId = GamePlatforms.DBSports.getCode() + IdUtils.simpleUUID(); - List 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.DBSports.getCode()) - .build(); - exchangeMoney.setCreateBy(Constants.SYSTEM); - //接口限制限制50字符 - exchangeMoney.setTransactionId(transactionId); + GameExchangeMoney exchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(requestDTO.getGameExchangeId()); // 转入 if (requestDTO.getTransferType().equals(TransferType.GAMES.getCode())) { TransferRequest request = new TransferRequest(); request.setUserName(requestDTO.getAccount()); request.setTransferType(1); - request.setTransferId(requestDTO.getOrderId()); + request.setTransferId(requestDTO.getTransactionId()); request.setMerchantCode(requestDTO.getAgentId()); request.setAmount(requestDTO.getAmount().toString()); request.buildSignature(requestDTO.getAgentKey()); @@ -179,15 +154,19 @@ public class DBSportsServiceImpl implements IGamesService { } catch (Exception e) { log.error("查询会员失败, errorCode:{}, errorMessage:{}", response.getCode(), response.getMsg(), e); } - exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS - gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); } else { + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.FAILURE.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); throw new ApiException(ErrorCode.Transfer_In_Failure.getCode()); } } else { // 获取第三方钱包余额 MemberInfoRequestDTO memberInfoRequestDTO = MemberInfoRequestDTO.builder() - .accounts(member.getGameAccount()) + .accounts(requestDTO.getAccount()) .agentId(requestDTO.getAgentId()) .agentKey(requestDTO.getAgentKey()) .build(); @@ -199,7 +178,7 @@ public class DBSportsServiceImpl implements IGamesService { TransferRequest request = new TransferRequest(); request.setUserName(requestDTO.getAccount()); request.setTransferType(2); // 转出 - request.setTransferId(requestDTO.getOrderId()); + request.setTransferId(requestDTO.getTransactionId()); request.setMerchantCode(requestDTO.getAgentId()); request.setAmount(/*requestDTO.getAmount().toString()*/ balance.toString()); request.buildSignature(requestDTO.getAgentKey()); @@ -221,14 +200,28 @@ public class DBSportsServiceImpl implements IGamesService { exchangeMoney.setCoinAfter(afterAmount); exchangeMoney.setCurrencyBefore(beforeAmount); exchangeMoney.setCurrencyAfter(afterAmount); - exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS - gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); } else { + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.FAILURE.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); throw new ApiException(ErrorCode.Transfer_Out_Failure.getCode()); } } return exchangeMoney.getId(); } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return gameExchangeMoneyService.getTransactionId(GamePlatforms.DBSports.getInfo(), 11); + } /** * 获取会员信息 diff --git a/ff-game/src/main/java/com/ff/game/api/dg/service/impl/GamesDGServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/dg/service/impl/GamesDGServiceImpl.java index a8c1730..9f5f776 100644 --- a/ff-game/src/main/java/com/ff/game/api/dg/service/impl/GamesDGServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/dg/service/impl/GamesDGServiceImpl.java @@ -204,10 +204,28 @@ public class GamesDGServiceImpl implements IGamesService { game.setNameInfo(Collections.singletonList(new NameInfo("真人棋牌", "zh-CN"))); game.setGameId(StringUtils.addSuffix(GamePlatforms.DG.getCode(), 1)); gameService.insertGame(game); + }else { + game.setNameInfo(Collections.singletonList(new NameInfo("真人棋牌", "zh-CN"))); + gameService.updateGame(game); } return CacheConstants.DG_GAMES; } + + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.DG.getInfo() + IdUtils.simpleUUID(); + } + + + /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/exchange/impl/CreateOrderServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/exchange/impl/CreateOrderServiceImpl.java index 4f31570..9909e68 100644 --- a/ff-game/src/main/java/com/ff/game/api/exchange/impl/CreateOrderServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/exchange/impl/CreateOrderServiceImpl.java @@ -6,20 +6,24 @@ import com.ff.base.exception.base.ApiException; import com.ff.base.manager.AsyncManager; import com.ff.base.utils.DateUtils; import com.ff.base.utils.uuid.IdUtils; +import com.ff.game.api.IGamesService; import com.ff.game.api.exchange.AbstractStepProcessor; import com.ff.game.api.exchange.StepProcessorFactory; import com.ff.game.api.exchange.StepProcessorService; import com.ff.game.api.exchange.dto.GameExchangeDTO; import com.ff.game.api.request.ExchangeTransferStatusRequestDTO; +import com.ff.game.api.request.TransactionIdRequestDTO; import com.ff.game.domain.GameExchangeMoney; import com.ff.game.service.IGameExchangeMoneyService; import com.ff.member.domain.Member; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; +import java.util.Map; /** * 创建订单impl @@ -33,11 +37,12 @@ public class CreateOrderServiceImpl extends AbstractStepProcessor { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; - - @Resource private StepProcessorFactory stepProcessorFactory; + @Autowired + private Map gamesService; + /** * 步进键 * @@ -56,10 +61,10 @@ public class CreateOrderServiceImpl extends AbstractStepProcessor { * @return boolean */ @Override - public boolean doProcess(GameExchangeDTO gameExchangeMoney) { + public boolean doProcess(GameExchangeDTO gameExchangeMoney) { - - gameExchangeMoney.setTransactionId(this.getTransactionId(GamePlatforms.getByCode(gameExchangeMoney.getPlatformCode()),gameExchangeMoney.getExchangeType(),gameExchangeMoney.getGameAccount())); + String transactionId = gamesService.get(gameExchangeMoney.getPlatformCode()+Constants.SERVICE).getTransactionId(TransactionIdRequestDTO.builder().exchangeType(gameExchangeMoney.getExchangeType()).gameAccount(gameExchangeMoney.getGameAccount()).build()); + gameExchangeMoney.setTransactionId(transactionId); gameExchangeMoney.setCreateBy(Constants.SYSTEM); gameExchangeMoney.setStatus(StatusType.IN_PROGRESS.getValue()); gameExchangeMoney.setStep(GameExchangeStep.CREATE_ORDER.getCode()); @@ -67,49 +72,6 @@ public class CreateOrderServiceImpl extends AbstractStepProcessor { return gameExchangeMoneyService.insertGameExchangeMoney(gameExchangeMoney) > 0; } - /** - * 获取交易id - * - * @return {@link String } - */ - private String getTransactionId(GamePlatforms gamePlatforms,Integer exchangeType ,String account) { - switch (gamePlatforms) { - case AE: - return GamePlatforms.AE.getCode() + IdUtils.simpleUUID(); - case JILI: - return GamePlatforms.JILI.getInfo() + IdUtils.simpleUUID(); - case XK: - return GamePlatforms.XK.getCode() + IdUtils.simpleUUID(); - case PG: - return gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32); - case PGX: - return gameExchangeMoneyService.getTransactionId(GamePlatforms.PGX.getInfo(), 17); - case FC: - return gameExchangeMoneyService.getTransactionId(GamePlatforms.FC.getInfo(), 30); - case DG: - return GamePlatforms.DG.getInfo() + IdUtils.simpleUUID(); - - case MT: - return GamePlatforms.MT.getCode() + IdUtils.simpleUUID(); - case SA: - //判断是转入还是转出 - String transactionId = "OUT" + DateUtils.dateTimeNow() + account; - if (!TransferType.ALL.getCode().equals(exchangeType)) { - transactionId = "IN" + DateUtils.dateTimeNow() + account; - } - - return transactionId; - case KM: - 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()); - } /** diff --git a/ff-game/src/main/java/com/ff/sports/fb/address/FBSportsAddress.java b/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java similarity index 95% rename from ff-game/src/main/java/com/ff/sports/fb/address/FBSportsAddress.java rename to ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java index e0aaa84..86974ec 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/address/FBSportsAddress.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.address; +package com.ff.game.api.fb.address; import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; diff --git a/ff-game/src/main/java/com/ff/sports/fb/client/FBSportsClient.java b/ff-game/src/main/java/com/ff/game/api/fb/client/FBSportsClient.java similarity index 97% rename from ff-game/src/main/java/com/ff/sports/fb/client/FBSportsClient.java rename to ff-game/src/main/java/com/ff/game/api/fb/client/FBSportsClient.java index dc28d2d..78dbf29 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/client/FBSportsClient.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/client/FBSportsClient.java @@ -1,8 +1,8 @@ -package com.ff.sports.fb.client; +package com.ff.game.api.fb.client; import com.dtflys.forest.annotation.*; -import com.ff.sports.fb.address.FBSportsAddress; -import com.ff.sports.fb.dto.*; +import com.ff.game.api.fb.address.FBSportsAddress; +import com.ff.game.api.fb.dto.*; /** * 数据接口文档
diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserRequest.java index 95c942d..58ba958 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserResponse.java similarity index 90% rename from ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserResponse.java index 015abf1..0599c91 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/CreateUserResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/CreateUserResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/db/dto/Enums.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/Enums.java similarity index 61% rename from ff-game/src/main/java/com/ff/sports/db/dto/Enums.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/Enums.java index 5cbd46b..378f03c 100644 --- a/ff-game/src/main/java/com/ff/sports/db/dto/Enums.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/Enums.java @@ -1,4 +1,4 @@ -package com.ff.sports.db.dto; +package com.ff.game.api.fb.dto; /** * @author cengy diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoRequest.java similarity index 94% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoRequest.java index 51e7129..42d187a 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoResponse.java similarity index 97% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoResponse.java index 0911248..632dfd2 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetMemberInfoResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetMemberInfoResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenRequest.java similarity index 95% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenRequest.java index 1f46602..eefab72 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenResponse.java similarity index 98% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenResponse.java index 32a5029..1780037 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetTokenResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetTokenResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlRequest.java similarity index 88% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlRequest.java index 15d3213..8228a41 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlResponse.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlResponse.java index e0ea5f8..1471461 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/GetUrlResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/GetUrlResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesRequest.java index 5cbbeed..7ac25bc 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesResponse.java similarity index 93% rename from ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesResponse.java index 8d9f1b5..f600fdd 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderFilesResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderFilesResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoRequest.java similarity index 94% rename from ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoRequest.java index 251dc02..2197629 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoResponse.java similarity index 99% rename from ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoResponse.java index fb48ce7..106ffb5 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/OrderInfoResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/OrderInfoResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailRequest.java index 85f678d..0c4edfd 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailResponse.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailResponse.java index 614edd0..af870bc 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferDetailResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferDetailResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferInRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferInRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInRequest.java index 52b4c62..bc35430 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferInRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferInResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInResponse.java similarity index 91% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferInResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInResponse.java index e5ab6ca..562aca6 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferInResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferInResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutRequest.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutRequest.java similarity index 96% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutRequest.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutRequest.java index 37fc465..795f00b 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutRequest.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutRequest.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import com.alibaba.fastjson2.JSON; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutResponse.java b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutResponse.java similarity index 91% rename from ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutResponse.java rename to ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutResponse.java index 9fb8897..c784222 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/dto/TransferOutResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/dto/TransferOutResponse.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.dto; +package com.ff.game.api.fb.dto; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/sports/fb/impl/FBSportsServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/fb/impl/FBSportsServiceImpl.java similarity index 94% rename from ff-game/src/main/java/com/ff/sports/fb/impl/FBSportsServiceImpl.java rename to ff-game/src/main/java/com/ff/game/api/fb/impl/FBSportsServiceImpl.java index 6049dc0..bc3f65b 100644 --- a/ff-game/src/main/java/com/ff/sports/fb/impl/FBSportsServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/impl/FBSportsServiceImpl.java @@ -1,4 +1,4 @@ -package com.ff.sports.fb.impl; +package com.ff.game.api.fb.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.constant.CacheConstants; @@ -12,6 +12,7 @@ import com.ff.base.utils.StringUtils; import com.ff.base.utils.sign.Md5Utils; import com.ff.base.utils.uuid.IdUtils; import com.ff.game.api.IGamesService; +import com.ff.game.api.fb.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; import com.ff.game.service.IGameBettingDetailsService; @@ -19,13 +20,11 @@ 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 com.ff.sports.fb.client.FBSportsClient; -import com.ff.sports.fb.dto.*; +import com.ff.game.api.fb.client.FBSportsClient; import com.ff.utils.TimestampFromString; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; @@ -138,7 +137,7 @@ public class FBSportsServiceImpl implements IGamesService { TransferInRequest request = new TransferInRequest(); request.setMerchantUserId(requestDTO.getAccount()); request.setAmount(requestDTO.getAmount()); - request.setBusinessId(requestDTO.getOrderId()); + request.setBusinessId(requestDTO.getTransactionId()); request.setCurrencyId(Integer.parseInt(requestDTO.getCurrency())); long timestamp = System.currentTimeMillis(); String jsonBody = request.toJSON(); @@ -161,15 +160,19 @@ public class FBSportsServiceImpl implements IGamesService { exchangeMoney.setCoinAfter(response.getData()); exchangeMoney.setCurrencyBefore(response.getData().subtract(transAmount)); exchangeMoney.setCurrencyAfter(response.getData()); - exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS - gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); } else { + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.FAILURE.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); throw new ApiException(ErrorCode.Transfer_In_Failure.getCode()); } } else { // 获取第三方钱包余额 MemberInfoRequestDTO memberInfoRequestDTO = MemberInfoRequestDTO.builder() - .accounts(member.getGameAccount()) + .accounts(requestDTO.getAccount()) .agentId(requestDTO.getAgentId()) .agentKey(requestDTO.getAgentKey()) .build(); @@ -178,7 +181,7 @@ public class FBSportsServiceImpl implements IGamesService { TransferOutRequest request = new TransferOutRequest(); request.setMerchantUserId(requestDTO.getAccount()); request.setAmount(/*requestDTO.getAmount()*/ balance); - request.setBusinessId(requestDTO.getOrderId()); + request.setBusinessId(requestDTO.getTransactionId()); request.setCurrencyId(Integer.parseInt(requestDTO.getCurrency())); long timestamp = System.currentTimeMillis(); @@ -207,9 +210,13 @@ public class FBSportsServiceImpl implements IGamesService { exchangeMoney.setCoinAfter(response.getData()); exchangeMoney.setCurrencyBefore(response.getData().add(transAmount)); exchangeMoney.setCurrencyAfter(response.getData()); - exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS - gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); } else { + exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); + exchangeMoney.setStepStatus(GameExchangeStepStatus.FAILURE.getCode()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); throw new ApiException(ErrorCode.Transfer_Out_Failure.getCode()); } } @@ -256,6 +263,19 @@ public class FBSportsServiceImpl implements IGamesService { } } + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.FBSports.getCode() + IdUtils.simpleUUID(); + } + + /** * 无重定向登录 * @@ -421,7 +441,7 @@ public class FBSportsServiceImpl implements IGamesService { ); if (this.isSuccess(response.getCode())) { status = StatusType.SUCCESS.getValue(); - }else { + } else { status = StatusType.FAILURE.getValue(); } } diff --git a/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java index 209e0d2..3e39e79 100644 --- a/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java @@ -283,6 +283,11 @@ public class GamesFCServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(NameInfo.builder().lang("zh-CN").name(gameDetails.getGameNameOfChinese()).build()); + nameInfos.add(NameInfo.builder().lang("en-US").name(gameDetails.getGameNameOfEnglish()).build()); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gameDetails.setSystemGameId(game.getGameId()); @@ -366,6 +371,19 @@ public class GamesFCServiceImpl implements IGamesService { return exchangeMoney.getId(); } + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return gameExchangeMoneyService.getTransactionId(GamePlatforms.FC.getInfo(), 30); + } + + /** * 汇兑转移状态 * diff --git a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java index 954330a..ed3cb96 100644 --- a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java @@ -252,6 +252,11 @@ public class GamesJILIServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getName().getZhCN(), "zh-CN")); + nameInfos.add(new NameInfo(gamesDataDTO.getName().getEnUS(), "en-US")); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gamesDataDTO.setSystemGameId(game.getGameId()); @@ -269,6 +274,17 @@ public class GamesJILIServiceImpl implements IGamesService { return CacheConstants.JILI_GAMES; } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.JILI.getInfo() + IdUtils.simpleUUID(); + } + /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java index fcbd8c0..f510799 100644 --- a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java @@ -301,12 +301,30 @@ public class GamesKMServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN")); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gamesDataDTO.setSystemGameId(game.getGameId()); } return gameList.getGames(); } + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.KM.getInfo() + IdUtils.simpleUUID(); + } + + + /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java index 84ef3d9..62c5742 100644 --- a/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/meitian/impl/MeiTianGameServiceImpl.java @@ -247,6 +247,11 @@ public class MeiTianGameServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getCnName(), "zh-CN")); + nameInfos.add(new NameInfo(gamesDataDTO.getEnName(), "en-US")); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gamesDataDTO.setSystemGameId(game.getGameId()); } @@ -258,6 +263,17 @@ public class MeiTianGameServiceImpl implements IGamesService { return CacheConstants.MeiTian_GAMES; } + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.MT.getCode() + IdUtils.simpleUUID(); + } /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java index 878b9c0..f7694ce 100644 --- a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java @@ -13,6 +13,7 @@ import com.ff.base.utils.DateUtils; import com.ff.base.utils.SleepUtil; import com.ff.base.utils.StringUtils; import com.ff.base.utils.sign.Md5Utils; +import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.game.api.IGamesService; import com.ff.game.api.ng.client.NGClient; @@ -258,6 +259,12 @@ public class GamesPGServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hans"), "zh-CN")); + nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hant"), "zh-TW")); + nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("en"), "en-US")); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } apiGameInfoResponseDTO.setSystemGameId(game.getId()); @@ -273,6 +280,19 @@ public class GamesPGServiceImpl implements IGamesService { return CacheConstants.PG_GAMES; } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32); + } + + + /** * 按代理id进行交换转账 * @@ -298,10 +318,14 @@ public class GamesPGServiceImpl implements IGamesService { .agentKey(exchangeTransferMoneyRequestDTO.getAgentKey()) .currency(exchangeTransferMoneyRequestDTO.getCurrency()) .build(); - MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO); + //判断是不是转出 if (NGTransferType.TRANSFER_OUT.getValue().equals(type)) { + MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO); exchangeTransferMoneyRequestDTO.setAmount(memberInfo.getBalance()); + if (exchangeTransferMoneyRequestDTO.getAmount().compareTo(BigDecimal.ZERO) <= 0) { + throw new ApiException(ErrorCode.INSUFFICIENT_PLAYER_BALANCE.getCode()); + } } @@ -322,6 +346,20 @@ public class GamesPGServiceImpl implements IGamesService { exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); exchangeMoney.setStepStatus(GameExchangeStepStatus.SUCCESS.getCode()); gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); + ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO(); + exchangeTransferStatusRequestDTO.setAccount(exchangeTransferMoneyRequestDTO.getAccount()); + exchangeTransferStatusRequestDTO.setCurrency(exchangeTransferMoneyRequestDTO.getCurrency()); + exchangeTransferStatusRequestDTO.setOrderId(exchangeTransferMoneyRequestDTO.getTransactionId()); + exchangeTransferStatusRequestDTO.setAgentId(exchangeTransferMoneyRequestDTO.getAgentId()); + exchangeTransferStatusRequestDTO.setAgentKey(exchangeTransferMoneyRequestDTO.getAgentKey()); + ExchangeTransferStatusResponseDTO statusResponseDTO = this.exchangeTransferStatus(exchangeTransferStatusRequestDTO); + //更新钱 + exchangeMoney.setBalance(statusResponseDTO.getBalance()); + exchangeMoney.setCoinBefore(statusResponseDTO.getCoinBefore()); + exchangeMoney.setCoinAfter(statusResponseDTO.getCoinAfter()); + exchangeMoney.setCurrencyBefore(exchangeMoney.getCoinBefore()); + exchangeMoney.setCurrencyAfter(exchangeMoney.getCoinAfter()); + gameExchangeMoneyService.updateGameExchangeMoney(exchangeMoney); } else { exchangeMoney.setStep(GameExchangeStep.PLATFORM_TRANSACTION.getCode()); exchangeMoney.setStepStatus(GameExchangeStepStatus.FAILURE.getCode()); @@ -341,6 +379,7 @@ public class GamesPGServiceImpl implements IGamesService { @Override public ExchangeTransferStatusResponseDTO exchangeTransferStatus(ExchangeTransferStatusRequestDTO exchangeTransferMoneyRequestDTO) { + SleepUtil.sleep(1000); Map paramsMap = new HashMap<>(); paramsMap.put("playerId", exchangeTransferMoneyRequestDTO.getAccount()); @@ -359,7 +398,7 @@ public class GamesPGServiceImpl implements IGamesService { .build(); ApiExchangeTransferStatusResponseDTO apiNGResponseDTOData = apiNGResponseDTO.getData(); if (!ObjectUtils.isEmpty(apiNGResponseDTOData)) { - transferStatusResponseDTO.setBalance(apiNGResponseDTOData.getAmount()); + transferStatusResponseDTO.setBalance(apiNGResponseDTOData.getAmount().abs()); transferStatusResponseDTO.setCoinBefore(NumberUtil.sub(apiNGResponseDTOData.getAmount(), apiNGResponseDTOData.getAfterBalance()).abs()); transferStatusResponseDTO.setCoinAfter(apiNGResponseDTOData.getAfterBalance()); } diff --git a/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java index 5523c06..9f58d3b 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java @@ -15,6 +15,7 @@ import com.ff.base.utils.DateUtils; import com.ff.base.utils.JsonUtil; import com.ff.base.utils.StringUtils; import com.ff.base.utils.sign.Base64; +import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.game.api.IGamesService; import com.ff.game.api.fc.dto.ApiFCGameListResponseDTO; @@ -243,6 +244,10 @@ public class GamesPGTServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(NameInfo.builder().lang("en-US").name(gameIdKey.getName()).build()); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gameIdKey.setSystemGameId(game.getGameId()); } @@ -256,7 +261,16 @@ public class GamesPGTServiceImpl implements IGamesService { } return CacheConstants.PGT_GAMES; } - + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return gameExchangeMoneyService.getTransactionId(GamePlatforms.PGT.getInfo(), 17); + } /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/pgx/dto/PGXBetHistoryResponse.java b/ff-game/src/main/java/com/ff/game/api/pgx/dto/PGXBetHistoryResponse.java index 3dc564e..3a587da 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgx/dto/PGXBetHistoryResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/pgx/dto/PGXBetHistoryResponse.java @@ -79,13 +79,13 @@ public class PGXBetHistoryResponse { * 下注时间 (玩家实际的投注时间) 依据 GMT/UTC +0 时区 */ @JsonProperty("start_time") - private Date startTime; + private String startTime; /** * 结算时间 (String类型) 依据 GMT/UTC +0 时区 */ @JsonProperty("end_time") - private Date endTime; + private String endTime; /** * 开赛时间 (String类型) 依据 GMT/UTC +0 时区 diff --git a/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java index 0492158..7469ef3 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java @@ -251,6 +251,10 @@ public class GamesPGXServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getGameName(), "en-US")); + game.setNameInfo(nameInfos); + gameService.updateGame(game); } gamesDataDTO.setSystemGameId(game.getGameId()); @@ -430,6 +434,21 @@ public class GamesPGXServiceImpl implements IGamesService { } } + + + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return gameExchangeMoneyService.getTransactionId(GamePlatforms.PGX.getInfo(), 17); + } + + + /** * 赠送免费局数 * @@ -585,6 +604,7 @@ public class GamesPGXServiceImpl implements IGamesService { payoffAmount = NumberUtil.sub(payout, resultBean.getBet()).negate(); gameStatus = GameStatus.FAIL.getCode(); } + long endTime = DateUtils.convertToMillisWithTimezone(resultBean.getEndTime(), "UTC"); //数据构造 GameBettingDetails gameBettingDetails = GameBettingDetails.builder() .tenantKey(member.getTenantKey()) @@ -602,11 +622,11 @@ public class GamesPGXServiceImpl implements IGamesService { .gameCurrencyCode(/*currencyDTO.getCurrency()*/gamesDataBuildDTO.getCurrencyCode()) .account(resultBean.getMember()) .wagersId(String.valueOf(resultBean.getId())) - .wagersTime(resultBean.getStartTime().getTime()) + .wagersTime(DateUtils.convertToMillisWithTimezone(resultBean.getStartTime(),"UTC")) .betAmount(resultBean.getBet()) - .payoffTime(resultBean.getEndTime().getTime()) + .payoffTime(endTime) .payoffAmount(payoffAmount) - .settlementTime(resultBean.getEndTime().getTime()) + .settlementTime(endTime) .turnover(resultBean.getTurnover()) .settlementStatus(PGXBetRecordStatus.findSystemCodeByCode(resultBean.getStatus())) .build(); diff --git a/ff-game/src/main/java/com/ff/game/api/request/TransactionIdRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/TransactionIdRequestDTO.java new file mode 100644 index 0000000..2a285fa --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/api/request/TransactionIdRequestDTO.java @@ -0,0 +1,25 @@ +package com.ff.game.api.request; + +import com.ff.base.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 事务id请求dto + * + * @author shi + * @date 2025/04/11 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TransactionIdRequestDTO { + /** 转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商 */ + private Integer exchangeType; + + /** 游戏账号 */ + private String gameAccount; +} diff --git a/ff-game/src/main/java/com/ff/game/api/sa/impl/GamesSAServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/sa/impl/GamesSAServiceImpl.java index 9011d9d..060055c 100644 --- a/ff-game/src/main/java/com/ff/game/api/sa/impl/GamesSAServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/sa/impl/GamesSAServiceImpl.java @@ -10,6 +10,7 @@ import com.ff.base.exception.base.ApiException; import com.ff.base.system.service.ISysConfigService; import com.ff.base.utils.*; import com.ff.base.utils.sign.Md5Utils; +import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.game.api.IGamesService; import com.ff.game.api.request.*; @@ -240,11 +241,34 @@ public class GamesSAServiceImpl implements IGamesService { game.setGameId(StringUtils.addSuffix(GamePlatforms.SA.getCode(), 1)); game.setNameInfo(nameInfos); gameService.updateGame(game); + }else { + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo("真人棋牌", "zh-CN"));; + game.setNameInfo(nameInfos); + gameService.updateGame(game); } return CacheConstants.SA_GAMES; } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + //判断是转入还是转出 + String transactionId = "OUT" + DateUtils.dateTimeNow() + transactionIdRequestDTO.getGameAccount(); + if (!TransferType.ALL.getCode().equals(transactionIdRequestDTO.getExchangeType())) { + transactionId = "IN" + DateUtils.dateTimeNow() + transactionIdRequestDTO.getGameAccount(); + } + + return transactionId; + } + + /** * 按代理id进行交换转账 * diff --git a/ff-game/src/main/java/com/ff/game/api/sv388/impl/SV388GamesServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/sv388/impl/SV388GamesServiceImpl.java index 4c17c2e..97fc897 100644 --- a/ff-game/src/main/java/com/ff/game/api/sv388/impl/SV388GamesServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/sv388/impl/SV388GamesServiceImpl.java @@ -199,7 +199,7 @@ public class SV388GamesServiceImpl implements IGamesService { List gameList = gameService.selectGameList(condition); Platform platform = gamesBaseRequestDTO.getVendor(); //不存在这个游戏 - if (ObjectUtils.isEmpty(gameList)) { + if (CollectionUtils.isEmpty(gameList)) { Game game = new Game(); game.setId(IdUtil.getSnowflakeNextId()); game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.SV388.getCode()) + 1); @@ -215,6 +215,15 @@ public class SV388GamesServiceImpl implements IGamesService { game.setNameInfo(Collections.singletonList(nameInfo)); game.setGameId(StringUtils.addSuffix(GamePlatforms.SV388.getCode(), 1)); gameService.insertGame(game); + }else { + for (Game game : gameList) { + NameInfo nameInfo = new NameInfo(); + nameInfo.setLang("zh-CN"); + nameInfo.setName("SV388真人"); + game.setNameInfo(Collections.singletonList(nameInfo)); + gameService.updateGame(game); + } + } return CacheConstants.SV388_GAMES; } @@ -275,6 +284,17 @@ public class SV388GamesServiceImpl implements IGamesService { return exchangeMoney.getId(); } + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.SV388.getCode() + IdUtils.simpleUUID(); + } + /** * 汇兑转移状态 diff --git a/ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java index ba9de37..3aea090 100644 --- a/ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java @@ -197,7 +197,16 @@ public class GamesXKServiceImpl implements IGamesService { throw new BaseException(xkLoginWithoutRedirectResponseDTO.getMsg()); } } - + /** + * 获取交易id + * + * @param transactionIdRequestDTO 事务id请求dto + * @return {@link String } + */ + @Override + public String getTransactionId(TransactionIdRequestDTO transactionIdRequestDTO) { + return GamePlatforms.XK.getCode() + IdUtils.simpleUUID(); + } /** * 获取游戏列表 @@ -251,6 +260,11 @@ public class GamesXKServiceImpl implements IGamesService { gameService.insertGame(game); } else { game = games.get(0); + List nameInfos = new ArrayList<>(); + nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN")); + game.setNameInfo(nameInfos); + + gameService.updateGame(game); } gamesDataDTO.setSystemGameId(game.getGameId()); }