浏览代码

课程评价推送

zouxuan 3 年之前
父节点
当前提交
293610c43d

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -13,7 +13,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_VERIFY_CODE_LOGIN("SMS_VERIFY_CODE_LOGIN", "验证码登录"),
     KAPTCHA_SESSION_KEY("KAPTCHA_SESSION_KEY", "登录图形验证码"),
     SMS_PAYMENT_MESSAGE("SMS_PAYMENT_MESSAGE", "缴费通知"),
-    SMS_STANDARD_QUALIFIED("SMS_STANDARD_QUALIFIED", "学习未达标"),
+    SMS_STANDARD_NO_QUALIFIED("SMS_STANDARD_NO_QUALIFIED", "学习未达标"),
+    SMS_STANDARD_QUALIFIED("SMS_STANDARD_QUALIFIED", "学习已达标"),
 //    SMS_PAYMENT_SUCCESS("SMS_PAYMENT_SUCCESS", "缴费成功"),
 //    SMS_RENEW_SUCCESS("SMS_RENEW_SUCCESS", "续费成功"),
 //    SMS_BALANCE_PAY("SMS_BALANCE_PAY", "余额充值"),

+ 20 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -19,6 +19,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
+import com.ym.mec.thirdparty.yqpay.DateUtils;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -85,23 +86,31 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(studentStandardDtos == null || studentStandardDtos.size() == 0){
 			return;
 		}
-		List<StudentStandardDto> collect = studentStandardDtos.stream().filter(e -> e.getQualifiedFlag() == 0).collect(Collectors.toList());
-		if(collect.size() > 0){
-			List<Integer> studentIds = collect.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+		List<StudentStandardDto> noQualified = studentStandardDtos.stream().filter(e -> e.getQualifiedFlag() == 0).collect(Collectors.toList());
+		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
+		CourseSchedule.CourseScheduleType type = courseSchedule.getType();
+		String courseDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+		if(noQualified.size() > 0){
+			List<Integer> studentIds = noQualified.stream().map(e -> e.getUserId()).collect(Collectors.toList());
 			studentAttendanceDao.updateQualified(courseScheduleId,studentIds);
-			CourseSchedule.CourseScheduleType type = courseScheduleDao.get(courseScheduleId).getType();
-			Map<Integer, String> maps = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(studentIds));
-			for (Integer studentId : studentIds) {
-				Map<Integer, String> receivers = new HashMap<>(1);
-				receivers.put(studentId,studentId.toString());
-				sendMessageSource.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.SMS_STANDARD_QUALIFIED,
-						receivers,null,"STUDENT",maps.get(studentId),type.getMsg());
-			}
+			this.sendMessage(studentIds,type,courseDate,MessageTypeEnum.SMS_STANDARD_NO_QUALIFIED);
+		}
+		List<StudentStandardDto> qualified = studentStandardDtos.stream().filter(e -> e.getQualifiedFlag() == 1).collect(Collectors.toList());
+		if(qualified.size() > 0){
+			List<Integer> studentIds = qualified.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+			this.sendMessage(studentIds,type,courseDate,MessageTypeEnum.SMS_STANDARD_QUALIFIED);
 		}
 		//标记当前课程为已评价
 		courseScheduleDao.updateEvaluate(courseScheduleId);
 	}
 
+	public void sendMessage(List<Integer> studentIds,CourseSchedule.CourseScheduleType type,String courseDate,MessageTypeEnum messageTypeEnum){
+		Map<Integer, String> receivers = new HashMap<>(studentIds.size());
+		studentIds.stream().map(e->receivers.put(e,e.toString()));
+		sendMessageSource.batchSendMessage(MessageSender.JIGUANG,messageTypeEnum,
+				receivers,null,"STUDENT",courseDate,type.getMsg());
+	}
+
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	@Override
 	public Map<String, Object> addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto) {