|
|
@@ -8,19 +8,22 @@ 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.CourseHomeworkSubmitDto;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.CourseScheduleHomeworkSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.HomeworkAdminSearch;
|
|
|
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.CourseScheduleStudentPayment;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.SysMessageConfig;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.CourseScheduleHomeworkVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.StudentHomeworkVo;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
import org.slf4j.Logger;
|
|
|
@@ -35,7 +38,6 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@Service
|
|
|
@@ -57,9 +59,6 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Autowired
|
|
|
- private SysMessageConfigService sysMessageConfigService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
|
|
|
|
|
|
@Override
|
|
|
@@ -75,6 +74,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
if (CollectionUtils.isEmpty(records)) {
|
|
|
return courseHomeworkVoIPage;
|
|
|
}
|
|
|
+
|
|
|
// 学生信息
|
|
|
List<CourseHomeworkVo> studentInfoList = baseMapper.selectStudentInfo(records);
|
|
|
|
|
|
@@ -82,7 +82,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
List<CourseHomeworkVo> teacherInfoList = baseMapper.selectTeacherInfo(records);
|
|
|
|
|
|
// 声部信息
|
|
|
- List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectInfoList(records);
|
|
|
+ List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectAndGroupInfoList(records);
|
|
|
for (int i = 0; i < records.size(); i++) {
|
|
|
records.get(i).setStudentId(studentInfoList.get(i).getStudentId());
|
|
|
records.get(i).setStudentAvatar(studentInfoList.get(i).getStudentAvatar());
|
|
|
@@ -92,19 +92,24 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
records.get(i).setTeacherId(teacherInfoList.get(i).getTeacherId());
|
|
|
records.get(i).setTeacherName(teacherInfoList.get(i).getTeacherName());
|
|
|
records.get(i).setAbsenteeism(teacherInfoList.get(i).getAbsenteeism());
|
|
|
+ records.get(i).setCourseGroupName(subjectList.get(i).getCourseGroupName());
|
|
|
}
|
|
|
return courseHomeworkVoIPage;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public CourseHomeworkDetailVo getCourseHomeworkDetailByCourseId(Long courseId) {
|
|
|
+ public CourseHomeworkDetailVo getCourseHomeworkDetailByCourseId(Long courseId, Long studentId) {
|
|
|
|
|
|
// 课程基本信息
|
|
|
- CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId);
|
|
|
+ CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId,studentId);
|
|
|
+
|
|
|
+ if (courseHomeworkDetailVo == null) {
|
|
|
+ throw new BizException("未找到作业信息");
|
|
|
+ }
|
|
|
|
|
|
// 学生信息
|
|
|
CourseHomeworkDetailVo studentInfoDetailVo = baseMapper
|
|
|
- .selectPaymentStudentInfo(courseHomeworkDetailVo.getCourseScheduleId());
|
|
|
+ .selectPaymentStudentInfo(courseHomeworkDetailVo.getCourseScheduleId(),studentId);
|
|
|
|
|
|
// 声部信息
|
|
|
CourseHomeworkDetailVo subjectAndTeacherInfoVo = baseMapper
|
|
|
@@ -158,17 +163,26 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
* @param teacherId 老师id
|
|
|
*/
|
|
|
private void sendDecorateHomework(Long courseScheduleId,Long teacherId) {
|
|
|
- CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentService.getByCourseId(
|
|
|
+ List<CourseScheduleStudentPayment> paymentList = courseScheduleStudentPaymentService.getByCourseId(
|
|
|
courseScheduleId);
|
|
|
- SysUser student = sysUserFeignService.queryUserById(courseScheduleStudentPayment.getUserId());
|
|
|
+ if (paymentList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
- Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
- studentReceivers.put(student.getId(), student.getPhone());
|
|
|
-
|
|
|
String url = sysMessageService.selectConfigUrl(MessageTypeEnum.TEACHER_DECORATE_HOMEWORK.getCode());
|
|
|
+ for (CourseScheduleStudentPayment courseScheduleStudentPayment : paymentList) {
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(courseScheduleStudentPayment.getUserId());
|
|
|
+ Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ studentReceivers.put(student.getId(), student.getPhone());
|
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_DECORATE_HOMEWORK,
|
|
|
- studentReceivers, null, 0,url + courseScheduleId , ClientEnum.STUDENT.getCode(),teacher.getUsername());
|
|
|
+ try {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum
|
|
|
+ .TEACHER_DECORATE_HOMEWORK,studentReceivers, null, 0,url + courseScheduleId ,
|
|
|
+ ClientEnum.STUDENT.getCode(),teacher.getUsername());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("老师布置作业消息发送失败 学生id:{}",student.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -180,7 +194,6 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
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;
|
|
|
@@ -201,7 +214,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
|
|
|
// 课程基本信息
|
|
|
CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper
|
|
|
- .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId());
|
|
|
+ .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId(), reviewDto.getStudentId());
|
|
|
|
|
|
// 检查学生是否提交作业
|
|
|
if (!YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getSubmitHomework().getCode())) {
|
|
|
@@ -242,7 +255,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
}
|
|
|
// 课程基本信息
|
|
|
CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper
|
|
|
- .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId());
|
|
|
+ .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId(), submitDto.getStudentId());
|
|
|
|
|
|
// 检查老师是否评价作业
|
|
|
if (YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getReviewHomework().getCode())) {
|
|
|
@@ -287,22 +300,25 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
|
|
|
@Override
|
|
|
public IPage<CourseHomeworkVo> selectAdminPage(IPage<CourseHomeworkVo> page, HomeworkAdminSearch query) {
|
|
|
- IPage<CourseHomeworkVo> courseHomeworkVoIPage = page.setRecords(baseMapper.selectAdminPage(page, query));
|
|
|
+ return page.setRecords(baseMapper.selectAdminPage(page, query));
|
|
|
+ }
|
|
|
|
|
|
- List<CourseHomeworkVo> records = courseHomeworkVoIPage.getRecords();
|
|
|
- List<Long> courseIdList = records
|
|
|
- .stream()
|
|
|
- .map(CourseHomeworkVo::getCourseId)
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (CollectionUtils.isEmpty(courseIdList)) {
|
|
|
- return courseHomeworkVoIPage;
|
|
|
- }
|
|
|
- // 查询提交时间
|
|
|
- List<CourseHomeworkVo> courseHomeworkVoList = baseMapper.selectSubmitTime(courseIdList);
|
|
|
- for (int i = 0; i < records.size(); i++) {
|
|
|
- records.get(i).setSubmitTime(courseHomeworkVoList.get(i).getSubmitTime());
|
|
|
+ @Override
|
|
|
+ public CourseScheduleHomeworkVo getCourseHomeworkDetailByCourseId(CourseScheduleHomeworkSearch query) {
|
|
|
+ // 查询课程作业信息
|
|
|
+ CourseScheduleHomeworkVo courseScheduleHomeworkVo = baseMapper
|
|
|
+ .selectCourseHomeworkByCourseId(query.getCourseId());
|
|
|
+ if (courseScheduleHomeworkVo == null) {
|
|
|
+ return courseScheduleHomeworkVo;
|
|
|
}
|
|
|
- return courseHomeworkVoIPage;
|
|
|
+
|
|
|
+ // 课程人员作业
|
|
|
+ IPage<StudentHomeworkVo> studentHomeworkList = baseMapper
|
|
|
+ .selectStudentHomeworkByCourseId(PageUtil.getPage(query),query.getCourseId());
|
|
|
+
|
|
|
+ courseScheduleHomeworkVo.setStudentHomeworkList(studentHomeworkList);
|
|
|
+ return courseScheduleHomeworkVo;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -313,8 +329,9 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
private void checkCourseSchedule(Long courseScheduleId) {
|
|
|
// 1. 检查课程类型
|
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(courseScheduleId);
|
|
|
- if (!CourseScheduleEnum.PRACTICE.getCode().equals(courseSchedule.getType())) {
|
|
|
- throw new BizException("非陪练课,不能布置课后作业");
|
|
|
+ if (!CourseScheduleEnum.PRACTICE.getCode().equals(courseSchedule.getType())
|
|
|
+ && !CourseScheduleEnum.PIANO_ROOM_CLASS.getCode().equals(courseSchedule.getType())) {
|
|
|
+ throw new BizException("不能布置课后作业");
|
|
|
}
|
|
|
// 2. 检查课程结束
|
|
|
if (!CourseScheduleEnum.COMPLETE.getCode().equals(courseSchedule.getStatus())) {
|
|
|
@@ -333,7 +350,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
CourseHomework courseHomework = new CourseHomework();
|
|
|
courseHomework.setId(saveDto.getCourseHomeworkId());
|
|
|
courseHomework.setCourseGroupId(courseSchedule.getCourseGroupId());
|
|
|
- courseHomework.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
|
|
|
+ courseHomework.setCourseGroupType(courseSchedule.getType());
|
|
|
courseHomework.setCourseScheduleId(saveDto.getCourseScheduleId());
|
|
|
courseHomework.setTitle(saveDto.getTitle());
|
|
|
courseHomework.setContent(saveDto.getContent());
|