|
|
@@ -1,112 +1,112 @@
|
|
|
-package seecoder.devcloud.web.service.impl.user;
|
|
|
-
|
|
|
-
|
|
|
-import com.nju.edu.gitlab.SeecoderGitlabApi;
|
|
|
-import com.nju.edu.gitlab.SeecoderGitlabException;
|
|
|
-import com.nju.edu.gitlab.dto.member.AccessLevelForm;
|
|
|
-import com.nju.edu.gitlab.vo.GitlabGroup;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import seecoder.devcloud.common.exceptions.AccessDeniedException;
|
|
|
-import seecoder.devcloud.common.exceptions.ConflictException;
|
|
|
-import seecoder.devcloud.common.exceptions.ServiceException;
|
|
|
-import seecoder.devcloud.web.dao.user.GroupMapper;
|
|
|
-import seecoder.devcloud.web.dao.user.GroupMemberMapper;
|
|
|
-import seecoder.devcloud.web.model.po.user.Group;
|
|
|
-import seecoder.devcloud.web.model.po.user.User;
|
|
|
-import seecoder.devcloud.web.model.vo.user.GroupVO;
|
|
|
-import seecoder.devcloud.web.service.user.GroupService;
|
|
|
-import seecoder.devcloud.web.service.user.UserService;
|
|
|
-
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-
|
|
|
-@Service
|
|
|
-@Slf4j
|
|
|
-public class GroupServiceImpl implements GroupService {
|
|
|
- private final GroupMapper groupMapper;
|
|
|
- private final GroupMemberMapper groupMemberMapper;
|
|
|
-
|
|
|
- private final SeecoderGitlabApi seecoderGitlabApi;
|
|
|
-
|
|
|
- private final String GROUP_NAME_PREFIX = "DEVCLOUD_";
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public GroupServiceImpl(GroupMapper groupMapper, GroupMemberMapper groupMemberMapper, SeecoderGitlabApi seecoderGitlabApi) {
|
|
|
- this.groupMapper = groupMapper;
|
|
|
- this.groupMemberMapper = groupMemberMapper;
|
|
|
- this.seecoderGitlabApi = seecoderGitlabApi;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public GroupVO getGroup(Integer groupId) {
|
|
|
- return new GroupVO(groupMapper.findGroupById(groupId));
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<Integer> getGroupMemberIds(Integer groupId) {
|
|
|
- return groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public GroupVO createGroup(String name) throws ServiceException {
|
|
|
- if (groupMapper.findGroupByName(name) != null){
|
|
|
- throw new ConflictException("您创建的小组名字已被使用!");
|
|
|
- }
|
|
|
- User user = UserService.loginUser();
|
|
|
- GitlabGroup gitlabGroup = null;
|
|
|
- try {
|
|
|
- gitlabGroup = seecoderGitlabApi.createGroup(GROUP_NAME_PREFIX + name);
|
|
|
- seecoderGitlabApi.addMember(gitlabGroup.getGroupId(), user.getId(), AccessLevelForm.MASTER);
|
|
|
- } catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException("创建Group时发生异常[" + e.getMessage() + "]",e);
|
|
|
- }
|
|
|
- Group group = Group.builder()
|
|
|
- .id(gitlabGroup.getGroupId())
|
|
|
- .name(name)
|
|
|
- .build();
|
|
|
- groupMapper.insert(group);
|
|
|
- groupMemberMapper.insert(gitlabGroup.getGroupId(), user.getId());
|
|
|
- return new GroupVO(group);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public void addMember(Integer invitedUserId, Integer groupId) throws ServiceException {
|
|
|
- //当前登陆的用户id
|
|
|
- int userId = UserService.loginUser().getId();
|
|
|
-
|
|
|
- //只有在组内的用户才能邀请
|
|
|
- List<Integer> userIds = groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
|
- if (!userIds.contains(userId)) {
|
|
|
- throw new AccessDeniedException("小组邀请发生错误,用户没有权限");
|
|
|
- }
|
|
|
- if (userIds.contains(invitedUserId)) {
|
|
|
- throw new ConflictException("邀请的用户已经加入小组!");
|
|
|
- }
|
|
|
- try {
|
|
|
- seecoderGitlabApi.addMember(groupId, invitedUserId, AccessLevelForm.MASTER);
|
|
|
- } catch (SeecoderGitlabException e) {
|
|
|
- throw new ServiceException("将成员加入Group时发生异常[" + e.getMessage() + "]", e);
|
|
|
- }
|
|
|
- groupMemberMapper.insert(groupId, invitedUserId);
|
|
|
- //Group group = groupMapper.findWithMembersById(groupId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void quitGroup(Integer groupId, Integer userId) throws ServiceException {
|
|
|
-
|
|
|
+//package seecoder.devcloud.web.service.impl.user;
|
|
|
+//
|
|
|
+//
|
|
|
+//import com.nju.edu.gitlab.SeecoderGitlabApi;
|
|
|
+//import com.nju.edu.gitlab.SeecoderGitlabException;
|
|
|
+//import com.nju.edu.gitlab.dto.member.AccessLevelForm;
|
|
|
+//import com.nju.edu.gitlab.vo.GitlabGroup;
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.stereotype.Service;
|
|
|
+//import org.springframework.transaction.annotation.Transactional;
|
|
|
+//import seecoder.devcloud.common.exceptions.AccessDeniedException;
|
|
|
+//import seecoder.devcloud.common.exceptions.ConflictException;
|
|
|
+//import seecoder.devcloud.common.exceptions.ServiceException;
|
|
|
+//import seecoder.devcloud.web.dao.user.GroupMapper;
|
|
|
+//import seecoder.devcloud.web.dao.user.GroupMemberMapper;
|
|
|
+//import seecoder.devcloud.web.model.po.user.Group;
|
|
|
+//import seecoder.devcloud.web.model.po.user.UserPO;
|
|
|
+//import seecoder.devcloud.web.model.vo.user.GroupVO;
|
|
|
+//import seecoder.devcloud.web.service.user.GroupService;
|
|
|
+//import seecoder.devcloud.web.service.user.UserService;
|
|
|
+//
|
|
|
+//import java.util.List;
|
|
|
+//
|
|
|
+//
|
|
|
+//@Service
|
|
|
+//@Slf4j
|
|
|
+//public class GroupServiceImpl implements GroupService {
|
|
|
+// private final GroupMapper groupMapper;
|
|
|
+// private final GroupMemberMapper groupMemberMapper;
|
|
|
+//
|
|
|
+// private final SeecoderGitlabApi seecoderGitlabApi;
|
|
|
+//
|
|
|
+// private final String GROUP_NAME_PREFIX = "DEVCLOUD_";
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// public GroupServiceImpl(GroupMapper groupMapper, GroupMemberMapper groupMemberMapper, SeecoderGitlabApi seecoderGitlabApi) {
|
|
|
+// this.groupMapper = groupMapper;
|
|
|
+// this.groupMemberMapper = groupMemberMapper;
|
|
|
+// this.seecoderGitlabApi = seecoderGitlabApi;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public GroupVO getGroup(Integer groupId) {
|
|
|
+// return new GroupVO(groupMapper.findGroupById(groupId));
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public List<Integer> getGroupMemberIds(Integer groupId) {
|
|
|
+// return groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional
|
|
|
+// public GroupVO createGroup(String name) throws ServiceException {
|
|
|
+// if (groupMapper.findGroupByName(name) != null){
|
|
|
+// throw new ConflictException("您创建的小组名字已被使用!");
|
|
|
+// }
|
|
|
+// UserPO user = UserService.loginUser();
|
|
|
+// GitlabGroup gitlabGroup = null;
|
|
|
+// try {
|
|
|
+// gitlabGroup = seecoderGitlabApi.createGroup(GROUP_NAME_PREFIX + name);
|
|
|
+// seecoderGitlabApi.addMember(gitlabGroup.getGroupId(), user.getId(), AccessLevelForm.MASTER);
|
|
|
+// } catch (SeecoderGitlabException e) {
|
|
|
+// throw new ServiceException("创建Group时发生异常[" + e.getMessage() + "]",e);
|
|
|
+// }
|
|
|
+// Group group = Group.builder()
|
|
|
+// .id(gitlabGroup.getGroupId())
|
|
|
+// .name(name)
|
|
|
+// .build();
|
|
|
+// groupMapper.insert(group);
|
|
|
+// groupMemberMapper.insert(gitlabGroup.getGroupId(), user.getId());
|
|
|
+// return new GroupVO(group);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// @Transactional
|
|
|
+// public void addMember(Integer invitedUserId, Integer groupId) throws ServiceException {
|
|
|
+// //当前登陆的用户id
|
|
|
+// int userId = UserService.loginUser().getId();
|
|
|
+//
|
|
|
+// //只有在组内的用户才能邀请
|
|
|
+// List<Integer> userIds = groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
|
+// if (!userIds.contains(userId)) {
|
|
|
+// throw new AccessDeniedException("小组邀请发生错误,用户没有权限");
|
|
|
+// }
|
|
|
+// if (userIds.contains(invitedUserId)) {
|
|
|
+// throw new ConflictException("邀请的用户已经加入小组!");
|
|
|
+// }
|
|
|
// try {
|
|
|
-// gitlabApi.quitGroup(groupId,userId);
|
|
|
-// } catch (GitLabApiException e) {
|
|
|
-// log.error(e.getMessage(), e);
|
|
|
-// throw new ServiceException(e.getMessage());
|
|
|
+// seecoderGitlabApi.addMember(groupId, invitedUserId, AccessLevelForm.MASTER);
|
|
|
+// } catch (SeecoderGitlabException e) {
|
|
|
+// throw new ServiceException("将成员加入Group时发生异常[" + e.getMessage() + "]", e);
|
|
|
// }
|
|
|
-// groupMemberMapper.delete(groupId,userId);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
+// groupMemberMapper.insert(groupId, invitedUserId);
|
|
|
+// //Group group = groupMapper.findWithMembersById(groupId);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void quitGroup(Integer groupId, Integer userId) throws ServiceException {
|
|
|
+//
|
|
|
+//// try {
|
|
|
+//// gitlabApi.quitGroup(groupId,userId);
|
|
|
+//// } catch (GitLabApiException e) {
|
|
|
+//// log.error(e.getMessage(), e);
|
|
|
+//// throw new ServiceException(e.getMessage());
|
|
|
+//// }
|
|
|
+//// groupMemberMapper.delete(groupId,userId);
|
|
|
+// }
|
|
|
+//}
|
|
|
+//
|