瀏覽代碼

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

yonge 5 年之前
父節點
當前提交
01beedbc66

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

@@ -16,7 +16,6 @@ import org.apache.ibatis.annotations.Select;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
@@ -63,6 +62,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     int batchDeleteCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**
+     * @describe 过滤掉已结束的课程编号
+     * @author Joburgess
+     * @date 2019/12/24
+     * @param courseScheduleIds: 课程计划编号
+     * @return java.util.List<java.lang.Long>
+     */
+    List<Long> filterNotStartCourseIdsWithIds(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+    /**
      * @param musicGroupId:乐团编号
      * @param status:           状态
      * @return java.util.List<java.lang.Integer>

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

@@ -24,4 +24,5 @@ public interface StudentPauseInfoDao extends BaseDAO<Long, StudentPauseInfo> {
                                         @Param("groupId") String groupId,
                                         @Param("userId") Integer userId);
 
+
 }

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -75,6 +75,17 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<TeacherBasicDto> findTeachers(@Param("userIds") List<Integer> userIds);
 
     /**
+     * @describe 根据部门和声部获取教师列表
+     * @author Joburgess
+     * @date 2019/12/24
+     * @param organIds: 部门编号列表
+     * @param subjectIds: 声部编号列表
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherBasicDto>
+     */
+    List<TeacherBasicDto> findTeacherByOrganAndSubject(@Param("organIds") String organIds,
+                                                       @Param("subjectIds") String subjectIds);
+
+    /**
      * count上课结算列表
      * @param params
      * @return
@@ -202,4 +213,6 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     List<Map<Integer, String>> queryUsernameByIds(@Param("userIds") List<Integer> userIds);
+
+
 }

+ 68 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentRecoverInfoDto.java

@@ -0,0 +1,68 @@
+package com.ym.mec.biz.dal.dto;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/24
+ */
+public class StudentRecoverInfoDto {
+
+    private Integer vipGroupId;
+
+    private Integer teacherId;
+
+    private Integer studentId;
+
+    private int isPause;
+
+    private int totalCourseTimes;
+
+    private int giveCourseTimes;
+
+    public Integer getVipGroupId() {
+        return vipGroupId;
+    }
+
+    public void setVipGroupId(Integer vipGroupId) {
+        this.vipGroupId = vipGroupId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
+    public int getIsPause() {
+        return isPause;
+    }
+
+    public void setIsPause(int isPause) {
+        this.isPause = isPause;
+    }
+
+    public int getTotalCourseTimes() {
+        return totalCourseTimes;
+    }
+
+    public void setTotalCourseTimes(int totalCourseTimes) {
+        this.totalCourseTimes = totalCourseTimes;
+    }
+
+    public int getGiveCourseTimes() {
+        return giveCourseTimes;
+    }
+
+    public void setGiveCourseTimes(int giveCourseTimes) {
+        this.giveCourseTimes = giveCourseTimes;
+    }
+}

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

@@ -30,7 +30,7 @@ public class CourseGenerateDto {
     private List<CourseTimeDto> courseTimes;
 
     @ApiModelProperty(value = "单节课程时长")
-    private Integer singleClassMinutes;
+    private Integer singleClassMinutes=45;
 
     @ApiModelProperty(value = "是否跳过节假日 true-跳过 false-不跳过")
     private boolean skipHoliday;

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

@@ -13,6 +13,16 @@ public class StudentRecoverDto extends CourseGenerateDto{
     @ApiModelProperty(value = "学生编号")
     private Integer userId;
 
+    @ApiModelProperty(value = "教师编号")
+    private Integer teacherId;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
 
     public Integer getVipGroupId() {
         return vipGroupId;

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

@@ -218,6 +218,15 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	List<Long> checkSnapCourseShchedules(List<CourseSchedule> courseSchedules);
 
 	/**
+	 * @describe
+	 * @author Joburgess
+	 * @date 2019/12/23
+	 * @param courseSchedules: 生成课程名称
+	 * @return void
+	 */
+	void createCourseScheduleName(List<CourseSchedule> courseSchedules);
+
+	/**
 	 * 获取乐团班级未开始的课程
 	 *
 	 * @param classGroupIds

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -245,6 +245,16 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
 	void recoverForStudent(StudentRecoverDto studentRecoverInfo);
 
 	/**
+	 * @describe 获取学生休学信息
+	 * @author Joburgess
+	 * @date 2019/12/24
+	 * @param vipGroupId:
+	 * @param studentId:
+	 * @return com.ym.mec.biz.dal.dto.StudentRecoverInfoDto
+	 */
+	StudentRecoverInfoDto getStudentPauseInfo(Long vipGroupId, Integer studentId);
+
+	/**
 	 * @describe 获取指定学生的剩余课时费用
 	 * @author Joburgess
 	 * @date 2019/11/15
@@ -355,4 +365,13 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     VipBuyResultDto findVipBuyResultInfo(Integer vipGroupId);
 
+    /**
+     * @describe 根据vip课所在部门与深部获取教师
+     * @author Joburgess
+     * @date 2019/12/24
+     * @param vipGroupId: 小课编号
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherBasicDto>
+     */
+    List<TeacherBasicDto> findTeacherWithVipGroupOrganAndSubject(Long vipGroupId);
+
 }

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

@@ -132,13 +132,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleIds.get(0));
 			classGroupId=courseSchedule.getClassGroupId();
 		}
-		courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
-        courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-        courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
-        teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
-        if(Objects.nonNull(classGroupId)){
-        	classGroupService.updateClassGroupInfo(classGroupId);
-		}
+		List<Long> enableDeleteIds = courseScheduleDao.filterNotStartCourseIdsWithIds(courseScheduleIds);
+		if(!CollectionUtils.isEmpty(enableDeleteIds)){
+            courseScheduleDao.batchDeleteCourseSchedules(enableDeleteIds);
+            courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(enableDeleteIds);
+            courseScheduleStudentPaymentDao.deleteByCourseSchedule(enableDeleteIds);
+            teacherAttendanceDao.batchDeleteByCourseSchedules(enableDeleteIds);
+            if(Objects.nonNull(classGroupId)){
+                classGroupService.updateClassGroupInfo(classGroupId);
+            }
+        }
 	}
 
 	@Override
@@ -838,7 +841,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	 * @Date: 2019/9/29
 	 * 生成课程名
 	 */
-	private void createCourseScheduleName(List<CourseSchedule> courseSchedules){
+	@Override
+	public void createCourseScheduleName(List<CourseSchedule> courseSchedules){
         List<Integer> classGroupIds = courseSchedules.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
         HashSet<Integer> temp=new HashSet<>(classGroupIds);
         classGroupIds=new ArrayList<>(temp);
@@ -1675,7 +1679,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if(vipGroupIdList.size() > 0){
 				List<VipGroup> vipGroupList = vipGroupDao.queryByIds(vipGroupIdList.stream().collect(Collectors.joining(",")));
 				for(VipGroup vipGroup : vipGroupList){
-					vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
+					if(!vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)
+						&&!vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
+						vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
+					}
 					vipGroup.setUpdateTime(date);
 				}
 				vipGroupDao.batchUpdate(vipGroupList);
@@ -1915,6 +1922,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	public List<CourseSchedule> createCourses(CourseGenerateDto courseGenerateInfo) {
 		Calendar calendar=Calendar.getInstance();
+		calendar.setTime(courseGenerateInfo.getCourseCreateStartTime());
+
 		Map<String, Integer> holidayDays = new HashMap<>();
 		Map<Integer, Map<String, Integer>> holiday = new HashMap<>();;
 		if (courseGenerateInfo.isSkipHoliday()) {

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

@@ -34,6 +34,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -1377,7 +1378,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			coursePrices.add(userSurplusCourseInfoByGroup.get(i).getExpectPrice());
 			courseScheduleIds.add(userSurplusCourseInfoByGroup.get(i).getId());
         }
-        pauseInfos.put("teaChModeSequence", Arrays.toString(teachModeSequence));
+        pauseInfos.put("teaChModeSequence", teachModeSequence);
         pauseInfos.put("coursePriceInfo",coursePrices);
 
         StudentPauseInfo  studentPauseInfo=new StudentPauseInfo();
@@ -1403,8 +1404,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		int studentCourseNum = courseScheduleStudentPaymentDao.countStudentCourseNumWithGroup(GroupType.VIP, vipGroupId.toString());
 		if(studentCourseNum<=0){
 			vipGroup.setStatus(VipGroupStatusEnum.PAUSE);
-			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-			courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+			if(!CollectionUtils.isEmpty(courseScheduleIds)){
+				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+				courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+			}
 			vipGroupDao.update(vipGroup);
 		}
 
@@ -1431,6 +1434,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("此学生存在退课申请,请到系统日志中查看");
 		}
 
+		if(Objects.nonNull(studentRecoverInfo.getTeacherId())&&!studentRecoverInfo.getTeacherId().equals(vipGroup.getUserId())){
+			vipGroup.setUserId(studentRecoverInfo.getUserId());
+		}
+
 		ClassGroup classGroup = classGroupDao.findByVipGroup(studentRecoverInfo.getVipGroupId().longValue(), null);
 
 		ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(classGroup.getId(),
@@ -1445,10 +1452,39 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		StudentPauseInfo studentPauseInfo = studentPauseInfoDao.findByGroupAndUser(GroupType.VIP, studentRecoverInfo.getVipGroupId().toString(), studentRecoverInfo.getUserId());
+		if(Objects.isNull(studentPauseInfo)){
+			throw new BizException("未找到休学信息");
+		}
 		Map<String, Object> courseInfo = JSON.parseObject(studentPauseInfo.getCoursesJson(), Map.class);
+        Integer[] teachModeSequence=JSON.parseArray(courseInfo.get("teaChModeSequence").toString(), Integer.class).stream().toArray(Integer[]::new);
 		List<BigDecimal> coursePrices = (List<BigDecimal>) courseInfo.get("coursePriceInfo");
 		coursePrices.sort(Comparator.naturalOrder());
 
+		if(vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)){
+			studentRecoverInfo.setCourseCount(teachModeSequence.length);
+			List<CourseSchedule> newCourseSchedules = courseScheduleService.createCourses(studentRecoverInfo);
+			for(int i=0;i<newCourseSchedules.size();i++){
+				newCourseSchedules.get(i).setGroupType(GroupType.VIP);
+				newCourseSchedules.get(i).setMusicGroupId(vipGroup.getId().toString());
+				newCourseSchedules.get(i).setClassGroupId(classGroup.getId());
+				newCourseSchedules.get(i).setStatus(CourseStatusEnum.NOT_START);
+				newCourseSchedules.get(i).setSchoolId(vipGroup.getTeacherSchoolId());
+				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);
+			}
+			courseScheduleService.batchAddCourseSchedule(newCourseSchedules);
+
+			TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
+
+			//创建老师单节课课酬信息
+			courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
+					newCourseSchedules,
+					teacherDefaultVipGroupSalary.getOnlineClassesSalary(),
+					teacherDefaultVipGroupSalary.getOfflineClassesSalary());
+		}
+
 		BigDecimal surplusCourseFee = new BigDecimal(0);
 
 		Date now=new Date();
@@ -1483,9 +1519,54 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 		studentPauseInfo.setDelFlag(1);
 		studentPauseInfoDao.update(studentPauseInfo);
+        vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
+        vipGroupDao.update(vipGroup);
 	}
 
     @Override
+    public StudentRecoverInfoDto getStudentPauseInfo(Long vipGroupId, Integer studentId) {
+        if(Objects.isNull(vipGroupId)||Objects.isNull(studentId)){
+            throw new BizException("请指定小课与学生");
+        }
+        VipGroup vipGroup=vipGroupDao.get(vipGroupId);
+        if(Objects.isNull(vipGroup)){
+            throw new BizException("指定的课程不存在");
+        }
+        if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
+            throw new BizException("不能对已停止的课程进行此操作");
+        }
+
+        ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
+
+        ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(classGroup.getId(),studentId);
+
+        if(Objects.isNull(classStudentMapperByUserIdAndClassGroupId)){
+            throw new BizException("未找到指定学生");
+        }
+
+        if(!classStudentMapperByUserIdAndClassGroupId.getStatus().equals(ClassGroupStudentStatusEnum.QUIT_SCHOOL)){
+            throw new BizException("当前学生不是休学状态");
+        }
+
+        StudentPauseInfo studentPauseInfo = studentPauseInfoDao.findByGroupAndUser(GroupType.VIP, vipGroupId.toString(), studentId);
+        if(Objects.isNull(studentPauseInfo)){
+            throw new BizException("未找到此学生休学信息");
+        }
+        Map<String, Object> courseInfo = JSON.parseObject(studentPauseInfo.getCoursesJson(), Map.class);
+        List<BigDecimal> coursePrices = (List<BigDecimal>) courseInfo.get("coursePriceInfo");
+
+        StudentRecoverInfoDto studentRecoverInfoDto=new StudentRecoverInfoDto();
+        studentRecoverInfoDto.setVipGroupId(vipGroupId.intValue());
+        studentRecoverInfoDto.setTeacherId(vipGroup.getUserId());
+        studentRecoverInfoDto.setStudentId(studentPauseInfo.getUserId());
+        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());
+		return studentRecoverInfoDto;
+    }
+
+    @Override
 	@Transactional(rollbackFor = Exception.class)
 	public Map<String, BigDecimal> getStudentSurplusCourseFee(Long vipGroupId, Integer studentId) {
 		if(Objects.isNull(vipGroupId)||Objects.isNull(studentId)){
@@ -2038,6 +2119,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("未找到指定的vip课程");
 		}
+		if(vipGroup.getStatus().equals(VipGroupStatusEnum.NOT_START)){
+			throw new BizException("此课程还未开始");
+		}
 		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
 
         Integer studentNum = classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId());
@@ -2328,6 +2412,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 	if(Objects.isNull(vipGroup.getRegistrationStartTime())){
                 		continue;
 					}
+                	if(vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)){
+                		continue;
+					}
                     if(now.before(vipGroup.getRegistrationStartTime())){
                         vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
                     }
@@ -2383,4 +2470,19 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public VipBuyResultDto findVipBuyResultInfo(Integer vipGroupId) {
 		return vipGroupDao.getVipBuyResultInfo(vipGroupId);
 	}
+
+	@Override
+	public List<TeacherBasicDto> findTeacherWithVipGroupOrganAndSubject(Long vipGroupId) {
+		if(Objects.isNull(vipGroupId)){
+			throw new BizException("请指定小课");
+		}
+		VipGroup vipGroup=vipGroupDao.get(vipGroupId.longValue());
+		if(Objects.isNull(vipGroup)) {
+			throw new BizException("未找到指定课程");
+		}
+		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId.longValue(), null);
+		List<TeacherBasicDto> teacherByOrganAndSubject = teacherDao.findTeacherByOrganAndSubject(vipGroup.getOrganId().toString(), classGroup.getSubjectIdList());
+
+		return teacherByOrganAndSubject;
+	}
 }

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -227,6 +227,16 @@
         </foreach>
     </delete>
 
+    <select id="filterNotStartCourseIdsWithIds" resultType="long">
+        SELECT id_ FROM course_schedule
+        WHERE
+        CONCAT( class_date_, ' ', start_class_time_ ) &gt; NOW()
+        AND id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </select>
+
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="CourseSchedule" parameterType="map">
         SELECT * FROM course_schedule ORDER BY id_

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

@@ -288,6 +288,19 @@
             </if>
         </where>
     </select>
+    <select id="findTeacherByOrganAndSubject" resultMap="TeacherBasicDto">
+        SELECT
+            su.id_,
+            su.username_,
+            su.real_name_,
+            t.organ_id_
+        FROM
+            teacher t
+            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} )
+    </select>
     <select id="countCloses" resultType="java.lang.Integer">
         SELECT COUNT(cs.id_)
         FROM course_schedule cs

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

@@ -160,11 +160,25 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation(value = "恢复休学")
     @PostMapping("/recoverForStudent")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/recoverForStudent')")
-    public Object recoverForStudent(StudentRecoverDto studentRecoverInfo){
+    public Object recoverForStudent(@RequestBody StudentRecoverDto studentRecoverInfo){
         vipGroupService.recoverForStudent(studentRecoverInfo);
         return succeed();
     }
 
+    @ApiOperation(value = "获取学生休学信息")
+    @PostMapping("/getStudentPauseInfo")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getStudentPauseInfo')")
+    public Object getStudentPauseInfo(Long vipGroupId,Integer studentId){
+        return succeed(vipGroupService.getStudentPauseInfo(vipGroupId,studentId));
+    }
+
+    @ApiOperation(value = "根据vip课所在部门与声部获取教师")
+    @GetMapping("/findTeacherWithVipGroupOrganAndSubject")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupManage/findTeacherWithVipGroupOrganAndSubject')")
+    public Object findTeacherWithVipGroupOrganAndSubject(Long vipGroupId){
+        return succeed(vipGroupService.findTeacherWithVipGroupOrganAndSubject(vipGroupId));
+    }
+
     @ApiOperation(value = "退课申请")
     @PostMapping("/applyRefundForStudent")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/applyRefundForStudent')")