Explorar el Código

feat:签退提醒增加教师类型

Joburgess hace 4 años
padre
commit
3507573a33

+ 21 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -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.*;
@@ -432,6 +433,15 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		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<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>();
@@ -440,9 +450,19 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 			String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
 
+			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());
 				redisCache.put(key, 1, (int) DateUtil.getTomorrowZeroSeconds());
 			}
 		}