Quellcode durchsuchen

fix: 更改 fork 项目的命名方式为 6 位随机英文串

刘一也 vor 3 Jahren
Ursprung
Commit
e7ee8f7286

+ 7 - 9
web/src/main/java/cn/seecoder/web/service/fork/impl/ForkServiceImpl.java

@@ -11,11 +11,10 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.Random;
 
 @RequiredArgsConstructor
 @Service
@@ -24,6 +23,8 @@ public class ForkServiceImpl implements ForkService {
     private final SeecoderGitlabApi gitlabApi;
     private final ProjectMapper projectMapper;
     private final ApplicationProperties properties;
+    private final String ALPHABETS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    private final Random random = new Random();
 
     @Override
     public ForkVO forkProject(ForkVO forkVO) {
@@ -35,14 +36,11 @@ public class ForkServiceImpl implements ForkService {
                 log.error("不存在想要 Fork 的项目 id: " + forkVO.getProjectId());
                 return null;
             }
-            String newName;
-            if (StringUtils.isEmpty(forkVO.getName())) {
-                // 默认命名为 原项目名-用户名
-                newName = oldProject.getName() + "-" + principal.getUsername();
-            } else {
-                // 有用户自定义命名时,使用自定义命名
-                newName = forkVO.getName();
+            StringBuilder sb = new StringBuilder(oldProject.getName() + "-");
+            for (int i = 0; i < 6; ++i) {
+                sb.append(ALPHABETS.charAt(random.nextInt(ALPHABETS.length())));
             }
+            String newName = sb.toString();
             List<com.nju.edu.gitlab.vo.ProjectVO> allProjects = gitlabApi.getAllProjectsByUserId(userId);
             // 检测是否已经有重名项目
             for (com.nju.edu.gitlab.vo.ProjectVO project: allProjects) {