|
@@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import seecoder.devcloud.api.gitlab.GitlabApi;
|
|
import seecoder.devcloud.api.gitlab.GitlabApi;
|
|
|
import seecoder.devcloud.api.gitlab.model.GitlabGroup;
|
|
import seecoder.devcloud.api.gitlab.model.GitlabGroup;
|
|
|
import seecoder.devcloud.common.exceptions.EntityNotFoundException;
|
|
import seecoder.devcloud.common.exceptions.EntityNotFoundException;
|
|
|
|
|
+import seecoder.devcloud.common.exceptions.ServiceException;
|
|
|
import seecoder.devcloud.web.dao.user.GroupMapper;
|
|
import seecoder.devcloud.web.dao.user.GroupMapper;
|
|
|
import seecoder.devcloud.web.dao.user.GroupMemberMapper;
|
|
import seecoder.devcloud.web.dao.user.GroupMemberMapper;
|
|
|
import seecoder.devcloud.web.dao.user.UserMapper;
|
|
import seecoder.devcloud.web.dao.user.UserMapper;
|
|
@@ -25,14 +26,14 @@ import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
-public class GroupServiceImp implements GroupService {
|
|
|
|
|
|
|
+public class GroupServiceImpl implements GroupService {
|
|
|
private final GroupMapper groupMapper;
|
|
private final GroupMapper groupMapper;
|
|
|
private final UserMapper userMapper;
|
|
private final UserMapper userMapper;
|
|
|
private final GroupMemberMapper groupMemberMapper;
|
|
private final GroupMemberMapper groupMemberMapper;
|
|
|
private final GitlabApi gitlabApi;
|
|
private final GitlabApi gitlabApi;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- public GroupServiceImp(GroupMapper groupMapper, UserMapper userMapper, GroupMemberMapper groupMemberMapper, GitlabApi gitlabApi) {
|
|
|
|
|
|
|
+ public GroupServiceImpl(GroupMapper groupMapper, UserMapper userMapper, GroupMemberMapper groupMemberMapper, GitlabApi gitlabApi) {
|
|
|
this.groupMapper = groupMapper;
|
|
this.groupMapper = groupMapper;
|
|
|
this.userMapper = userMapper;
|
|
this.userMapper = userMapper;
|
|
|
this.groupMemberMapper = groupMemberMapper;
|
|
this.groupMemberMapper = groupMemberMapper;
|
|
@@ -41,9 +42,11 @@ public class GroupServiceImp implements GroupService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public GroupVO createGroup(String name, Integer userId) throws EntityNotFoundException {
|
|
|
|
|
|
|
+ public GroupVO createGroup(String name, Integer userId) throws ServiceException {
|
|
|
|
|
+ if (groupMapper.findGroupByName(name) != null){
|
|
|
|
|
+ throw new ServiceException("您创建的小组名字已被使用!");
|
|
|
|
|
+ }
|
|
|
User user = userMapper.findById(userId);
|
|
User user = userMapper.findById(userId);
|
|
|
-
|
|
|
|
|
List<User> members = new ArrayList<>();
|
|
List<User> members = new ArrayList<>();
|
|
|
members.add(user);
|
|
members.add(user);
|
|
|
GitlabGroup gitGroup;
|
|
GitlabGroup gitGroup;
|
|
@@ -62,13 +65,13 @@ public class GroupServiceImp implements GroupService {
|
|
|
.members(members)
|
|
.members(members)
|
|
|
.build();
|
|
.build();
|
|
|
groupMapper.insert(group, "members");
|
|
groupMapper.insert(group, "members");
|
|
|
- groupMemberMapper.insert(gitGroup.getId(),userId);
|
|
|
|
|
|
|
+ groupMemberMapper.insert(gitGroup.getId(), userId);
|
|
|
return new GroupVO(group);
|
|
return new GroupVO(group);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- @Transactional
|
|
|
|
|
|
|
+ //@Transactional
|
|
|
public GroupVO addMember(Integer userId, Integer invitedUserId, Integer groupId) throws EntityNotFoundException {
|
|
public GroupVO addMember(Integer userId, Integer invitedUserId, Integer groupId) throws EntityNotFoundException {
|
|
|
List<Integer> userIds = groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
List<Integer> userIds = groupMemberMapper.selectUserIdsByGroupId(groupId);
|
|
|
if (!userIds.contains(userId)) {
|
|
if (!userIds.contains(userId)) {
|
|
@@ -82,11 +85,21 @@ public class GroupServiceImp implements GroupService {
|
|
|
} catch (GitLabApiException e) {
|
|
} catch (GitLabApiException e) {
|
|
|
throw new RuntimeException("将成员加入Group时发生异常[" + e.getMessage() + "]");
|
|
throw new RuntimeException("将成员加入Group时发生异常[" + e.getMessage() + "]");
|
|
|
}
|
|
}
|
|
|
- groupMemberMapper.insert(groupId,invitedUserId);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ groupMemberMapper.insert(groupId, invitedUserId);
|
|
|
|
|
+ Group group = groupMapper.findWithMembersById(groupId);
|
|
|
return new GroupVO(group);
|
|
return new GroupVO(group);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void quitGroup(Integer groupId, Integer userId) throws ServiceException {
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ gitlabApi.quitGroup(groupId,userId);
|
|
|
|
|
+ } catch (GitLabApiException e) {
|
|
|
|
|
+ throw new ServiceException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
+ groupMemberMapper.delete(groupId,userId);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|