Bläddra i källkod

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

Joburgess 5 år sedan
förälder
incheckning
70a02b2c4b

+ 65 - 50
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -25,13 +25,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     TeacherAttendanceDto getCurrentCourseDetail(@Param("courseID") Long courseID);
 
     /**
-     * @describe 根据时间区间获取教师上课的课程
-     * @author Joburgess
-     * @date 2019/10/18
      * @param startTime:
      * @param endTime:
      * @param teacherId:
      * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
+     * @describe 根据时间区间获取教师上课的课程
+     * @author Joburgess
+     * @date 2019/10/18
      */
     TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("teacherId") Long teacherId);
 
@@ -52,10 +52,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getCourseSchedulesWithDate(@Param("classDate") Date classDate);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @Author: Joburgess
      * @Date: 2019/10/14
      * @params [classDates, classGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 根据班级和上课日期获取课程计划
      */
     List<CourseSchedule> findByClassGroupAndDate(@Param("classDates") List<Date> classDates, @Param("classGroupId") Long classGroupId);
@@ -68,82 +68,82 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("studentId") Long studentId);
 
     /**
+     * @return java.util.List<java.lang.String>
      * @Author: Joburgess
      * @Date: 2019/10/11
      * @params [courseScheduleId]
-     * @return java.util.List<java.lang.String>
      * @describe 获取课程签到学生姓名
      */
     List<String> findStudentNamesByCourseSchedule(Long courseScheduleId);
 
     /**
-     * @describe 根据日期获取老师当日排课信息
-     * @author Joburgess
-     * @date 2019/10/18
      * @param classDate: 上课日期
      * @param teacherId: 教师编号
      * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
+     * @describe 根据日期获取老师当日排课信息
+     * @author Joburgess
+     * @date 2019/10/18
      */
     List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId);
 
     /**
+     * @param params:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @describe 根据日期获取排课
      * @author Joburgess
      * @date 2019/10/18
-     * @param params:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      */
     List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String, Object> params);
 
     int countCourseSchedulesWithDate(Map<String, Object> params);
 
     /**
+     * @param musicGroupID: 乐团编号
+     * @return int
      * @describe 根据乐团ID删除排课
      * @author Joburgess
      * @date 2019/10/18
-     * @param musicGroupID: 乐团编号
-     * @return int
      */
     int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupID") Long musicGroupID);
 
     /**
+     * @param musicGroupID: 乐团编号
+     * @param month:        月份
+     * @return java.util.List<java.util.Date>
      * @describe 根据月份获取乐团在该月有课的日期
      * @author Joburgess
      * @date 2019/10/18
-     * @param musicGroupID: 乐团编号
-     * @param month: 月份
-     * @return java.util.List<java.util.Date>
      */
     List<Date> getCourseScheduleDateByMonth(@Param("musicGroupID") Long musicGroupID, @Param("month") Date month);
 
     /**
-     * @describe 获取学生有课日期
-     * @author Joburgess
-     * @date 2019/10/18
      * @param studentId:
      * @param month:
      * @param isAttend:
      * @return java.util.List<java.util.Date>
+     * @describe 获取学生有课日期
+     * @author Joburgess
+     * @date 2019/10/18
      */
     List<Date> getStudentCourseScheduleDate(@Param("studentId") Long studentId, @Param("month") Date month, @Param("isAttend") Integer isAttend);
 
     /**
-     * @describe 获取教师有课日期
-     * @author Joburgess
-     * @date 2019/10/18
      * @param teacherId:
      * @param month:
      * @return java.util.List<java.util.Date>
+     * @describe 获取教师有课日期
+     * @author Joburgess
+     * @date 2019/10/18
      */
     List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month);
 
     /**
-     * @describe 获取当月有课的日期
-     * @author Joburgess
-     * @date 2019/10/18
      * @param month:
      * @param organId:
      * @return java.util.List<java.util.Date>
+     * @describe 获取当月有课的日期
+     * @author Joburgess
+     * @date 2019/10/18
      */
     List<Date> getCourseScheduleDate(@Param("month") Date month, @Param("organId") Long organId);
 
@@ -192,6 +192,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取班级未开始的课程计划
+     *
      * @param classGroupTeacherMapperList
      * @return
      */
@@ -219,10 +220,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<StudentCourseScheduleRecordDto> findStudentCourseScheduleNotStartRecords(@Param("userId") Long userId, @Param("date") Date date);
 
     /**
+     * @return int
      * @Author: Joburgess
      * @Date: 2019/10/8
      * @params [classGroupId]
-     * @return int
      * @describe 统计已上课次
      */
     int countClassTimes(Long classGroupId);
@@ -235,104 +236,118 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     CourseScheduleDto getCourseSchedules(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @Author: Joburgess
      * @Date: 2019/10/14
      * @params [vipGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取vip课排课计划
      */
     List<CourseSchedule> findVipGroupCourseSchedules(@Param("vipGroupId") Long vipGroupId);
 
     /**
+     * @return java.lang.String
      * @Author: Joburgess
      * @Date: 2019/10/16
      * @params [courseScheduleId]
-     * @return java.lang.String
      * @describe 获取课程关联班级类型
      */
     String findClassTypeByCourse(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
      * 根据课程状态查询老师指定月份的VIP课程记录数
+     *
      * @param monthDate 指定月份
-     * @param status 课程状态
+     * @param status    课程状态
      * @return
      */
-    List<Map<Integer, Integer>> queryVipGroupTeachereClassTimesByMonth(@Param("monthDate") Date monthDate,@Param("status") CourseStatusEnum status);
+    List<Map<Integer, Integer>> queryVipGroupTeachereClassTimesByMonth(@Param("monthDate") Date monthDate, @Param("status") CourseStatusEnum status);
 
     /**
      * 查询已完成未更新状态的课程列表
+     *
      * @return
      */
     List<CourseSchedule> queryFinishedWithNoUpdateStatus();
-    
+
     int batchUpdate(List<CourseSchedule> courseScheduleList);
-    
+
     /**
      * 查询提前指定分钟数还未签到的用户
+     *
      * @param minutes 分钟数
      * @return
      */
     List<CourseSchedule> queryNoSignInListByBeforeMinutes(Integer minutes);
 
     /**
+     * @param params: 参数
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto>
      * @describe 查询老师指定班级的排课信息
      * @author Joburgess
      * @date 2019/10/18
-     * @param params: 参数
-     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto>
      */
-    List<TeacherClassCourseSchudeleDto> queryTeacherClassCourseSchedule(Map<String,Object> params);
+    List<TeacherClassCourseSchudeleDto> queryTeacherClassCourseSchedule(Map<String, Object> params);
 
     /**
+     * @param params:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto>
      * @describe 查询老师指定班级历史排课信息
      * @author Joburgess
      * @date 2019/10/19
-     * @param params:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto>
      */
-    List<TeacherClassCourseSchudeleDto> queryTeacherHistoryClassCourseSchedule(Map<String,Object> params);
+    List<TeacherClassCourseSchudeleDto> queryTeacherHistoryClassCourseSchedule(Map<String, Object> params);
 
     /**
+     * @param params: 参数
+     * @return int
      * @describe 统计老师指定班级的排课数量
      * @author Joburgess
      * @date 2019/10/18
-     * @param params: 参数
-     * @return int
      */
-    int countTeacherClassCourseSchedule(Map<String,Object> params);
+    int countTeacherClassCourseSchedule(Map<String, Object> params);
 
     /**
+     * @param params:
+     * @return int
      * @describe 统计历史老师指定班级的排课数量
      * @author Joburgess
      * @date 2019/10/19
-     * @param params:
-     * @return int
      */
-    int countTeacherHistoryClassCourseSchedule(Map<String,Object> params);
+    int countTeacherHistoryClassCourseSchedule(Map<String, Object> params);
 
     /**
+     * @param musicGroupId: 乐团编号
+     * @return java.util.List<java.util.Map < java.lang.Long, java.lang.Integer>>
      * @describe 统计乐团下班级的排课数
      * @author Joburgess
      * @date 2019/10/18
-     * @param musicGroupId: 乐团编号
-     * @return java.util.List<java.util.Map<java.lang.Long,java.lang.Integer>>
      */
-    List<Map<Integer,Long>> countClassCourseNumByMusicGroup(String musicGroupId);
+    List<Map<Integer, Long>> countClassCourseNumByMusicGroup(String musicGroupId);
 
     /**
+     * @param courseSchedules: 课程计划编号列表
+     * @return java.util.List<java.util.Map < java.lang.Integer, java.lang.Integer>>
      * @describe 根据课程计划获取对应课次
      * @author Joburgess
      * @date 2019/10/20
-     * @param courseSchedules: 课程计划编号列表
-     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
-    List<Map<Integer,Integer>> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
+    List<Map<Integer, Integer>> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
 
     /**
      * 根据乐团编号修改课程教学点
+     *
      * @param musicGroupId
      * @param schoolId
      */
-    void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId,@Param("schoolId") Integer schoolId);
+    void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("schoolId") Integer schoolId);
+
+    /**
+     * 获取班级时间段内的课程
+     *
+     * @param classGroupId
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    List<CourseSchedule> findCourseScheduleByClassGroupIdAndDate(@Param("classGroupId") Integer classGroupId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
@@ -9,21 +10,28 @@ import java.util.List;
 public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseScheduleStudentPayment> {
 
     /**
+     * @return int
      * @Author: Joburgess
      * @Date: 2019/10/10
      * @params [courseScheduleStudentPayments]
-     * @return int
      * @describe 批量插入
      */
     int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment>
      * @Author: Joburgess
      * @Date: 2019/10/15
      * @params [ids]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment>
      * @describe 根据课程编号批量获取学生缴费信息
      */
     List<CourseScheduleStudentPayment> findByCourseScheduleIds(@Param("ids") List<Long> ids);
-	
+
+    /**
+     * 删除学生对应的课程
+     * @param userId
+     * @param courseScheduleList
+     * @return
+     */
+    int deleteStudentCourseSchedule(@Param("userId") Integer userId, @Param("courseScheduleList") List<CourseSchedule> courseScheduleList);
 }

+ 7 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassGroupAdjustDto.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -29,10 +30,10 @@ public class ClassGroupAdjustDto {
     private YesOrNoEnum type;
 
     @ApiModelProperty(value = "开始时间", required = true)
-    private LocalDateTime startDate;
+    private Date startDate;
 
     @ApiModelProperty(value = "结束时间", required = true)
-    private LocalDateTime endDate;
+    private Date endDate;
 
     public String getClassGroupName() {
         return classGroupName;
@@ -50,19 +51,19 @@ public class ClassGroupAdjustDto {
         this.type = type;
     }
 
-    public LocalDateTime getStartDate() {
+    public Date getStartDate() {
         return startDate;
     }
 
-    public void setStartDate(LocalDateTime startDate) {
+    public void setStartDate(Date startDate) {
         this.startDate = startDate;
     }
 
-    public LocalDateTime getEndDate() {
+    public Date getEndDate() {
         return endDate;
     }
 
-    public void setEndDate(LocalDateTime endDate) {
+    public void setEndDate(Date endDate) {
         this.endDate = endDate;
     }
 

+ 18 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -1,17 +1,27 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.*;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
+import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
+import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
+import com.ym.mec.biz.dal.dto.VipGroupCostCountDto;
+import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
+import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
 import com.ym.mec.biz.dal.entity.School;
-import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
 import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
 public interface VipGroupService extends BaseService<Long, VipGroup> {
 
     /**
@@ -157,7 +167,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      * @describe 退课申请审核
      */
-    void applyRefundAudit(StudentApplyRefunds studentApplyRefunds);
+    void applyRefundAudit(Long id,AuditStatusEnum status,String remark);
 
     /**
      * @Author: Joburgess

+ 44 - 39
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -74,6 +74,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
     @Autowired
     private CourseScheduleDao courseScheduleDao;
+    @Autowired
+    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -193,18 +195,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
-    	
-    	Integer schoolId = null;
-    	
+
+        Integer schoolId = null;
+
         for (HighClassGroupDto highClassGroup : highClassGroupList) {
-        	
-			if (schoolId == null) {
-				MusicGroup musicGroup = musicGroupDao.get(highClassGroup.getMusicGroupId());
-				if (musicGroup != null) {
-					schoolId = musicGroup.getSchoolId();
-				}
-			}
-        	
+
+            if (schoolId == null) {
+                MusicGroup musicGroup = musicGroupDao.get(highClassGroup.getMusicGroupId());
+                if (musicGroup != null) {
+                    schoolId = musicGroup.getSchoolId();
+                }
+            }
+
             //1、插入班级信息
             Date date;
             date = new Date();
@@ -237,8 +239,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     CourseSchedule courseSchedule = new CourseSchedule();
                     Instant instant = now.atZone(ZoneId.systemDefault()).toInstant();
                     Date classDate = Date.from(instant);
-                    String startClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getStartClassTime()+":00";
-                    String endClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getEndClassTime()+":00";
+                    String startClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getStartClassTime() + ":00";
+                    String endClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getEndClassTime() + ":00";
 
                     courseSchedule.setSchoolId(schoolId);
                     courseSchedule.setClassGroupId(highClassGroup.getId());
@@ -253,7 +255,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
                     courseSchedule.setType(CourseSchedule.CourseScheduleType.HIGH);
                     Subject subject = subjectService.get(Integer.parseInt(highClassGroup.getSubjectIdList()));
-                    courseSchedule.setName(subject.getName()+"-"+CourseSchedule.CourseScheduleType.HIGH.getMsg());
+                    courseSchedule.setName(subject.getName() + "-" + CourseSchedule.CourseScheduleType.HIGH.getMsg());
 
                     courseScheduleList.add(courseSchedule);
                     times++;
@@ -279,11 +281,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = classGroupDao.queryGroupCourses(params);
-            HashMap<String,Object> param = new HashMap<>();
-            param.put("teacherId",queryInfo.getSearch());
-            param.put("attendanceStatus",YesOrNoEnum.YES);
-            dataList.forEach(e->{
-                param.put("musicGroupId",e.getMusicGroupId());
+            HashMap<String, Object> param = new HashMap<>();
+            param.put("teacherId", queryInfo.getSearch());
+            param.put("attendanceStatus", YesOrNoEnum.YES);
+            dataList.forEach(e -> {
+                param.put("musicGroupId", e.getMusicGroupId());
                 e.setAttendanceNum(teacherAttendanceDao.getTeacherPersonalAttendancesCount(param));
             });
         }
@@ -306,24 +308,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             params.put("offset", pageInfo.getOffset());
             dataList = vipGroupDao.getTeacherVipClass(params);
             Set<Integer> activityIds = dataList.stream().map(e -> e.getActivityId()).collect(Collectors.toSet());
-            List<Map<Integer,String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds,","));
-            Map<Integer,String> nameMap = MapUtil.convertMybatisMap(names);
+            List<Map<Integer, String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds, ","));
+            Map<Integer, String> nameMap = MapUtil.convertMybatisMap(names);
             //计算月度平均消耗值(已上课时 / 消耗月份)
             List<Long> vipGroupIds = dataList.stream().map(vipGroup -> vipGroup.getVipClassId()).collect(Collectors.toList());
             List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
-            Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
+            Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
             dataList.forEach(vipGroup -> {
                 Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getVipClassId());
-                if(Objects.isNull(overCourses)){
-                    overCourses=0;
+                if (Objects.isNull(overCourses)) {
+                    overCourses = 0;
                 }
-                Integer totalClassTimes=vipGroup.getTotalClassTimes();
-                if(Objects.isNull(totalClassTimes)){
+                Integer totalClassTimes = vipGroup.getTotalClassTimes();
+                if (Objects.isNull(totalClassTimes)) {
                     vipGroup.setMonthAvg(Float.parseFloat("0.0"));
-                }else{
-                    BigDecimal overCoursesOfMonth=new BigDecimal(overCourses),allClassTimes=new BigDecimal(totalClassTimes);
+                } else {
+                    BigDecimal overCoursesOfMonth = new BigDecimal(overCourses), allClassTimes = new BigDecimal(totalClassTimes);
 
-                    Float monthConsumeRate=overCoursesOfMonth.divide(overCoursesOfMonth,2,BigDecimal.ROUND_HALF_UP).floatValue();
+                    Float monthConsumeRate = overCoursesOfMonth.divide(overCoursesOfMonth, 2, BigDecimal.ROUND_HALF_UP).floatValue();
                     vipGroup.setMonthAvg(monthConsumeRate);
                 }
             });
@@ -337,8 +339,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId,String type) {
-        List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId,type);
+    public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId, String type) {
+        List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId, type);
 
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
 
@@ -584,7 +586,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertMybatisMap(musicGroupIdAndNumList);
 
         List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(musicGroupIds);
-        Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
+        Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
 
         teacherMusicClassGroup.forEach(teacherClassGroupDto -> {
 
@@ -602,16 +604,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 }
 
                 Integer overCourses = vipGroupOverCourseMaps.get(teacherClassGroupDto.getMusicGroupId());
-                if(Objects.isNull(overCourses)){
-                    overCourses=0;
+                if (Objects.isNull(overCourses)) {
+                    overCourses = 0;
                 }
-                Integer totalClassTimes=teacherClassGroupDto.getTotalClassTimes();
-                if(Objects.isNull(totalClassTimes)||totalClassTimes==0){
+                Integer totalClassTimes = teacherClassGroupDto.getTotalClassTimes();
+                if (Objects.isNull(totalClassTimes) || totalClassTimes == 0) {
                     teacherClassGroupDto.setAvgClassTimesOfMonth(0.0);
-                }else{
-                    BigDecimal overCoursesOfMonth=new BigDecimal(overCourses),allClassTimes=new BigDecimal(totalClassTimes);
+                } else {
+                    BigDecimal overCoursesOfMonth = new BigDecimal(overCourses), allClassTimes = new BigDecimal(totalClassTimes);
 
-                    Double monthConsumeRate=overCoursesOfMonth.divide(allClassTimes,1,BigDecimal.ROUND_HALF_UP).doubleValue();
+                    Double monthConsumeRate = overCoursesOfMonth.divide(allClassTimes, 1, BigDecimal.ROUND_HALF_UP).doubleValue();
                     teacherClassGroupDto.setAvgClassTimesOfMonth(monthConsumeRate);
                 }
 
@@ -723,6 +725,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 ClassGroupStudentMapper classStudentMapper = classGroupStudentMapperDao.query(classGroupStudentMapperDto.getClassGroupId(), classGroupStudentMapperDto.getUserId());
                 classStudentMapper.setStatus(ClassGroupStudentStatusEnum.QUIT);
                 classGroupStudentMapperDao.update(classStudentMapper);
+            } else { //临时删除学生对应时间段的课程
+                List<CourseSchedule> courseScheduleList = courseScheduleDao.findCourseScheduleByClassGroupIdAndDate(classGroupStudentMapperDto.getClassGroupId(), classGroupAdjustDto.getStartDate(), classGroupAdjustDto.getEndDate());
+                courseScheduleStudentPaymentDao.deleteStudentCourseSchedule(classGroupStudentMapperDto.getUserId(), courseScheduleList);
             }
             subject_id_list_ += classGroupStudentMapperDto.getUserId() + ",";
         }

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

@@ -668,47 +668,47 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void applyRefundAudit(StudentApplyRefunds studentApplyRefunds) {
-    	if(Objects.isNull(studentApplyRefunds.getId())){
-    		throw new BizException("请指定退费订单!");
-		}
+	public void applyRefundAudit(Long id, AuditStatusEnum status, String remark) {
 
-		StudentApplyRefunds oldStudentApplyRefunds=studentApplyRefundsDao.get(studentApplyRefunds.getId());
+		StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
+		if (studentApplyRefunds == null) {
+			throw new BizException("退课申请记录不存在");
+		}
 
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(oldStudentApplyRefunds.getOrigPaymentOrderId());
-		if(null==studentPaymentOrder){
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(studentApplyRefunds.getOrigPaymentOrderId());
+		if (null == studentPaymentOrder) {
 			throw new BizException("未找到原订单信息!");
 		}
 
-		oldStudentApplyRefunds.setStatus(studentApplyRefunds.getStatus());
-		if(null==studentApplyRefunds.getActualAmount()){
-			oldStudentApplyRefunds.setActualAmount(oldStudentApplyRefunds.getExpectAmount());
-		}else{
-			oldStudentApplyRefunds.setActualAmount(studentApplyRefunds.getActualAmount());
-		}
-		oldStudentApplyRefunds.setRemark(studentApplyRefunds.getRemark());
-		studentApplyRefundsDao.update(oldStudentApplyRefunds);
-		switch (studentApplyRefunds.getStatus()){
-			case PASS:
-				sysUserCashAccountService.updateBalance(oldStudentApplyRefunds.getUserId(),oldStudentApplyRefunds.getActualAmount());
-				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
-				SysUserCashAccountDetail sysUserCashAccountDetail=new SysUserCashAccountDetail();
-				sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
-				sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-				sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-				sysUserCashAccountDetail.setAmount(oldStudentApplyRefunds.getActualAmount());
-				sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
-				sysUserCashAccountDetail.setAttribute(oldStudentApplyRefunds.getId().toString());
-				sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
-
-				classGroupStudentMapperDao.deleteStudentByClassGroupId(studentPaymentOrder.getClassGroupId().longValue(),
-						studentPaymentOrder.getUserId().longValue());
-				break;
-			case REJECT:
+		studentApplyRefunds.setStatus(status);
+		if (studentApplyRefunds.getStatus() == AuditStatusEnum.PASS) {
+			studentApplyRefunds.setActualAmount(studentApplyRefunds.getExpectAmount());
+		} else {
+			studentApplyRefunds.setActualAmount(new BigDecimal(0));
+		}
+		studentApplyRefunds.setRemark(remark);
+		studentApplyRefundsDao.update(studentApplyRefunds);
+		switch (studentApplyRefunds.getStatus()) {
+		case PASS:
+			sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
+			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
+			SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
+			sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
+			sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+			sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserCashAccountDetail.setAmount(studentApplyRefunds.getActualAmount());
+			sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+			sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
+			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
 
-				break;
-			default:
-				throw new BizException("审核状态错误!");
+			classGroupStudentMapperDao.deleteStudentByClassGroupId(studentPaymentOrder.getClassGroupId().longValue(), studentPaymentOrder.getUserId()
+					.longValue());
+			break;
+		case REJECT:
+
+			break;
+		default:
+			throw new BizException("审核状态错误!");
 		}
 	}
 

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

@@ -878,4 +878,9 @@
             </foreach>
         GROUP BY course_schedule_id_
     </select>
+
+    <!-- 获取班级某时间段的课程 -->
+    <select id="findCourseScheduleByClassGroupIdAndDate" resultMap="CourseSchedule">
+        <![CDATA[ SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId} AND class_date_ >= #{startDate} AND  class_date_ <=#{endDate} ]]>
+    </select>
 </mapper>

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

@@ -100,4 +100,11 @@
 			#{id}
 		</foreach>
     </select>
+
+	<delete id="deleteStudentCourseSchedule">
+		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN
+		<foreach collection="courseScheduleList" item="courseSchedule" index="index" open="(" close=")" separator=",">
+			#{courseSchedule.id}
+		</foreach>
+	</delete>
 </mapper>

+ 9 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -88,7 +88,7 @@ public class MusicGroupController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "subjectId", value = "声部编号", required = true, dataType = "Integer")})
     public HttpResponseResult getSubjectGoodsAndInfo(String musicGroupId, Integer subjectId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        //SysUser sysUser = sysUserFeignService.queryUserInfo();
         MusicGroupSubjectGoodsAndInfoDto subjectGoodsAndInfo = musicGroupSubjectPlanService.getSubjectGoodsAndInfo(musicGroupId, subjectId);
         return succeed(subjectGoodsAndInfo);
     }
@@ -136,9 +136,17 @@ public class MusicGroupController extends BaseController {
 		if (amount == null || amount.doubleValue() == 0) {
 			amount = musicGroupStudentFee.getCourseFee();
 		}
+
+		StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+		if (studentRegistration == null) {
+			return failed("乐团报名信息找不到");
+		}
+		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId,
+				studentRegistration.getActualSubjectId());
 		ModelMap model = new ModelMap();
 		model.put("musicGroup", musicGroup);
 		model.put("amount", amount);
+		model.put("musicGroupSubjectPlan", musicGroupSubjectPlan);
 
 		return succeed(model);
 	}

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

@@ -1,11 +1,27 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
-import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
 import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
@@ -14,18 +30,6 @@ import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-import java.util.Objects;
-
 /**
  * @Author Joburgess
  * @Date 2019/9/21
@@ -94,8 +98,8 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation(value = "退课申请审核")
     @PostMapping("/applyRefundAudit")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/applyRefundAudit')")
-    public Object applyRefundAudit(StudentApplyRefunds studentApplyRefunds){
-        vipGroupService.applyRefundAudit(studentApplyRefunds);
+	public Object applyRefundAudit(Long id, AuditStatusEnum status, String remark) {
+		vipGroupService.applyRefundAudit(id, status, remark);
         return succeed();
     }