zouxuan 5 년 전
부모
커밋
9c3eb48a84

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/Mapper.java

@@ -6,6 +6,16 @@ public class Mapper {
 	
 	private Object value;
 
+	private Integer courseScheduleId;
+
+	public Integer getCourseScheduleId() {
+		return courseScheduleId;
+	}
+
+	public void setCourseScheduleId(Integer courseScheduleId) {
+		this.courseScheduleId = courseScheduleId;
+	}
+
 	public Object getKey() {
 		return key;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java

@@ -25,6 +25,8 @@ public class StudentCourseHomework {
 	
 	/**  */
 	private Long courseHomeworkId;
+
+	private Long courseScheduleId;
 	
 	private CourseHomework courseHomework = new CourseHomework();
 	
@@ -60,6 +62,14 @@ public class StudentCourseHomework {
 	@ApiModelProperty(value = "是否已查看")
 	private YesOrNoEnum isView;
 
+	public Long getCourseScheduleId() {
+		return courseScheduleId;
+	}
+
+	public void setCourseScheduleId(Long courseScheduleId) {
+		this.courseScheduleId = courseScheduleId;
+	}
+
 	public String getUserName() {
 		return userName;
 	}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
@@ -113,7 +114,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param studentPaymentOrder
 	 * @return
 	 */
-	boolean renewForCallback(StudentPaymentOrder studentPaymentOrder);
+	boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) throws IOException;
 
 	/**
 	 * 课酬调整

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

@@ -80,7 +80,7 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 			Integer userId = (Integer) mapper.getKey();
 			receivers.put(userId, userId + "");
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_JOB_WAIT_REPLY, receivers, null, 0, "", mapper.getValue());
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_JOB_WAIT_REPLY, receivers, null, 0, "6?", mapper.getValue());
 		}
 	}
 }

+ 13 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -654,10 +654,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			teacherIds = new HashSet<>();
 		}
 		teacherIds.addAll(oldCourseScheduleList.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()));
-		HashMap<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(teacherIds, ",")))), HashMap.class);
+		Map<Integer,String> map = new HashMap<>(teacherIds.size());
+		teacherIds.forEach(e->{
+			map.put(e,e.toString());
+		});
+//		HashMap<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(teacherIds, ",")))), HashMap.class);
 		if(map != null && map.size() > 0){
-			sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
-					map,null,0,"","");
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
+					map,null,0,"7");
 		}
 //		Set<Integer> roleIds = new HashSet<>(1);
 //		roleIds.add(SysUserRole.SECTION_MANAGER);
@@ -996,7 +1000,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			receivers.put(userId, userId + "");
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_HAVE_COURSE_MESSAGE, receivers, null, 0, "", size);
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_HAVE_COURSE_MESSAGE, receivers, null, 0, "2", size);
 		}
 	}
 
@@ -1008,7 +1012,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				Map<Integer, String> receivers = new HashMap<Integer, String>();
 				receivers.put((Integer) mapper.getKey(), mapper.getKey() + "");
 				
-				sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_ATTEND_COURSE_MESSAGE, receivers, null, 0, "", mapper.getValue());
+				sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_ATTEND_COURSE_MESSAGE, receivers, null, 0, "2", mapper.getValue());
 			}
 		}
 	}
@@ -1023,7 +1027,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			receivers.put(userId, userId + "");
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_HAVE_COURSE_MESSAGE, receivers, null, 0, "", teacherName);
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_HAVE_COURSE_MESSAGE,
+					receivers, null, 0, "2", teacherName);
 		}
 	}
 
@@ -1037,7 +1042,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			receivers.put(userId, userId + "");
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_ATTEND_CLASS_MESSAGE, receivers, null, 0, "", scheduleName);
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_ATTEND_CLASS_MESSAGE,
+                    receivers, null, 0, "2", scheduleName);
 		}
 	}
 

+ 37 - 29
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -167,6 +168,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         // 保存乐团基本信息
         musicGroupDao.insert(musicGroup);
+
+        // 记录创建日志
+        String event = musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT?"新建乐团,提交审核":"保存乐团草稿";
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         if(musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT){
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
@@ -184,7 +189,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         //乐团科目学生
-        if (subjectRegisters != null) {
+        if (subjectRegisters != null && subjectRegisters.size() > 0) {
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             subjectRegisters.forEach(e -> {
                     //原来乐团的注册学生
@@ -206,6 +211,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
             });
             studentRegistrationDao.batchInsert(studentRegistrationList);
+            musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
+            musicGroupDao.update(musicGroup);
+            musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "跨团调整", sysUser.getId(),""));
         }
 
         // 保存乐团声部规划
@@ -216,9 +224,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroupSubjectGoodsGroups != null) {
             musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups,musicGroupId);
         }
-        // 记录创建日志
-        String event = musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT?"新建乐团,提交审核":"保存乐团草稿";
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         return musicGroupId;
     }
 
@@ -271,7 +276,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new Exception("用户信息获取失败");
         }
         MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.PREPARE);
-//        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         //乐器采购清单是否确认
         Map<String,Object> param = new HashMap<>();
         param.put("musicGroupId",musicGroupId);
@@ -287,19 +291,20 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
         //3.0发送该消息
         if(new Integer(3).equals(musicGroup.getChargeTypeId())){
-            //给老师发送乐团成立通知
-            Map<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(musicGroupDao.queryTeacherMap(musicGroupId))),HashMap.class);
-            sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN,
-                    map,null,0,"1",musicGroup.getName());
+            Map<Integer,String> studentMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findIdMapByMusicGroupId(musicGroupId,2))),HashMap.class);
+            if(studentMap != null && studentMap.size() > 0){
+                String url = "http://mstudev.dayaedu.com/#/smallRegister?musicGroupId=" + musicGroupId;
+                String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
+                sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
+                        studentMap,null,0,"5?" + url,musicGroup.getName(),HttpUtil.getSortUrl(url),serverPhone);
+            }
         }
-        Map<Integer,String> studentMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findIdMapByMusicGroupId(musicGroupId,2))),HashMap.class);
-        if(studentMap != null && studentMap.size() > 0){
-            String url = "http://mstudev.dayaedu.com/#/smallRegister?musicGroupId=" + musicGroupId;
-            String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-            sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
-                    studentMap,null,0,"5?" + url,musicGroup.getName(),HttpUtil.getSortUrl(url),serverPhone);
+        //给老师发送乐团成立通知
+        Map<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(musicGroupDao.queryTeacherIdMap(musicGroupId))),HashMap.class);
+        if(map != null && map.size() > 0){
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN,
+                    map,null,0,"1",musicGroup.getName());
         }
-
         Set<Integer> roleIds = new HashSet<>(5);
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
@@ -443,9 +448,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(registrations != null && registrations.size() > 0){
             Map<Integer,String> map = new HashMap<>(registrations.size());
             registrations.forEach(e->{
-                map.put(e.getUserId(),e.getParentsPhone());
+                map.put(e.getUserId(),e.getUserId().toString());
             });
-            sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE,
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE,
                     map,null,0,"1",musicGroup.getName(),sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
         }
         //记录建团日志
@@ -719,7 +724,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) {
+    public boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) throws IOException {
 
         studentPaymentOrderDao.update(studentPaymentOrder);
 
@@ -733,9 +738,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("系统数据异常,找不到学员预缴费信息");
         }
         Date date = new Date();
-        Map<Integer, String> receivers = new HashMap<>(1);
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-        receivers.put(userId, studentRegistration.getParentsPhone());
+        Map<Integer, String> yimei = new HashMap<>(1);
+        Map<Integer, String> push = new HashMap<>(1);
+        push.put(userId, userId.toString());
+        yimei.put(userId, studentRegistration.getParentsPhone());
         if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
             musicGroupStudentFee.setUpdateTime(date);
             musicGroupStudentFee.setLatestPaidTime(date);
@@ -774,19 +781,20 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysUserCashAccountDetailService.insert(paymentDetail);
             
             // 发送续费结果通知
-
-            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "1",
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, push, null, 0, "1",
                     studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
-            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "1",
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, yimei, null, 0, "1",
                     studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
             return true;
         }
         if(studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAilED){
-            String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
-            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "1",
-                    studentApplyUrl);
-            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "1",
-                    studentApplyUrl);
+//            String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
+            String memo = "http://mstudev.dayaedu.com/#/renew?musicGroupId=" + musicGroupId;
+            //4?http://mstudev.dayaedu.com/#/renew?musicGroupId=" +musicGroupId
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, push, null, 0, "4?" + memo,
+                    HttpUtil.getSortUrl(memo));
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, yimei, null, 0, "4?" + memo,
+                    HttpUtil.getSortUrl(memo));
             return false;
         }
         return false;

+ 10 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.*;
 
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,6 +30,9 @@ public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, Music
 	private SysConfigDao sysConfigDao;
 
 	@Autowired
+	private MusicGroupDao musicGroupDao;
+
+	@Autowired
 	private SysMessageService sysMessageService;
 
 	@Override
@@ -56,14 +61,14 @@ public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, Music
 
 		if (updateList.size() > 0) {
 			musicGroupStudentFeeDao.batchUpdate(updateList);
-
-			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			MusicGroup musicGroup = musicGroupDao.get(updateList.get(0).getMusicGroupId());
+			Map<Integer, String> push = new HashMap<Integer, String>();
 			for (MusicGroupStudentFee sf : updateList) {
-				receivers.put(sf.getUserId(), sf.getUserId() + "");
+				push.put(sf.getUserId(), sf.getUserId() + "");
 			}
-
+			String memo = "4?http://mstudev.dayaedu.com/#/renew?musicGroupId=" + musicGroup.getId();
 			// 发送续费通知
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, receivers, null, 0, "");
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,musicGroup.getName());
 		}
 
 		// int i = DateUtil.daysBetween(new Date(), musicGroupStudentFee.getNextPaymentDate());

+ 14 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -113,6 +113,16 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 						YesOrNoEnum.NO.getCode());
 			}
 		});
+		//获取正常签到的学生信息
+		List<StudentAttendance> normal = studentAttendances.stream().filter(studentAttendance -> studentAttendance.getStatus() == StudentAttendanceStatusEnum.NORMAL).collect(Collectors.toList());
+		if(normal != null && normal.size() > 0){
+			Map<Integer,String> receivers = new HashMap<>();
+			normal.forEach(e->{
+				receivers.put(e.getUserId(),e.getUserId().toString());
+			});
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE,
+					receivers,null,0,"2",DateUtil.format(new Date(),DateUtil.DATE_FORMAT_MIN));
+		}
 		Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
 		Integer studentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();
 		Integer leaveStudentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE).size();
@@ -337,10 +347,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 //				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
 				studentAttendanceDao.insert(studentAttendance);
 				//点名完成推送
-				Map<Integer, String> receivers = new HashMap<Integer, String>(1);
-				receivers.put(userId, userId.toString());
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE, receivers, null, 0, "2",
-						DateUtil.format(date,DateUtil.DATE_FORMAT_MIN));
+//				Map<Integer, String> receivers = new HashMap<Integer, String>(1);
+//				receivers.put(userId, userId.toString());
+//				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE, receivers, null, 0, "2",
+//						DateUtil.format(date,DateUtil.DATE_FORMAT_MIN));
 				//修改课程状态(如果是学生签到,并且课程未开始)
 				/*if(StudentAttendanceStatusEnum.NORMAL == statusEnum && courseSchedule.getStatus() == CourseStatusEnum.NOT_START){
 					courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -108,12 +108,12 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 	@Override
 	public void homeworkRemind() {
 		List<StudentCourseHomework> list = studentCourseHomeworkDao.queryNotDoneHomeworkList();
-
+		StringBuffer sb;
 		for (StudentCourseHomework sch : list) {
+			sb = new StringBuffer("courseScheduleID=").append(sch.getCourseScheduleId()).append("&studentCourseHomeworkId=").append(sch.getId());
 			Map<Integer, String> receivers = new HashMap<Integer, String>(1);
 			receivers.put(sch.getUserId(), sch.getUserId() + "");
-
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_JOB_MESSAGE, receivers, null, 0, "", sch.getCourseHomework()
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_JOB_MESSAGE, receivers, null, 0, "3?" + sb, sch.getCourseHomework()
 					.getMusicGroup().getName(), sch.getCourseHomework().getClassGroup().getName());
 		}
 	}

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

@@ -236,7 +236,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				//获取所有当前课程的学生列表
 				Map<Integer,String> userMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(courseScheduleDao.findStudentMap(courseScheduleId))),HashMap.class);
 				if(userMap != null && userMap.size() > 0){
-					sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.STUDENT_PUSH_ONLINE_COURSE_ACTION,userMap,
+					sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.STUDENT_PUSH_ONLINE_COURSE_ACTION,userMap,
 							null,0,"6?sealClassId=" + courseScheduleId,courseSchedule.getName());
 				}
 			}
@@ -275,7 +275,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			Integer userId = (Integer) mapper.getKey();
 			receivers.put(userId, userId + "");
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,"", mapper.getValue());
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,"5?courseScheduleId=" + mapper.getCourseScheduleId(), mapper.getValue());
 		}
 		return true;
 	}

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -127,9 +127,9 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		//教师请假结果通知
 		Map<Integer,String> map = new HashMap<>(1);
 		Teacher teacher = teacherDao.get(teacherLeaveRecord.getUserId());
-		map.put(teacher.getId(),teacher.getPhone());
-		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.TEACHER_PUSH_LEAVE_RESULT,
-				map,null,0,"",status.getCode());
+		map.put(teacher.getId(),teacher.getId() + "");
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_LEAVE_RESULT,
+				map,null,0,"7",status.getCode());
 		return true;
 	}
 

+ 11 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -269,10 +269,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 			//发送推送短信
-			Map<Integer,String> map = new HashMap<>(1);
-			map.put(sysUser.getId(),sysUser.getPhone());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
-					map,null,0,"",vipGroupApplyBaseInfoDto.getName());
+//			Map<Integer,String> map = new HashMap<>(1);
+//			map.put(sysUser.getId(),sysUser.getPhone());
+//			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
+//					map,null,0,"",vipGroupApplyBaseInfoDto.getName());
 		}
 	}
 
@@ -358,9 +358,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Teacher teacher = teacherDao.get(vipGroup.getUserId());
 		if(teacher != null){
 			Map<Integer,String> map = new HashMap<>(1);
+			map.put(vipGroup.getUserId(),vipGroup.getUserId().toString());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_APPLY_RESULT,
+					map,null,0,"7",vipGroup.getName(),vipGroup.getAuditStatus().getCode());
 			map.put(vipGroup.getUserId(),teacher.getPhone());
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_APPLY_RESULT,
-					map,null,0,"",vipGroup.getName(),vipGroup.getAuditStatus().getCode());
+					map,null,0,"7",vipGroup.getName(),vipGroup.getAuditStatus().getCode());
 		}
 	}
 
@@ -1134,9 +1137,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//vip课停止通知
 		Teacher teacher = teacherDao.get(vipGroup.getUserId());
 		Map<Integer,String> map = new HashMap<>(1);
-		map.put(vipGroup.getUserId(),teacher.getPhone());
-		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_VIP_COURSE_STOP,
-				map,null,0,"",vipGroup.getName());
+		map.put(vipGroup.getUserId(),vipGroup.getUserId().toString());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.TEACHER_PUSH_VIP_COURSE_STOP,
+				map,null,0,"1",vipGroup.getName());
 	}
 
 	@Override

+ 198 - 187
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -5,186 +5,197 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao">
-	
-	<resultMap type="com.ym.mec.biz.dal.entity.StudentCourseHomework" id="StudentCourseHomework">
-		<result column="id_" property="id" />
-		<result column="user_id_" property="userId"/>
-		<result column="username_" property="userName"/>
-		<result column="avatar_" property="avatar"/>
-		<result column="course_homework_id_" property="courseHomeworkId" />
-		<result column="attachments_" property="attachments" />
-		<result column="score_" property="score" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="remark_" property="remark" />
-		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="is_view_" property="isView" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-	</resultMap>
 
-	<resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto" id="CourseHomeworkStudentDetailDto">
-		<result column="musicGroupName" property="musicGroupName" />
-		<result column="classGroupName" property="classGroupName"/>
-		<result column="courseHomeworkId" property="courseHomeworkId" />
-		<result column="content_" property="content" />
-		<result column="expiry_date_" property="expiryDate" />
-		<result column="completed_num_" property="completedNum" />
-		<result column="expect_num_" property="expectNum" />
-		<result column="attachments_" property="attachments" />
-		<result column="score_" property="score" />
-		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-	</resultMap>
+    <resultMap type="com.ym.mec.biz.dal.entity.StudentCourseHomework" id="StudentCourseHomework">
+        <result column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="username_" property="userName"/>
+        <result column="avatar_" property="avatar"/>
+        <result column="course_homework_id_" property="courseHomeworkId"/>
+        <result column="course_schedule_id_" property="courseScheduleId"/>
+        <result column="attachments_" property="attachments"/>
+        <result column="score_" property="score"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="remark_" property="remark"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_view_" property="isView" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+    </resultMap>
 
-	<resultMap type="com.ym.mec.biz.dal.entity.StudentCourseHomework" id="StudentCourseHomeworkFull" extends="StudentCourseHomework">
-		<result column="musicGroupName" property="courseHomework.musicGroup.name" />
-		<result column="classGroupName" property="courseHomework.classGroup.name"/>
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="StudentCourseHomework" >
+    <resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto" id="CourseHomeworkStudentDetailDto">
+        <result column="musicGroupName" property="musicGroupName"/>
+        <result column="classGroupName" property="classGroupName"/>
+        <result column="courseHomeworkId" property="courseHomeworkId"/>
+        <result column="content_" property="content"/>
+        <result column="expiry_date_" property="expiryDate"/>
+        <result column="completed_num_" property="completedNum"/>
+        <result column="expect_num_" property="expectNum"/>
+        <result column="attachments_" property="attachments"/>
+        <result column="score_" property="score"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+    </resultMap>
+
+    <resultMap type="com.ym.mec.biz.dal.entity.StudentCourseHomework" id="StudentCourseHomeworkFull"
+               extends="StudentCourseHomework">
+        <result column="musicGroupName" property="courseHomework.musicGroup.name"/>
+        <result column="classGroupName" property="courseHomework.classGroup.name"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="StudentCourseHomework">
 		SELECT * FROM student_course_homework WHERE id_ = #{id} 
 	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="StudentCourseHomework">
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="StudentCourseHomework">
 		SELECT * FROM student_course_homework ORDER BY id_
 	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO student_course_homework (id_,user_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_) VALUES(#{id},#{userId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
-	</insert>
 
-	<insert id="batchInsertStudentCourseHomeworkRecord" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id_">
-		INSERT INTO student_course_homework (user_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_)
-		VALUE
-		<foreach collection="list" item="homework" separator=",">
-			(#{homework.userId},#{homework.courseHomeworkId},#{homework.attachments},#{homework.score},now(),now(),#{homework.remark},#{homework.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
-		</foreach>
-	</insert>
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO student_course_homework
+        (id_,user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_)
+        VALUES(#{id},#{userId},#{courseScheduleId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+    </insert>
+
+    <insert id="batchInsertStudentCourseHomeworkRecord" parameterType="java.util.List" useGeneratedKeys="true"
+            keyColumn="id_">
+        INSERT INTO student_course_homework
+        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_)
+        VALUE
+        <foreach collection="list" item="homework" separator=",">
+            (#{homework.userId},#{homework.courseScheduleId},#{homework.courseHomeworkId},#{homework.attachments},#{homework.score},now(),now(),#{homework.remark},#{homework.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        </foreach>
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework">
+        UPDATE student_course_homework
+        <set>
+            <if test="id != null">
+                id_ = #{id},
+            </if>
+            <if test="courseHomeworkId != null">
+                course_homework_id_ = #{courseHomeworkId},
+            </if>
+            <if test="courseScheduleId != null">
+                course_schedule_id_ = #{courseScheduleId},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = NOW(),
+            </if>
+            <if test="score != null">
+                score_ = #{score},
+            </if>
+            <if test="attachments != null">
+                attachments_ = #{attachments},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="remark != null">
+                remark_ = #{remark},
+            </if>
+            <if test="status != null">
+                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="isReplied != null">
+                is_replied_ = #{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="isView != null">
+                is_view_ = #{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
 
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework">
-		UPDATE student_course_homework
-		<set>
-			<if test="id != null">
-			id_ = #{id},
-			</if>
-			<if test="courseHomeworkId != null">
-			course_homework_id_ = #{courseHomeworkId},
-			</if>
-			<if test="updateTime != null">
-			update_time_ = NOW(),
-			</if>
-			<if test="score != null">
-			score_ = #{score},
-			</if>
-			<if test="attachments != null">
-			attachments_ = #{attachments},
-			</if>
-			<if test="createTime != null">
-			create_time_ = #{createTime},
-			</if>
-			<if test="remark != null">
-				remark_ = #{remark},
-			</if>
-			<if test="status != null">
-				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="isReplied != null">
-				is_replied_ = #{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="isView != null">
-				is_view_ = #{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-		</set> WHERE id_ = #{id}
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
 		DELETE FROM student_course_homework WHERE id_ = #{id} 
 	</delete>
 
-	<resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkListDto" id="CourseHomeworkDto">
-		<result column="id_" property="id" />
-		<result column="course_schedule_id_" property="courseScheduleId" />
-		<result column="content_" property="content" />
-		<result column="create_time_" property="createTime" />
-		<result column="start_class_time_" property="startClassTime" />
-		<result column="expiry_date_" property="expiryDate"/>
-		<result column="music_group_id_" property="musicGroupId" />
-		<result column="music_group_name_" property="musicGroupName" />
-		<result column="class_group_id_" property="classGroupId" />
-		<result column="class_group_name_" property="classGroupName" />
-		<result column="completed_num_" property="completedNum" />
-		<result column="expect_num_" property="expectNum" />
-		<result column="next_class_date_" property="expiryDate" />
-		<result column="remark_" property="remark" />
-		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-	</resultMap>
+    <resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkListDto" id="CourseHomeworkDto">
+        <result column="id_" property="id"/>
+        <result column="course_schedule_id_" property="courseScheduleId"/>
+        <result column="content_" property="content"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="start_class_time_" property="startClassTime"/>
+        <result column="expiry_date_" property="expiryDate"/>
+        <result column="music_group_id_" property="musicGroupId"/>
+        <result column="music_group_name_" property="musicGroupName"/>
+        <result column="class_group_id_" property="classGroupId"/>
+        <result column="class_group_name_" property="classGroupName"/>
+        <result column="completed_num_" property="completedNum"/>
+        <result column="expect_num_" property="expectNum"/>
+        <result column="next_class_date_" property="expiryDate"/>
+        <result column="remark_" property="remark"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+    </resultMap>
 
-	<sql id="queryCondition">
-		<where>
-			<if test="createTime != null">
-				DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
-			</if>
-			<if test="musicGroupId != null">
-				and cg.music_group_id_ = #{musicGroupId}
-			</if>
-			<if test="classGroupId != null">
-				and ch.class_group_id_ = #{classGroupId}
-			</if>
-			<if test="userId != null">
-				and sch.user_id_ = #{userId}
-			</if>
-		</where>
-	</sql>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="CourseHomeworkDto" parameterType="map">
-		SELECT
-		sch.id_,
-		ch.*,
-		mg.name_ music_group_name_,
-		cg.name_ class_group_name_,
-		temp.next_class_date_,
-		sch.remark_,
-		sch.status_,
-		sch.is_replied_
-		FROM student_course_homework sch
-		LEFT JOIN course_homework ch ON sch.course_homework_id_=ch.id_
-		LEFT JOIN course_schedule cs ON ch.course_schedule_id_=cs.id_
-		LEFT JOIN music_group mg ON ch.music_group_id_=mg.id_
-		LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
-		LEFT JOIN (SELECT
-		class_group_id_,
-		MIN(CONCAT( class_date_, ' ', start_class_time_ )) next_class_date_
-		FROM
-		course_schedule
-		WHERE CONCAT( class_date_, ' ', start_class_time_ )>now()
-		GROUP BY class_group_id_) temp ON ch.class_group_id_=temp.class_group_id_
-		<include refid="queryCondition"/>
-		ORDER BY ch.id_
-		<include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM student_course_homework sch
-		LEFT JOIN course_homework ch ON sch.course_homework_id_=ch.id_
-		LEFT JOIN course_schedule cs ON ch.course_schedule_id_=cs.id_
-		LEFT JOIN music_group mg ON ch.music_group_id_=mg.id_
-		LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
-		<include refid="queryCondition"/>
-	</select>
-	<select id="findCourseHomeworkStudentDetail" resultMap="CourseHomeworkStudentDetailDto">
+    <sql id="queryCondition">
+        <where>
+            <if test="createTime != null">
+                DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
+            </if>
+            <if test="musicGroupId != null">
+                and cg.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="classGroupId != null">
+                and ch.class_group_id_ = #{classGroupId}
+            </if>
+            <if test="userId != null">
+                and sch.user_id_ = #{userId}
+            </if>
+        </where>
+    </sql>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="CourseHomeworkDto" parameterType="map">
+        SELECT
+        sch.id_,
+        ch.*,
+        mg.name_ music_group_name_,
+        cg.name_ class_group_name_,
+        temp.next_class_date_,
+        sch.remark_,
+        sch.status_,
+        sch.is_replied_
+        FROM student_course_homework sch
+        LEFT JOIN course_homework ch ON sch.course_homework_id_=ch.id_
+        LEFT JOIN course_schedule cs ON ch.course_schedule_id_=cs.id_
+        LEFT JOIN music_group mg ON ch.music_group_id_=mg.id_
+        LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
+        LEFT JOIN (SELECT
+        class_group_id_,
+        MIN(CONCAT( class_date_, ' ', start_class_time_ )) next_class_date_
+        FROM
+        course_schedule
+        WHERE CONCAT( class_date_, ' ', start_class_time_ )>now()
+        GROUP BY class_group_id_) temp ON ch.class_group_id_=temp.class_group_id_
+        <include refid="queryCondition"/>
+        ORDER BY ch.id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM student_course_homework sch
+        LEFT JOIN course_homework ch ON sch.course_homework_id_=ch.id_
+        LEFT JOIN course_schedule cs ON ch.course_schedule_id_=cs.id_
+        LEFT JOIN music_group mg ON ch.music_group_id_=mg.id_
+        LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
+        <include refid="queryCondition"/>
+    </select>
+    <select id="findCourseHomeworkStudentDetail" resultMap="CourseHomeworkStudentDetailDto">
 		SELECT
 			mg.name_ musicGroupName,
 			cg.name_ classGroupName,
@@ -204,7 +215,7 @@
 		LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
 		WHERE ch.course_schedule_id_=#{courseScheduleID} AND sch.user_id_=#{userID}
 	</select>
-	<select id="constructInitialStudentHomeworkRecords" resultMap="StudentCourseHomework">
+    <select id="constructInitialStudentHomeworkRecords" resultMap="StudentCourseHomework">
 		SELECT
 			#{courseHomeworkID} course_homework_id_,
 			sa.user_id_,
@@ -216,26 +227,26 @@
 			sa.course_schedule_id_ = #{courseScheduleID}
 			AND status_ = "NORMAL"
 	</select>
-	<select id="findByCourseSchedule" resultMap="StudentCourseHomework">
-		SELECT
-			sch.*,
-			su.username_,
-			su.avatar_
-		FROM
-			student_course_homework sch
-			LEFT JOIN sys_user su ON sch.user_id_=su.id_
-			<where>
-				sch.course_homework_id_=#{courseScheduleId}
-				<if test="userName!=null and userName!=''">
-					AND su.username_ LIKE CONCAT('%',#{userName},'%')
-				</if>
-			</where>
-	</select>
-	<select id="findByStudentAndCourseHomewok" resultMap="StudentCourseHomework">
+    <select id="findByCourseSchedule" resultMap="StudentCourseHomework">
+        SELECT
+        sch.*,
+        su.username_,
+        su.avatar_
+        FROM
+        student_course_homework sch
+        LEFT JOIN sys_user su ON sch.user_id_=su.id_
+        <where>
+            sch.course_homework_id_=#{courseScheduleId}
+            <if test="userName!=null and userName!=''">
+                AND su.username_ LIKE CONCAT('%',#{userName},'%')
+            </if>
+        </where>
+    </select>
+    <select id="findByStudentAndCourseHomewok" resultMap="StudentCourseHomework">
 		SELECT * FROM student_course_homework WHERE user_id_=#{userId} AND course_homework_id_=#{courseHomeworkId}
 	</select>
-	
-	<select id="queryNotDoneHomeworkList" resultMap="StudentCourseHomeworkFull">
+
+    <select id="queryNotDoneHomeworkList" resultMap="StudentCourseHomeworkFull">
 		SELECT sch.*,cg.name_ classGroupName,mg.name_ musicGroupName FROM student_course_homework sch left join course_homework ch on sch.course_homework_id_ = ch.id_ left join music_group mg on ch.music_group_id_ = mg.id_ left join class_group cg on ch.class_group_id_ = cg.id_ where sch.status_ = 0
 	</select>
 </mapper>

+ 6 - 1
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -23,6 +23,7 @@
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
     	<result column="key_" property="key"/>
     	<result column="value_" property="value"/>
+    	<result column="course_schedule_id_" property="courseScheduleId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -253,7 +254,11 @@
     </select>
 
     <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
-        SELECT ta.teacher_id_ key_,u.real_name_ value_ FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ left join sys_user u on ta.teacher_id_ = u.id_ WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now()) and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
+        SELECT ta.teacher_id_ key_,u.real_name_ value_,cs.id_ course_schedule_id_
+        FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
+        left join sys_user u on ta.teacher_id_ = u.id_
+        WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now())
+        and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
     </select>
     <select id="findTeacherIdByCourseSchedule" resultMap="TeacherAttendance">
         SELECT