|
|
@@ -1,11 +1,15 @@
|
|
|
package cn.seecoder.seecoderportalserver.serviceImpl.group;
|
|
|
|
|
|
import cn.seecoder.seecoderportalcommon.vo.group.GroupRuleVO;
|
|
|
-import cn.seecoder.seecoderportalserver.domain.GroupRule;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.group.GroupRule;
|
|
|
+import cn.seecoder.seecoderportalserver.mapper.CourseMapper;
|
|
|
import cn.seecoder.seecoderportalserver.mapper.group.GroupRuleMapper;
|
|
|
import cn.seecoder.seecoderportalserver.repository.group.GroupRuleRepository;
|
|
|
+import cn.seecoder.seecoderportalserver.security.SecurityUtils;
|
|
|
import cn.seecoder.seecoderportalserver.service.CourseService;
|
|
|
import cn.seecoder.seecoderportalserver.service.group.GroupRuleService;
|
|
|
+import cn.seecoder.seecoderportalserver.service.group.GroupService;
|
|
|
+import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -15,29 +19,47 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Service
|
|
|
public class GroupRuleServiceImpl implements GroupRuleService {
|
|
|
- private final static Logger log = LoggerFactory.getLogger(GroupRuleService.class);
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(GroupRuleServiceImpl.class);
|
|
|
private final GroupRuleRepository groupRuleRepository;
|
|
|
private final GroupRuleMapper groupRuleMapper;
|
|
|
private final CourseService courseService;
|
|
|
+ private final CourseMapper courseMapper;
|
|
|
+ private final GroupService groupService;
|
|
|
|
|
|
- public GroupRuleServiceImpl(GroupRuleRepository groupRuleRepository, GroupRuleMapper groupRuleMapper, CourseService courseService) {
|
|
|
+ public GroupRuleServiceImpl(GroupRuleRepository groupRuleRepository, GroupRuleMapper groupRuleMapper, CourseService courseService, CourseMapper courseMapper, GroupService groupService) {
|
|
|
this.groupRuleRepository = groupRuleRepository;
|
|
|
this.groupRuleMapper = groupRuleMapper;
|
|
|
this.courseService = courseService;
|
|
|
+ this.courseMapper = courseMapper;
|
|
|
+ this.groupService = groupService;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public GroupRuleVO editGroupRule(GroupRuleVO ruleVO) {
|
|
|
- return null;
|
|
|
+ Long teacherId = courseService.findCourseById(ruleVO.getCourseId()).getTeacher().getId();
|
|
|
+ if (!SecurityUtils.getCurrentUser().getId().equals(teacherId)) {
|
|
|
+ throw CustomErrorException.unauthorizedUser();
|
|
|
+ }
|
|
|
+ GroupRule groupRule;
|
|
|
+ groupRule = groupRuleRepository.save(toGroupRule(ruleVO));
|
|
|
+ log.info("Edit Course Group Rule: {}", groupRule);
|
|
|
+ if (!groupService.isTableExisted(ruleVO.getCourseId())) {
|
|
|
+ groupService.createTableByCourse(ruleVO);
|
|
|
+ }
|
|
|
+ return toGroupRuleVO(groupRule);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public GroupRuleVO toGroupRuleVO(GroupRule groupRule) {
|
|
|
- return groupRuleMapper.groupRuleToGroupRuleVO(groupRule);
|
|
|
+ GroupRuleVO groupRuleVO = groupRuleMapper.toGroupRuleVO(groupRule);
|
|
|
+ groupRuleVO.setCourseId(groupRuleVO.getCourseId());
|
|
|
+ return groupRuleVO;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public GroupRule toGroupRule(GroupRuleVO groupRuleVO) {
|
|
|
- return groupRuleMapper.groupRuleVOToGroupRule(groupRuleVO);
|
|
|
+ GroupRule groupRule = groupRuleMapper.toGroupRule(groupRuleVO);
|
|
|
+ groupRule.setCourse(courseMapper.courseVOToCourse(courseService.findCourseById(groupRuleVO.getCourseId())));
|
|
|
+ return groupRule;
|
|
|
}
|
|
|
}
|