Ver Fonte

feat: 增加项目创建时不能同名的功能

370774330@qq.com há 5 anos atrás
pai
commit
ce186e538e

+ 3 - 1
web/src/main/java/seecoder/devcloud/web/dao/project/ProjectMapper.java

@@ -11,7 +11,6 @@ import java.util.List;
 @Repository
 public interface ProjectMapper {
 
-
     @Select("select * from project")
     @Results(id="projectMap",value = {
             @Result(column = "git_remote_url", property = "gitRemoteUrl"),
@@ -41,4 +40,7 @@ public interface ProjectMapper {
     @ResultMap(value = "projectMap")
     Project getProjectById(int projectId);
 
+    @Select("select * from project where name=#{name} and group_id=#{groupId}")
+    Project getProjectByNameAndGroupId(String name,Integer groupId);
+
 }

+ 5 - 0
web/src/main/java/seecoder/devcloud/web/service/impl/project/ProjectServiceImpl.java

@@ -6,6 +6,7 @@ import com.nju.edu.gitlab.dto.project.VisibilityForm;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import seecoder.devcloud.common.exceptions.ConflictException;
 import seecoder.devcloud.common.exceptions.ServiceException;
 import seecoder.devcloud.web.dao.project.ProjectMapper;
 import seecoder.devcloud.web.model.po.project.Project;
@@ -51,6 +52,10 @@ public class ProjectServiceImpl implements ProjectService {
     public ProjectVO createProject(ProjectVO projectVO) throws ServiceException {
         Project project = new Project();
         BeanUtils.copyProperties(projectVO,project);
+        if (projectMapper.getProjectByNameAndGroupId(projectVO.getName(),projectVO.getGroupId())!=null){
+            throw new ConflictException("创建的项目名称已存在");
+        }
+
         try {
             seecoderGitlabApi.createProject(projectVO.getName(), VisibilityForm.PRIVATE);
         } catch (SeecoderGitlabException e) {