From 080f7d10563269bfd3b83ae9af2422b8874f05cd Mon Sep 17 00:00:00 2001 From: shi Date: Fri, 14 Mar 2025 19:30:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor(member):=20=E9=87=8D=E6=9E=84=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E6=B8=B8=E6=88=8F=E8=B4=A6=E5=8F=B7=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ApiMemberController 中调用 memberService.getMemberGameAccount() 替代原有逻辑 - 在 IMemberService 中添加 getMemberGameAccount 方法接口 - 在 MemberServiceImpl 中实现 getMemberGameAccount 方法,生成唯一的游戏账号- 新增 RandomGeneratorUtils 工具类,用于生成随机账号字符串 --- .../ff/base/utils/RandomGeneratorUtils.java | 32 +++++++++++++++++++ .../api/controller/ApiMemberController.java | 2 +- .../com/ff/member/service/IMemberService.java | 7 ++++ .../service/impl/MemberServiceImpl.java | 17 ++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java 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; + } + /** * 新增会员 *