refactor(ff-game): 优化游戏结果状态处理逻辑
- 新增游戏状态判断逻辑,根据结算金额确定游戏结果 - 修改 gameStatus 字段赋值方式,提高代码可读性和维护性main-p
parent
c3f21c9b49
commit
0fcf4d0593
|
@ -16,12 +16,12 @@ public class RandomGeneratorUtils {
|
|||
|
||||
|
||||
/**
|
||||
* 生成 5-9 之间的随机长度
|
||||
* 生成 5-8 之间的随机长度
|
||||
*
|
||||
* @return {@link String }
|
||||
*/
|
||||
public static String generateRandomAccount() {
|
||||
int length = 5 + RANDOM.nextInt(5);
|
||||
int length = 5 + RANDOM.nextInt(4);
|
||||
StringBuilder sb = new StringBuilder(length);
|
||||
for (int i = 0; i < length; i++) {
|
||||
sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
@ -106,20 +107,26 @@ public class ApiMemberController extends BaseController {
|
|||
String gameAccount = StringUtils.addSuffix(memberService.getMemberGameAccount(), tenantSecretKey.getTenantSn());
|
||||
|
||||
|
||||
List<Member> members = memberService.selectMemberList(Member.builder()
|
||||
.tenantKey(tenantSecretKey.getTenantKey()).gameAccount(gameAccount).build());
|
||||
if (CollectionUtils.isEmpty(members)) {
|
||||
//注册本地账号
|
||||
Member member = Member.builder()
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
.memberAccount(memberCreateApiRequest.getAccount())
|
||||
.gameAccount(gameAccount)
|
||||
.platformCode(memberCreateApiRequest.getPlatformCode())
|
||||
.currencyCode(memberCreateApiRequest.getCurrencyCode())
|
||||
.build();
|
||||
int insertMember = memberService.insertMember(member);
|
||||
Assert.isTrue(insertMember > 0, "建立游戏账号失败");
|
||||
// 获取用户信息
|
||||
Member gameMember = memberService.selectMemberByAccount(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode(), memberCreateApiRequest.getPlatformCode());
|
||||
if (!ObjectUtils.isEmpty(gameMember)){
|
||||
throw new ApiException(ErrorCode.GAME_ACCOUNT_CREATION_FAILED.getCode());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//注册本地账号
|
||||
Member member = Member.builder()
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
.memberAccount(memberCreateApiRequest.getAccount())
|
||||
.gameAccount(gameAccount)
|
||||
.platformCode(memberCreateApiRequest.getPlatformCode())
|
||||
.currencyCode(memberCreateApiRequest.getCurrencyCode())
|
||||
.build();
|
||||
int insertMember = memberService.insertMember(member);
|
||||
Assert.isTrue(insertMember > 0, "建立游戏账号失败");
|
||||
|
||||
//向第三方注册账号
|
||||
CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
|
||||
.account(gameAccount)
|
||||
|
@ -153,9 +160,13 @@ public class ApiMemberController extends BaseController {
|
|||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(memberInfoApiRequest.getAccount(), memberInfoApiRequest.getCurrencyCode() + tenantSecretKey.getTenantSn()));
|
||||
|
||||
// 获取用户信息
|
||||
Member member = memberService.selectMemberByAccount(memberInfoApiRequest.getAccount(), memberInfoApiRequest.getCurrencyCode(), memberInfoApiRequest.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
|
||||
//向第三方查询账号
|
||||
MemberInfoRequestDTO gamesBaseRequestDTO = MemberInfoRequestDTO.builder()
|
||||
.accounts(member.getGameAccount())
|
||||
|
@ -179,9 +190,8 @@ public class ApiMemberController extends BaseController {
|
|||
@PostMapping("/info/all")
|
||||
public AjaxResult infoAll(@Validated @RequestBody MemberInfoAllApiRequest memberInfoAllApiRequest) {
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(memberInfoAllApiRequest.getAccount(), memberInfoAllApiRequest.getCurrencyCode() + tenantSecretKey.getTenantSn()));
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
|
||||
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeys = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
|
@ -199,6 +209,12 @@ public class ApiMemberController extends BaseController {
|
|||
futures.add(threadPoolTaskExecutor.submit(() -> {
|
||||
try {
|
||||
IGamesService iGamesService = gamesService.get(gameSecretKey.getPlatformCode() + Constants.SERVICE);
|
||||
|
||||
// 获取用户信息
|
||||
Member member = memberService.selectMemberByAccount(memberInfoAllApiRequest.getAccount(), memberInfoAllApiRequest.getCurrencyCode(), gameSecretKey.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
MemberInfoRequestDTO gamesBaseRequestDTO = MemberInfoRequestDTO.builder()
|
||||
.accounts(member.getGameAccount())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
|
|
|
@ -313,8 +313,14 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService {
|
|||
ApiException.notNull(tenantPlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
|
||||
// 获取用户信息
|
||||
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameBalanceExchange.getAccount(), gameBalanceExchange.getCurrencyCode() + tenantSecretKey.getTenantSn()));
|
||||
Member member = memberService.selectMemberByAccount(gameBalanceExchange.getAccount(), gameBalanceExchange.getCurrencyCode(), gameBalanceExchange.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
|
||||
|
||||
// 检查用户是否存在,否则抛出异常
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
|
|
@ -99,6 +99,7 @@
|
|||
|
||||
<select id="selectMemberByAccount" parameterType="String" resultMap="MemberResult">
|
||||
<include refid="selectMemberVo"/>
|
||||
where game_account = #{gameAccount} and platform_code = #{platformCode} and currency_code = #{currencyCode}
|
||||
where member_account = #{account} and platform_code = #{platformCode} and currency_code = #{currencyCode}
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue