diff --git a/ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java b/ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java new file mode 100644 index 0000000..4a09d1e --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java @@ -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(); + } + +} \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java index ad21761..bd684ab 100644 --- a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java @@ -103,7 +103,7 @@ public class ApiMemberController extends BaseController { 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 members = memberService.selectMemberList(Member.builder() diff --git a/ff-game/src/main/java/com/ff/member/service/IMemberService.java b/ff-game/src/main/java/com/ff/member/service/IMemberService.java index 8d7a54b..69722ff 100644 --- a/ff-game/src/main/java/com/ff/member/service/IMemberService.java +++ b/ff-game/src/main/java/com/ff/member/service/IMemberService.java @@ -27,6 +27,13 @@ public interface IMemberService */ List selectMemberList(Member member); + /** + * 生成会员游戏账号 + * + * @return {@link String } + */ + String getMemberGameAccount(); + /** * 新增会员 * diff --git a/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java b/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java index b6adac7..ef1cfee 100644 --- a/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java +++ b/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java @@ -4,11 +4,13 @@ import java.util.List; import cn.hutool.core.util.IdUtil; import com.ff.base.utils.DateUtils; +import com.ff.base.utils.RandomGeneratorUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ff.member.mapper.MemberMapper; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; +import org.springframework.util.ObjectUtils; /** * 会员Service业务层处理 @@ -46,6 +48,21 @@ public class MemberServiceImpl implements IMemberService 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; + } + /** * 新增会员 *