Explorar el Código

Merge remote-tracking branch 'origin/master'

周箭河 hace 5 años
padre
commit
84777ce458

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPauseInfoDao.java

@@ -5,6 +5,8 @@ import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * @Author Joburgess
  * @Date 2019/12/18
@@ -24,5 +26,15 @@ public interface StudentPauseInfoDao extends BaseDAO<Long, StudentPauseInfo> {
                                         @Param("groupId") String groupId,
                                         @Param("userId") Integer userId);
 
+    /**
+     * @describe 获取指定乐团下的学员休学信息
+     * @author Joburgess
+     * @date 2019/12/25
+     * @param groupType:
+     * @param groupId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentPauseInfo>
+     */
+    List<StudentPauseInfo> findByGroup(@Param("groupType") GroupType groupType,
+                                       @Param("groupId") String groupId);
 
 }

+ 0 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysConfigDao.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.SysConfig;
-import com.ym.mec.biz.dal.entity.SysConfigRealType;
 import com.ym.mec.common.dal.BaseDAO;
 
 public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
@@ -16,15 +15,6 @@ public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
     SysConfig findByParamName(String paramName);
 
     /**
-     * @Author: Joburgess
-     * @Date: 2019/10/9
-     * @params [paramName]
-     * @return com.ym.mec.biz.dal.entity.SysConfig
-     * @describe 根据配置名称获取配置信息
-     */
-    SysConfigRealType findRealValueByParamName(String paramName);
-
-    /**
      * 获取value
      * @param paramName
      * @return

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

@@ -30,6 +30,16 @@ public class StudentPauseInfo {
 
     private int delFlag;
 
+    private int surplusCourseNum;
+
+    public int getSurplusCourseNum() {
+        return surplusCourseNum;
+    }
+
+    public void setSurplusCourseNum(int surplusCourseNum) {
+        this.surplusCourseNum = surplusCourseNum;
+    }
+
     public int getDelFlag() {
         return delFlag;
     }

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysConfig.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -56,6 +55,14 @@ public class SysConfig {
 	public String getParanValue(){
 		return this.paranValue;
 	}
+
+	public <T> T getParanValue(Class<T> cla){
+		try {
+			return cla.cast(cla.getMethod("valueOf", String.class).invoke(cla.getInterfaces(),this.paranValue));
+		} catch (Exception e) {
+			return (T)this.paranValue.getClass();
+		}
+	}
 			
 	public void setDescription(String description){
 		this.description = description;

+ 0 - 21
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysConfigRealType.java

@@ -1,21 +0,0 @@
-package com.ym.mec.biz.dal.entity;
-
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * 对应数据库表(sys_config):
- */
-public class SysConfigRealType<T> extends SysConfig{
-	
-	/** 参数值 */
-	@ApiModelProperty(value = "参数值", required = true)
-	private T realTypeValue;
-
-	public T getRealTypeValue() {
-		return realTypeValue;
-	}
-
-	public void setRealTypeValue(T realTypeValue) {
-		this.realTypeValue = realTypeValue;
-	}
-}

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

@@ -8,16 +8,17 @@ import java.util.List;
 
 public interface MusicGroupPaymentCalenderService extends BaseService<Long, MusicGroupPaymentCalender> {
 
-    /**
-     * 批量新增、修改乐团缴费周期
-     * @param musicGroupPaymentCalenders
-     */
-    void batchInsert(List<MusicGroupPaymentCalender> musicGroupPaymentCalenders);
+	/**
+	 * 批量新增、修改乐团缴费周期
+	 * @param musicGroupPaymentCalenders
+	 */
+	void batchInsert(List<MusicGroupPaymentCalender> musicGroupPaymentCalenders);
 
 	/**
 	 * 获取下次缴费时间
 	 * @param musicGroupId
+	 * @param latestPaidDate
 	 * @return
 	 */
-	Date getNextPaymentDate(String musicGroupId);
+	Date getNextPaymentDate(String musicGroupId, Date latestPaidDate);
 }

+ 0 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.SysConfig;
-import com.ym.mec.biz.dal.entity.SysConfigRealType;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysConfigService extends BaseService<Long, SysConfig> {
@@ -88,13 +87,4 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * @describe 根据配置名称获取配置信息
      */
     SysConfig findByParamName(String paramName);
-
-    /**
-     * @describe 根据配置名称获取配置信息
-     * @author Joburgess
-     * @date 2019/12/25
-     * @param paramName:
-     * @return com.ym.mec.biz.dal.entity.SysConfigRealType
-     */
-    SysConfigRealType findRealValueByParamName(String paramName);
 }

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

@@ -113,16 +113,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(Objects.isNull(currentCourseDetail)){
 		    throw new BizException("课程不存在");
         }
-		SysConfigRealType<Integer> realValueByParamName = sysConfigService.findRealValueByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
+		SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
 		YesOrNoEnum yesOrNoEnum = enableOnlyNormalAttendance(currentCourseDetail.getStartClassTime(),
 				user.getId().longValue(),
 				true,
 				currentCourseDetail.getSchoolId().intValue());
 		currentCourseDetail.setOnlyNormal(yesOrNoEnum);
 		currentCourseDetail.setCurrentClassTimes(courseScheduleDao.countClassGroupOverCourseNum(currentCourseDetail.getClassId()));
-//		currentCourseDetail.setEnableStudentAttendanceTimeRange(realValueByParamName.getRealTypeValue());
-//		int i = studentAttendanceDao.countByCourseSchedule(courseID);
-//		currentCourseDetail.setStudentAttendanceIsFirstTime(i>0?0:1);
+		currentCourseDetail.setEnableStudentAttendanceTimeRange(sysConfig.getParanValue(Integer.class));
+		int i = studentAttendanceDao.countByCourseSchedule(courseID);
+		currentCourseDetail.setStudentAttendanceIsFirstTime(i>0?0:1);
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));

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

@@ -38,13 +38,17 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	}
 
 	@Override
-	public Date getNextPaymentDate(String musicGroupId) {
+	public Date getNextPaymentDate(String musicGroupId, Date latestPaidDate) {
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
 		if (musicGroupPaymentCalenderList != null && musicGroupPaymentCalenderList.size() > 0) {
-			Date date = new Date();
+			Date date = latestPaidDate;
+			if (date == null) {
+				date = new Date();
+			}
 			List<Integer> months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).sorted().collect(Collectors.toList());
 
 			if (months.size() > 0) {
+
 				// 获取当前月份
 				int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
 				int nextMonth = months.get(0);

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

@@ -271,7 +271,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupDao.update(musicGroup);
             List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
             if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
                 musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
             }
             musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "跨团调整", sysUser.getId(),""));
@@ -808,7 +808,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
                 List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                    Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+                    Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
                     musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
                 }
             }
@@ -861,7 +861,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //生成学员费用表
         List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
         if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
         }
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
@@ -976,7 +976,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (String musicGroupId: musicGroupIds) {
                 musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
                 }
             }
         }
@@ -1135,7 +1135,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
 
         // 重新设置下次缴费时间
-        musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+        musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null));
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"恢复乐团",sysUser.getId(),""));
 
         //恢复课表
@@ -1493,7 +1493,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupStudentFee.setLatestPaidTime(date);
                 musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
                 musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate()));
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
         		return null;
         	}else{
@@ -1568,7 +1568,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupStudentFee.setLatestPaidTime(date);
             musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
             musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate()));
             musicGroupStudentFeeDao.update(musicGroupStudentFee);
 
             //插入交易明细
@@ -1789,7 +1789,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			//生成学员费用表
 	        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
 	        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-	            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+	            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
 	        }
 		}
         musicGroupDao.update(musicGroup);

+ 74 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,16 +1,84 @@
 package com.ym.mec.biz.service.impl;
 
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.StudentAddDto;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
+import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+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.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+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.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.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ClassGroupStudentMapperService;
+import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -23,18 +91,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
-import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -548,7 +605,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                 studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
             }
-            Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+            Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
 
             //生成订单
             StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();

+ 0 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysConfigServiceImpl.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.entity.SysConfigRealType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -25,9 +24,4 @@ public class SysConfigServiceImpl extends BaseServiceImpl<Long, SysConfig>  impl
 	public SysConfig findByParamName(String paramName) {
 		return sysConfigDao.findByParamName(paramName);
 	}
-
-	@Override
-	public SysConfigRealType findRealValueByParamName(String paramName) {
-		return sysConfigDao.findRealValueByParamName(toString());
-	}
 }

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

@@ -1390,6 +1390,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentPauseInfo.setMusicGroupId(vipGroup.getId().intValue());
 		studentPauseInfo.setClassGroupId(classGroup.getId());
         studentPauseInfo.setCoursesJson(JSON.toJSONString(pauseInfos));
+        studentPauseInfo.setSurplusCourseNum(userSurplusCourseInfoByGroup.size());
 
         studentPauseInfoDao.insert(studentPauseInfo);
 
@@ -1465,7 +1466,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Collections.reverse(coursePrices);
 
 		if(vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)){
-			studentRecoverInfo.setCourseCount(teachModeSequence.length);
+			List<StudentPauseInfo> studentPauseInfos=studentPauseInfoDao.findByGroup(GroupType.VIP, vipGroup.getId().toString());
+			StudentPauseInfo studentPauseInfo1 = studentPauseInfos.stream().min(Comparator.comparing(StudentPauseInfo::getSurplusCourseNum)).get();
+			Map<String, Object> courseInfo1 = JSON.parseObject(studentPauseInfo1.getCoursesJson(), Map.class);
+			Integer[] teachModeSequence1=JSON.parseArray(courseInfo1.get("teaChModeSequence").toString(), Integer.class).stream().toArray(Integer[]::new);
+			studentRecoverInfo.setCourseCount(teachModeSequence1.length);
 			List<CourseSchedule> newCourseSchedules = courseScheduleService.createCourses(studentRecoverInfo);
 			for(int i=0;i<newCourseSchedules.size();i++){
 				newCourseSchedules.get(i).setGroupType(GroupType.VIP);
@@ -1476,7 +1481,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				newCourseSchedules.get(i).setActualTeacherId(vipGroup.getUserId());
 				newCourseSchedules.get(i).setTeacherId(vipGroup.getUserId());
 				newCourseSchedules.get(i).setType(CourseSchedule.CourseScheduleType.VIP);
-				newCourseSchedules.get(i).setTeachMode(teachModeSequence[i]==0?TeachModeEnum.OFFLINE:TeachModeEnum.ONLINE);
+				newCourseSchedules.get(i).setTeachMode(teachModeSequence1[i]==0?TeachModeEnum.OFFLINE:TeachModeEnum.ONLINE);
 			}
 			courseScheduleService.batchAddCourseSchedule(newCourseSchedules);
 
@@ -1566,7 +1571,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         studentRecoverInfoDto.setIsPause(vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)?1:0);
         studentRecoverInfoDto.setTotalCourseTimes(coursePrices.size());
 		Map<BigDecimal, Long> collect = coursePrices.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
-		studentRecoverInfoDto.setGiveCourseTimes(Objects.isNull(collect.get(new BigDecimal(0.00)))?0:collect.get(new BigDecimal(0.00)).intValue());
+		studentRecoverInfoDto.setGiveCourseTimes(Objects.isNull(collect.get(new BigDecimal("0.00")))?0:collect.get(new BigDecimal("0.00")).intValue());
 		return studentRecoverInfoDto;
     }
 

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

@@ -16,6 +16,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="del_flag_" property="delFlag"/>
+        <result column="surplus_course_num" property="surplusCourseNum"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -32,8 +33,8 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPauseInfo" useGeneratedKeys="true"
             keyColumn="id"
             keyProperty="id">
-        INSERT INTO student_pause_info (group_type_,music_group_id_,class_group_id_,user_id_,courses_json_,create_time_,update_time_)
-        VALUES(#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{classGroupId},#{userId},#{coursesJson},now(),now())
+        INSERT INTO student_pause_info (group_type_,music_group_id_,class_group_id_,user_id_,courses_json_,create_time_,update_time_,surplus_course_num)
+        VALUES(#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{classGroupId},#{userId},#{coursesJson},now(),now(),#{surplusCourseNum})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -58,6 +59,9 @@
             <if test="delFlag != null">
                 del_flag_ = #{delFlag},
             </if>
+            <if test="surplusCourseNum != null">
+                surplus_course_num = #{surplusCourseNum},
+            </if>
             update_time_ = NOW()
         </set>
         WHERE id_ = #{id}
@@ -85,4 +89,11 @@
             AND user_id_ = #{userId}
             AND del_flag_ = 0
     </select>
+    <select id="findByGroup" resultMap="StudentPauseInfo">
+        SELECT * FROM student_pause_info
+        WHERE
+          group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            AND music_group_id_ = #{groupId}
+            AND del_flag_ = 0
+    </select>
 </mapper>

+ 0 - 7
mec-biz/src/main/resources/config/mybatis/SysConfigMapper.xml

@@ -13,10 +13,6 @@
 		<result column="group_" property="group" />
 	</resultMap>
 
-	<resultMap id="SysConfigRealType" type="com.ym.mec.biz.dal.entity.SysConfigRealType" extends="SysConfig">
-		<result column="paran_value_" property="realTypeValue"/>
-	</resultMap>
-
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="SysConfig">
 		SELECT * FROM sys_config WHERE id_ = #{id}
@@ -83,9 +79,6 @@
 	<select id="findByParamName" resultMap="SysConfig">
 		SELECT * FROM sys_config WHERE param_name_ = #{paramName}
 	</select>
-	<select id="findRealValueByParamName" resultMap="SysConfigRealType">
-		SELECT * FROM sys_config WHERE param_name_ = #{paramName}
-	</select>
     <select id="findConfigValue" resultType="java.lang.String">
 		SELECT paran_value_ FROM sys_config WHERE param_name_ = #{paramName}
 	</select>

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

@@ -299,7 +299,7 @@
             LEFT JOIN sys_user su ON t.id_ = su.id_
         WHERE
             FIND_IN_SET(t.subject_id_, #{subjectIds})
-            AND INTE_ARRAY ( t.flow_organ_range_, #{organIds} )
+            AND INTE_ARRAY ( CONCAT(t.organ_id_,',',t.flow_organ_range_), #{organIds} )
     </select>
     <select id="countCloses" resultType="java.lang.Integer">
         SELECT COUNT(cs.id_)