|
|
@@ -81,11 +81,12 @@ public class GroupServiceImpl implements GroupService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = RuntimeException.class)
|
|
|
- public GroupMemberVO addGroupMember(GroupMemberVO groupMemberVO) {
|
|
|
- String tableName = getGroupMemberTableName(groupMemberVO.getCourseId());
|
|
|
+ public GroupDTO addGroupMember(GroupMemberVO groupMemberVO) {
|
|
|
+ Long courseId = groupMemberVO.getCourseId();
|
|
|
+ String tableName = getGroupMemberTableName(courseId);
|
|
|
DomainUserDetails user = SecurityUtils.getCurrentUser();
|
|
|
// 验证选课
|
|
|
- if (!courseService.checkSelection(user.getId(), groupMemberVO.getCourseId())) {
|
|
|
+ if (!courseService.checkSelection(user.getId(), courseId)) {
|
|
|
throw CustomErrorException.courseSelectionNotFound();
|
|
|
}
|
|
|
// 验证尚未加入小组
|
|
|
@@ -93,7 +94,7 @@ public class GroupServiceImpl implements GroupService {
|
|
|
throw CustomErrorException.groupMemberAlreadyExists();
|
|
|
}
|
|
|
// 验证小组未满员
|
|
|
- GroupRule groupRule = groupRuleRepository.findByCourse_Id(groupMemberVO.getCourseId())
|
|
|
+ GroupRule groupRule = groupRuleRepository.findByCourse_Id(courseId)
|
|
|
.orElseThrow(CustomErrorException::groupRuleNotFound);
|
|
|
int currentSize = groupMemberRepository.findByGroupId(tableName, groupMemberVO.getGroupId()).size();
|
|
|
if (currentSize == groupRule.getMaxSize()) {
|
|
|
@@ -103,7 +104,8 @@ public class GroupServiceImpl implements GroupService {
|
|
|
GroupMember groupMember = groupMemberMapper.toGroupMember(groupMemberVO);
|
|
|
groupMemberRepository.createGroupMember(tableName, groupMember);
|
|
|
log.info("Create GroupMember: {}", groupMember);
|
|
|
- return groupMemberMapper.toGroupMemberVO(groupMember);
|
|
|
+ Group group = groupRepository.findGroupById(getGroupTableName(courseId), groupMemberVO.getGroupId());
|
|
|
+ return generateGroupDTO(courseId, group);
|
|
|
}
|
|
|
|
|
|
@Override
|