|
|
@@ -13,7 +13,6 @@ import seecoder.devcloud.common.exceptions.ServiceException;
|
|
|
import seecoder.devcloud.web.dao.project.ProjectMapper;
|
|
|
import seecoder.devcloud.web.dao.user.UserMapper;
|
|
|
import seecoder.devcloud.web.model.po.project.ProjectPO;
|
|
|
-import seecoder.devcloud.web.model.po.user.UserPO;
|
|
|
import seecoder.devcloud.web.model.vo.project.ProjectCreateVO;
|
|
|
import seecoder.devcloud.web.model.vo.project.ProjectVO;
|
|
|
import seecoder.devcloud.web.model.vo.user.UserVO;
|
|
|
@@ -43,15 +42,24 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- // TODO:该方法待测试
|
|
|
public List<ProjectVO> listProjectsByUserId() throws ServiceException {
|
|
|
int userId = UserService.loginUser().getId();
|
|
|
- List<com.nju.edu.gitlab.vo.ProjectVO> projects = null;
|
|
|
+ List<com.nju.edu.gitlab.vo.ProjectVO> projects;
|
|
|
try {
|
|
|
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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
List<Integer> projectIds = projects.stream().map(com.nju.edu.gitlab.vo.ProjectVO::getProjectId).collect(Collectors.toList());
|
|
|
return projectMapper.selectByIds(projectIds).stream().map(ProjectVO::new).collect(Collectors.toList());
|
|
|
}
|
|
|
@@ -67,7 +75,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
ProjectPO po = new ProjectPO();
|
|
|
BeanUtils.copyProperties(vo,po);
|
|
|
try {
|
|
|
- com.nju.edu.gitlab.vo.ProjectVO project = seecoderGitlabApi.createProject(po.getName(), VisibilityForm.PRIVATE);
|
|
|
+ com.nju.edu.gitlab.vo.ProjectVO project = seecoderGitlabApi.createPrivateProject(po.getName(), VisibilityForm.PRIVATE,UserService.loginUser().getId());
|
|
|
po.setId(project.getProjectId());
|
|
|
po.setGitRemoteUrl(project.getWebUrl());
|
|
|
} catch (SeecoderGitlabException e) {
|
|
|
@@ -94,7 +102,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
|
|
|
@Override
|
|
|
public List<UserVO> getProjectMembers(Integer projectId) throws ServiceException {
|
|
|
- List<Integer> userIds = null;
|
|
|
+ List<Integer> userIds;
|
|
|
try {
|
|
|
userIds = seecoderGitlabApi.getJoinedUserByProject(projectId);
|
|
|
} catch (SeecoderGitlabException e) {
|
|
|
@@ -107,27 +115,4 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
public void deleteProject(int projectId) {
|
|
|
//TODO:不知道该怎么做,懒删除?还是直接删? 暂时不提供
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public void refresh() throws ServiceException {
|
|
|
- UserPO user = UserService.loginUser();
|
|
|
- List<com.nju.edu.gitlab.vo.ProjectVO> projects = null;
|
|
|
- try {
|
|
|
- projects = seecoderGitlabApi.getAllProjectsByUserId(user.getId());
|
|
|
- } catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException(HttpStatus.SC_INTERNAL_SERVER_ERROR,"获取项目列表失败",e);
|
|
|
- }
|
|
|
- for (com.nju.edu.gitlab.vo.ProjectVO p : projects){
|
|
|
- if (projectMapper.getProjectById(p.getProjectId())==null){
|
|
|
- ProjectPO po = new ProjectPO();
|
|
|
- po.setId(p.getProjectId());
|
|
|
- po.setGitRemoteUrl(p.getWebUrl());
|
|
|
- po.setDescription("");
|
|
|
- //todo 项目名待返回
|
|
|
- projectMapper.insertProject(po);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
}
|