Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
Joburgess 5 years ago
parent
commit
7b057c2e88
21 changed files with 368 additions and 275 deletions
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/Mapper.java
  2. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java
  3. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  4. 14 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java
  7. 16 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  9. 37 29
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  10. 10 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java
  11. 18 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  12. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  13. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  14. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  15. 6 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  16. 14 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  17. 182 171
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  18. 2 2
      mec-biz/src/main/resources/config/mybatis/StudentWithdrawMapper.xml
  19. 12 4
      mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml
  20. 6 1
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  21. 18 0
      mec-util/src/main/java/com/ym/mec/util/collection/MapUtil.java

+ 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;
 
 	/**
 	 * 课酬调整

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

@@ -380,13 +380,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = vipGroupDao.getTeacherVipClass(params);
-            Set<Integer> activityIds = dataList.stream().map(e -> e.getActivityId()).collect(Collectors.toSet());
-            List<Map<Integer, String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds, ","));
-            Map<Integer, String> nameMap = MapUtil.convertMybatisMap(names);
+//            Set<Integer> activityIds = dataList.stream().map(e -> e.getActivityId()).collect(Collectors.toSet());
+//            List<Map<Integer, String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds, ","));
+//            Map<Integer, String> nameMap = MapUtil.convertMybatisMap(names);
             //计算月度平均消耗值(已上课时 / 消耗月份)
             List<Long> vipGroupIds = dataList.stream().map(vipGroup -> vipGroup.getVipClassId()).collect(Collectors.toList());
             List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
-            Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
+            Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
             dataList.forEach(vipGroup -> {
                 Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getVipClassId());
                 if (Objects.isNull(overCourses)) {
@@ -423,7 +423,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
         //获取当前乐团的合奏班id列表map
-        HashMap<Integer, Integer> idMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupRelationDao.queryClassRelationIdMap(musicGroupId))), HashMap.class);
+        HashMap<Integer, Integer> idMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupRelationDao.queryClassRelationIdMap(musicGroupId))), HashMap.class);
         HashMap<Integer, String> nameMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupRelationDao.queryClassRelationNameMap(musicGroupId))), HashMap.class);
 
         for (ClassGroupTeachersDto classGroupAndTeachers : classGroupAndTeachersList) {
@@ -495,7 +495,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         courseListDtos.addAll(vipCourses);
         //检测对应乐团是否已申请退费
         List<Map<String, Integer>> isApplyMaps = studentApplyRefundsDao.checkIsApplyRefund(musicGroupIds, userId);
-        Map<String, Integer> isApplyMap = MapUtil.convertMybatisMap(isApplyMaps);
+        Map<String, Integer> isApplyMap = MapUtil.convertIntegerMap(isApplyMaps);
         //获取所有教学点名称列表
         Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
         Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
@@ -559,10 +559,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
             //获取班级老师总数map
             List<Map<Integer, Long>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ","));
-            Map<Integer, Long> numsMap = MapUtil.convertMybatisMap(nums);
+            Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(nums)),HashMap.class);
             imGroupModels.forEach(e -> {
-                Long num = numsMap.get(Integer.parseInt(e.getId()));
-                e.setCount((int) (num == null ? 0L : num) + e.getCount());
+                Integer num = numsMap.get(e.getId());
+                e.setCount((num == null ? 0 : num) + e.getCount());
             });
         }
         return imGroupModels;
@@ -731,10 +731,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<Long> musicGroupIds = teacherMusicClassGroup.stream().map(teacherClassGroupDto -> teacherClassGroupDto.getMusicGroupId()).collect(Collectors.toList());
         List<Map<Long, Integer>> musicGroupIdAndNumList = musicGroupStudentFeeDao.countContinuosAbsenteeismStudentNum(musicGroupIds);
-        Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertMybatisMap(musicGroupIdAndNumList);
+        Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertIntegerMap(musicGroupIdAndNumList);
 
         List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(musicGroupIds);
-        Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
+        Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
 
         teacherMusicClassGroup.forEach(teacherClassGroupDto -> {
 
@@ -1503,9 +1503,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //获取助教老师
             Map<Integer, String> subTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"))), HashMap.class);
             //获取在读人数
-            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join))), HashMap.class);
+            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(join))), HashMap.class);
             //获取退班人数
-            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join))), HashMap.class);
+            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countQuitNum(join))), HashMap.class);
             dataList.forEach(e -> {
                 e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
                 e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
@@ -1636,7 +1636,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     public int batchUpdateClassCourseTimes(List<Integer> classGroupIds) {
         List<Map<Integer, Integer>> classGroupCourseTimesMaps = courseScheduleDao.countClassGroupCourseTimes(classGroupIds);
-        Map<Integer, Integer> classGroupCourseTimesMap = MapUtil.convertMybatisMap(classGroupCourseTimesMaps);
+        Map<Integer, Integer> classGroupCourseTimesMap = MapUtil.convertIntegerMap(classGroupCourseTimesMaps);
         return classGroupDao.batchUpdateClassGroupCourseTimes(classGroupCourseTimesMap);
     }
 }

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

@@ -193,7 +193,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         //获取课程对应教学点补贴
         List<Map<Integer, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
-        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertMybatisMap(courseSubsidyByCourses);
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
 
         //课程对应乐团结算方式集合
         List<Map<String, String>> musicGroupSettlementTypeByCourse = courseScheduleTeacherSalaryDao.findMusicGroupSettlementTypeByCourse(courseScheduleIds);

+ 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());
 		}
 	}
 }

+ 16 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -657,10 +657,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);
@@ -935,7 +939,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
 			List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
 			if(!CollectionUtils.isEmpty(currentClassTimesByCourses)){
-				Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertMybatisMap(currentClassTimesByCourses);
+				Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertIntegerMap(currentClassTimesByCourses);
 				dataList.forEach(e->{
 					e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
 				});
@@ -964,7 +968,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			throw new BizException("请指定乐团");
 		}
 		List<Map<Integer, Long>> maps = courseScheduleDao.countClassCourseNumByMusicGroup(musicGroupId);
-		Map<Integer,Long> classCourseNumMap = MapUtil.convertMybatisMap(maps);
+		Map<Integer,Long> classCourseNumMap = MapUtil.convertIntegerMap(maps);
 		List<Integer> collect = classCourseNumMap
 								.entrySet()
 								.stream()
@@ -981,7 +985,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	public Map<Integer, Integer> findCourseScheduleCurrentTimes(List<Integer> courseSchedules) {
 		List<Map<Integer, Integer>> courseScheduleCurrentTimes = courseScheduleDao.findCourseScheduleCurrentTimes(courseSchedules);
-		return MapUtil.convertMybatisMap(courseScheduleCurrentTimes);
+		return MapUtil.convertIntegerMap(courseScheduleCurrentTimes);
 	}
 
     @Override
@@ -999,7 +1003,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);
 		}
 	}
 
@@ -1011,7 +1015,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());
 			}
 		}
 	}
@@ -1026,7 +1030,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);
 		}
 	}
 
@@ -1040,7 +1045,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);
 		}
 	}
 

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

@@ -310,7 +310,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         }
         //获取课程对应教学点补贴
         List<Map<Integer, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
-        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertMybatisMap(courseSubsidyByCourses);
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
 
         //课程编号与课程对应集合
         Map<Long, CourseSchedule> courseScheduleIdMap = yesterdayCourseSchedules.stream()

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

@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -138,6 +139,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);
@@ -155,7 +160,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 -> {
                     //原来乐团的注册学生
@@ -177,6 +182,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(),""));
         }
 
         // 保存乐团声部规划
@@ -187,9 +195,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;
     }
 
@@ -242,7 +247,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);
@@ -258,19 +262,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);
@@ -414,9 +419,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));
         }
         //记录建团日志
@@ -690,7 +695,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);
 
@@ -704,9 +709,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);
@@ -745,19 +752,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());

+ 18 - 9
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();
@@ -208,13 +218,12 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		classGroupStudentMapperDao.update(classGroupStudentMapper);
 
 		Map<Integer,String> sendArgs=new HashMap<>();
-		sendArgs.put(courseSchedule.getActualTeacherId(),teacherDao.get(courseSchedule.getActualTeacherId()).getPhone());
+		sendArgs.put(courseSchedule.getActualTeacherId(),courseSchedule.getActualTeacherId() + "");
 		//发送消息至老师
-		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
 				MessageTypeEnum.TEACHER_PUSH_STUDENT_LEAVE,
 				sendArgs,
-				null,0,null,courseSchedule.getName(),null);
-		
+				null,0,"1",courseSchedule.getName());
 		return true;
 	}
 
@@ -246,7 +255,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			Map<Integer, String> userSubjectNameMap = MapUtil.convertMybatisMap(byMusicGroupAndUsers);
 			//学生-旷课次数关联集合
 			List<Map<Integer, Integer>> continuousAbsenteeismTimesByUsersAndMusicGroup = musicGroupStudentFeeDao.findContinuousAbsenteeismTimesByUsersAndMusicGroup(classGroup.getMusicGroupId(), userIds);
-			Map<Integer,Integer> continuousAbsenteeismTimesWithUser=MapUtil.convertMybatisMap(continuousAbsenteeismTimesByUsersAndMusicGroup);
+			Map<Integer,Integer> continuousAbsenteeismTimesWithUser=MapUtil.convertIntegerMap(continuousAbsenteeismTimesByUsersAndMusicGroup);
 			//学生签到记录列表
 			List<StudentAttendanceResponse> studentAttendances = studentAttendanceDao.findByClassGroupAndUsers(queryInfo.getClassGroupId(), userIds);
 			//学生签到状态统计列表
@@ -337,10 +346,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

@@ -240,7 +240,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());
 				}
 			}
@@ -279,7 +279,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;
 	}
 

+ 6 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -156,11 +156,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		if(imGroupModels != null && imGroupModels.size() > 0){
 			Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
 			//获取班级老师总数map
-			List<Map<Integer, Long>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ","));
-			Map<Integer, Long> numsMap = MapUtil.convertMybatisMap(nums);
+			Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ",")))),HashMap.class);
 			imGroupModels.forEach(e -> {
-				Long num = numsMap.get(Integer.parseInt(e.getId()));
-				e.setCount((int)(num == null ? 0L : num) + e.getCount());
+				Integer num = numsMap.get(e.getId());
+				e.setCount((num == null ? 0 : num) + e.getCount());
 			});
 		}
 		return imGroupModels;
@@ -248,7 +247,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 //			String teacherIdStr = StringUtils.join(teacherIds,",");
 
 			//根据教师编号和班级编号,获取老师签到次数
-			Map<Integer,Integer> signNumMap =  JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(teacherDao.findSignNum(StringUtils.join(teacherIds,","),queryInfo.getMusicGroupId()))),HashMap.class);
+			Map<Integer,Integer> signNumMap =  JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(teacherDao.findSignNum(StringUtils.join(teacherIds,","),queryInfo.getMusicGroupId()))),HashMap.class);
 //			Map<Integer,Integer> signNumMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(signNum)),HashMap.class);
 
 			//根据合奏班编号,获取子班级名称列表
@@ -324,10 +323,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			String teacherIds = StringUtils.join(teachers, ",");
 			//获取小课数量
 			List<Map<Integer,Long>> numList =  classGroupDao.countTeacherVipNum(teacherIds);
-			Map<Integer,Long> vipNumMap = MapUtil.convertMybatisMap(numList);
+			Map<Integer,Long> vipNumMap = MapUtil.convertIntegerMap(numList);
 			//获取试听课数量
 			List<Map<Integer,Long>> demoNumList =  demoGroupDao.countTeacherDemoGroupNum(teacherIds);
-			Map<Integer,Long> demoNumMap = MapUtil.convertMybatisMap(demoNumList);
+			Map<Integer,Long> demoNumMap = MapUtil.convertIntegerMap(demoNumList);
 			rows.forEach(e->{
 //				e.setSubjectName(subjectDao.findBySubIds(e.getSubjectId()));
 				e.setSubjectName(Arrays.asList(e.getSplitSubjectName().split(",")));

+ 14 - 11
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());
 		}
 	}
 
@@ -399,7 +402,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			dataList = vipGroupDao.findAllByOrgan(params);
 			List<Long> vipGroupIds = dataList.stream().map(vipGroup -> vipGroup.getId()).collect(Collectors.toList());
 			List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
-			Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
+			Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
 			dataList.forEach(vipGroup -> {
 				Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getId());
 				if(Objects.isNull(overCourses)){
@@ -1057,7 +1060,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroupSalaryBaseInfo.setTotalCoursePrice(vipGroup.getTotalPrice().multiply(studentNum));
 
 		List<Map<String, BigDecimal>> teacherSalaryCount = courseScheduleTeacherSalaryDao.countTeacherOnlineOfflineSalaryByClass(classGroup.getId());
-		Map<String,BigDecimal> teacherTeachModeSalaryMap = MapUtil.convertMybatisMap(teacherSalaryCount);
+		Map<String,BigDecimal> teacherTeachModeSalaryMap = MapUtil.convertIntegerMap(teacherSalaryCount);
 		vipGroupSalaryBaseInfo.setTotalOfflineTeacherSalary(teacherTeachModeSalaryMap.get(TeachModeEnum.OFFLINE.getCode()));
 		vipGroupSalaryBaseInfo.setTotalOnlineTeacherSalary(teacherTeachModeSalaryMap.get(TeachModeEnum.ONLINE.getCode()));
 
@@ -1105,7 +1108,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 			return;
 		}
-		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
+		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertIntegerMap(maps);
     	for(Integer userId:studentSurplusClassFees.keySet()){
 			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,userId,DealStatusEnum.SUCCESS.getMsg());
 			if(null==studentPaymentOrder){
@@ -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

+ 182 - 171
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="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" >
+    <!-- 根据主键查询一条记录 -->
+    <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>
+
+    <!-- 根据主键删除一条记录 -->
+    <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_,
@@ -245,8 +256,8 @@
 	<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>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/StudentWithdrawMapper.xml

@@ -20,7 +20,7 @@
         <result column="withdraw_no_" property="withdrawNo"/>
         <result column="create_time_" property="createTime"/>
         <result column="modify_time_" property="modifyTime"/>
-        <result column="channel_" property="detail.channel"/>
+        <result column="trans_type_" property="detail.transType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="platform_account_no_" property="detail.platformAccountNo"/>
         <result column="balance_" property="detail.balance"/>
         <result column="real_name_" property="user.realName"/>
@@ -93,7 +93,7 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="StudentWithdraw" parameterType="map">
-        SELECT sw.*,cad.platform_account_no_,cad.channel_,su.real_name_,cad.balance_
+        SELECT sw.*,cad.platform_account_no_,cad.trans_type_,su.real_name_,cad.balance_
         FROM student_withdraw sw
         LEFT JOIN sys_user_cash_account_detail cad ON sw.id_ = cad.attribute1_
         LEFT JOIN sys_user su ON su.id_ = sw.user_id_

+ 12 - 4
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml

@@ -20,6 +20,8 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="attribute_" property="attribute"/>
+        <result column="channel_" property="channel"/>
+        <result column="platform_account_no_" property="platformAccountNo"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -41,17 +43,17 @@
         </selectKey>
         -->
         INSERT INTO sys_user_cash_account_detail
-        (user_id_,trans_no_,type_,amount_,balance_,description_,comment_,create_time_,update_time_,attribute1_)
-        VALUES(#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now(),#{attribute})
+        (user_id_,trans_no_,type_,amount_,balance_,description_,comment_,create_time_,update_time_,attribute1_,channel_,platform_account_no_)
+        VALUES(#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now(),#{attribute},#{channel},#{platformAccountNo})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.SysUserCashAccountDetail" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO sys_user_cash_account_detail
-        (user_id_,trans_no_,type_,amount_,balance_,description_,comment_,create_time_,update_time_,attribute1_)
+        (user_id_,trans_no_,type_,amount_,balance_,description_,comment_,create_time_,update_time_,attribute1_,channel_,platform_account_no_)
         VALUE
         <foreach collection="sysUserCashAccountDetails" item="sysUserCashAccountDetail" separator=",">
-            (#{sysUserCashAccountDetail.userId},#{sysUserCashAccountDetail.transNo},#{sysUserCashAccountDetail.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{sysUserCashAccountDetail.amount},#{sysUserCashAccountDetail.balance},#{sysUserCashAccountDetail.description},#{sysUserCashAccountDetail.comment},now(),now(),#{sysUserCashAccountDetail.attribute})
+            (#{sysUserCashAccountDetail.userId},#{sysUserCashAccountDetail.transNo},#{sysUserCashAccountDetail.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{sysUserCashAccountDetail.amount},#{sysUserCashAccountDetail.balance},#{sysUserCashAccountDetail.description},#{sysUserCashAccountDetail.comment},now(),now(),#{sysUserCashAccountDetail.attribute},#{sysUserCashAccountDetail.channel},#{sysUserCashAccountDetail.platformAccountNo})
         </foreach>
     </insert>
 
@@ -92,6 +94,12 @@
             <if test="attribu != null">
                 attribu1_ = #{attribu},
             </if>
+            <if test="channel != null">
+                channel_ = #{channel},
+            </if>
+            <if test="platformAccountNo != null">
+                platform_account_no_ = #{platformAccountNo},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 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

+ 18 - 0
mec-util/src/main/java/com/ym/mec/util/collection/MapUtil.java

@@ -116,4 +116,22 @@ public class MapUtil {
 		});
 		return result;
 	}
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/12
+	 * @params [maps]
+	 * @return java.util.Map
+	 * @describe mybatis返回结果转换为Map
+	 */
+	public static <T,K> Map convertIntegerMap(List<Map<T,K>> maps){
+		Map result=new HashMap();
+		maps.forEach(stringIntegerMap -> {
+			if(Objects.isNull(stringIntegerMap)){
+				return;
+			}
+			result.put(stringIntegerMap.get("key"),stringIntegerMap.get("value"));
+		});
+		return result;
+	}
 }