|
@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
|
|
|
import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
|
|
@@ -202,6 +203,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
}else if(teacherAttendance.getSignOutTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
|
|
|
//正常签退范围(结束后1小时内)
|
|
|
teacherAttendance.setSignOutTime(date);
|
|
|
+ teacherAttendance.setSignOutAttachments(teacherSignOutDto.getCourseHomeworkInfo().getAttachments());
|
|
|
ClassGroup classGroup = classGroupDao.get(courseSchedule.getClassGroupId());
|
|
|
teacherAttendance.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
|
|
|
if(DateUtil.minutesBetween(classEndDateTime,date) >= 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) >= 0){
|
|
@@ -219,28 +221,30 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
teacherAttendanceDao.insert(teacherAttendance);
|
|
|
}
|
|
|
|
|
|
- CourseHomework courseHomework = courseHomeworkDao.findByCourseSchedule(teacherAttendance.getCourseScheduleId());
|
|
|
- if(Objects.isNull(courseHomework)){
|
|
|
- //新增课堂作业
|
|
|
- courseHomework=teacherSignOutDto.getCourseHomeworkInfo();
|
|
|
- courseHomework.setCourseScheduleId(teacherAttendance.getCourseScheduleId());
|
|
|
- courseHomework.setMusicGroupId(currentCourseDetail.getMusicGroupId());
|
|
|
- courseHomework.setGroupType(teacherAttendance.getGroupType());
|
|
|
- courseHomework.setClassGroupId(currentCourseDetail.getClassId().intValue());
|
|
|
- courseHomework.setExpiryDate(DateUtil.addDays(date,7));
|
|
|
- courseHomework.setExpectNum(courseScheduleDao.countCourseStudentNum(teacherAttendance.getCourseScheduleId()));
|
|
|
- courseHomeworkService.insert(courseHomework);
|
|
|
- List<StudentCourseHomework> studentCourseHomeworks = studentCourseHomeworkDao
|
|
|
- .constructInitialStudentHomeworkRecordsWithPayment(teacherAttendance.getCourseScheduleId(),
|
|
|
- courseHomework.getId());
|
|
|
- if(CollectionUtils.isEmpty(studentCourseHomeworks)){
|
|
|
- throw new BizException("此课程没有学生");
|
|
|
+ if(StringUtils.isNotBlank(teacherSignOutDto.getCourseHomeworkInfo().getContent())){
|
|
|
+ CourseHomework courseHomework = courseHomeworkDao.findByCourseSchedule(teacherAttendance.getCourseScheduleId());
|
|
|
+ if(Objects.isNull(courseHomework)){
|
|
|
+ //新增课堂作业
|
|
|
+ courseHomework=teacherSignOutDto.getCourseHomeworkInfo();
|
|
|
+ courseHomework.setCourseScheduleId(teacherAttendance.getCourseScheduleId());
|
|
|
+ courseHomework.setMusicGroupId(currentCourseDetail.getMusicGroupId());
|
|
|
+ courseHomework.setGroupType(teacherAttendance.getGroupType());
|
|
|
+ courseHomework.setClassGroupId(currentCourseDetail.getClassId().intValue());
|
|
|
+ courseHomework.setExpiryDate(DateUtil.addDays(date,7));
|
|
|
+ courseHomework.setExpectNum(courseScheduleDao.countCourseStudentNum(teacherAttendance.getCourseScheduleId()));
|
|
|
+ courseHomeworkService.insert(courseHomework);
|
|
|
+ List<StudentCourseHomework> studentCourseHomeworks = studentCourseHomeworkDao
|
|
|
+ .constructInitialStudentHomeworkRecordsWithPayment(teacherAttendance.getCourseScheduleId(),
|
|
|
+ courseHomework.getId());
|
|
|
+ if(CollectionUtils.isEmpty(studentCourseHomeworks)){
|
|
|
+ throw new BizException("此课程没有学生");
|
|
|
+ }
|
|
|
+ studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
|
|
|
+ }else{
|
|
|
+ courseHomework.setContent(teacherSignOutDto.getCourseHomeworkInfo().getContent());
|
|
|
+ courseHomework.setAttachments(teacherSignOutDto.getCourseHomeworkInfo().getAttachments());
|
|
|
+ courseHomeworkService.update(courseHomework);
|
|
|
}
|
|
|
- studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
|
|
|
- }else{
|
|
|
- courseHomework.setContent(teacherSignOutDto.getCourseHomeworkInfo().getContent());
|
|
|
- courseHomework.setAttachments(teacherSignOutDto.getCourseHomeworkInfo().getAttachments());
|
|
|
- courseHomeworkService.update(courseHomework);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
@@ -433,10 +437,22 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
|
|
|
@Override
|
|
|
public boolean pushNoSignOutMessage() {
|
|
|
-
|
|
|
Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));;
|
|
|
|
|
|
List<Mapper> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
|
|
|
+ if(CollectionUtils.isEmpty(list)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ List<Long> courseScheduleIds = list.stream().map(m -> m.getCourseScheduleId().longValue()).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<CourseSchedule> courseSchedules = courseScheduleDao.findByCourseScheduleIds(courseScheduleIds);
|
|
|
+ Map<Long, CourseSchedule> idCourseMap = courseSchedules.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c, (c1, c2) -> c1));
|
|
|
+
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalarys = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
|
|
|
+ Map<Long, List<CourseScheduleTeacherSalary>> courseTeacherSalaryMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(courseScheduleTeacherSalarys)){
|
|
|
+ courseTeacherSalaryMap = courseScheduleTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
|
|
|
+ }
|
|
|
|
|
|
for (Mapper mapper : list) {
|
|
|
Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
@@ -445,9 +461,22 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
|
|
|
String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
|
|
|
|
|
|
+ CourseSchedule courseSchedule = idCourseMap.get(mapper.getCourseScheduleId().longValue());
|
|
|
+
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseTeacherSalaryMap.get(mapper.getCourseScheduleId().longValue());
|
|
|
+ TeachTypeEnum teachType = TeachTypeEnum.BISHOP;
|
|
|
+ if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
|
|
|
+ for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
|
|
|
+ if(mapper.getKey().equals(courseScheduleTeacherSalary.getUserId())){
|
|
|
+ teachType = courseScheduleTeacherSalary.getTeacherRole();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!redisCache.exists(key)) {
|
|
|
sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,
|
|
|
- "5?courseScheduleId=" + mapper.getCourseScheduleId(), "TEACHER", mapper.getValue());
|
|
|
+ "5?courseScheduleId=" + mapper.getCourseScheduleId() + "&teacherRole=" + teachType.getCode(), "TEACHER",
|
|
|
+ mapper.getValue() + (Objects.isNull(courseSchedule)?"":("(" + DateUtil.format(courseSchedule.getStartClassTime(), "yyyy年MM月dd日 HH时mm分") + ")")));
|
|
|
redisCache.put(key, 1, (int) DateUtil.getTomorrowZeroSeconds());
|
|
|
}
|
|
|
}
|