Переглянути джерело

Merge branch 'master' of http://git.dayaedu.com/yonge/mec into origin_master

yonge 4 роки тому
батько
коміт
c965bb7d4f
21 змінених файлів з 304 додано та 131 видалено
  1. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  2. 34 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  3. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderStudentDetail.java
  4. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/event/listener/CourseEventListener.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleStudentPaymentService.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  9. 21 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  10. 6 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java
  12. 38 56
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  13. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  14. 25 31
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  15. 6 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  16. 133 11
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  17. 1 0
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  18. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml
  19. 8 1
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  20. 4 4
      mec-util/src/main/java/com/ym/mec/util/web/WebUtil.java
  21. 0 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -400,7 +400,7 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @date 2020/12/2 0002
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPaymentDto>
      */
-    List<CourseScheduleStudentPaymentDto> findNeedUpdateActualPriceStudentCourses();
+    List<CourseScheduleStudentPaymentDto> findNeedUpdateActualPriceStudentCourses(@Param("courseIds") List<Long> courseIds);
 
     /**
      * 根据课程编号和,学员编号获取列表信息

+ 34 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.IndexDataType;
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.poi.ss.formula.functions.Index;
@@ -39,19 +41,46 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @describe 统计系统中指定时间段的学员注册数据
      * @author Joburgess
      * @date 2021/1/7 0007
-     * @param startMonth:
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
-    List<IndexBaseMonthData> getStudentSignUpData(@Param("startMonth") String startMonth);
+    List<IndexBaseMonthData> getStudentSignUpData();
 
     /**
      * @describe 统计作业布置数据
      * @author Joburgess
      * @date 2021/1/7 0007
-     * @param startMonth:
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
-    List<IndexBaseMonthData> getHomeworkDate(@Param("startMonth") String startMonth,
-                                             @Param("type") String type);
+    List<IndexBaseMonthData> getHomeworkData(@Param("type") String type);
+
+    /**
+     * @describe 统计合作单位数据
+     * @author Joburgess
+     * @date 2021/1/11 0011
+     * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
+     */
+    List<IndexBaseMonthData> getSchoolData();
+
+    /**
+     * @describe 统计乐团数据
+     * @author Joburgess
+     * @date 2021/1/11 0011
+     * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
+     */
+    List<IndexBaseMonthData> getMusicData();
+
+    /**
+     * @describe 统计乐团学员数据
+     * @author Joburgess
+     * @date 2021/1/11 0011
+     * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
+     */
+    List<IndexBaseMonthData> getMusicStudentData();
+
+    List<IndexBaseMonthData> getOtherStudentData();
+
+    List<IndexBaseMonthData> getTeacherData(@Param("jobNature") JobNatureEnum jobNature,
+                                            @Param("isDemission") Boolean isDemission);
 
+    List<IndexBaseMonthData> getGroupCourseData(@Param("groupType")GroupType groupType);
 }

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderStudentDetail.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import java.math.BigDecimal;
 import java.util.Objects;
 
 /**
@@ -24,6 +25,9 @@ public class MusicGroupPaymentCalenderStudentDetail {
 	
 	/** 现价 */
 	private java.math.BigDecimal courseCurrentPrice;
+
+	/** 学员需要扣减的课程余额 */
+	private java.math.BigDecimal cutAmount = BigDecimal.ZERO;
 	
 	/** 课程类型 */
 	private String courseType;
@@ -42,7 +46,15 @@ public class MusicGroupPaymentCalenderStudentDetail {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	public BigDecimal getCutAmount() {
+		return cutAmount;
+	}
+
+	public void setCutAmount(BigDecimal cutAmount) {
+		this.cutAmount = cutAmount;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -11,22 +11,27 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     MUSIC_GROUP_NUM("MUSIC_GROUP_NUM","乐团数量"),
     MUSIC_GROUP_STUDENT("MUSIC_GROUP_STUDENT","乐团学员"),
     OTHER_STUDENT("OTHER_STUDENT","其他学员"),
+
     ACTIVATION_RATE("ACTIVATION_RATE","激活率"),
     HOMEWORK_CREATE_RATE("HOMEWORK_CREATE_RATE","作业布置率"),
     HOMEWORK_SUBMIT_RATE("HOMEWORK_SUBMIT_RATE","作业提交率"),
     HOMEWORK_COMMENT_RATE("HOMEWORK_COMMENT_RATE","作业点评率"),
+
     SHOULD_INCOME_MONEY("SHOULD_INCOME_MONEY","应收金额"),
     ANTICIPATED_INCOME_MONEY("ANTICIPATED_INCOME_MONEY","预收金额"),
     SHOULD_EXPEND_MONEY("SHOULD_EXPEND_MONEY","预付金额"),
     ANTICIPATED_EXPEND_MONEY("ANTICIPATED_EXPEND_MONEY","应付金额"),
     REVENUE_MONEY("REVENUE_MONEY","营收金额"),
+
     TEACHER_NUM("TEACHER_NUM","老师总数"),
     FULL_TIME_NUM("FULL_TIME_NUM","全职人数"),
     PART_TIME_NUM("PART_TIME_NUM","兼职人数"),
     DIMISSION_NUM("DIMISSION_NUM","离职人数"),
+
     NEWLY_STUDENT_NUM("NEWLY_STUDENT_NUM","新增学员"),
     QUIT_MUSIC_GROUP_STUDENT_NUM("QUIT_MUSIC_GROUP_STUDENT_NUM","退团学员"),
     STUDENT_CONVERSION("STUDENT_CONVERSION","学员转化"),
+
     MUSIC_GROUP_COURSE("MUSIC_GROUP_COURSE","乐团课"),
     VIP_GROUP_COURSE("VIP_GROUP_COURSE","VIP课"),
     PRACTICE_GROUP_COURSE("PRACTICE_GROUP_COURSE","网管课");

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/event/listener/CourseEventListener.java

@@ -56,7 +56,7 @@ public class CourseEventListener {
         logger.info("课程状态变更(执行开始):{}", courseStatusChangeEvent.getCourseIds());
 
         try{
-            courseScheduleStudentPaymentService.updateCourseActualPrice();
+            courseScheduleStudentPaymentService.updateCourseActualPrice(new ArrayList<>(courseStatusChangeEvent.getCourseIds()));
         } finally {
             redisCache.delete(KEY);
         }

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

@@ -542,5 +542,5 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param courseIds
      * @param classGroupStudents
      */
-    void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map<Integer, String>> classGroupStudents,List<Long> allLockCourseIds,String batchNo);
+    void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map<String, String>> classGroupStudents,List<Long> allLockCourseIds,String batchNo);
 }

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

@@ -125,6 +125,6 @@ public interface CourseScheduleStudentPaymentService extends BaseService<Long, C
 	 * @date 2020/12/2 0002
 	 * @return void
 	 */
-	void updateCourseActualPrice();
+	void updateCourseActualPrice(List<Long> courseIds);
 
 }

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

@@ -144,7 +144,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      * @param masterTotalPrice 主乐团剩余课程价值
      * @return
      */
-    void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,BigDecimal masterTotalPrice);
+    void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect);
 
     /**
      * 获取班级学生

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

@@ -1910,6 +1910,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //学生结算表
         if (courseScheduleList.size() > 0) {
             courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIdList);
+            studentDao.updateStudentServiceTag(null, studentIdList, YesOrNoEnum.YES.getCode());
         }
         return classGroup;
     }
@@ -2631,6 +2632,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //学生结算表
         if (!CollectionUtils.isEmpty(studentIdList)) {
             courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIdList);
+            studentDao.updateStudentServiceTag(null, studentIdList, YesOrNoEnum.YES.getCode());
         }
         return classGroup;
     }
@@ -3562,6 +3564,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //上低音号、长号 合并计算
             if (regEntry.getKey().equals(14) || regEntry.getKey().equals(15)) {
                 otherSubjectRegNum += regEntry.getValue().size();
+                continue;
             }
             int classNum = regEntry.getValue().size() / 6;
             classNum += (regEntry.getValue().size() % 6) > 0 ? 1 : 0;
@@ -3636,10 +3639,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 }else {
                     //如果剩余课程余额大于等于总价值,那么补交0元
                     if(bigDecimal.doubleValue() >= totalPrice.doubleValue()){
+                        calenderDto.setCutAmount(totalPrice);
                         calenderDto.setCourseCurrentPrice(BigDecimal.ZERO);
                         calenderDto.setCourseOriginalPrice(BigDecimal.ZERO);
                     }else {
                         calenderDto.setCourseCurrentPrice(totalPrice.subtract(bigDecimal));
+                        calenderDto.setCutAmount(bigDecimal);
                         calenderDto.setCourseOriginalPrice(totalPrice.subtract(bigDecimal));
                     }
                     //剩余课程余额减去主班对应课程类型总的课程价值,负数就是需要补交的金额
@@ -3706,7 +3711,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if(hasStudent){
             throw new BizException("操作失败: 主班包含部分已选学员");
         }
-        
         //学员列表
         List<Integer> classGroupIds = mergeClassSplitClassAffirmDto.getClassGroupIds();
         //班级和学员关联
@@ -3720,9 +3724,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         BigDecimal masterTotalPrice = getMasterTotalPrice(masterClassGroupId);
         //是否有需要审核的缴费项目
         //将学员加入新乐团、扣除原乐团剩余课程余额、补充到现有乐团
+        Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect = musicGroupPaymentCalenderStudentDetails.stream().collect(Collectors.groupingBy(e -> e.getUserId()));
         for (Map<Integer, String> classGroupStudent : classGroupStudents) {
             Integer classGroupId = classGroupStudent.keySet().iterator().next();
-            studentRegistrationService.insertStudent(classGroupStudent.get(classGroupId),musicGroupDao.findByClassGroupId(classGroupId).getId(),musicGroup.getId(),masterTotalPrice);
+            studentRegistrationService.insertStudent(classGroupStudent.get(classGroupId),musicGroupDao.findByClassGroupId(classGroupId).getId(),musicGroup.getId(),collect);
         }
 
         paymentCalenderDto.setMusicGroupId(musicGroup.getId());
@@ -3774,7 +3779,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         musicGroupStudentClassAdjustDao.insert(musicGroupStudentClassAdjust);
         //没有需要审核的缴费项目
         if (paymentCalenderDto.getStatus() != AUDITING) {
-            spanGroupClassAdjustPass(masterClassGroupId,studentIds,courseIds,classGroupStudents,allLockCourseIds,paymentCalenderDto.getBatchNo());
+            List<Map<String,String>> classGroupStudents1 = (List<Map<String,String>>)JSON.parse(musicGroupStudentClassAdjust.getClassGroupStudents());
+            spanGroupClassAdjustPass(masterClassGroupId,studentIds,courseIds,classGroupStudents1,allLockCourseIds,paymentCalenderDto.getBatchNo());
         }else {
 //                冻结班级
             classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 1);
@@ -3783,20 +3789,27 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
     }
 
-    public void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map<Integer, String>> classGroupStudents,List<Long> allLockCourseIds,String batchNo){
+    public void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map<String, String>> classGroupStudents,List<Long> allLockCourseIds,String batchNo){
         //将学员加进班级未开始的课程,以及班级关联、加群
         classGroupStudentMapperService.updateClassGroupStudents1(masterClassGroupId.longValue(),studentIds,allLockCourseIds,batchNo);
         //删除学员课程
         courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, studentIds);
         //删除班级关联的学员
+        List<Integer> classGroupIds = new ArrayList<>();
         if (classGroupStudents != null && classGroupStudents.size() > 0) {
-            for (Map<Integer, String> classGroupStudent : classGroupStudents) {
-                Set<Integer> integers = classGroupStudent.keySet();
-                for (Integer integer : integers) {
-                    classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
+            for (Map<String, String> classGroupStudent : classGroupStudents) {
+                Set<String> integers = classGroupStudent.keySet();
+                for (String integer : integers) {
+                    classGroupIds.add(Integer.parseInt(integer));
+                    classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(Integer.parseInt(integer), classGroupStudent.get(integer));
                 }
             }
         }
+        //解冻课程
+        courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds,0);
+        //解冻班级
+        classGroupIds.add(masterClassGroupId);
+        classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds,0);
         //获取没有学员的课程
         List<Long> delCourseIds = courseScheduleDao.findNoStudentCourseIds(courseIds);
         if (delCourseIds != null && delCourseIds.size() > 0) {

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

@@ -3953,11 +3953,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             }
         }
 
-        if (updateList.size() > 0) {
+		Set<Long> courseIds = null;
+		if (updateList.size() > 0) {
             courseScheduleDao.batchUpdate(updateList);
+			courseIds = updateList.stream().map(CourseSchedule::getId).collect(Collectors.toSet());
         }
 
-		courseEventSource.courseStatusChange(null);
+		courseEventSource.courseStatusChange(courseIds);
 
         // 更新班级已上课次
         if (classGroupIds.size() > 0) {
@@ -4002,6 +4004,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     }
 
     @Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean updateCourseScheduleToUnderway() {
     	Date date = new Date();
     	List<CourseSchedule> list = courseScheduleDao.queryUnderwayWithNoUpdateStatus();
@@ -4016,7 +4019,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         if (updateList.size() > 0) {
             courseScheduleDao.batchUpdate(updateList);
-        }
+		}
 		return true;
 	}
 

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

@@ -691,8 +691,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void updateCourseActualPrice() {
-		List<CourseScheduleStudentPaymentDto> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findNeedUpdateActualPriceStudentCourses();
+	public void updateCourseActualPrice(List<Long> courseIds) {
+		List<CourseScheduleStudentPaymentDto> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findNeedUpdateActualPriceStudentCourses(courseIds);
 		if(CollectionUtils.isEmpty(courseScheduleStudentPayments)){
 			return;
 		}

+ 38 - 56
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -3,7 +3,9 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.OrganizationDao;
 import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.IndexDataType;
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
@@ -82,27 +84,48 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM");
 		LocalDate nowDate = LocalDate.now();
-		LocalDate startDate = nowDate.withMonth(1).withDayOfMonth(1);
-		LocalDate endDate = nowDate.withDayOfMonth(1);
-		if(StringUtils.isNotBlank(startMonth)){
-			startDate = LocalDate.parse(startMonth+"-01", DateUtil.dateFormatter);
-		}
-
-		if(StringUtils.isNotBlank(endMonth)){
-			endDate = LocalDate.parse(endMonth+"-01", DateUtil.dateFormatter);
-		}
 
 		List<Organization> allOrgans = organizationDao.findAllOrgans();
 		Set<Integer> organIds = allOrgans.stream().map(Organization::getId).collect(Collectors.toSet());
 		this.organIds.get().clear();
 		this.organIds.get().addAll(organIds);
 
-		while (startDate.compareTo(endDate)<=0){
-			countUserSignUpData(df.format(startDate));
-			countHomeworkData(startMonth);
-
-			startDate = startDate.plusMonths(1);
-		}
+		startMonth = df.format(nowDate);
+
+		//运营数据
+		saveData(indexBaseMonthDataDao.getSchoolData(), startMonth, IndexDataType.SCHOOL);
+		saveData(indexBaseMonthDataDao.getMusicData(), startMonth, IndexDataType.MUSIC_GROUP_NUM);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(), startMonth, IndexDataType.MUSIC_GROUP_STUDENT);
+		saveData(indexBaseMonthDataDao.getOtherStudentData(), startMonth, IndexDataType.OTHER_STUDENT);
+
+		//业务数据
+		saveData(indexBaseMonthDataDao.getStudentSignUpData(), startMonth, IndexDataType.ACTIVATION_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData(null), startMonth, IndexDataType.HOMEWORK_CREATE_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData("submit"), startMonth, IndexDataType.HOMEWORK_SUBMIT_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData("comment"), startMonth, IndexDataType.HOMEWORK_COMMENT_RATE);
+
+		//经营数据
+		saveData(null, startMonth, IndexDataType.SHOULD_INCOME_MONEY);
+		saveData(null, startMonth, IndexDataType.ANTICIPATED_INCOME_MONEY);
+		saveData(null, startMonth, IndexDataType.SHOULD_EXPEND_MONEY);
+		saveData(null, startMonth, IndexDataType.ANTICIPATED_EXPEND_MONEY);
+		saveData(null, startMonth, IndexDataType.REVENUE_MONEY);
+
+		//人事数据
+		saveData(indexBaseMonthDataDao.getTeacherData(null, null), startMonth, IndexDataType.TEACHER_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(JobNatureEnum.FULL_TIME, null), startMonth, IndexDataType.FULL_TIME_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(JobNatureEnum.PART_TIME, null), startMonth, IndexDataType.PART_TIME_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(null, true), startMonth, IndexDataType.DIMISSION_NUM);
+
+		//学员变动
+		saveData(null, startMonth, IndexDataType.NEWLY_STUDENT_NUM);
+		saveData(null, startMonth, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+		saveData(null, startMonth, IndexDataType.STUDENT_CONVERSION);
+
+		//课程数据
+		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.MUSIC), startMonth, IndexDataType.MUSIC_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.VIP), startMonth, IndexDataType.VIP_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.PRACTICE), startMonth, IndexDataType.PRACTICE_GROUP_COURSE);
 
 		return result;
 	}
@@ -129,45 +152,4 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(startMonth), indexDataType);
 		indexBaseMonthDataDao.batchInsertWithDataType(dataList, indexDataType);
 	}
-
-	/**
-	 * @describe 激活率
-	 * @author Joburgess
-	 * @date 2021/1/11 0011
-	 * @param startMonth:
-	 * @return void
-	 */
-	private void countUserSignUpData(String startMonth){
-		List<IndexBaseMonthData> dataList = indexBaseMonthDataDao.getStudentSignUpData(startMonth);
-		saveData(dataList, startMonth, IndexDataType.ACTIVATION_RATE);
-	}
-
-	/**
-	 * @describe 作业数据
-	 * @author Joburgess
-	 * @date 2021/1/11 0011
-	 * @param startMonth:
-	 * @return void
-	 */
-	private void countHomeworkData(String startMonth){
-		List<IndexBaseMonthData> dataList = indexBaseMonthDataDao.getHomeworkDate(startMonth, null);
-		saveData(dataList, startMonth, IndexDataType.HOMEWORK_CREATE_RATE);
-
-		List<IndexBaseMonthData> dataList1 = indexBaseMonthDataDao.getHomeworkDate(startMonth, "submit");
-		saveData(dataList1, startMonth, IndexDataType.HOMEWORK_SUBMIT_RATE);
-
-		List<IndexBaseMonthData> dataList2 = indexBaseMonthDataDao.getHomeworkDate(startMonth, "comment");
-		saveData(dataList2, startMonth, IndexDataType.HOMEWORK_COMMENT_RATE);
-	}
-
-	/**
-	 * @describe 统计合作单位数据
-	 * @author Joburgess
-	 * @date 2021/1/11 0011
-	 * @param startMonth:
-	 * @return void
-	 */
-	private void countSchoolData(String startMonth){
-
-	}
 }

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

@@ -756,7 +756,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}else if(paymentType == SPAN_GROUP_CLASS_ADJUST){
 				//删除和解冻班级,课程信息
 				MusicGroupStudentClassAdjust adjust = musicGroupStudentClassAdjustDao.findByBatchNo(batchNo);
-				List<Map<Integer,String>> classGroupStudents = (List<Map<Integer,String>>)JSON.parse(adjust.getClassGroupStudents());
+				List<Map<String,String>> classGroupStudents = (List<Map<String,String>>)JSON.parse(adjust.getClassGroupStudents());
 				List<Integer> studentIds = JSON.parseArray(adjust.getStudentIds(), Integer.class);
 				List<Long> courseIds = JSON.parseArray(adjust.getSubLockCourseIds(), Long.class);
 				List<Long> allLockCourseIds = JSON.parseArray(adjust.getAllLockCourseIds(), Long.class);
@@ -1071,7 +1071,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}else if(calender.getPaymentType() == SPAN_GROUP_CLASS_ADJUST){
 			//删除和解冻班级,课程信息
 			MusicGroupStudentClassAdjust adjust = musicGroupStudentClassAdjustDao.findByBatchNo(batchNo);
-			List<Map<Integer,String>> classGroupStudents = (List<Map<Integer,String>>)JSON.parse(adjust.getClassGroupStudents());
+			List<Map<String,String>> classGroupStudents = (List<Map<String,String>>)JSON.parse(adjust.getClassGroupStudents());
 			List<Integer> studentIds = JSON.parseArray(adjust.getStudentIds(), Integer.class);
 			List<Long> courseIds = JSON.parseArray(adjust.getSubLockCourseIds(), Long.class);
 			List<Long> allLockCourseIds = JSON.parseArray(adjust.getAllLockCourseIds(), Long.class);

+ 25 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -17,6 +17,7 @@ import java.util.stream.Collectors;
 import javax.annotation.Resource;
 
 import com.ym.mec.auth.api.enums.CertificateTypeEnum;
+import com.ym.mec.biz.dal.entity.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,29 +57,6 @@ import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.dto.StudentMusicDetailDto;
 import com.ym.mec.biz.dal.dto.StudentMusicGroupDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentCourseFeeDetail;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.entity.SubjectChange;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
@@ -322,7 +300,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
 
         StudentRegistration hasReg = getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
-        if (hasReg != null) {
+        if (hasReg != null && hasReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT) {
             throw new BizException("该乐团您已报名");
         }
 
@@ -352,18 +330,24 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistration.setUpdateTime(date);
         studentRegistration.setUserId(sysUser.getId());
         studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
-        studentRegistrationDao.insert(studentRegistration);
+        if(hasReg != null){
+            studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
+            studentRegistration.setId(hasReg.getId());
+            studentRegistrationDao.update(studentRegistration);
+        }else {
+            studentRegistrationDao.insert(studentRegistration);
+        }
 
         // 增加报名学生数
         musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(), 1);
         // 报名成功后,发送短信
         // String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId();
         String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-        Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
+        Subject subject = subjectDao.get(studentRegistration.getSubjectId());
         // MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
 
         Map<Integer, String> map = new HashMap<>(1);
-        map.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
+        map.put(sysUser.getId(), studentRegistration.getParentsPhone());
         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "", "",
                 studentRegistration.getParentsName(), subject.getName(), serverPhone);
 
@@ -841,16 +825,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,BigDecimal masterTotalPrice){
-        if(oldMusicGroupId == newMusicGroupId){
-            return;
-        }
+    public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect){
         SysUser sysUser1 = sysUserFeignService.queryUserInfo();
         //获取旧乐团学员注册信息
         List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds,oldMusicGroupId);
         List<StudentCourseFeeDetail> studentCourseFeeDetails = new ArrayList<>();
         BigDecimal amount = BigDecimal.ZERO;
         for (StudentRegistration studentRegistration : studentRegistrations) {
+            BigDecimal masterTotalPrice = collect.get(studentRegistration.getUserId()).stream().map(e->e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+            if(masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()){
+                throw new BizException("用户信息发生变动,请重新提交");
+            }
+            if(oldMusicGroupId == newMusicGroupId){
+                continue;
+            }
             //记录课程余额消费日志
             if(studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d){
                 StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
@@ -875,6 +863,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             StudentRegistration registration = studentRegistrationDao.getByPhoneAndMusicGroupId(newMusicGroupId, studentRegistration.getParentsPhone());
             if (registration != null) {
                 //修改剩余课程余额
+                registration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
                 registration.setSurplusCourseFee(registration.getSurplusCourseFee().add(amount));
                 studentRegistrationDao.update(registration);
             }else {
@@ -1618,6 +1607,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Transactional(rollbackFor = Exception.class)
     public Boolean batchDelRegs(String musicGroupId, List<Integer> userIds) {
         List<StudentRegistration> registrations = studentRegistrationDao.findStudentListByUserIdList(musicGroupId, userIds);
+        for (StudentRegistration registration : registrations) {
+            if(registration.getPaymentStatus().equals(PaymentStatusEnum.OPEN)||registration.getPaymentStatus().equals(PaymentStatusEnum.YES)){
+                throw new BizException("开启缴费/已缴费的学员不能删除");
+            }
+        }
         if (registrations.size() <= 0) {
             throw new BizException("删除的学员不存在,请核查");
         }

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -634,6 +634,12 @@
 			AND cs.id_ IS NOT NULL
 			AND ((cs.status_ = 'OVER' AND (cssp.actual_price_ IS NULL OR cssp.actual_price_ &lt; cssp.expect_price_))
 			OR ( cs.status_ = 'NOT_START' AND cssp.actual_price_ IS NOT NULL AND cssp.actual_price_ &gt; 0))
+			<if test="courseIds!=null and courseIds.size()>0">
+				AND cs.id_ IN
+				<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+					#{courseId}
+				</foreach>
+			</if>
 	</select>
 	<select id="queryCourseByIdsAndStudentId" resultMap="CourseScheduleStudentPayment">
 		SELECT cssp.* FROM course_schedule_student_payment cssp

+ 133 - 11
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -139,7 +139,7 @@
 	<select id="getStudentSignUpData" resultMap="IndexBaseMonthData">
 		SELECT
 			organ_id_,
-			CONCAT( #{startMonth}, '-01' ) month_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
 			COUNT( id_ ) total_num_,
 			COUNT(CASE WHEN password_ IS NOT NULL THEN id_ ELSE NULL END) activate_num_,
 			TRUNCATE(COUNT(CASE WHEN password_ IS NOT NULL THEN id_ ELSE NULL END)/COUNT( id_ )*100, 2) percent_
@@ -148,17 +148,15 @@
 			del_flag_=0
 		  	AND organ_id_ IS NOT NULL
 			AND user_type_ LIKE '%STUDENT%'
-			<if test="startMonth!=null and startMonth!=''">
-				AND DATE_FORMAT(create_time_, '%Y-%m')=#{startMonth}
-			</if>
+			AND YEAR(create_time_)=YEAR(NOW())
 		GROUP BY organ_id_
-		ORDER BY organ_id_,month_;
+		ORDER BY organ_id_;
 	</select>
 
-	<select id="getHomeworkDate" resultMap="IndexBaseMonthData">
+	<select id="getHomeworkData" resultMap="IndexBaseMonthData">
 		SELECT
 			su.organ_id_,
-			CONCAT( #{startMonth}, '-01' ) month_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
 			<choose>
 				<when test="type == 'submit'">
 					SUM(sees.expect_exercises_num_) total_num_,
@@ -180,10 +178,134 @@
 		LEFT JOIN sys_user su ON sees.student_id_=su.id_
 		WHERE su.del_flag_=0
 			AND su.organ_id_ IS NOT NULL
-			<if test="startMonth!=null and startMonth!=''">
-				AND DATE_FORMAT(sees.monday_, '%Y-%m')=#{startMonth}
-			</if>
+			AND YEAR(sees.monday_)=YEAR(NOW())
 		GROUP BY su.organ_id_
-		ORDER BY su.organ_id_,month_
+		ORDER BY su.organ_id_
+	</select>
+
+	<select id="getSchoolData" resultMap="IndexBaseMonthData">
+		SELECT
+			organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( id_ ) total_num_,
+			COUNT( id_ ) activate_num_,
+			COUNT( id_ ) percent_
+		FROM
+			school
+		WHERE
+			del_flag_ = 0
+		  	AND organ_id_ IS NOT NULL
+		GROUP BY
+			organ_id_
+		ORDER BY
+			organ_id_;
+	</select>
+	<select id="getMusicData" resultMap="IndexBaseMonthData">
+		SELECT
+			organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( id_ ) total_num_,
+			COUNT( id_ ) activate_num_,
+			COUNT( id_ ) percent_
+		FROM
+			music_group
+		WHERE
+			del_flag_ = 0
+			AND status_ = 'PROGRESS'
+			AND organ_id_ IS NOT NULL
+		GROUP BY
+			organ_id_
+		ORDER BY
+			organ_id_;
+	</select>
+	<select id="getMusicStudentData" resultMap="IndexBaseMonthData">
+		SELECT
+			mg.organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( DISTINCT sr.user_id_ ) total_num_,
+			COUNT( DISTINCT sr.user_id_ ) activate_num_,
+			COUNT( DISTINCT sr.user_id_ ) percent_
+		FROM student_registration sr
+				 LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
+		WHERE
+			mg.del_flag_ = 0
+			AND mg.status_ = 'PROGRESS'
+			AND mg.organ_id_ IS NOT NULL
+			AND sr.music_group_status_='NORMAL'
+		GROUP BY
+			mg.organ_id_
+		ORDER BY
+			mg.organ_id_;
+	</select>
+
+	<select id="getTeacherData" resultMap="IndexBaseMonthData">
+		SELECT
+			t.organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( t.id_ ) total_num_,
+			COUNT( t.id_ ) activate_num_,
+			COUNT( t.id_ ) percent_
+		FROM
+			teacher t
+				LEFT JOIN sys_user su ON su.id_ = t.id_
+		WHERE
+			su.del_flag_ = 0
+		  	<if test="isDemission==null">
+				AND su.lock_flag_ = 0
+			</if>
+		  	<if test="isDemission!=null">
+				AND (su.lock_flag_ = 1 OR t.demission_date_ IS NOT NULL)
+			</if>
+			AND t.organ_id_ IS NOT NULL
+			<if test="jobNature!=null">
+				AND t.job_nature_ = #{jobNature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			</if>
+		GROUP BY
+			t.organ_id_
+		ORDER BY
+			t.organ_id_;
+	</select>
+
+	<select id="getGroupCourseData" resultMap="IndexBaseMonthData">
+		SELECT
+			m.organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( m.id_ ) total_num_,
+			COUNT( m.id_ ) activate_num_,
+			COUNT( m.id_ ) percent_
+		FROM
+			course_schedule m
+		WHERE
+			m.del_flag_ = 0
+			AND m.is_lock_ = 0
+			AND m.organ_id_ IS NOT NULL
+			<if test="groupType!=null">
+				AND m.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			</if>
+		GROUP BY
+			m.organ_id_
+		ORDER BY
+			m.organ_id_;
+	</select>
+
+	<select id="getOtherStudentData" resultMap="IndexBaseMonthData">
+		SELECT
+			m.organ_id_,
+			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			COUNT( DISTINCT s.user_id_ ) total_num_,
+			COUNT( DISTINCT s.user_id_ ) activate_num_,
+			COUNT( DISTINCT s.user_id_ ) percent_
+		FROM
+			course_schedule_student_payment s
+				LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
+		WHERE
+			m.del_flag_ = 0
+		  AND m.is_lock_ = 0
+		  AND m.organ_id_ IS NOT NULL
+		  AND m.group_type_ IN ('VIP', 'PRACTICE')
+		GROUP BY
+			m.organ_id_
+		ORDER BY
+			m.organ_id_;
 	</select>
 </mapper>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -498,6 +498,7 @@
             LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
             LEFT JOIN student stu ON cssp.user_id_ = stu.user_id_
         WHERE stu.service_tag_=1
+            AND stu.service_tag_update_time_&lt;#{nextMonday}
             AND cs.class_date_&gt;=#{monday}
             AND cs.type_ IN ('SINGLE','VIP','MIX','PRACTICE')
             AND cssp.create_time_&lt;#{nextMonday}

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

@@ -254,7 +254,7 @@
                 AND sci.charge_type_ = #{chargeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
             <if test="noneTqType != null">
-                and spo.mer_no_ != '淘器微信'
+                AND spo.mer_nos_ != '淘器微信'
             </if>
         </where>
     </sql>

+ 8 - 1
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -393,7 +393,7 @@
 
     <!-- 根据乐团编号和手机号查询注册乐团注册信息-->
     <select id="getByPhoneAndMusicGroupId" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND parents_phone_ = #{parentsPhone} AND music_group_status_ != 'QUIT' LIMIT 1
+        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND parents_phone_ = #{parentsPhone}
     </select>
 
     <resultMap type="com.ym.mec.auth.api.entity.SysUser" id="FindSysUser">
@@ -740,4 +740,11 @@
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
         WHERE sr.music_group_id_ = #{musicGroupId} AND FIND_IN_SET(sr.user_id_,#{studentIds}) AND sr.music_group_status_ != 'QUIT'
     </select>
+    <!-- 批量删除信息 -->
+    <delete id="batchDelete">
+        DELETE FROM student_registration WHERE id_ IN
+        <foreach collection="ids" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

+ 4 - 4
mec-util/src/main/java/com/ym/mec/util/web/WebUtil.java

@@ -7,17 +7,17 @@
  */
 package com.ym.mec.util.web;
 
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ym.mec.util.encode.AES;
 import org.apache.commons.lang3.StringUtils;
 
+import static com.ym.mec.util.encode.AES.encrypt;
+
 /**
  * 
  */

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -4,7 +4,6 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
-import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;