浏览代码

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

zouxuan 5 年之前
父节点
当前提交
b28519b87c

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

@@ -130,4 +130,15 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return
      */
     List<Map<String, Integer>> findStudentCourseNum(@Param("musicGroupIds") Set<String> musicGroupIds, @Param("userId")Integer userId, @Param("groupType")String groupType);
+
+    /**
+     * @describe 统计指定乐团下学员课程数量
+     * @author Joburgess
+     * @date 2019/12/23
+     * @param groupType:
+     * @param groupId:
+     * @return int
+     */
+    int countStudentCourseNumWithGroup(@Param("groupType") GroupType groupType,
+                                       @Param("groupId") String groupId);
 }

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

@@ -232,6 +232,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	int deleteByMusicGroupId(@Param("musicGroupId")String musicGroupId, @Param("groupType")GroupType groupType);
 
+
 	/**
 	 * @describe 获取乐团获取小课的课酬记录
 	 * @author Joburgess

+ 93 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseGenerateDto.java

@@ -0,0 +1,93 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.biz.dal.dto.CourseTimeDto;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/23
+ */
+public class CourseGenerateDto {
+
+    @ApiModelProperty(value = "开始排课时间")
+    private Date courseCreateStartTime;
+
+    @ApiModelProperty(value = "教学形式")
+    private TeachModeEnum teachMode;
+
+    @ApiModelProperty(value = "课程单价")
+    private BigDecimal singleClassPrice;
+
+    @ApiModelProperty(value = "排课次数", required = true)
+    private Integer courseCount;
+
+    @ApiModelProperty(value = "可排课时间")
+    private List<CourseTimeDto> courseTimes;
+
+    @ApiModelProperty(value = "单节课程时长")
+    private Integer singleClassMinutes;
+
+    @ApiModelProperty(value = "是否跳过节假日 true-跳过 false-不跳过")
+    private boolean skipHoliday;
+
+    public Integer getSingleClassMinutes() {
+        return singleClassMinutes;
+    }
+
+    public void setSingleClassMinutes(Integer singleClassMinutes) {
+        this.singleClassMinutes = singleClassMinutes;
+    }
+
+    public Date getCourseCreateStartTime() {
+        return courseCreateStartTime;
+    }
+
+    public void setCourseCreateStartTime(Date courseCreateStartTime) {
+        this.courseCreateStartTime = courseCreateStartTime;
+    }
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public BigDecimal getSingleClassPrice() {
+        return singleClassPrice;
+    }
+
+    public void setSingleClassPrice(BigDecimal singleClassPrice) {
+        this.singleClassPrice = singleClassPrice;
+    }
+
+    public Integer getCourseCount() {
+        return courseCount;
+    }
+
+    public void setCourseCount(Integer courseCount) {
+        this.courseCount = courseCount;
+    }
+
+    public List<CourseTimeDto> getCourseTimes() {
+        return courseTimes;
+    }
+
+    public void setCourseTimes(List<CourseTimeDto> courseTimes) {
+        this.courseTimes = courseTimes;
+    }
+
+    public boolean isSkipHoliday() {
+        return skipHoliday;
+    }
+
+    public void setSkipHoliday(boolean skipHoliday) {
+        this.skipHoliday = skipHoliday;
+    }
+}

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRecoverDto.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/23
+ */
+public class StudentRecoverDto extends CourseGenerateDto{
+    @ApiModelProperty(value = "vip课编号")
+    private Integer vipGroupId;
+
+    @ApiModelProperty(value = "学生编号")
+    private Integer userId;
+
+
+    public Integer getVipGroupId() {
+        return vipGroupId;
+    }
+
+    public void setVipGroupId(Integer vipGroupId) {
+        this.vipGroupId = vipGroupId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupStatusEnum.java

@@ -13,7 +13,8 @@ public enum VipGroupStatusEnum implements BaseEnum<Integer, VipGroupStatusEnum>
 	APPLYING_END(5,"报名结束"),
 	PROGRESS(2, "进行中"),
 	FINISHED(4, "已结束"),
-	CANCEL(3, "取消");
+	CANCEL(3, "取消"),
+	PAUSE(6, "暂停");
 
 	private Integer code;
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.CourseGenerateDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
@@ -341,4 +342,14 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @return com.ym.mec.common.page.PageInfo
 	 */
 	Object findVipGroupCourseSchedules(VipGroupQueryInfo queryInfo);
+
+
+	/**
+	 * @describe 根据参数生成课程计划日期
+	 * @author Joburgess
+	 * @date 2019/12/23
+	 * @param courseGenerateDto: 排课信息
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 */
+	List<CourseSchedule> createCourses(CourseGenerateDto courseGenerateDto);
 }

+ 3 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -1,11 +1,8 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
@@ -242,11 +239,10 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
 	 * @describe 恢复休学的学生
 	 * @author Joburgess
 	 * @date 2019/12/18
-	 * @param vipGroupId:
-	 * @param studentId:
+	 * @param studentRecoverInfo:
 	 * @return void
 	 */
-	void recoverForStudent(Long vipGroupId, Integer studentId);
+	void recoverForStudent(StudentRecoverDto studentRecoverInfo);
 
 	/**
 	 * @describe 获取指定学生的剩余课时费用

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

@@ -955,7 +955,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					courseStartDates.add(DateUtil.stringToDate(dateYmdStr, DateUtil.EXPANDED_DATE_TIME_FORMAT));
 					int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(courseSchedules.get(courseStartDates.size()-1).getId().intValue());
 					if(settlementNum>0){
-						throw new BizException("{}[{}]{}-{}课程已结算",
+						throw new BizException("{}[{}]{}-{}课程已结算",
 								courseSchedules.get(courseStartDates.size()-1).getName(),
 								courseSchedules.get(courseStartDates.size()-1).getId(),
 								DateUtil.dateToString(courseSchedules.get(courseStartDates.size()-1).getStartClassTime(),
@@ -1911,4 +1911,61 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		result.put("singleClassMinutes",vipGroup.getSingleClassMinutes());
 		return result;
 	}
+
+	@Override
+	public List<CourseSchedule> createCourses(CourseGenerateDto courseGenerateInfo) {
+		Calendar calendar=Calendar.getInstance();
+		Map<String, Integer> holidayDays = new HashMap<>();
+		Map<Integer, Map<String, Integer>> holiday = new HashMap<>();;
+		if (courseGenerateInfo.isSkipHoliday()) {
+			holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
+			holidayDays = holiday.get(calendar.get(Calendar.YEAR));
+		}
+
+		List<CourseSchedule> courseSchedules=new ArrayList<>();
+
+		while (true) {
+			if(courseGenerateInfo.isSkipHoliday() && !holiday.containsKey(calendar.get(Calendar.YEAR))){
+				holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
+				holidayDays = holiday.get(calendar.get(Calendar.YEAR));
+			}
+			if (courseGenerateInfo.isSkipHoliday() && holidayDays.containsKey(DateUtil.format(calendar.getTime(),"MMdd"))) {
+				calendar.add(Calendar.DATE, 1);
+				continue;
+			}
+			int i = calendar.get(Calendar.DAY_OF_WEEK);
+			if(i==1){
+				i=7;
+			}else{
+				i=--i;
+			}
+			for (CourseTimeDto courseTime : courseGenerateInfo.getCourseTimes()) {
+				if(Objects.isNull(courseTime.getDayOfWeek())){
+					throw new BizException("排课循环周期错误");
+				}
+				if(courseTime.getDayOfWeek()<1||courseTime.getDayOfWeek()>7){
+					throw new BizException("排课循环周期错误");
+				}
+				if(courseTime.getDayOfWeek()==i){
+					String dateYmdStr = DateUtil.dateToString(calendar.getTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+					dateYmdStr = dateYmdStr + " " +courseTime.getStartClassTime();
+					Date courseStartTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
+					Date courseEndTime = DateUtil.addMinutes(courseStartTime, courseGenerateInfo.getSingleClassMinutes());
+					CourseSchedule courseSchedule=new CourseSchedule();
+					courseSchedule.setClassDate(courseStartTime);
+					courseSchedule.setStartClassTime(courseStartTime);
+					courseSchedule.setEndClassTime(courseEndTime);
+					courseSchedules.add(courseSchedule);
+				}
+				if(courseSchedules.size()==courseGenerateInfo.getCourseCount()){
+					break;
+				}
+			}
+			if(courseSchedules.size()==courseGenerateInfo.getCourseCount()){
+				break;
+			}
+			calendar.add(Calendar.DATE, 1);
+		}
+		return courseSchedules;
+	}
 }

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

@@ -615,7 +615,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         if(Objects.nonNull(onlineTeacherSalary)){
             onlineTeacherSalary = onlineTeacherSalary
                     .divide(oldStudentNumDecimal, CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN)
-                    .multiply(studentNumDecimal).setScale(0,BigDecimal.ROUND_HALF_UP);
+                    .multiply(studentNumDecimal).setScale(0);
         }
         if(Objects.nonNull(offlineTeacherSalary)){
             offlineTeacherSalary = offlineTeacherSalary

+ 40 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -149,7 +149,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("线上课课时数量安排有误");
         }
 
-		if(vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()>0
+		if(vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()>0
 			&&Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId())){
 			throw new BizException("请设置教学点");
 		}
@@ -176,6 +176,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("请设置教师课酬");
         }
 
+        if(Objects.isNull(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())){
+        	vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(new BigDecimal(0));
+		}
+
+		if(Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())){
+			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(new BigDecimal(0));
+		}
+
 		//获取活动信息
 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
 		Integer totalClassTimes=vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum();
@@ -804,6 +812,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 }
 
             }
+		}else{
+			results.put("onlineTeacherSalary", new BigDecimal(0));
 		}
 
 		//教师线下单课酬计算
@@ -834,6 +844,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         throw new BizException("未指定课酬结算标准!");
                 }
             }
+		}else{
+			results.put("offlineTeacherSalary", new BigDecimal(0));
 		}
 
 		if(Objects.isNull(vipGroupActivity.getType())){
@@ -1357,9 +1369,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         List<StudentCourseInfoDto> userSurplusCourseInfoByGroup = courseScheduleDao.findUserSurplusCourseInfoByGroup(GroupType.VIP, vipGroupId.toString(), studentId);
         int[] teachModeSequence=new int[userSurplusCourseInfoByGroup.size()];
         List<BigDecimal> coursePrices = new ArrayList<>();
+        List<Long> courseScheduleIds=new ArrayList<>();
         for (int i=0;i<userSurplusCourseInfoByGroup.size();i++) {
             teachModeSequence[i] = userSurplusCourseInfoByGroup.get(i).getTeachMode().equals(TeachModeEnum.ONLINE)?1:0;
 			coursePrices.add(userSurplusCourseInfoByGroup.get(i).getExpectPrice());
+			courseScheduleIds.add(userSurplusCourseInfoByGroup.get(i).getId());
         }
         pauseInfos.put("teaChModeSequence", Arrays.toString(teachModeSequence));
         pauseInfos.put("coursePriceInfo",coursePrices);
@@ -1373,6 +1387,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
         studentPauseInfoDao.insert(studentPauseInfo);
 
+        courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),-1,vipGroup.getStatus());
+
         sysUserCashAccountService.updateCourseBalance(studentId, surplusCourseFee);
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT_SCHOOL);
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
@@ -1382,15 +1398,23 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			courseScheduleStudentPaymentDao.batchDeleteWithID(studentPaymentIds);
 		}
 
+		int studentCourseNum = courseScheduleStudentPaymentDao.countStudentCourseNumWithGroup(GroupType.VIP, vipGroupId.toString());
+		if(studentCourseNum<=0){
+			vipGroup.setStatus(VipGroupStatusEnum.PAUSE);
+			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+			courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+			vipGroupDao.update(vipGroup);
+		}
+
 	}
 
     @Override
 	@Transactional(rollbackFor = Exception.class)
-    public void recoverForStudent(Long vipGroupId, Integer studentId) {
-		if(Objects.isNull(vipGroupId)||Objects.isNull(studentId)){
+    public void recoverForStudent(StudentRecoverDto studentRecoverInfo) {
+		if(Objects.isNull(studentRecoverInfo.getVipGroupId())||Objects.isNull(studentRecoverInfo.getUserId())){
 			throw new BizException("请指定小课与学生");
 		}
-		VipGroup vipGroup=vipGroupDao.get(vipGroupId);
+		VipGroup vipGroup=vipGroupDao.get(studentRecoverInfo.getVipGroupId().longValue());
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的课程不存在");
 		}
@@ -1400,15 +1424,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(vipGroup.getStatus().equals(VipGroupStatusEnum.FINISHED)){
 			throw new BizException("此课程已结束");
 		}
-		List<StudentApplyRefunds> studentApplyRefunds = studentApplyRefundsDao.findByGroupAndUser(vipGroupId.toString(), GroupType.VIP.getCode(), studentId);
+		List<StudentApplyRefunds> studentApplyRefunds = studentApplyRefundsDao.findByGroupAndUser(studentRecoverInfo.getVipGroupId().toString(), GroupType.VIP.getCode(), studentRecoverInfo.getUserId());
 		if(!CollectionUtils.isEmpty(studentApplyRefunds)){
 			throw new BizException("此学生存在退课申请,请到系统日志中查看");
 		}
 
-		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
+		ClassGroup classGroup = classGroupDao.findByVipGroup(studentRecoverInfo.getVipGroupId().longValue(), null);
 
 		ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(classGroup.getId(),
-				studentId);
+				studentRecoverInfo.getUserId());
 
 		if(Objects.isNull(classStudentMapperByUserIdAndClassGroupId)){
 			throw new BizException("指定学生不在此课程中");
@@ -1418,7 +1442,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("当前学生不是休学状态");
 		}
 
-		StudentPauseInfo studentPauseInfo = studentPauseInfoDao.findByGroupAndUser(GroupType.VIP, vipGroupId.toString(), studentId);
+		StudentPauseInfo studentPauseInfo = studentPauseInfoDao.findByGroupAndUser(GroupType.VIP, studentRecoverInfo.getVipGroupId().toString(), studentRecoverInfo.getUserId());
 		Map<String, Object> courseInfo = JSON.parseObject(studentPauseInfo.getCoursesJson(), Map.class);
 		List<BigDecimal> coursePrices = (List<BigDecimal>) courseInfo.get("coursePriceInfo");
 		coursePrices.sort(Comparator.naturalOrder());
@@ -1427,17 +1451,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		Date now=new Date();
 
-		List<CourseSchedule> surplusCourseWithGroup = courseScheduleDao.findSurplusCourseWithGroup(GroupType.VIP, vipGroupId.toString());
+		List<CourseSchedule> surplusCourseWithGroup = courseScheduleDao.findSurplusCourseWithGroup(GroupType.VIP, studentRecoverInfo.getVipGroupId().toString());
 		surplusCourseWithGroup.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 
+		if(coursePrices.size()<surplusCourseFee.signum()){
+			throw new BizException("剩余课时不足,无法与现有课时对齐");
+		}
+
 		List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>();
 		for (int i=0;i<surplusCourseWithGroup.size();i++) {
 			CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
 			courseScheduleStudentPayment.setGroupType(GroupType.VIP);
-			courseScheduleStudentPayment.setMusicGroupId(vipGroupId.toString());
+			courseScheduleStudentPayment.setMusicGroupId(studentRecoverInfo.getVipGroupId().toString());
 			courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
 			courseScheduleStudentPayment.setCourseScheduleId(surplusCourseWithGroup.get(i).getId());
-			courseScheduleStudentPayment.setUserId(studentId);
+			courseScheduleStudentPayment.setUserId(studentRecoverInfo.getUserId());
 			courseScheduleStudentPayment.setExpectPrice(coursePrices.get(i));
 			courseScheduleStudentPayment.setCreateTime(now);
 			courseScheduleStudentPayment.setUpdateTime(now);
@@ -1448,7 +1476,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(!CollectionUtils.isEmpty(courseScheduleStudentPaymentList)){
 			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
 		}
-		sysUserCashAccountService.updateCourseBalance(studentId, surplusCourseFee);
+		sysUserCashAccountService.updateCourseBalance(studentRecoverInfo.getUserId(), surplusCourseFee);
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 		studentPauseInfo.setDelFlag(1);

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

@@ -262,7 +262,7 @@
         WHERE
             group_type_ = #{groupType}
             AND music_group_id_ = #{groupId}
-            AND status_!='QUIT'
+            AND status_!='QUIT' AND status_!='QUIT_SCHOOL'
     </select>
 
     <select id="countClassGroupExitStudentNum" resultType="int">

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

@@ -189,6 +189,9 @@
 		AND cs.group_type_ = #{groupType} AND cssp.user_id_ = #{userId} AND cs.status_ = 'NOT_START' AND cs.del_flag_ = 0
 		GROUP BY cssp.music_group_id_
 	</select>
+    <select id="countStudentCourseNumWithGroup" resultType="int">
+		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE group_type_=#{groupType} AND music_group_id_=#{groupId}
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

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

@@ -206,6 +206,12 @@
             <if test="paymentChannel != null">
                 AND spo.payment_channel_ NOT IN (#{paymentChannel})
             </if>
+            <if test='orderType != null and orderType=="1"'>
+                AND spo.comAmount > 0
+            </if>
+            <if test='orderType != null and orderType=="2"'>
+                AND spo.perAmount > 0
+            </if>
         </where>
     </sql>
 

+ 2 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentPaymentOrderController.java

@@ -102,6 +102,7 @@ public class StudentPaymentOrderController extends BaseController {
                 }
             }
         }
+        queryInfo.setOrderType("1");
 
         PageInfo<StudentPaymentOrder> studentPaymentOrderPageInfo = studentPaymentOrderService.queryPage(queryInfo);
 
@@ -137,6 +138,7 @@ public class StudentPaymentOrderController extends BaseController {
                 }
             }
         }
+        queryInfo.setOrderType("2");
 
         PageInfo<StudentPaymentOrder> studentPaymentOrderPageInfo = studentPaymentOrderService.queryPage(queryInfo);
 

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -160,8 +160,8 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation(value = "恢复休学")
     @PostMapping("/recoverForStudent")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/recoverForStudent')")
-    public Object recoverForStudent(Long vipGroupId,Integer studentId){
-        vipGroupService.recoverForStudent(vipGroupId,studentId);
+    public Object recoverForStudent(StudentRecoverDto studentRecoverInfo){
+        vipGroupService.recoverForStudent(studentRecoverInfo);
         return succeed();
     }