fix testRegister_success
Change-Id: Ia125fff2481df66233819187a25de74f82ad34c3
diff --git a/src/main/java/com/g9/g9backend/service/InvitationService.java b/src/main/java/com/g9/g9backend/service/InvitationService.java
index 3708d53..bc17e9a 100644
--- a/src/main/java/com/g9/g9backend/service/InvitationService.java
+++ b/src/main/java/com/g9/g9backend/service/InvitationService.java
@@ -4,4 +4,7 @@
import com.g9.g9backend.pojo.Invitation;
public interface InvitationService extends IService<Invitation> {
+
+ // 定义生成邀请码的方法
+ String[] generateInvitationCode();
}
diff --git a/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java
index 9530312..0a04c00 100644
--- a/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java
+++ b/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java
@@ -1,11 +1,54 @@
package com.g9.g9backend.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.g9.g9backend.mapper.InvitationMapper;
import com.g9.g9backend.pojo.Invitation;
import com.g9.g9backend.service.InvitationService;
import org.springframework.stereotype.Service;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.Set;
+
@Service
public class InvitationServiceImpl extends ServiceImpl<InvitationMapper, Invitation> implements InvitationService {
+
+ private static final String CHAR_POOL = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"; // 字符池
+ private static final int CODE_LENGTH = 8; // 邀请码长度
+ private static final int CODE_COUNT = 5; // 邀请码数量
+ private final Random random = new Random();
+
+ @Override
+ public String[] generateInvitationCode() {
+ // 使用不允许存储重复的元素的数据结构:Set
+ Set<String> uniqueCodes = new HashSet<>();
+
+ // 生成 5 个互不重复的邀请码
+ while (uniqueCodes.size() < CODE_COUNT) {
+ String code = generateRandomCode();
+
+ // 检查数据库中是否已存在该邀请码
+ QueryWrapper<Invitation> invitationQuery = new QueryWrapper<>();
+ invitationQuery.eq("invitation_code", code);
+ boolean exists = this.count(invitationQuery) > 0;
+
+ // 如果数据库中不存在,加入集合
+ if (!exists) {
+ uniqueCodes.add(code);
+ }
+ }
+
+ // 返回字符串数组
+ return uniqueCodes.toArray(new String[0]);
+ }
+
+ // 生成随机邀请码的方法
+ private String generateRandomCode() {
+ StringBuilder code = new StringBuilder(CODE_LENGTH);
+ for (int i = 0; i < CODE_LENGTH; i++) {
+ code.append(CHAR_POOL.charAt(random.nextInt(CHAR_POOL.length())));
+ }
+ return code.toString();
+ }
}