|
|
@@ -19,6 +19,7 @@ import cn.seecoder.seecoderportalserver.service.CourseService;
|
|
|
import cn.seecoder.seecoderportalserver.service.GroupService;
|
|
|
import cn.seecoder.seecoderportalserver.service.UserService;
|
|
|
import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
|
|
|
+import org.postgresql.util.PSQLException;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -63,8 +64,12 @@ public class GroupServiceImpl implements GroupService {
|
|
|
throw CustomErrorException.courseSelectionNotFound();
|
|
|
}
|
|
|
// 验证尚未加入小组
|
|
|
- if (groupMemberRepository.findByUserId(getGroupMemberTableName(groupVO.getCourseId()), user.getId()) != null) {
|
|
|
- throw CustomErrorException.groupMemberAlreadyExists();
|
|
|
+ try {
|
|
|
+ if (groupMemberRepository.findByUserId(getGroupMemberTableName(groupVO.getCourseId()), user.getId()) != null) {
|
|
|
+ throw CustomErrorException.groupMemberAlreadyExists();
|
|
|
+ }
|
|
|
+ } catch (PSQLException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
|
// 创建小组
|
|
|
Group group = groupMapper.toGroup(groupVO);
|
|
|
@@ -90,8 +95,12 @@ public class GroupServiceImpl implements GroupService {
|
|
|
throw CustomErrorException.courseSelectionNotFound();
|
|
|
}
|
|
|
// 验证尚未加入小组
|
|
|
- if (groupMemberRepository.findByUserId(tableName, userId) != null) {
|
|
|
- throw CustomErrorException.groupMemberAlreadyExists();
|
|
|
+ try {
|
|
|
+ if (groupMemberRepository.findByUserId(tableName, userId) != null) {
|
|
|
+ throw CustomErrorException.groupMemberAlreadyExists();
|
|
|
+ }
|
|
|
+ } catch (PSQLException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
|
// 验证小组未满员
|
|
|
GroupRule groupRule = groupRuleRepository.findByCourse_Id(courseId)
|
|
|
@@ -109,21 +118,22 @@ public class GroupServiceImpl implements GroupService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public GroupDTO findGroup(Long courseId) throws CustomErrorException{
|
|
|
+ public GroupDTO findGroup(Long courseId) throws CustomErrorException {
|
|
|
DomainUserDetails user = SecurityUtils.getCurrentUser();
|
|
|
if (!courseService.checkSelection(user.getId(), courseId)) {
|
|
|
throw CustomErrorException.courseSelectionNotFound();
|
|
|
}
|
|
|
- GroupMember groupMember = groupMemberRepository.findByUserId(
|
|
|
- getGroupMemberTableName(courseId),
|
|
|
- user.getId());
|
|
|
- if (groupMember == null) {
|
|
|
+ try {
|
|
|
+ GroupMember groupMember = groupMemberRepository.findByUserId(
|
|
|
+ getGroupMemberTableName(courseId),
|
|
|
+ user.getId());
|
|
|
+ Group group = groupRepository.findGroupById(
|
|
|
+ getGroupTableName(courseId),
|
|
|
+ groupMember.getGroupId());
|
|
|
+ return generateGroupDTO(courseId, group);
|
|
|
+ } catch (PSQLException e) {
|
|
|
throw CustomErrorException.groupNotFound();
|
|
|
}
|
|
|
- Group group = groupRepository.findGroupById(
|
|
|
- getGroupTableName(courseId),
|
|
|
- groupMember.getGroupId());
|
|
|
- return generateGroupDTO(courseId, group);
|
|
|
}
|
|
|
|
|
|
@Override
|