refactor(ff-game): 优化游戏结果状态处理逻辑

- 新增游戏状态判断逻辑,根据结算金额确定游戏结果
- 修改 gameStatus 字段赋值方式,提高代码可读性和维护性
main-p
shi 2025-03-17 14:10:02 +08:00
parent 1affb42367
commit c3f21c9b49
5 changed files with 60 additions and 8 deletions

View File

@ -159,7 +159,7 @@ public class ApiGameController extends BaseController {
ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode()); ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode());
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode() + tenantSecretKey.getTenantSn())); Member member = memberService.selectMemberByAccount(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode(), gamePlatform.getPlatformCode());
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode()); ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
GamesLogin gamesLogin = GamesLogin.builder() GamesLogin gamesLogin = GamesLogin.builder()
@ -214,7 +214,8 @@ public class ApiGameController extends BaseController {
.build()); .build());
// 获取用户信息 // 获取用户信息
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameExchangeBalanceRequest.getAccount(), gameExchangeBalanceRequest.getCurrencyCode() + tenantSecretKey.getTenantSn())); Member member = memberService.selectMemberByAccount(gameExchangeBalanceRequest.getAccount(), gameExchangeBalanceRequest.getCurrencyCode(), gameExchangeBalanceRequest.getPlatformCode());
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
//操作第三方额度接口 //操作第三方额度接口
@ -280,8 +281,11 @@ public class ApiGameController extends BaseController {
.systemCurrency(gameCreateFreeSpinRequest.getCurrencyCode()).build()); .systemCurrency(gameCreateFreeSpinRequest.getCurrencyCode()).build());
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode()); ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameCreateFreeSpinRequest.getAccount(), gameCreateFreeSpinRequest.getCurrencyCode() + tenantSecretKey.getTenantSn()));
Member member = memberService.selectMemberByAccount(gameCreateFreeSpinRequest.getAccount(), gameCreateFreeSpinRequest.getCurrencyCode(), gameCreateFreeSpinRequest.getPlatformCode());
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode()); ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
CreateFreeSpinRequestDTO createFreeSpinRequestDTO = CreateFreeSpinRequestDTO.builder() CreateFreeSpinRequestDTO createFreeSpinRequestDTO = CreateFreeSpinRequestDTO.builder()
.account(member.getGameAccount()) .account(member.getGameAccount())
.currency(gameCreateFreeSpinRequest.getCurrencyCode()) .currency(gameCreateFreeSpinRequest.getCurrencyCode())
@ -390,10 +394,12 @@ public class ApiGameController extends BaseController {
.systemCurrency(gameKickMemeberRequest.getCurrencyCode()).build()); .systemCurrency(gameKickMemeberRequest.getCurrencyCode()).build());
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode()); ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
TenantSecretKey tenantSecretKey = keyConfig.get();
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameKickMemeberRequest.getAccount(), gameKickMemeberRequest.getCurrencyCode() + tenantSecretKey.getTenantSn()));
Member member = memberService.selectMemberByAccount(gameKickMemeberRequest.getAccount(), gameKickMemeberRequest.getCurrencyCode(), gameKickMemeberRequest.getPlatformCode());
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode()); ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
IGamesService iGamesService = gamesService.get(gameKickMemeberRequest.getPlatformCode() + Constants.SERVICE); IGamesService iGamesService = gamesService.get(gameKickMemeberRequest.getPlatformCode() + Constants.SERVICE);
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode()); ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
@ -498,8 +504,9 @@ public class ApiGameController extends BaseController {
public AjaxResult exchangeBalanceAll(@Validated @RequestBody GameExchangeBalanceAllRequest gameExchangeBalanceAllRequest) { public AjaxResult exchangeBalanceAll(@Validated @RequestBody GameExchangeBalanceAllRequest gameExchangeBalanceAllRequest) {
TenantSecretKey tenantSecretKey = keyConfig.get(); TenantSecretKey tenantSecretKey = keyConfig.get();
Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameExchangeBalanceAllRequest.getAccount(), gameExchangeBalanceAllRequest.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()
@ -519,6 +526,10 @@ public class ApiGameController extends BaseController {
try { try {
IGamesService iGamesService = gamesService.get(gameSecretKeyCurrencyDTO.getPlatformCode() + Constants.SERVICE); IGamesService iGamesService = gamesService.get(gameSecretKeyCurrencyDTO.getPlatformCode() + Constants.SERVICE);
Member member = memberService.selectMemberByAccount(gameExchangeBalanceAllRequest.getAccount(), gameExchangeBalanceAllRequest.getCurrencyCode(), gameSecretKeyCurrencyDTO.getPlatformCode());
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
//操作第三方钱包 //操作第三方钱包
ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO = ExchangeTransferMoneyRequestDTO.builder() ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO = ExchangeTransferMoneyRequestDTO.builder()
.agentId(gameSecretKeyCurrencyDTO.getCode()) .agentId(gameSecretKeyCurrencyDTO.getCode())
@ -553,6 +564,7 @@ public class ApiGameController extends BaseController {
if (ObjectUtils.isEmpty(gameExchangeMoney)) { if (ObjectUtils.isEmpty(gameExchangeMoney)) {
continue; continue;
} }
Member member = memberService.selectMemberById(gameExchangeMoney.getMemberId());
balanceMap.put(gameExchangeMoney.getPlatformCode(), gameExchangeMoney.getBalance()); balanceMap.put(gameExchangeMoney.getPlatformCode(), gameExchangeMoney.getBalance());
BigDecimal balance = gameExchangeMoney.getBalance(); BigDecimal balance = gameExchangeMoney.getBalance();
balanceAll = NumberUtil.add(balanceAll, balance); balanceAll = NumberUtil.add(balanceAll, balance);

View File

@ -2,6 +2,7 @@ package com.ff.member.mapper;
import java.util.List; import java.util.List;
import com.ff.member.domain.Member; import com.ff.member.domain.Member;
import org.apache.ibatis.annotations.Param;
/** /**
* Mapper * Mapper
@ -69,4 +70,15 @@ public interface MemberMapper
* @return {@link Member } * @return {@link Member }
*/ */
Member selectMemberByGameAccount(String gameAccount); Member selectMemberByGameAccount(String gameAccount);
/**
*
*
* @param account
* @param currencyCode
* @param platformCode
* @return {@link Member }
*/
Member selectMemberByAccount(@Param("account") String account,@Param("currencyCode") String currencyCode,@Param("platformCode") String platformCode);
} }

View File

@ -74,4 +74,14 @@ public interface IMemberService
* @return {@link Member } * @return {@link Member }
*/ */
Member selectMemberByGameAccount(String gameAccount); Member selectMemberByGameAccount(String gameAccount);
/**
*
*
* @param account
* @param currencyCode
* @param platformCode
* @return {@link Member }
*/
Member selectMemberByAccount(String account,String currencyCode,String platformCode);
} }

View File

@ -126,4 +126,17 @@ public class MemberServiceImpl implements IMemberService
public Member selectMemberByGameAccount(String gameAccount) { public Member selectMemberByGameAccount(String gameAccount) {
return memberMapper.selectMemberByGameAccount(gameAccount); return memberMapper.selectMemberByGameAccount(gameAccount);
} }
/**
*
*
* @param account
* @param currencyCode
* @param platformCode
* @return {@link Member }
*/
@Override
public Member selectMemberByAccount(String account, String currencyCode, String platformCode) {
return memberMapper.selectMemberByAccount(account,currencyCode,platformCode);
}
} }

View File

@ -96,4 +96,9 @@
<include refid="selectMemberVo"/> <include refid="selectMemberVo"/>
where game_account = #{gameAccount} where game_account = #{gameAccount}
</select> </select>
<select id="selectMemberByAccount" parameterType="String" resultMap="MemberResult">
<include refid="selectMemberVo"/>
where game_account = #{gameAccount} and platform_code = #{platformCode} and currency_code = #{currencyCode}
</select>
</mapper> </mapper>