refactor(member): 重构会员游戏账号生成逻辑
- 在 ApiMemberController 中调用 memberService.getMemberGameAccount() 替代原有逻辑 - 在 IMemberService 中添加 getMemberGameAccount 方法接口 - 在 MemberServiceImpl 中实现 getMemberGameAccount 方法,生成唯一的游戏账号- 新增 RandomGeneratorUtils 工具类,用于生成随机账号字符串main-p
parent
ee49e83c79
commit
672c722a19
|
@ -0,0 +1,32 @@
|
||||||
|
package com.ff.base.utils;
|
||||||
|
|
||||||
|
import java.security.SecureRandom;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 随机发生器
|
||||||
|
*
|
||||||
|
* @author shi
|
||||||
|
* @date 2025/03/14
|
||||||
|
*/
|
||||||
|
public class RandomGeneratorUtils {
|
||||||
|
private static final String CHARACTERS = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||||
|
private static final SecureRandom RANDOM = new SecureRandom();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成 5-9 之间的随机长度
|
||||||
|
*
|
||||||
|
* @return {@link String }
|
||||||
|
*/
|
||||||
|
public static String generateRandomAccount() {
|
||||||
|
int length = 5 + RANDOM.nextInt(5);
|
||||||
|
StringBuilder sb = new StringBuilder(length);
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -103,7 +103,7 @@ public class ApiMemberController extends BaseController {
|
||||||
|
|
||||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||||
|
|
||||||
String gameAccount = StringUtils.addSuffix(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode() + tenantSecretKey.getTenantSn());
|
String gameAccount = StringUtils.addSuffix(memberService.getMemberGameAccount(), tenantSecretKey.getTenantSn());
|
||||||
|
|
||||||
|
|
||||||
List<Member> members = memberService.selectMemberList(Member.builder()
|
List<Member> members = memberService.selectMemberList(Member.builder()
|
||||||
|
|
|
@ -27,6 +27,13 @@ public interface IMemberService
|
||||||
*/
|
*/
|
||||||
List<Member> selectMemberList(Member member);
|
List<Member> selectMemberList(Member member);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成会员游戏账号
|
||||||
|
*
|
||||||
|
* @return {@link String }
|
||||||
|
*/
|
||||||
|
String getMemberGameAccount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增会员
|
* 新增会员
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,11 +4,13 @@ import java.util.List;
|
||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.ff.base.utils.DateUtils;
|
import com.ff.base.utils.DateUtils;
|
||||||
|
import com.ff.base.utils.RandomGeneratorUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ff.member.mapper.MemberMapper;
|
import com.ff.member.mapper.MemberMapper;
|
||||||
import com.ff.member.domain.Member;
|
import com.ff.member.domain.Member;
|
||||||
import com.ff.member.service.IMemberService;
|
import com.ff.member.service.IMemberService;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员Service业务层处理
|
* 会员Service业务层处理
|
||||||
|
@ -46,6 +48,21 @@ public class MemberServiceImpl implements IMemberService
|
||||||
return memberMapper.selectMemberList(member);
|
return memberMapper.selectMemberList(member);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取会员游戏账号
|
||||||
|
*
|
||||||
|
* @return {@link String }
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public synchronized String getMemberGameAccount() {
|
||||||
|
|
||||||
|
String gameAccount = RandomGeneratorUtils.generateRandomAccount();
|
||||||
|
while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))){
|
||||||
|
gameAccount = RandomGeneratorUtils.generateRandomAccount();
|
||||||
|
}
|
||||||
|
return gameAccount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增会员
|
* 新增会员
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue