Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Joburgess 4 éve
szülő
commit
0ace2c752a

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentRouteOrderDao.java

@@ -71,4 +71,11 @@ public interface StudentPaymentRouteOrderDao extends BaseDAO<Long, StudentPaymen
      * @return
      */
     List<String> countByTransNo(@Param("transNos") List<Object> transNos);
+
+    /**
+     * 获取审核通过的学校缴费金额
+     * @param calenderId
+     * @return
+     */
+    BigDecimal sumAmountByCalenderId(Long calenderId);
 }

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

@@ -15,6 +15,16 @@ public class MergeClassSplitClassAffirmDto {
 
     private List<Map<Integer,String>> classGroupStudents;
 
+    private Map<String,Long> classCourseMinuteMap;
+
+    public Map<String, Long> getClassCourseMinuteMap() {
+        return classCourseMinuteMap;
+    }
+
+    public void setClassCourseMinuteMap(Map<String, Long> classCourseMinuteMap) {
+        this.classCourseMinuteMap = classCourseMinuteMap;
+    }
+
     public List<Map<Integer, String>> getClassGroupStudents() {
         return classGroupStudents;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentClassAdjust.java

@@ -28,6 +28,9 @@ public class MusicGroupStudentClassAdjust {
 	@ApiModelProperty(value = "班级可排课时长", required = false)
 	private String classCourseMinute;
 
+	@ApiModelProperty(value = "老师选择的每种类型的排课时长", required = false)
+	private String defaultCourseTypeMinute;
+
 	@ApiModelProperty(value = "所有冻结的课程列表", required = false)
 	private String allLockCourseIds;
 
@@ -46,6 +49,14 @@ public class MusicGroupStudentClassAdjust {
 
 	private Date updateTime;
 
+	public String getDefaultCourseTypeMinute() {
+		return defaultCourseTypeMinute;
+	}
+
+	public void setDefaultCourseTypeMinute(String defaultCourseTypeMinute) {
+		this.defaultCourseTypeMinute = defaultCourseTypeMinute;
+	}
+
 	public String getClassGroupStudents() {
 		return classGroupStudents;
 	}

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

@@ -18,6 +18,7 @@ import com.ym.mec.common.service.BaseService;
 import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
 	
@@ -472,7 +473,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param classGroupIds
      * @return
      */
-    Map<Integer,Map<String, MusicGroupOrganizationCourseSettingsDetail>> getDefaultPaymentCalender(List<Integer> classGroupIds);
+    Map<String,Object> getDefaultPaymentCalender(List<Integer> classGroupIds);
 
     /**
      * 进行中乐团-修改-班级详情-学员班级调整-合并结果确认
@@ -489,5 +490,5 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param classGroupIds
      * @return
      */
-    Map<String,Long> findClassCourseMinuteMap(List<Integer> classGroupIds);
+    Map<String,Long> findClassCourseMinuteMap(List<Integer> classGroupIds,Map<String,Long> classCourseMinuteMap);
 }

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

@@ -1985,7 +1985,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public List<CourseSchedule> getCourseSchedules(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList){
+    public List<CourseSchedule> getCourseSchedules(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList,MusicGroupStudentClassAdjust classAdjust){
         Date date = new Date();
         String musicGroupId = classGroup4MixDto.getMusicGroupId();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -2014,8 +2014,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String classCourseMinute = classGroup4MixDto.getClassCourseMinute();
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
         //获取默认的排课时长
-        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
-        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
+        JSONObject jsonObject = JSON.parseObject(classAdjust.getDefaultCourseTypeMinute());
+
+//        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
+//        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
         long classCourseDuration = Integer.parseInt(jsonObject.get(classGroup4MixDto.getCourseType().getCode()).toString());
 //
         Map<String, Integer> classCourseMinuteMap = JSON.parseObject(classCourseMinute, Map.class);
@@ -2125,15 +2127,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public List<CourseSchedule> autoAdjust(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList){
+    public List<CourseSchedule> autoAdjust(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList,MusicGroupStudentClassAdjust classAdjust){
         Boolean checkFlag = courseScheduleService.checkNewCourseSchedules(courseScheduleList, false, true);
         if(!checkFlag){
             //排课开始时间加一周
             Date stringToDate = DateUtil.stringToDate(classGroup4MixDto.getStartDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
             classGroup4MixDto.setStartDate(DateUtil.format(DateUtil.addDays(stringToDate, 7),DateUtil.ISO_EXPANDED_DATE_FORMAT));
             //再次尝试排课
-            courseScheduleList = getCourseSchedules(classGroup4MixDto,courseScheduleList);
-            autoAdjust(classGroup4MixDto,courseScheduleList);
+            courseScheduleList = getCourseSchedules(classGroup4MixDto,courseScheduleList,classAdjust);
+            autoAdjust(classGroup4MixDto,courseScheduleList,classAdjust);
         }
         return courseScheduleList;
     }
@@ -2160,9 +2162,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
 
+        MusicGroupStudentClassAdjust classAdjust = musicGroupStudentClassAdjustDao.get(classGroup4MixDto.getMusicGroupStudentClassAdjustId());
         //获取默认的排课时长
-        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
-        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
+//        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
+        JSONObject jsonObject = JSON.parseObject(classAdjust.getDefaultCourseTypeMinute());
         long classCourseDuration = Integer.parseInt(jsonObject.get(classGroup4MixDto.getCourseType().getCode()).toString());
         ClassGroup classGroup = classGroup4MixDto.getClassGroup();
         if(classGroup == null){
@@ -2204,12 +2207,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         //排课
         List<CourseSchedule> courseScheduleList = new ArrayList<>();
-        getCourseSchedules(classGroup4MixDto,courseScheduleList);
+        getCourseSchedules(classGroup4MixDto,courseScheduleList,classAdjust);
 
         //自动排课,校验冲突
         if(courseScheduleList.size() > 0){
             //冲突校验
-            courseScheduleList = autoAdjust(classGroup4MixDto,courseScheduleList);
+            courseScheduleList = autoAdjust(classGroup4MixDto,courseScheduleList,classAdjust);
 
             List<Integer> allTeacherIds = classGroupTeacherMapperList.stream()
                     .map(ClassGroupTeacherMapper::getUserId)
@@ -3585,20 +3588,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public Map<Integer,Map<String,MusicGroupOrganizationCourseSettingsDetail>> getDefaultPaymentCalender(List<Integer> classGroupIds) {
+    public Map<String,Object> getDefaultPaymentCalender(List<Integer> classGroupIds) {
         if(classGroupIds == null || classGroupIds.size() == 0){
             throw new BizException("参数校验失败");
         }
+        Map<String,Object> result = new HashMap<>();
         Map<Integer,Map<String,MusicGroupOrganizationCourseSettingsDetail>> resultMap = new HashMap<>();
         //获取默认的排课时长
-        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
-        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
+//        JSONObject jsonObject = JSON.parseObject(classAdjust.getDefaultCourseTypeMinute());
+//        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
+//        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
         //获取所选班级最大剩余课时
         Map<String,Long> map = MapUtil.convertIntegerMap(courseScheduleDao.findClassMaxCourseNumMap(classGroupIds));
         //获取分布默认的课程类型单价
         MusicGroup musicGroup = musicGroupDao.findByClassGroupId(classGroupIds.get(0));
         Map<String,BigDecimal> unitPriceMap = MapUtil.convertIntegerMap(organizationCourseUnitPriceSettingsDao.queryMapByOrganIdAndChargeTypeId(musicGroup.getChargeTypeId(),musicGroup.getOrganId()));
         Set<String> courseTypes = map.keySet();
+        Set<String> groupType = new HashSet<>();
         for (Integer classGroupId : classGroupIds) {
             Map<String,MusicGroupOrganizationCourseSettingsDetail> courseMap = new HashMap<>();
             //获取当前班级剩余课次
@@ -3613,6 +3619,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if(currentNum >= maxNum){
                     continue;
                 }
+                groupType.add(courseType);
                 Long subNum = maxNum - currentNum;
                 //生成缴费项目
                 MusicGroupOrganizationCourseSettingsDetail settingsDetail = new MusicGroupOrganizationCourseSettingsDetail();
@@ -3622,14 +3629,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 }
                 settingsDetail.setCourseTotalNum(subNum.intValue());
                 settingsDetail.setCourseType(CourseScheduleType.valueOf(courseType));
-                settingsDetail.setCourseTotalMinuties(Integer.parseInt(jsonObject.get(courseType).toString()) * subNum.intValue());
-                settingsDetail.setCourseCurrentPrice(unitPrice.multiply(new BigDecimal(settingsDetail.getCourseTotalMinuties())));
-                settingsDetail.setCourseOriginalPrice(settingsDetail.getCourseCurrentPrice());
+                settingsDetail.setUnitPrice(unitPrice);
+//                settingsDetail.setCourseTotalMinuties(Integer.parseInt(jsonObject.get(courseType).toString()) * subNum.intValue());
+//                settingsDetail.setCourseCurrentPrice(unitPrice.multiply(new BigDecimal(settingsDetail.getCourseTotalMinuties())));
+//                settingsDetail.setCourseOriginalPrice(settingsDetail.getCourseCurrentPrice());
                 courseMap.put(courseType,settingsDetail);
             }
             resultMap.put(classGroupId,courseMap);
         }
-        return resultMap;
+        result.put("defaultPaymentCalender",resultMap);
+        result.put("groupTypeSet",groupType);
+        return result;
     }
 
     @Override
@@ -3708,8 +3718,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<Long> studentPaymentIds = courseScheduleStudentPaymentDao.queryStudentNotStartByClassIdsAndStudentIds(classGroupIds,studentIds);
 
         musicGroupStudentClassAdjust.setStudentPaymentIds(JSON.toJSONString(studentPaymentIds));
+        //保存老师选择的课程时长
+        musicGroupStudentClassAdjust.setDefaultCourseTypeMinute(JSON.toJSONString(mergeClassSplitClassAffirmDto.getClassCourseMinuteMap()));
         //计算新增班级的可排课时长,总课次*默认时长  (用学员剩余的课程时长加上购买的时长,可能导致同一班级学员时长不一致)
-        musicGroupStudentClassAdjust.setClassCourseMinute(JSON.toJSONString(findClassCourseMinuteMap(classGroupIds)));
+        musicGroupStudentClassAdjust.setClassCourseMinute(JSON.toJSONString(findClassCourseMinuteMap(classGroupIds,mergeClassSplitClassAffirmDto.getClassCourseMinuteMap())));
         musicGroupStudentClassAdjustDao.insert(musicGroupStudentClassAdjust);
         //如果需要审核,校验参数配置
         checkMergeClassSplitClassAffirmParam(mergeClassSplitClassAffirmDto);
@@ -3812,17 +3824,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public Map<String,Long> findClassCourseMinuteMap(List<Integer> classGroupIds){
+    public Map<String,Long> findClassCourseMinuteMap(List<Integer> classGroupIds,Map<String,Long> classCourseMinuteMap){
         Map<String,Long> resultMap = new HashMap<>();
         //获取默认的排课时长
-        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
-        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
+//        String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
+//        JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
         //获取所选班级最大剩余课时
         Map<String,Long> map = MapUtil.convertIntegerMap(courseScheduleDao.findClassMaxCourseNumMap(classGroupIds));
-        Set<String> courseTypes = map.keySet();
+        Set<String> courseTypes = classCourseMinuteMap.keySet();
         for (String courseType : courseTypes) {
-            //剩余时长*默认排课时长
-            resultMap.put(courseType,Integer.parseInt(jsonObject.get(courseType).toString()) * map.get(courseType));
+//            剩余时长*默认排课时长
+            resultMap.put(courseType,classCourseMinuteMap.get(courseType) * map.get(courseType));
         }
         return resultMap;
     }

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

@@ -324,11 +324,13 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
 
 		//获取默认的排课时长
-		String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
-		JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
+//		classAdjust.getDefaultCourseTypeMinute();
+//		String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
+		JSONObject jsonObject = JSON.parseObject(classAdjust.getDefaultCourseTypeMinute());
 
 		for (Integer studentId : studentIds) {
 			List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = null;
+			BigDecimal typeCourseTotalOriginalPrice = new BigDecimal("0"), typeCourseTotalCurrentPrice = new BigDecimal("0");
 			for (int i = 0; i < courseSchedules.size(); i++) {
 				CourseSchedule courseSchedule = courseSchedules.get(i);
 				//优先处理之前的剩余课程
@@ -366,14 +368,17 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 				MusicGroupPaymentCalenderCourseSettings courseSetting = musicGroupPaymentCalenderCourseSettings.get(0);
 				//课程每分钟原价
 				BigDecimal unitMinuteOriginalPrice = courseSetting.getCourseOriginalPrice().divide(new BigDecimal(courseSetting.getCourseTotalMinuties()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
+
 				//课程每分钟现价
 				BigDecimal unitMinuteCurrentPrice = courseSetting.getCourseCurrentPrice().divide(new BigDecimal(courseSetting.getCourseTotalMinuties()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
 
 				//默认课程时长
 				int courseDuration = Integer.parseInt(jsonObject.get(courseSchedule.getType().getCode()).toString());
 				BigDecimal courseOriginalPrice = unitMinuteOriginalPrice.multiply(new BigDecimal(courseDuration)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
+				typeCourseTotalOriginalPrice = typeCourseTotalOriginalPrice.add(courseOriginalPrice);
 				//课程现价
 				BigDecimal courseCurrentPrice = unitMinuteCurrentPrice.multiply(new BigDecimal(courseDuration)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
+				typeCourseTotalCurrentPrice = typeCourseTotalCurrentPrice.add(courseCurrentPrice);
 				CourseScheduleStudentPayment cssp = new CourseScheduleStudentPayment();
 				cssp.setGroupType(courseSchedule.getGroupType());
 				cssp.setMusicGroupId(courseSchedule.getMusicGroupId());
@@ -381,9 +386,14 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 				cssp.setClassGroupId(courseSchedule.getClassGroupId());
 				cssp.setBatchNo(batchNo);
 				cssp.setUserId(studentId);
-				cssp.setOriginalPrice(courseOriginalPrice);
-				cssp.setExpectPrice(courseCurrentPrice);
 				cssp.setActualPrice(BigDecimal.ZERO);
+				if(courseSchedules.size() - 1 == i){
+					cssp.setOriginalPrice(courseOriginalPrice.add(courseSetting.getCourseOriginalPrice().subtract(typeCourseTotalOriginalPrice)));
+					cssp.setExpectPrice(courseCurrentPrice.add(courseSetting.getCourseCurrentPrice().subtract(typeCourseTotalCurrentPrice)));
+				}else {
+					cssp.setOriginalPrice(courseOriginalPrice);
+					cssp.setExpectPrice(courseCurrentPrice);
+				}
 				courseScheduleStudentPayments.add(cssp);
 				//获取课程类型默认排课时长
 				int typeCourseDuration = Integer.parseInt(jsonObject.get(courseSchedule.getType().getCode()).toString());

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

@@ -21,6 +21,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.entity.*;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,22 +61,10 @@ import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
-import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettings;
-import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettingsDetail;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
-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.MusicGroupStudentClassAdjust;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.OrganizationCourseUnitPriceSettings;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
@@ -921,17 +910,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			return;
 		}
 		List<ClassGroup4MixDto> classGroup4MixDtos = JSON.parseArray(musicGroupStudentClassAdjust.getNewClassGroupJson(), ClassGroup4MixDto.class);
-		//开始排课
-		ClassGroup4MixDto classGroup4MixDto = classGroup4MixDtos.get(0);
-		classGroup4MixDto.setMusicGroupStudentClassAdjustId(musicGroupStudentClassAdjust.getId());
-		classGroup4MixDto.setClassCourseMinute(musicGroupStudentClassAdjust.getClassCourseMinute());
-		List<CourseTimeDto> courseTimeDtoList = classGroup4MixDto.getCourseTimeDtoList();
-		List<CourseTimeDto> courseTimeDtoListBackup = Arrays.asList(new CourseTimeDto[courseTimeDtoList.size()]);
-		try {
-			Collections.copy(courseTimeDtoListBackup,courseTimeDtoList);
-		} catch (Exception e) {
-			throw new BizException("拷贝课程信息异常");
-		}
 
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
 		for (MusicGroupPaymentCalender calender : musicGroupPaymentCalenders) {
@@ -941,11 +919,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			musicGroupPaymentCalenderDetailService.batchAdd(calender.getId(),list2);
 		}
 		//每种课程类型单独排课
-		for (CourseTimeDto courseTimeDto : courseTimeDtoListBackup) {
-			List<CourseTimeDto> courseTimeDtos = new ArrayList<>();
-			courseTimeDtos.add(courseTimeDto);
-			classGroup4MixDto.setCourseTimeDtoList(courseTimeDtos);
-			classGroupService.classGroupAdjust2(classGroup4MixDto);
+		ClassGroup classGroup = null;
+		for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
+			classGroup4MixDto.setClassGroup(classGroup);
+			classGroup4MixDto.setMusicGroupStudentClassAdjustId(musicGroupStudentClassAdjust.getId());
+			classGroup4MixDto.setClassCourseMinute(musicGroupStudentClassAdjust.getClassCourseMinute());
+			classGroup = classGroupService.classGroupAdjust2(classGroup4MixDto);
 		}
 		//排课完成后删除所选课程
 		List<Long> courseIds = JSON.parseArray(musicGroupStudentClassAdjust.getSubLockCourseIds(), Long.class);

+ 379 - 349
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java

@@ -65,7 +65,9 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
-	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    @Autowired
+    private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
 
     @Override
     public BaseDAO<Long, StudentPaymentRouteOrder> getDAO() {
@@ -73,26 +75,26 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
     }
 
     @Override
-	public PageInfo<StudentPaymentRouteOrder> queryAuditList(QueryInfo queryInfo) {
-    	PageInfo<StudentPaymentRouteOrder> pageInfo = new PageInfo<StudentPaymentRouteOrder>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
-		MapUtil.populateMap(params, queryInfo);
-		
-		List<StudentPaymentRouteOrder> dataList = null;
-		int count = studentPaymentRouteOrderDao.queryAuditCount(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = studentPaymentRouteOrderDao.queryAuditPage(params);
-		}
-		if (count == 0) {
-			dataList = new ArrayList<StudentPaymentRouteOrder>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
-	}
-
-	@Override
+    public PageInfo<StudentPaymentRouteOrder> queryAuditList(QueryInfo queryInfo) {
+        PageInfo<StudentPaymentRouteOrder> pageInfo = new PageInfo<StudentPaymentRouteOrder>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<StudentPaymentRouteOrder> dataList = null;
+        int count = studentPaymentRouteOrderDao.queryAuditCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentPaymentRouteOrderDao.queryAuditPage(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<StudentPaymentRouteOrder>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
     public PageInfoOrder<StudentPaymentRouteOrderDto> OrderQueryPage(StudentPaymentOrderQueryInfo queryInfo) {
         PageInfoOrder<StudentPaymentRouteOrderDto> pageInfo = new PageInfoOrder<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<String, Object>();
@@ -137,152 +139,177 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
         studentPaymentRouteOrder.setRouteAmount(studentPaymentRouteOrder.getSaleAmount().add(studentPaymentRouteOrder.getServiceAmount()));
         studentPaymentRouteOrder.setRouteBalanceAmount(BigDecimal.ZERO);
         studentPaymentRouteOrder.setFeeFlag("N");
-        
+
         studentPaymentRouteOrderDao.insert(studentPaymentRouteOrder);
-        
+
         return studentPaymentRouteOrder;
     }
 
     @Override
-	public StudentPaymentRouteOrder updateOutOrder(StudentPaymentRouteOrder studentPaymentRouteOrder) {
-    	Date nowDate = new Date();
-    	studentPaymentRouteOrder.setAuditStatus(AuditStatusEnum.ING);
+    public StudentPaymentRouteOrder updateOutOrder(StudentPaymentRouteOrder studentPaymentRouteOrder) {
+        Date nowDate = new Date();
+        studentPaymentRouteOrder.setAuditStatus(AuditStatusEnum.ING);
         studentPaymentRouteOrder.setUpdateTime(nowDate);
         studentPaymentRouteOrder.setRouteAmount(studentPaymentRouteOrder.getSaleAmount().add(studentPaymentRouteOrder.getServiceAmount()));
         studentPaymentRouteOrder.setRouteBalanceAmount(BigDecimal.ZERO);
         studentPaymentRouteOrder.setFeeFlag("N");
-        
+
         studentPaymentRouteOrderDao.update(studentPaymentRouteOrder);
-        
-		return studentPaymentRouteOrder;
-	}
 
-	@Override
+        return studentPaymentRouteOrder;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-	public boolean auditOutOrder(Long studentPaymentRouteOrderId, AuditStatusEnum auditStatus, String memo, Integer operatorId) {
-		StudentPaymentRouteOrder studentPaymentRouteOrder = studentPaymentRouteOrderDao.get(studentPaymentRouteOrderId);
-		if(studentPaymentRouteOrder == null){
-			throw new BizException("查询订单信息失败");
-		}
-		
-		if(studentPaymentRouteOrder.getAuditStatus() != AuditStatusEnum.ING){
-			throw new BizException("只有“审核中”的订单才能审核");
-		}
-		
-		Date nowDate = new Date();
-		
-		studentPaymentRouteOrder.setUpdateBy(operatorId);
-		studentPaymentRouteOrder.setUpdateTime(nowDate);
-		studentPaymentRouteOrder.setAuditComment(memo);
-		studentPaymentRouteOrder.setAuditStatus(auditStatus);
-		
-		studentPaymentRouteOrderDao.update(studentPaymentRouteOrder);
-		
-		if(auditStatus == AuditStatusEnum.PASS){
-			StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-			studentPaymentOrder.setActualAmount(studentPaymentRouteOrder.getRouteAmount());
-			studentPaymentOrder.setMusicGroupId(studentPaymentRouteOrder.getSchoolId()+ "");
-			studentPaymentOrder.setType(OrderTypeEnum.OUTORDER);
-			studentPaymentOrder.setMerNos(studentPaymentRouteOrder.getMerNo());
-			studentPaymentOrder.setOrderNo(studentPaymentRouteOrder.getOrderNo());
-			studentPaymentOrder.setGroupType(GroupType.OUTORDER);
-			studentPaymentOrder.setOrganId(studentPaymentRouteOrder.getRouteOrganId());
-			studentPaymentOrder.setExpectAmount(studentPaymentRouteOrder.getRouteAmount());
-			studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
-			studentPaymentOrder.setCreateTime(studentPaymentRouteOrder.getPayTime());
-			studentPaymentOrder.setUpdateTime(nowDate);
-			studentPaymentOrder.setMemo(studentPaymentRouteOrder.getMemo());
-			studentPaymentOrder.setUserId(studentPaymentRouteOrder.getUserId());
-			studentPaymentOrder.setPayTime(studentPaymentRouteOrder.getPayTime());
-			studentPaymentOrder.setTransNo(studentPaymentRouteOrder.getTransNo());
-			
-	        studentPaymentRouteOrderDao.insertOrder(studentPaymentOrder);
-	        
-	        if (StringUtils.isNoneBlank(studentPaymentRouteOrder.getGoodsJson())) {
-	            BigDecimal hasRouteAmount = BigDecimal.ZERO;
-	            BigDecimal goodsTotalPrice = BigDecimal.ZERO;
-
-	            List<Integer> goodsIdList = new ArrayList<>();
-	            JSONObject jsonObj = JSON.parseObject(studentPaymentRouteOrder.getGoodsJson());
-	            for (Entry<String, Object> goodsMap : jsonObj.entrySet()) {
-	            	Integer goodsId = Integer.parseInt(goodsMap.getKey());
-	            	Integer nums = Integer.parseInt(goodsMap.getValue().toString());
-	                Goods goods = goodsDao.get(goodsId);
-	                goodsTotalPrice = goodsTotalPrice.add(goods.getGroupPurchasePrice().multiply(new BigDecimal(nums)));
-	                for (int i = 0; i < nums; i++) {
-	                    goodsIdList.add(goodsId);
-	                }
-	            }
-	            List<SellOrder> sellOrderList = goodsService.subtractStock(goodsIdList, AccountType.INTERNAL);
-
-	            int i = 1;
-	            for (Entry<String, Object> goodsMap : jsonObj.entrySet()) {
-	            	Integer goodsId = Integer.parseInt(goodsMap.getKey());
-	            	Integer nums = Integer.parseInt(goodsMap.getValue().toString());
-	                Goods goods = goodsDao.get(goodsId);
-
-	                BigDecimal actualAmount = BigDecimal.ZERO;
-	                if (goodsTotalPrice.compareTo(BigDecimal.ZERO) != 0) {
-	                    actualAmount = studentPaymentRouteOrder.getSaleAmount().multiply(goods.getGroupPurchasePrice().multiply(new BigDecimal(nums))).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-	                }
-	                if (i == jsonObj.entrySet().size()) {
-	                    actualAmount = studentPaymentRouteOrder.getSaleAmount().subtract(hasRouteAmount);
-	                }
-	                hasRouteAmount = hasRouteAmount.add(actualAmount);
-	                i++;
-
-	                int complementNum = goods.getComplementGoodsIdList() == null ? 1 : goods.getComplementGoodsIdList().split(",").length;
-	                int goodsNum = nums * complementNum;
-	                BigDecimal complementPrice = goods.getGroupPurchasePrice().multiply(new BigDecimal(nums));
-	                Map<Integer, BigDecimal> complementGoodsPrice = new HashMap<>();
-	                complementGoodsPrice.put(goods.getId(), goods.getGroupPurchasePrice());
-	                if (goods.getComplementGoodsIdList() != null) {
-	                    List<Goods> complementGoodies = goodsDao.findGoodsByIds(goods.getComplementGoodsIdList());
-	                    complementGoodsPrice = complementGoodies.stream().collect(Collectors.toMap(Goods::getId, Goods::getGroupPurchasePrice));
-	                    complementPrice = complementGoodies.stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(nums));
-	                }
-
-	                BigDecimal hasRouteSellOrderActualAmount = BigDecimal.ZERO;
-	                for (SellOrder sellOrder : sellOrderList) {
-	                    if (!goodsMap.getKey().equals(sellOrder.getParentGoodsId()) && !goodsMap.getKey().equals(sellOrder.getGoodsId().toString())) {
-	                        continue;
-	                    }
-	                    BigDecimal sellOrderActualAmount = BigDecimal.ZERO;
-	                    if (complementPrice.compareTo(BigDecimal.ZERO) > 0) {
-	                        sellOrderActualAmount = complementGoodsPrice.get(sellOrder.getGoodsId()).multiply(new BigDecimal(sellOrder.getNum())).multiply(actualAmount).divide(complementPrice, 2, BigDecimal.ROUND_HALF_UP);
-	                    }
-	                    goodsNum = goodsNum - sellOrder.getNum();
-	                    if (goodsNum <= 0) {
-	                        sellOrderActualAmount = actualAmount.subtract(hasRouteSellOrderActualAmount);
-	                    }
-	                    hasRouteSellOrderActualAmount = hasRouteSellOrderActualAmount.add(sellOrderActualAmount);
-
-	                    sellOrder.setSellTime(studentPaymentRouteOrder.getPayTime());
-	                    sellOrder.setOrganId(studentPaymentRouteOrder.getRouteOrganId());
-	                    sellOrder.setCooperationOrganId(studentPaymentRouteOrder.getSchoolId());
-	                    sellOrder.setTransNo(studentPaymentRouteOrder.getTransNo());
-	                    sellOrder.setOrderId(studentPaymentOrder.getId());
-	                    sellOrder.setOrderNo(studentPaymentRouteOrder.getOrderNo());
-	                    sellOrder.setActualAmount(sellOrderActualAmount);
-	                    sellOrder.setBalanceAmount(BigDecimal.ZERO);
-	                    sellOrder.setExpectAmount(sellOrderActualAmount);
-	                    sellOrder.setUserId(studentPaymentRouteOrder.getUserId());
-	                    sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel());
-	                    sellOrder.setMerNo(studentPaymentRouteOrder.getMerNo());
-	                    sellOrder.setSellTime(studentPaymentRouteOrder.getCreateTime());
-	                    sellOrder.setCreateIme(nowDate);
-	                    sellOrder.setUpdateTime(nowDate);
-	                    sellOrder.setType(SellTypeEnum.SCHOOL_BUY);
-	                }
-	            }
-	            sellOrderDao.batchInsert(sellOrderList);
-	        }
-
-		}
-		return true;
-	}
-
-	@Override
+    public boolean auditOutOrder(Long studentPaymentRouteOrderId, AuditStatusEnum auditStatus, String memo, Integer operatorId) {
+        StudentPaymentRouteOrder studentPaymentRouteOrder = studentPaymentRouteOrderDao.get(studentPaymentRouteOrderId);
+        if (studentPaymentRouteOrder == null) {
+            throw new BizException("查询订单信息失败");
+        }
+
+        if (studentPaymentRouteOrder.getAuditStatus() != AuditStatusEnum.ING) {
+            throw new BizException("只有“审核中”的订单才能审核");
+        }
+
+        Date nowDate = new Date();
+
+        studentPaymentRouteOrder.setUpdateBy(operatorId);
+        studentPaymentRouteOrder.setUpdateTime(nowDate);
+        studentPaymentRouteOrder.setAuditComment(memo);
+        studentPaymentRouteOrder.setAuditStatus(auditStatus);
+
+        studentPaymentRouteOrderDao.update(studentPaymentRouteOrder);
+
+        if (auditStatus == AuditStatusEnum.PASS) {
+            StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+            studentPaymentOrder.setActualAmount(studentPaymentRouteOrder.getRouteAmount());
+            studentPaymentOrder.setMusicGroupId(studentPaymentRouteOrder.getSchoolId() + "");
+            studentPaymentOrder.setType(OrderTypeEnum.OUTORDER);
+            studentPaymentOrder.setMerNos(studentPaymentRouteOrder.getMerNo());
+            studentPaymentOrder.setOrderNo(studentPaymentRouteOrder.getOrderNo());
+            studentPaymentOrder.setGroupType(GroupType.OUTORDER);
+            studentPaymentOrder.setOrganId(studentPaymentRouteOrder.getRouteOrganId());
+            studentPaymentOrder.setExpectAmount(studentPaymentRouteOrder.getRouteAmount());
+            studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
+            studentPaymentOrder.setCreateTime(studentPaymentRouteOrder.getPayTime());
+            studentPaymentOrder.setUpdateTime(nowDate);
+            studentPaymentOrder.setMemo(studentPaymentRouteOrder.getMemo());
+            studentPaymentOrder.setUserId(studentPaymentRouteOrder.getUserId());
+            studentPaymentOrder.setPayTime(studentPaymentRouteOrder.getPayTime());
+            studentPaymentOrder.setTransNo(studentPaymentRouteOrder.getTransNo());
+
+            studentPaymentRouteOrderDao.insertOrder(studentPaymentOrder);
+
+            if (StringUtils.isNoneBlank(studentPaymentRouteOrder.getGoodsJson())) {
+                BigDecimal hasRouteAmount = BigDecimal.ZERO;
+                BigDecimal goodsTotalPrice = BigDecimal.ZERO;
+
+                List<Integer> goodsIdList = new ArrayList<>();
+                JSONObject jsonObj = JSON.parseObject(studentPaymentRouteOrder.getGoodsJson());
+                for (Entry<String, Object> goodsMap : jsonObj.entrySet()) {
+                    Integer goodsId = Integer.parseInt(goodsMap.getKey());
+                    Integer nums = Integer.parseInt(goodsMap.getValue().toString());
+                    Goods goods = goodsDao.get(goodsId);
+                    goodsTotalPrice = goodsTotalPrice.add(goods.getGroupPurchasePrice().multiply(new BigDecimal(nums)));
+                    for (int i = 0; i < nums; i++) {
+                        goodsIdList.add(goodsId);
+                    }
+                }
+                List<SellOrder> sellOrderList = goodsService.subtractStock(goodsIdList, AccountType.INTERNAL);
+
+                int i = 1;
+                for (Entry<String, Object> goodsMap : jsonObj.entrySet()) {
+                    Integer goodsId = Integer.parseInt(goodsMap.getKey());
+                    Integer nums = Integer.parseInt(goodsMap.getValue().toString());
+                    Goods goods = goodsDao.get(goodsId);
+
+                    BigDecimal actualAmount = BigDecimal.ZERO;
+                    if (goodsTotalPrice.compareTo(BigDecimal.ZERO) != 0) {
+                        actualAmount = studentPaymentRouteOrder.getSaleAmount().multiply(goods.getGroupPurchasePrice().multiply(new BigDecimal(nums))).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    if (i == jsonObj.entrySet().size()) {
+                        actualAmount = studentPaymentRouteOrder.getSaleAmount().subtract(hasRouteAmount);
+                    }
+                    hasRouteAmount = hasRouteAmount.add(actualAmount);
+                    i++;
+
+                    int complementNum = goods.getComplementGoodsIdList() == null ? 1 : goods.getComplementGoodsIdList().split(",").length;
+                    int goodsNum = nums * complementNum;
+                    BigDecimal complementPrice = goods.getGroupPurchasePrice().multiply(new BigDecimal(nums));
+                    Map<Integer, BigDecimal> complementGoodsPrice = new HashMap<>();
+                    complementGoodsPrice.put(goods.getId(), goods.getGroupPurchasePrice());
+                    if (goods.getComplementGoodsIdList() != null) {
+                        List<Goods> complementGoodies = goodsDao.findGoodsByIds(goods.getComplementGoodsIdList());
+                        complementGoodsPrice = complementGoodies.stream().collect(Collectors.toMap(Goods::getId, Goods::getGroupPurchasePrice));
+                        complementPrice = complementGoodies.stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(nums));
+                    }
+
+                    BigDecimal hasRouteSellOrderActualAmount = BigDecimal.ZERO;
+                    for (SellOrder sellOrder : sellOrderList) {
+                        if (!goodsMap.getKey().equals(sellOrder.getParentGoodsId()) && !goodsMap.getKey().equals(sellOrder.getGoodsId().toString())) {
+                            continue;
+                        }
+                        BigDecimal sellOrderActualAmount = BigDecimal.ZERO;
+                        if (complementPrice.compareTo(BigDecimal.ZERO) > 0) {
+                            sellOrderActualAmount = complementGoodsPrice.get(sellOrder.getGoodsId()).multiply(new BigDecimal(sellOrder.getNum())).multiply(actualAmount).divide(complementPrice, 2, BigDecimal.ROUND_HALF_UP);
+                        }
+                        goodsNum = goodsNum - sellOrder.getNum();
+                        if (goodsNum <= 0) {
+                            sellOrderActualAmount = actualAmount.subtract(hasRouteSellOrderActualAmount);
+                        }
+                        hasRouteSellOrderActualAmount = hasRouteSellOrderActualAmount.add(sellOrderActualAmount);
+
+                        sellOrder.setSellTime(studentPaymentRouteOrder.getPayTime());
+                        sellOrder.setOrganId(studentPaymentRouteOrder.getRouteOrganId());
+                        sellOrder.setCooperationOrganId(studentPaymentRouteOrder.getSchoolId());
+                        sellOrder.setTransNo(studentPaymentRouteOrder.getTransNo());
+                        sellOrder.setOrderId(studentPaymentOrder.getId());
+                        sellOrder.setOrderNo(studentPaymentRouteOrder.getOrderNo());
+                        sellOrder.setActualAmount(sellOrderActualAmount);
+                        sellOrder.setBalanceAmount(BigDecimal.ZERO);
+                        sellOrder.setExpectAmount(sellOrderActualAmount);
+                        sellOrder.setUserId(studentPaymentRouteOrder.getUserId());
+                        sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel());
+                        sellOrder.setMerNo(studentPaymentRouteOrder.getMerNo());
+                        sellOrder.setSellTime(studentPaymentRouteOrder.getCreateTime());
+                        sellOrder.setCreateIme(nowDate);
+                        sellOrder.setUpdateTime(nowDate);
+                        sellOrder.setType(SellTypeEnum.SCHOOL_BUY);
+                    }
+                }
+                sellOrderDao.batchInsert(sellOrderList);
+            }
+
+            if (studentPaymentRouteOrder.getCalenderId() == null) {
+                return true;
+            }
+
+            //根据学校缴费项id,确定缴费状态
+            BigDecimal amount = studentPaymentRouteOrderDao.sumAmountByCalenderId(studentPaymentRouteOrder.getCalenderId());
+            List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.getCalenderDetailWithCalender(studentPaymentRouteOrder.getCalenderId());
+            BigDecimal schoolNeedPayAmount = calenderDetails.stream().map(MusicGroupPaymentCalenderDetail::getExpectAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderDao.get(studentPaymentRouteOrder.getCalenderId());
+
+            if (amount.compareTo(schoolNeedPayAmount) >= 0 &&
+                    !musicGroupPaymentCalender.getStatus().equals(MusicGroupPaymentCalender.PaymentCalenderStatusEnum.PAID)) {
+                musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getExpectNum());
+                musicGroupPaymentCalender.setStatus(MusicGroupPaymentCalender.PaymentCalenderStatusEnum.PAID);
+                musicGroupPaymentCalenderDao.update(musicGroupPaymentCalender);
+
+                for (MusicGroupPaymentCalenderDetail calenderDetail : calenderDetails) {
+                    calenderDetail.setActualAmount(calenderDetail.getExpectAmount());
+                    calenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+                    calenderDetail.setPayTime(nowDate);
+                    calenderDetail.setUpdateTime(nowDate);
+                }
+                musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
+            }
+
+        }
+        return true;
+    }
+
+    @Override
     public StudentPaymentRouteOrder addRouteOrder(String orderNo, Integer routeOrganId, BigDecimal routeBalanceAmount) {
         StudentPaymentRouteOrder studentPaymentRouteOrder = new StudentPaymentRouteOrder();
         studentPaymentRouteOrder.setOrderNo(orderNo);
@@ -314,199 +341,202 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
     }
 
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public HttpResponseResult<List<StudentPaymentRouteOrder>> importRouteOrder(MultipartFile file) throws Exception{
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if(sysUser == null || sysUser.getId() == null){
-			throw new BizException("用户信息获取失败");
-		}
-		Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(new ByteArrayInputStream(file.getBytes()), 2, file.getOriginalFilename());
-		InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
-		Map<String,String> columns = IniFileUtil.readIniFile(inputStream, TemplateTypeEnum.ROUTE_ORDER.getMsg());
-		List<StudentPaymentRouteOrder> studentPaymentRouteOrders = new ArrayList<>();
-		Map<String, Integer> organMap = getMap("organization", "name_", "id_", true, String.class, Integer.class);
-		Map<String, Integer> cooperationOrganMap = getMap("cooperation_organ", "name_", "id_", true, String.class, Integer.class);
-		StringBuffer sb = new StringBuffer();
-		for (String e : sheetsListMap.keySet()) {
-			List<Map<String, Object>> sheet = sheetsListMap.get(e);
-			List<Object> collect = sheet.stream().map(m -> m.get("交易流水号")).collect(Collectors.toList());
-			if(collect == null || collect.size() == 0){
-				continue;
-			}
-			List<String> list = studentPaymentRouteOrderDao.countByTransNo(collect);
-			if(list != null && list.size() > 0){
-				throw new BizException("导入数据错误  重复的交易流水号:{}",list.get(0));
-			}
-
-			List<Long> calenderIds = sheet.stream().map(m -> Long.parseLong(m.get("学校缴费项id").toString())).collect(Collectors.toList());
-			List<MusicGroupPaymentCalender> calenders = musicGroupPaymentCalenderDao.getPaymentCalenderWithCalenderIdsAndPayUserType(calenderIds, MusicGroupPaymentCalender.PayUserType.SCHOOL);
-			Map<String, Long> schoolCalender = calenders.stream().collect(Collectors.toMap(m->m.getId().toString(), MusicGroupPaymentCalender::getId));
-
-			valueIsNull: for (int j = 0; j < sheet.size(); j++) {
-				int rowNum = j + 2;
-				Map<String, Object> row = sheet.get(j);
-				if (row.size() == 0){
-					continue;
-				}
-				JSONObject objectMap = new JSONObject();
-				Iterator<String> iterator = row.keySet().iterator();
-				for (int i = 0; i < row.keySet().size(); i++) {
-					String s = iterator.next();
-					if(!columns.containsKey(s)){
-						continue;
-					}
-					String columnValue = columns.get(s);
-					if (columnValue.equals("incomeType")) {
-						if(StringUtils.isEmpty(row.get(s).toString())){
-							sb.append("第" + rowNum).append("行数据导入失败:收入类型不可为空;");
-							continue valueIsNull;
-						} else {
-							objectMap.put("incomeType", row.get(s));
-						}
-					}
-					if (columnValue.equals("transNo")) {
-						if(StringUtils.isEmpty(row.get(s).toString())){
-							sb.append("第" + rowNum).append("行数据导入失败:交易流水号不可为空;");
-							continue valueIsNull;
-						}
-					}
-					if (columnValue.equals("payTime") && StringUtils.isEmpty(row.get(s).toString())) {
-						if(StringUtils.isEmpty(row.get(s).toString())){
-							sb.append("第" + rowNum).append("行数据导入失败:交易日期不可为空;");
-							continue valueIsNull;
-						}
-					}
-					if (columnValue.equals("merNo")) {
-						if(StringUtils.isEmpty(row.get(s).toString())){
-							sb.append("第" + rowNum).append("行数据导入失败:收款账户不可为空;");
-							continue valueIsNull;
-						}else {
-							objectMap.put("merNo", row.get(s));
-						}
-						continue;
-					}
-					if (columnValue.equals("organName") && StringUtils.isNotEmpty(row.get(s).toString())) {
-						Integer integer = organMap.get(row.get(s));
-						if(integer == null){
-							sb.append("第" + rowNum).append("行数据导入失败:分部名称不存在;");
-							continue valueIsNull;
-						}else {
-							objectMap.put("routeOrganId", integer);
-						}
-						continue;
-					}
-					if (columnValue.equals("cooperationOrganName") && StringUtils.isNotEmpty(row.get(s).toString())) {
-						Integer integer = cooperationOrganMap.get(row.get(s));
-						if(integer != null){
-							objectMap.put("schoolId", integer);
-						}else {
-							sb.append("第" + rowNum).append("行数据导入失败:所属学校名称不存在;");
-							continue valueIsNull;
-						}
-						continue;
-					}
-					if (columnValue.equals("userId") && StringUtils.isNotEmpty(row.get(s).toString())) {
-						Boolean flag = teacherDao.existUser(row.get(s));
-						if(flag){
-							objectMap.put("userId", row.get(s));
-						}else {
-							sb.append("第" + rowNum).append("行数据导入失败:学员编号不存在;");
-							continue valueIsNull;
-						}
-						continue;
-					}
-					if (columnValue.equals("payTime")) {
-						String toString = row.get(s).toString();
-						Date date = DateUtil.stringToDate(toString, DateUtil.DEFAULT_PATTERN);
-						if(date == null){
-							sb.append("第" + rowNum).append("行数据导入失败:交易日期格式错误;");
-							continue valueIsNull;
-						}else {
-							objectMap.put(columnValue, DateUtil.format(date,DateUtil.DEFAULT_PATTERN));
-						}
-						continue;
-					}
-					if (columnValue.equals("calenderId")) {
-						if(StringUtils.isEmpty(row.get(s).toString())){
-							sb.append("第" + rowNum).append("行数据导入失败:学校缴费项id不可为空;");
-							continue valueIsNull;
-						}else if(!schoolCalender.containsKey(row.get(s).toString())) {
-							sb.append("第" + rowNum).append("行数据导入失败:学校缴费项id不存在;");
-						}else {
-							objectMap.put("calenderId", row.get(s));
-						}
-						continue;
-					}
-					objectMap.put(columnValue, row.get(s));
-				}
-				StudentPaymentRouteOrder studentPaymentRouteOrder = JSONObject.parseObject(objectMap.toJSONString(),StudentPaymentRouteOrder.class);
-				//销售收入
-				if("销售收入".equals(studentPaymentRouteOrder.getIncomeType())){
-					if(studentPaymentRouteOrder.getSaleAmount() == null){
-						throw new BizException("导入失败:交易流水号{},收入类型为销售收入时,销售金额不可为空",studentPaymentRouteOrder.getTransNo());
-					}
-					studentPaymentRouteOrder.setServiceAmount(null);
-					String goodsIds = studentPaymentRouteOrder.getGoodsIds();
-					String goodsNums = studentPaymentRouteOrder.getGoodsNums();
-
-					if(StringUtils.isEmpty(goodsNums)){
-						throw new BizException("导入失败:有销售金额时商品数量必填");
-					}
-					if(StringUtils.isEmpty(goodsIds)){
-						throw new BizException("导入失败:有销售金额时商品编号必填");
-					}
-					List<String> goodsIdList = new ArrayList(Arrays.asList(goodsIds.split(",")));
-					List<String> goodsNumList = new ArrayList(Arrays.asList(goodsNums.split(",")));
-					if(goodsIdList.size() != goodsNumList.size()){
-						throw new BizException("导入失败:商品编号和商品数量不一致");
-					}
-					JSONArray goodsJSON = new JSONArray();
-					for (int i = 0; i < goodsIdList.size(); i++) {
-						if(!goodsDao.findByIdAndStatus(goodsIdList.get(i), 1)){
-							throw new BizException("导入失败:商品编号{}不存在",goodsIdList.get(i));
-						}
-						try {
-							int goodsNum = Integer.parseInt(goodsNumList.get(i));
-							JSONObject jsonObject = new JSONObject();
-							jsonObject.put(goodsIdList.get(i),goodsNum);
-							goodsJSON.add(jsonObject);
-						}catch (Exception e1){
-							throw new BizException("导入失败:商品数量{}填写错误",goodsNumList.get(i));
-						}
-					}
-					studentPaymentRouteOrder.setGoodsJson(goodsJSON.toJSONString());
-					//服务收入
-				}else {
-					studentPaymentRouteOrder.setSaleAmount(null);
-					if(studentPaymentRouteOrder.getServiceAmount() == null){
-						throw new BizException("导入失败:交易流水号{},收入类型为服务收入时,服务金额不可为空",studentPaymentRouteOrder.getTransNo());
-					}
-				}
-				studentPaymentRouteOrder.setCreateBy(sysUser.getId());
-				studentPaymentRouteOrder.setUpdateBy(sysUser.getId());
-				studentPaymentRouteOrder.setUserId(sysUser.getId());
-				studentPaymentRouteOrders.add(studentPaymentRouteOrder);
-			}
-		}
-		if(studentPaymentRouteOrders.size() > 0){
-			Map<String, List<StudentPaymentRouteOrder>> stringListMap = studentPaymentRouteOrders.stream().collect(Collectors.groupingBy(StudentPaymentRouteOrder::getTransNo));
-			if(stringListMap.size() != studentPaymentRouteOrders.size()){
-				throw new BizException("导入失败:请勿录入重复的交易流水号");
-			}
-			studentPaymentRouteOrderDao.batchAdd(studentPaymentRouteOrders);
-		}else {
-			throw new BizException("导入失败:没有可以录入的数据");
-		}
-		HttpResponseResult httpResponseResult = new HttpResponseResult();
-		httpResponseResult.setData(studentPaymentRouteOrders);
-		httpResponseResult.setMsg(sb.toString());
-		if(StringUtils.isNotEmpty(sb.toString())){
-			httpResponseResult.setCode(0);
-		}else {
-			httpResponseResult.setCode(200);
-		}
-		return httpResponseResult;
-	}
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResponseResult<List<StudentPaymentRouteOrder>> importRouteOrder(MultipartFile file) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null || sysUser.getId() == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(new ByteArrayInputStream(file.getBytes()), 2, file.getOriginalFilename());
+        InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
+        Map<String, String> columns = IniFileUtil.readIniFile(inputStream, TemplateTypeEnum.ROUTE_ORDER.getMsg());
+        List<StudentPaymentRouteOrder> studentPaymentRouteOrders = new ArrayList<>();
+        Map<String, Integer> organMap = getMap("organization", "name_", "id_", true, String.class, Integer.class);
+        Map<String, Integer> cooperationOrganMap = getMap("cooperation_organ", "name_", "id_", true, String.class, Integer.class);
+        StringBuffer sb = new StringBuffer();
+        for (String e : sheetsListMap.keySet()) {
+            List<Map<String, Object>> sheet = sheetsListMap.get(e);
+            List<Object> collect = sheet.stream().map(m -> m.get("交易流水号")).collect(Collectors.toList());
+            if (collect == null || collect.size() == 0) {
+                continue;
+            }
+            List<String> list = studentPaymentRouteOrderDao.countByTransNo(collect);
+            if (list != null && list.size() > 0) {
+                throw new BizException("导入数据错误  重复的交易流水号:{}", list.get(0));
+            }
+
+            List<Long> calenderIds = sheet.stream().map(m -> Long.parseLong(m.get("学校缴费项id").toString())).collect(Collectors.toList());
+            List<MusicGroupPaymentCalender> calenders = musicGroupPaymentCalenderDao.getPaymentCalenderWithCalenderIdsAndPayUserType(calenderIds, MusicGroupPaymentCalender.PayUserType.SCHOOL);
+            Map<String, Long> schoolCalender = calenders.stream().collect(Collectors.toMap(m -> m.getId().toString(), MusicGroupPaymentCalender::getId));
+
+            valueIsNull:
+            for (int j = 0; j < sheet.size(); j++) {
+                int rowNum = j + 2;
+                Map<String, Object> row = sheet.get(j);
+                if (row.size() == 0) {
+                    continue;
+                }
+                JSONObject objectMap = new JSONObject();
+                Iterator<String> iterator = row.keySet().iterator();
+                for (int i = 0; i < row.keySet().size(); i++) {
+                    String s = iterator.next();
+                    if (!columns.containsKey(s)) {
+                        continue;
+                    }
+                    String columnValue = columns.get(s);
+                    if (columnValue.equals("incomeType")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:收入类型不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put("incomeType", row.get(s));
+                        }
+                    }
+                    if (columnValue.equals("transNo")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:交易流水号不可为空;");
+                            continue valueIsNull;
+                        }
+                    }
+                    if (columnValue.equals("payTime") && StringUtils.isEmpty(row.get(s).toString())) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:交易日期不可为空;");
+                            continue valueIsNull;
+                        }
+                    }
+                    if (columnValue.equals("merNo")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:收款账户不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put("merNo", row.get(s));
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("organName") && StringUtils.isNotEmpty(row.get(s).toString())) {
+                        Integer integer = organMap.get(row.get(s));
+                        if (integer == null) {
+                            sb.append("第" + rowNum).append("行数据导入失败:分部名称不存在;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put("routeOrganId", integer);
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("cooperationOrganName") && StringUtils.isNotEmpty(row.get(s).toString())) {
+                        Integer integer = cooperationOrganMap.get(row.get(s));
+                        if (integer != null) {
+                            objectMap.put("schoolId", integer);
+                        } else {
+                            sb.append("第" + rowNum).append("行数据导入失败:所属学校名称不存在;");
+                            continue valueIsNull;
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("userId") && StringUtils.isNotEmpty(row.get(s).toString())) {
+                        Boolean flag = teacherDao.existUser(row.get(s));
+                        if (flag) {
+                            objectMap.put("userId", row.get(s));
+                        } else {
+                            sb.append("第" + rowNum).append("行数据导入失败:学员编号不存在;");
+                            continue valueIsNull;
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("payTime")) {
+                        String toString = row.get(s).toString();
+                        Date date = DateUtil.stringToDate(toString, DateUtil.DEFAULT_PATTERN);
+                        if (date == null) {
+                            sb.append("第" + rowNum).append("行数据导入失败:交易日期格式错误;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, DateUtil.format(date, DateUtil.DEFAULT_PATTERN));
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("calenderId")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:学校缴费项id不可为空;");
+                            continue valueIsNull;
+                        } else if (!schoolCalender.containsKey(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:学校缴费项id不存在;");
+                        } else {
+                            objectMap.put("calenderId", row.get(s));
+                        }
+                        continue;
+                    }
+                    objectMap.put(columnValue, row.get(s));
+                }
+                StudentPaymentRouteOrder studentPaymentRouteOrder = JSONObject.parseObject(objectMap.toJSONString(), StudentPaymentRouteOrder.class);
+                //销售收入
+                if ("销售收入".equals(studentPaymentRouteOrder.getIncomeType())) {
+                    if (studentPaymentRouteOrder.getSaleAmount() == null) {
+                        throw new BizException("导入失败:交易流水号{},收入类型为销售收入时,销售金额不可为空", studentPaymentRouteOrder.getTransNo());
+                    }
+                    studentPaymentRouteOrder.setServiceAmount(BigDecimal.ZERO);
+                    String goodsIds = studentPaymentRouteOrder.getGoodsIds();
+                    String goodsNums = studentPaymentRouteOrder.getGoodsNums();
+
+                    if (StringUtils.isEmpty(goodsNums)) {
+                        throw new BizException("导入失败:有销售金额时商品数量必填");
+                    }
+                    if (StringUtils.isEmpty(goodsIds)) {
+                        throw new BizException("导入失败:有销售金额时商品编号必填");
+                    }
+                    List<String> goodsIdList = new ArrayList(Arrays.asList(goodsIds.split(",")));
+                    List<String> goodsNumList = new ArrayList(Arrays.asList(goodsNums.split(",")));
+                    if (goodsIdList.size() != goodsNumList.size()) {
+                        throw new BizException("导入失败:商品编号和商品数量不一致");
+                    }
+                    JSONArray goodsJSON = new JSONArray();
+                    for (int i = 0; i < goodsIdList.size(); i++) {
+                        if (!goodsDao.findByIdAndStatus(goodsIdList.get(i), 1)) {
+                            throw new BizException("导入失败:商品编号{}不存在", goodsIdList.get(i));
+                        }
+                        try {
+                            int goodsNum = Integer.parseInt(goodsNumList.get(i));
+                            JSONObject jsonObject = new JSONObject();
+                            jsonObject.put(goodsIdList.get(i), goodsNum);
+                            goodsJSON.add(jsonObject);
+                        } catch (Exception e1) {
+                            throw new BizException("导入失败:商品数量{}填写错误", goodsNumList.get(i));
+                        }
+                    }
+                    studentPaymentRouteOrder.setGoodsJson(goodsJSON.toJSONString());
+                    //服务收入
+                } else {
+                    studentPaymentRouteOrder.setSaleAmount(BigDecimal.ZERO);
+                    if (studentPaymentRouteOrder.getServiceAmount() == null) {
+                        throw new BizException("导入失败:交易流水号{},收入类型为服务收入时,服务金额不可为空", studentPaymentRouteOrder.getTransNo());
+                    }
+                }
+                studentPaymentRouteOrder.setRouteBalanceAmount(BigDecimal.ZERO);
+                studentPaymentRouteOrder.setRouteAmount(studentPaymentRouteOrder.getSaleAmount().add(studentPaymentRouteOrder.getServiceAmount()));
+                studentPaymentRouteOrder.setCreateBy(sysUser.getId());
+                studentPaymentRouteOrder.setUpdateBy(sysUser.getId());
+                studentPaymentRouteOrder.setUserId(sysUser.getId());
+                studentPaymentRouteOrders.add(studentPaymentRouteOrder);
+            }
+        }
+        if (studentPaymentRouteOrders.size() > 0) {
+            Map<String, List<StudentPaymentRouteOrder>> stringListMap = studentPaymentRouteOrders.stream().collect(Collectors.groupingBy(StudentPaymentRouteOrder::getTransNo));
+            if (stringListMap.size() != studentPaymentRouteOrders.size()) {
+                throw new BizException("导入失败:请勿录入重复的交易流水号");
+            }
+            studentPaymentRouteOrderDao.batchAdd(studentPaymentRouteOrders);
+        } else {
+            throw new BizException("导入失败:没有可以录入的数据");
+        }
+        HttpResponseResult httpResponseResult = new HttpResponseResult();
+        httpResponseResult.setData(studentPaymentRouteOrders);
+        httpResponseResult.setMsg(sb.toString());
+        if (StringUtils.isNotEmpty(sb.toString())) {
+            httpResponseResult.setCode(0);
+        } else {
+            httpResponseResult.setCode(200);
+        }
+        return httpResponseResult;
+    }
 
 }

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

@@ -14,6 +14,7 @@
 		<result column="class_group_ids_" property="classGroupIds" />
 		<result column="student_ids_" property="studentIds" />
 		<result column="class_course_minute_" property="classCourseMinute" />
+		<result column="default_course_type_minute_" property="defaultCourseTypeMinute" />
 		<result column="all_lock_course_ids_" property="allLockCourseIds" />
 		<result column="sub_lock_course_ids_" property="subLockCourseIds" />
 		<result column="student_payment_ids_" property="studentPaymentIds" />
@@ -37,14 +38,17 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentClassAdjust" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO music_group_student_class_adjust (music_group_id_,batch_no_,new_class_group_json_,
 		class_group_ids_,student_ids_,class_course_minute_,all_lock_course_ids_,sub_lock_course_ids_,
-		operator_id_,student_payment_ids_,class_group_students_,create_time_,update_time_)
+		operator_id_,student_payment_ids_,class_group_students_,default_course_type_minute_,create_time_,update_time_)
 		VALUES(#{musicGroupId},#{batchNo},#{newClassGroupJson},#{classGroupIds},#{studentIds},
-		#{classCourseMinute},#{allLockCourseIds},#{subLockCourseIds},#{operatorId},#{studentPaymentIds},#{classGroupStudents},NOW(),NOW())
+		#{classCourseMinute},#{allLockCourseIds},#{subLockCourseIds},#{operatorId},#{studentPaymentIds},#{classGroupStudents},#{defaultCourseTypeMinute},NOW(),NOW())
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentClassAdjust">
 		UPDATE music_group_student_class_adjust <set>
+		<if test="defaultCourseTypeMinute != null">
+			default_course_type_minute_ = #{defaultCourseTypeMinute},
+		</if>
 		<if test="classGroupStudents != null">
 			class_group_students_ = #{classGroupStudents},
 		</if>

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

@@ -377,5 +377,8 @@
 		order by spro.id_ desc
 		<include refid="global.limit" />
 	</select>
+    <select id="sumAmountByCalenderId" resultType="java.math.BigDecimal">
+        SELECT IF(SUM(route_amount_) IS NULL,0, SUM(route_amount_))FROM student_payment_route_order WHERE calender_id_ = #{calenderId}
+    </select>
 
 </mapper>

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

@@ -521,7 +521,7 @@
         LEFT JOIN sys_user suo ON suo.id_ = ta.operator_
         LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
         <include refid="queryTeacherAttendanceComplaintsSql"/>
-        ORDER BY cs.class_date_ ASC,cs.start_class_time_ ASC
+        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
         <include refid="global.limit"/>
     </select>
     <sql id="queryTeacherAttendanceComplaintsSql">

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

@@ -357,10 +357,10 @@ public class ClassGroupController extends BaseController {
         return succeed(classGroupService.mergeClassSplitClassAffirm(mergeClassSplitClassAffirmDto));
     }
 
-    @ApiOperation(value = "进行中乐团-修改-班级详情-学员班级调整-合并结果确认-获取新班级可排课时长")
-    @PostMapping("/findClassCourseMinute")
-    @PreAuthorize("@pcs.hasPermissions('classGroup/findClassCourseMinute')")
-    public HttpResponseResult findClassCourseMinuteMap(@RequestBody List<Integer> classGroupIds){
-        return succeed(classGroupService.findClassCourseMinuteMap(classGroupIds));
-    }
+//    @ApiOperation(value = "进行中乐团-修改-班级详情-学员班级调整-合并结果确认-获取新班级可排课时长")
+//    @PostMapping("/findClassCourseMinute")
+//    @PreAuthorize("@pcs.hasPermissions('classGroup/findClassCourseMinute')")
+//    public HttpResponseResult findClassCourseMinuteMap(@RequestBody List<Integer> classGroupIds){
+//        return succeed(classGroupService.findClassCourseMinuteMap(classGroupIds));
+//    }
 }

+ 1 - 1
mec-web/src/main/resources/columnMapper.ini

@@ -50,4 +50,4 @@
 商品编号 = goodsIds
 商品数量 = goodsNums
 备注 = memo
-缴费项id = calenderId
+学校缴费项id = calenderId