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