|
@@ -54,21 +54,21 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
List<com.nju.edu.gitlab.vo.ProjectVO> projects;
|
|
List<com.nju.edu.gitlab.vo.ProjectVO> projects;
|
|
|
try {
|
|
try {
|
|
|
projects = seecoderGitlabApi.getAllProjectsByUserId(userId);
|
|
projects = seecoderGitlabApi.getAllProjectsByUserId(userId);
|
|
|
- } catch (SeecoderGitlabException e) {
|
|
|
|
|
- throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"获取项目列表失败",e);
|
|
|
|
|
- }
|
|
|
|
|
- //同步数据,有可能gitlab那边有的项目我们这边没有
|
|
|
|
|
- List<ProjectPO> pos = projects.stream().filter(x->projectMapper.getProjectById(x.getProjectId())==null).map(ProjectPO::new).collect(Collectors.toList());
|
|
|
|
|
- if (pos.size() != 0){
|
|
|
|
|
- //todo 查下mybatis 批量插入方式
|
|
|
|
|
- for (ProjectPO po : pos){
|
|
|
|
|
- projectMapper.insertProject(po);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //同步数据,有可能gitlab那边有的项目我们这边没有
|
|
|
|
|
+ List<ProjectPO> pos = projects.stream().filter(x -> projectMapper.getProjectById(x.getProjectId()) == null).map(ProjectPO::new).collect(Collectors.toList());
|
|
|
|
|
+ if (pos.size() != 0) {
|
|
|
|
|
+ for (ProjectPO po : pos) {
|
|
|
|
|
+ seecoderGitlabApi.addWebHook(po.getId(), properties.getGitlab().getWebhookProxy(), true, false, false);
|
|
|
|
|
+ projectMapper.insertProject(po);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ } catch (SeecoderGitlabException e) {
|
|
|
|
|
+ throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "获取项目列表失败", e);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
List<Integer> projectIds = projects.stream().map(com.nju.edu.gitlab.vo.ProjectVO::getProjectId).collect(Collectors.toList());
|
|
List<Integer> projectIds = projects.stream().map(com.nju.edu.gitlab.vo.ProjectVO::getProjectId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
- return projectIds.size()==0? new ArrayList<>() : projectMapper.selectByIds(projectIds).stream().map(ProjectVO::new).collect(Collectors.toList());
|
|
|
|
|
|
|
+ return projectIds.size() == 0 ? new ArrayList<>() : projectMapper.selectByIds(projectIds).stream().map(ProjectVO::new).collect(Collectors.toList());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -80,19 +80,19 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
@Override
|
|
@Override
|
|
|
public ProjectVO createProject(ProjectCreateVO vo) throws ServiceException {
|
|
public ProjectVO createProject(ProjectCreateVO vo) throws ServiceException {
|
|
|
ProjectPO po = new ProjectPO();
|
|
ProjectPO po = new ProjectPO();
|
|
|
- BeanUtils.copyProperties(vo,po);
|
|
|
|
|
|
|
+ BeanUtils.copyProperties(vo, po);
|
|
|
try {
|
|
try {
|
|
|
- com.nju.edu.gitlab.vo.ProjectVO project = seecoderGitlabApi.createPrivateProject(po.getName(), VisibilityForm.PRIVATE,UserService.loginUser().getId());
|
|
|
|
|
|
|
+ com.nju.edu.gitlab.vo.ProjectVO project = seecoderGitlabApi.createPrivateProject(po.getName(), VisibilityForm.PRIVATE, UserService.loginUser().getId());
|
|
|
po.setId(project.getProjectId());
|
|
po.setId(project.getProjectId());
|
|
|
po.setGitRemoteUrl(project.getWebUrl());
|
|
po.setGitRemoteUrl(project.getWebUrl());
|
|
|
} catch (SeecoderGitlabException e) {
|
|
} catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException("创建项目时发生异常[project id:"+po.getId()+", " + e.getMessage() + "]", e);
|
|
|
|
|
|
|
+ throw new ServiceException("创建项目时发生异常[project id:" + po.getId() + ", " + e.getMessage() + "]", e);
|
|
|
}
|
|
}
|
|
|
projectMapper.insertProject(po);
|
|
projectMapper.insertProject(po);
|
|
|
try {
|
|
try {
|
|
|
- seecoderGitlabApi.addWebHook(po.getId(), properties.getGitlab().getWebhookProxy(), true,false,false);
|
|
|
|
|
|
|
+ seecoderGitlabApi.addWebHook(po.getId(), properties.getGitlab().getWebhookProxy(), true, false, false);
|
|
|
} catch (SeecoderGitlabException e) {
|
|
} catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException("给项目添加webhook发生异常[project id:"+po.getId()+", " + e.getMessage() + "]", e);
|
|
|
|
|
|
|
+ throw new ServiceException("给项目添加webhook发生异常[project id:" + po.getId() + ", " + e.getMessage() + "]", e);
|
|
|
}
|
|
}
|
|
|
return new ProjectVO(po);
|
|
return new ProjectVO(po);
|
|
|
|
|
|
|
@@ -101,9 +101,9 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
@Override
|
|
@Override
|
|
|
public void addMember(Integer projectId, Integer userId) throws ServiceException {
|
|
public void addMember(Integer projectId, Integer userId) throws ServiceException {
|
|
|
try {
|
|
try {
|
|
|
- seecoderGitlabApi.addAuthorization(projectId,userId, AccessLevelForm.MASTER);
|
|
|
|
|
|
|
+ seecoderGitlabApi.addAuthorization(projectId, userId, AccessLevelForm.MASTER);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
- throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"添加项目权限失败",e);
|
|
|
|
|
|
|
+ throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "添加项目权限失败", e);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -113,7 +113,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
try {
|
|
try {
|
|
|
userIds = seecoderGitlabApi.getJoinedUserByProject(projectId);
|
|
userIds = seecoderGitlabApi.getJoinedUserByProject(projectId);
|
|
|
} catch (SeecoderGitlabException e) {
|
|
} catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"获取项目成员失败",e);
|
|
|
|
|
|
|
+ throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "获取项目成员失败", e);
|
|
|
}
|
|
}
|
|
|
return userMapper.selectByIds(userIds).stream().map(UserVO::new).collect(Collectors.toList());
|
|
return userMapper.selectByIds(userIds).stream().map(UserVO::new).collect(Collectors.toList());
|
|
|
}
|
|
}
|
|
@@ -128,10 +128,11 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
Long[] result = ShareCodeUtil.codeToId(relateCode);
|
|
Long[] result = ShareCodeUtil.codeToId(relateCode);
|
|
|
if (System.currentTimeMillis() - result[1] > 1000 * 60 * 5) {
|
|
if (System.currentTimeMillis() - result[1] > 1000 * 60 * 5) {
|
|
|
return "验证码有效时间为五分钟,已过期";
|
|
return "验证码有效时间为五分钟,已过期";
|
|
|
- };
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ ;
|
|
|
projectRelatedMapper.insert(ProjectRelatedPO.builder()
|
|
projectRelatedMapper.insert(ProjectRelatedPO.builder()
|
|
|
.projectIdA(projectId)
|
|
.projectIdA(projectId)
|
|
|
- .projectIdB(result[0].intValue()).build(),"id");
|
|
|
|
|
|
|
+ .projectIdB(result[0].intValue()).build(), "id");
|
|
|
return "关联项目成功";
|
|
return "关联项目成功";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|