|
@@ -5,10 +5,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkReviewDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSaveDto;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.search.CourseHomeworkSearch;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.StudentAttendance;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
|
|
@@ -21,8 +20,11 @@ import com.yonge.cooleshow.common.exception.BizException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
|
@Service
|
|
@@ -44,9 +46,18 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<CourseHomeworkVo> selectPage(IPage<CourseHomeworkVo> page, CourseHomeworkSearch query){
|
|
|
- return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+ @Override
|
|
|
+ public IPage<CourseHomeworkVo> selectPage(IPage<CourseHomeworkVo> page, HomeworkSearch query){
|
|
|
+ IPage<CourseHomeworkVo> courseHomeworkVoIPage = page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+ List<CourseHomeworkVo> records = courseHomeworkVoIPage.getRecords();
|
|
|
+ List<CourseHomeworkVo> userInfoList = baseMapper.selectStudentInfo(records);
|
|
|
+ for (int i = 0; i < records.size(); i++) {
|
|
|
+ CourseHomeworkVo userInfo = userInfoList.get(i);
|
|
|
+ records.get(i).setStudentAvatar(userInfo.getStudentAvatar());
|
|
|
+ records.get(i).setStudentName(userInfo.getStudentName());
|
|
|
+ records.get(i).setSubjectName(userInfo.getSubjectName());
|
|
|
+ }
|
|
|
+ return courseHomeworkVoIPage;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -67,42 +78,49 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean decorateCourseHomework(CourseHomeworkSaveDto saveDto) {
|
|
|
// 检查 老师 陪练课 课程状态为完成,有学生考勤记录 没有布置作业
|
|
|
checkCourseSchedule(saveDto.getCourseScheduleId());
|
|
|
|
|
|
// 检查已经布置了课后作业
|
|
|
- if (checkHasHomework(saveDto.getCourseScheduleId())) {
|
|
|
- throw new BizException("已布置作业");
|
|
|
+ CourseHomework homework = checkHasHomework(saveDto.getCourseScheduleId());
|
|
|
+ if (homework != null) {
|
|
|
+ saveDto.setCourseHomeworkId(homework.getId());
|
|
|
}
|
|
|
|
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(saveDto.getCourseScheduleId());
|
|
|
// 创建课后作业
|
|
|
CourseHomework courseHomework = getCourseHomework(saveDto, courseSchedule);
|
|
|
|
|
|
- return this.save(courseHomework);
|
|
|
+ return this.saveOrUpdate(courseHomework);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 检查课程是否已经布置作业
|
|
|
+ * 获取课程作业
|
|
|
*
|
|
|
* @param courseScheduleId 课程id
|
|
|
- * @return boolean true:是 false :否
|
|
|
+ * @return CourseHomework
|
|
|
*/
|
|
|
- private boolean checkHasHomework(Long courseScheduleId) {
|
|
|
- return this.lambdaQuery()
|
|
|
- .eq(CourseHomework::getCourseScheduleId, courseScheduleId)
|
|
|
- .eq(CourseHomework::getCourseGroupType, CourseScheduleEnum.PRACTICE.getCode())
|
|
|
- .count() >0;
|
|
|
+ private CourseHomework checkHasHomework(Long courseScheduleId) {
|
|
|
+ List<CourseHomework> list = this.lambdaQuery()
|
|
|
+ .eq(CourseHomework::getCourseScheduleId, courseScheduleId)
|
|
|
+ .eq(CourseHomework::getCourseGroupType, CourseScheduleEnum.PRACTICE.getCode())
|
|
|
+ .list();
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return list.get(0);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean reviewCourseHomework(CourseHomeworkReviewDto reviewDto) {
|
|
|
// 检查 老师 陪练课 课程状态为完成,有学生考勤记录 没有布置作业
|
|
|
checkCourseSchedule(reviewDto.getCourseScheduleId());
|
|
|
|
|
|
// 检查已经布置了课后作业
|
|
|
- if (!checkHasHomework(reviewDto.getCourseScheduleId())) {
|
|
|
+ if (checkHasHomework(reviewDto.getCourseScheduleId()) == null) {
|
|
|
throw new BizException("没布置作业,不能点评");
|
|
|
}
|
|
|
|
|
@@ -132,13 +150,6 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
if (!CourseScheduleEnum.COMPLETE.getCode().equals(courseSchedule.getStatus())) {
|
|
|
throw new BizException("课程未正常完成,不能布置课后作业");
|
|
|
}
|
|
|
- // 3. 检查学生考勤
|
|
|
- StudentAttendance studentAttendance = studentAttendanceService
|
|
|
- .getByCourseTypeAndScheduleId(CourseScheduleEnum.PRACTICE, courseScheduleId);
|
|
|
-
|
|
|
- if (studentAttendance == null) {
|
|
|
- throw new BizException("学生没有进行学习,不能布置课后作业");
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -150,6 +161,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
*/
|
|
|
private CourseHomework getCourseHomework(CourseHomeworkSaveDto saveDto, CourseSchedule courseSchedule) {
|
|
|
CourseHomework courseHomework = new CourseHomework();
|
|
|
+ courseHomework.setId(saveDto.getCourseHomeworkId());
|
|
|
courseHomework.setCourseGroupId(courseSchedule.getCourseGroupId());
|
|
|
courseHomework.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
|
|
|
courseHomework.setCourseScheduleId(saveDto.getCourseScheduleId());
|