소스 검색

Merge remote-tracking branch 'origin/master'

周箭河 5 년 전
부모
커밋
8bda4125af
31개의 변경된 파일561개의 추가작업 그리고 313개의 파일을 삭제
  1. 15 15
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 15 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  4. 5 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  5. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java
  6. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java
  7. 43 34
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupCourseScheduleDto.java
  8. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  9. 21 23
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  10. 28 30
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/queryMusicGroupCourseScheduleQueryInfo.java
  11. 11 2
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  12. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java
  13. 15 7
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  14. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  15. 23 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  16. 29 84
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  17. 51 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  18. 9 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  19. 47 41
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  20. 62 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  21. 31 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  22. 10 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  23. 3 3
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  24. 10 0
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  25. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/ClassGroupController.java
  26. 17 14
      mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java
  27. 16 6
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java
  28. 14 3
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  29. 17 20
      mec-web/src/main/java/com/ym/mec/web/controller/StudentWithdrawController.java
  30. 0 1
      mec-web/src/main/java/com/ym/mec/web/controller/UploadFileController.java
  31. 5 1
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

+ 15 - 15
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -85,21 +85,6 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     int countGroupCourses(Map<String, Object> params);
 
-    /**
-     * 获取老师VIP课程信息列表
-     *
-     * @param params
-     * @return
-     */
-    List<TeacherVipClassInfoDto> getTeacherVipClass(Map<String, Object> params);
-
-    /**
-     * count老师VIP课程信息列表
-     *
-     * @param params
-     * @return
-     */
-    int countTeacherVipClass(Map<String, Object> params);
 
     /**
      * 获取乐团所有班级列表
@@ -329,4 +314,19 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     int countMusicGroupCourseSchedule(Map<String, Object> params);
+
+    /**
+     * 根据班级编号列表获取班级名称
+     * @param classGroupIds
+     * @return
+     */
+    List<Map<Integer,String>> findNameById(String classGroupIds);
+
+    /**
+     * 获取学员班级列表
+     * @param musicGroupId
+     * @param teacherId
+     * @return
+     */
+    List<ConditionDto> queryStudentClassGroup(@Param("musicGroupId") String musicGroupId, @Param("teacherId") Integer teacherId);
 }

+ 15 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,20 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
@@ -56,6 +56,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findByCourseScheduleIds(List<Long> courseScheduleIds);
 
     /**
+     * @describe 根据课程编号列表获取助教列表
+     * @author Joburgess
+     * @date 2019/10/23
+     * @param courseScheduleIds: 课程编号列表
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<CourseScheduleTeacherSalary> findTeachingTeachers(List<Long> courseScheduleIds);
+
+    /**
      * @Author: Joburgess
      * @Date: 2019/9/17
      * 根据日期获取当日排课信息

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -3,13 +3,12 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ibatis.annotations.Param;
-
 public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseScheduleTeacherSalary> {
 
     /**
@@ -58,4 +57,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	int batchUpdateWages(@Param("classGrpupId") Integer classGrpupId, @Param("userId") Integer userId, @Param("salary") BigDecimal salary,
 			@Param("subsidy") BigDecimal subsidy);
+
+	/**
+	 * @describe 批量更新指定班级关联教师预计薪水
+	 * @author Joburgess
+	 * @date 2019/10/23
+	 * @param courseScheduleId: 课程编号
+	 * @param userIds: 课程关联教师编号
+	 * @return int
+	 */
+	int batchUpdateTeacherExpectSalary(@Param("courseScheduleId") Integer courseScheduleId,
+									   @Param("userIds") List<Integer> userIds);
 }

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -1,16 +1,15 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.List;
-
 import com.ym.mec.biz.dal.dto.UserGoodsDto;
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 
@@ -28,7 +27,8 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @Date: 2019/10/3
      * 根据学生vip课获取缴费订单
      */
-    StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId, @Param("userId") Integer userId);
+    StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId,
+                                              @Param("userId") Integer userId);
 
     /**
      * 查询乐团报名的订单

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -215,4 +215,13 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
      * @return
      */
     List<School> querySchoolByUserId(Integer userId);
+
+    /**
+     * @describe 根据课程编号获取vip课
+     * @author Joburgess
+     * @date 2019/10/23
+     * @param courseScheduleId: 课程编号
+     * @return com.ym.mec.biz.dal.entity.VipGroup
+     */
+    VipGroup findByCourseSchedule(Integer courseScheduleId);
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 public class MusicCardDto {
@@ -29,9 +28,6 @@ public class MusicCardDto {
     @ApiModelProperty(value = "所在班级",required = true)
     private String currentClass;
 
-//    @ApiModelProperty(value = "是否缴费",required = true)
-//    private YesOrNoEnum paymentStatus;
-
     @ApiModelProperty(value = "缴费状态",required = true)
     private MusicGroupStudentFee.PaymentStatus paymentStatus;
 
@@ -41,6 +37,10 @@ public class MusicCardDto {
     @ApiModelProperty(value = "vip课数量",required = true)
     private Integer vipClassNum;
 
+    public MusicGroupStudentFee.PaymentStatus getPaymentStatus() {
+        return paymentStatus;
+    }
+
     public void setPaymentStatus(MusicGroupStudentFee.PaymentStatus paymentStatus) {
         this.paymentStatus = paymentStatus;
     }

+ 43 - 34
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupCourseScheduleDto.java

@@ -2,8 +2,6 @@ package com.ym.mec.biz.dal.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.Date;
-
 public class MusicGroupCourseScheduleDto {
 
     @ApiModelProperty(value = "上课日期",required = false)
@@ -12,63 +10,74 @@ public class MusicGroupCourseScheduleDto {
     @ApiModelProperty(value = "上课时间",required = false)
     private String startClassTime;
 
-    @ApiModelProperty(value = "上课时间",required = false)
-    private String courseScheduleId;
+    @ApiModelProperty(value = "合奏班编号",required = false)
+    private Integer mixClassGroupId;
 
-    @ApiModelProperty(value = "上课时间",required = false)
-    private String courseScheduleName;
+    @ApiModelProperty(value = "合奏班名称",required = false)
+    private String mixClassGroupName;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "班级编号",required = false)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "班级名称",required = false)
     private String classGroupName;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "课程类型",required = false)
     private String courseScheduleType;
 
-    @ApiModelProperty(value = "上课时间",required = false)
-    private String getCourseScheduleStatus;
+    @ApiModelProperty(value = "课程状态",required = false)
+    private String courseScheduleStatus;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "签到状态",required = false)
     private String signInStatus;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "签退状态",required = false)
     private String signOutStatus;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "主教老师",required = false)
     private String masterTeacherName;
 
-    @ApiModelProperty(value = "上课时间",required = false)
+    @ApiModelProperty(value = "助教老师",required = false)
     private String subTeacherName;
 
-    public String getClassDate() {
-        return classDate;
+    public String getMixClassGroupName() {
+        return mixClassGroupName;
     }
 
-    public void setClassDate(String classDate) {
-        this.classDate = classDate;
+    public void setMixClassGroupName(String mixClassGroupName) {
+        this.mixClassGroupName = mixClassGroupName;
     }
 
-    public String getStartClassTime() {
-        return startClassTime;
+    public Integer getMixClassGroupId() {
+        return mixClassGroupId;
     }
 
-    public void setStartClassTime(String startClassTime) {
-        this.startClassTime = startClassTime;
+    public void setMixClassGroupId(Integer mixClassGroupId) {
+        this.mixClassGroupId = mixClassGroupId;
     }
 
-    public String getCourseScheduleId() {
-        return courseScheduleId;
+    public Integer getClassGroupId() {
+        return classGroupId;
     }
 
-    public void setCourseScheduleId(String courseScheduleId) {
-        this.courseScheduleId = courseScheduleId;
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
     }
 
-    public String getCourseScheduleName() {
-        return courseScheduleName;
+    public String getClassDate() {
+        return classDate;
     }
 
-    public void setCourseScheduleName(String courseScheduleName) {
-        this.courseScheduleName = courseScheduleName;
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
     }
 
     public String getClassGroupName() {
@@ -87,12 +96,12 @@ public class MusicGroupCourseScheduleDto {
         this.courseScheduleType = courseScheduleType;
     }
 
-    public String getGetCourseScheduleStatus() {
-        return getCourseScheduleStatus;
+    public String getCourseScheduleStatus() {
+        return courseScheduleStatus;
     }
 
-    public void setGetCourseScheduleStatus(String getCourseScheduleStatus) {
-        this.getCourseScheduleStatus = getCourseScheduleStatus;
+    public void setCourseScheduleStatus(String courseScheduleStatus) {
+        this.courseScheduleStatus = courseScheduleStatus;
     }
 
     public String getSignInStatus() {

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -11,6 +11,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -90,6 +91,9 @@ public class CourseSchedule {
 	@ApiModelProperty(value = "实际上课教师", required = false)
 	private Long actualTeacherId;
 
+	@ApiModelProperty(value = "助教编号列表")
+	private List<Integer> teachingTeacherIdList;
+
 	/**  */
 	private java.util.Date createTime;
 
@@ -110,6 +114,14 @@ public class CourseSchedule {
 	
 	private Integer schoolId;
 
+	public List<Integer> getTeachingTeacherIdList() {
+		return teachingTeacherIdList;
+	}
+
+	public void setTeachingTeacherIdList(List<Integer> teachingTeacherIdList) {
+		this.teachingTeacherIdList = teachingTeacherIdList;
+	}
+
 	public String getStartClassTimeStr() {
 		return startClassTimeStr;
 	}

+ 21 - 23
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -3,9 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.KitPurchaseMethodEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -15,73 +13,73 @@ import java.math.BigDecimal;
  */
 public class StudentRegistration {
 
-    @ApiModelProperty(value = "报名id", hidden = true)
+    @ApiModelProperty(value = "报名id", required = false)
     private Long id;
 
-    @ApiModelProperty(value = "机构id", hidden = true)
+    @ApiModelProperty(value = "机构id", required = false)
     private Integer organId;
 
-    @ApiModelProperty(value = "学生编号", hidden = true)
+    @ApiModelProperty(value = "学生编号", required = false)
     private Integer userId;
 
-    @ApiModelProperty(value = "学生姓名", required = true)
+    @ApiModelProperty(value = "学生姓名", required = false)
     private String name;
 
-    @ApiModelProperty(value = "性别(0,女  1,男", required = true)
+    @ApiModelProperty(value = "性别(0,女  1,男", required = false)
     private Integer gender;
 
-    @ApiModelProperty(value = "身份证号", required = true)
+    @ApiModelProperty(value = "身份证号", required = false)
     private String idCardNo;
 
-    @ApiModelProperty(value = "所属乐团(对应 music_group 表id)", required = true)
+    @ApiModelProperty(value = "所属乐团(对应 music_group 表id)", required = false)
     private String musicGroupId;
 
-    @ApiModelProperty(value = "当前所在年级", required = true)
+    @ApiModelProperty(value = "当前所在年级", required = false)
     private String currentGrade;
 
-    @ApiModelProperty(value = "当前所在班级", required = true)
+    @ApiModelProperty(value = "当前所在班级", required = false)
     private String currentClass;
 
-    @ApiModelProperty(value = "报名科目", required = true)
+    @ApiModelProperty(value = "报名科目", required = false)
     private Integer subjectId;
 
-    @ApiModelProperty(value = "实际科目", hidden = true)
+    @ApiModelProperty(value = "实际科目", required = false)
     private Integer actualSubjectId;
 
-    @ApiModelProperty(value = "是否允许调剂", required = true)
+    @ApiModelProperty(value = "是否允许调剂", required = false)
     private YesOrNoEnum isAllowAdjust;
 
-    @ApiModelProperty(value = "器材购买方式(GROUP:团购,OWNED:自备)", required = true)
+    @ApiModelProperty(value = "器材购买方式(GROUP:团购,OWNED:自备)", required = false)
     private KitPurchaseMethodEnum kitPurchaseMethod;
 
-    @ApiModelProperty(value = "备注", hidden = false)
+    @ApiModelProperty(value = "备注", required = false)
     private String remark;
 
-    @ApiModelProperty(value = "添加时间", hidden = true)
+    @ApiModelProperty(value = "添加时间", required = false)
     private java.util.Date createTime;
 
-    @ApiModelProperty(value = "更新时间", hidden = true)
+    @ApiModelProperty(value = "更新时间", required = false)
     private java.util.Date updateTime;
 
-    @ApiModelProperty(value = "家长姓名", required = true)
+    @ApiModelProperty(value = "家长姓名", required = false)
     private String parentsName;
 
-    @ApiModelProperty(value = "家长电话", required = true)
+    @ApiModelProperty(value = "家长电话", required = false)
     private String parentsPhone;
 
     @ApiModelProperty(value = "家长单位", required = false)
     private String parentsCompany;
 
-    @ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)", hidden = true)
+    @ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)", required = false)
     private YesOrNoEnum paymentStatus;
 
     @ApiModelProperty(value = "用户所在乐团状态)",required = false)
     private ClassGroupStudentStatusEnum musicGroupStatus;
 
-    @ApiModelProperty(value = "班级ids", hidden = true)
+    @ApiModelProperty(value = "班级ids", required = true)
     private String classGroupId;
 
-    @ApiModelProperty(value = "零时课程费用", hidden = true)
+    @ApiModelProperty(value = "零时课程费用", required = true)
     private BigDecimal temporaryCourseFee;
 
     public ClassGroupStudentStatusEnum getMusicGroupStatus() {

+ 28 - 30
mec-biz/src/main/java/com/ym/mec/biz/dal/page/queryMusicGroupCourseScheduleQueryInfo.java

@@ -3,62 +3,60 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.Date;
-
 public class queryMusicGroupCourseScheduleQueryInfo extends QueryInfo {
 
-    @ApiModelProperty(value = "合奏班编号",required = false)
-    private String mixClassId;
+    @ApiModelProperty(value = "开始日期(不包含时分秒)",required = false)
+    private String startTime;
 
-    @ApiModelProperty(value = "班级编号",required = false)
-    private String classGroupId;
+    @ApiModelProperty(value = "结束日期",required = false)
+    private String endTime;
 
     @ApiModelProperty(value = "课程类型",required = false)
-    private String classGroupType;
+    private String classScheduleType;
 
     @ApiModelProperty(value = "课程状态",required = false)
-    private String classGroupStatus;
+    private String classScheduleStatus;
 
-    @ApiModelProperty(value = "老师编号",required = false)
-    private String teacherId;
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
 
-    public String getMixClassId() {
-        return mixClassId;
+    public String getStartTime() {
+        return startTime;
     }
 
-    public void setMixClassId(String mixClassId) {
-        this.mixClassId = mixClassId;
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
     }
 
-    public String getClassGroupId() {
-        return classGroupId;
+    public String getEndTime() {
+        return endTime;
     }
 
-    public void setClassGroupId(String classGroupId) {
-        this.classGroupId = classGroupId;
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
     }
 
-    public String getClassGroupType() {
-        return classGroupType;
+    public String getClassScheduleType() {
+        return classScheduleType;
     }
 
-    public void setClassGroupType(String classGroupType) {
-        this.classGroupType = classGroupType;
+    public void setClassScheduleType(String classScheduleType) {
+        this.classScheduleType = classScheduleType;
     }
 
-    public String getClassGroupStatus() {
-        return classGroupStatus;
+    public String getClassScheduleStatus() {
+        return classScheduleStatus;
     }
 
-    public void setClassGroupStatus(String classGroupStatus) {
-        this.classGroupStatus = classGroupStatus;
+    public void setClassScheduleStatus(String classScheduleStatus) {
+        this.classScheduleStatus = classScheduleStatus;
     }
 
-    public String getTeacherId() {
-        return teacherId;
+    public String getMusicGroupId() {
+        return musicGroupId;
     }
 
-    public void setTeacherId(String teacherId) {
-        this.teacherId = teacherId;
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
     }
 }

+ 11 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -88,13 +88,22 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason);
 
 	/**
+	 * 一键退团
+	 * @param musicGroupId
+	 * @param userId
+	 * @param reason
+	 * @return
+	 */
+	boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason);
+
+	/**
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
 	 * @return
 	 */
 	Map renew(String musicGroupId, Integer userId);
-	
+
 	/**
 	 * 学生支付订单
 	 * @param studentPaymentOrder
@@ -124,5 +133,5 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 修改乐团基本信息
 	 * @param subFeeSettingDto
 	 */
-    void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
+	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.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.ClassGroup;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -90,4 +91,12 @@ public interface StudentManageService {
      * @return
      */
     PageInfo<MusicGroupStudentSignDto> queryMusicGroupStudentsSign(QueryInfo queryInfo);
+
+    /**
+     * 获取学员的班级信息列表
+     * @param musicGroupId
+     * @param teacherId
+     * @return
+     */
+    List<ConditionDto> queryStudentClassGroup(String musicGroupId, Integer teacherId);
 }

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

@@ -89,13 +89,21 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
     VipGroupManageDetailDto getVipGroupDetail(Long vipGroupId);
 
     /**
-     * @Author: Joburgess
-     * @Date: 2019/10/10
-     * @params [vipGroup, onlineClassesUnitPrice, offlineClassesUnitPrice]
-     * @return java.math.BigDecimal
-     * @describe 计算课程购买总价
-     */
-    Map countVipGroupPredictFee(VipGroup vipGroup,BigDecimal onlineClassesUnitPrice,BigDecimal offlineClassesUnitPrice);
+     * @describe 计算vip课程购买总价,及老师课酬
+     * @author Joburgess
+     * @date 2019/10/23
+     * @param vipGroup: vip课程
+     * @param teacherId: 要计算课酬的老师的编号
+     * @param onlineClassesUnitPrice: 线上课程单价
+     * @param offlineClassesUnitPrice: 线下课程单价
+     * @param computeTotalPrice: 是否计算课程购买总价
+     * @return java.util.Map
+     */
+    Map countVipGroupPredictFee(VipGroup vipGroup,
+                                Integer teacherId,
+                                BigDecimal onlineClassesUnitPrice,
+                                BigDecimal offlineClassesUnitPrice,
+                                boolean computeTotalPrice);
 
     /**
      * @Author: Joburgess

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -891,6 +891,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = classGroupDao.queryMusicGroupCourseSchedule(params);
+            //获取当前合奏班班级编号列表
+            Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
+            String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
+            //获取当前班级编号列表
+            Set<Integer> classGroupIds = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+            String classGroupIdsStr = StringUtils.join(classGroupIds, ",");
+            //获取合奏班名称
+            Map<Integer,String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
+            //获取主教老师
+            Map<Integer,String> masterTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(classGroupIdsStr, "BISHOP"));
+            //获取助教老师
+            Map<Integer,String> subTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(classGroupIdsStr, "TEACHING"));
+            dataList.forEach(e->{
+                e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
+                e.setMasterTeacherName(masterTeachers.get(e.getClassGroupId()));
+                e.setSubTeacherName(subTeachers.get(e.getClassGroupId()));
+            });
         }
         if (count == 0) {
             dataList = new ArrayList<>();

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

@@ -6,10 +6,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
@@ -28,6 +25,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -53,6 +51,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 	@Autowired
 	private SysMessageService sysMessageService;
+	@Autowired
+	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
 	@Override
 	public BaseDAO<Long, CourseSchedule> getDAO() {
@@ -315,9 +315,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(oldCourseScheduleList.size()!=newCourseSchedules.size()){
 			throw new BizException("课程信息错误");
 		}
+
+		//课程对应助教集合
+		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
+		Map<Long, List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+
 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
 		newCourseSchedules.forEach(newCourseSchedule -> {
 			CourseSchedule oldCourseSchedule = oldCourseSchedules.get(newCourseSchedule.getId());
+
 			ArrayList<Date> dates = new ArrayList<>();
 			dates.add(newCourseSchedule.getClassDate());
 			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,newCourseSchedule.getStartClassTime(),newCourseSchedule.getEndClassTime());
@@ -336,7 +342,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseScheduleDao.update(newCourseSchedule);
 			}
 			if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
+				if(!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 
+				}
+			}else{
+				List<CourseScheduleTeacherSalary> courseTeachingTeacherList=courseTeachingTeacherMaps.get(newCourseSchedule.getId());
+				//当前设置的课程助教编号列表
+				List<Integer> currentCourseTeachingTeacherIds=new ArrayList<>();
+				if(!CollectionUtils.isEmpty(courseTeachingTeacherList)){
+					currentCourseTeachingTeacherIds = courseTeachingTeacherList.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toList());
+				}
+				//修改后的课程助教编号列表
+				List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
+				//找出重复的助教编号
+				List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
 			}
 		});
 	}

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

@@ -1,14 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,38 +16,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import com.alibaba.fastjson.JSON;
-import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
-import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
-import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.SysConfig;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
-import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.entity.VipGroupActivity;
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
-import com.ym.mec.biz.service.SysConfigService;
-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.exception.BizException;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long, CourseScheduleTeacherSalary>  implements CourseScheduleTeacherSalaryService {
@@ -65,9 +36,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
 	@Autowired
-	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
-	@Autowired
-	private StudentPaymentOrderDao studentPaymentOrderDao;
+	private VipGroupService vipGroupService;
 	
 	@Autowired
 	private SysConfigDao sysConfigDao;
@@ -85,12 +54,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 													List<CourseSchedule> vipCourseSchedules,
 													BigDecimal onlineTeacherSalary,
 													BigDecimal offlineTeacherSalary) {
-		TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId().longValue(),
-				vipGroup.getVipGroupCategoryId());
-
 		//获取活动信息
 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
-		VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
 
 		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries=new ArrayList<>();
 		Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroupByTeachMode = vipCourseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
@@ -107,42 +72,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 				courseScheduleTeacherSalary.setUserId(vipGroup.getUserId());
 				courseScheduleTeacherSalary.setClassGroupId(courseSchedules.get(i).getClassGroupId());
 
-				if(teachModeEnum==TeachModeEnum.ONLINE){
-					if(vipGroupActivity.getType()== VipGroupActivityTypeEnum.GIVE_CLASS
-							&&vipGroup.getGiveTeachMode()==teachModeEnum
-							&&i>=Integer.parseInt(vipGroupActivity.getAttribute1())
-							&&"0".equals(vipGroupActivity.getGiveClassPaySalaryFlag())){
-						courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(0));
-					}else {
-						//教师课酬线上单课酬计算
-						switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
-							case TEACHER_DEFAULT:
-								courseScheduleTeacherSalary.setExpectSalary(teacherDefaultVipGroupSalary.getOnlineClassesSalary());
-								break;
-							case RATIO_DISCOUNT:
-								courseScheduleTeacherSalary.setExpectSalary(onlineTeacherSalary.multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()));
-								break;
-							case FIXED_SALARY:
-								courseScheduleTeacherSalary.setExpectSalary(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue());
-								break;
-							default:
-								throw new BizException("未指定课酬结算标准!");
-						}
-					}
-				}else{
-					//教师线下单课酬计算
-					switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){
-						case TEACHER_DEFAULT:
-							courseScheduleTeacherSalary.setExpectSalary(teacherDefaultVipGroupSalary.getOfflineClassesSalary());
-							break;
-						case RATIO_DISCOUNT:
-							courseScheduleTeacherSalary.setExpectSalary(offlineTeacherSalary.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()));
-							break;
-						case FIXED_SALARY:
-							courseScheduleTeacherSalary.setExpectSalary(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue());
-							break;
-						default:
-							throw new BizException("未指定课酬结算标准!");
+				Map<String,BigDecimal> feeInfo = vipGroupService.countVipGroupPredictFee(vipGroup,
+						courseSchedules.get(i).getActualTeacherId().intValue(),
+						onlineTeacherSalary,
+						offlineTeacherSalary,
+						false);
+
+				if(vipGroupActivity.getType()== VipGroupActivityTypeEnum.GIVE_CLASS
+						&&vipGroup.getGiveTeachMode()==teachModeEnum
+						&&i>=Integer.parseInt(vipGroupActivity.getAttribute1())
+						&&"0".equals(vipGroupActivity.getGiveClassPaySalaryFlag())){
+					courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(0));
+				}else {
+					if(teachModeEnum==TeachModeEnum.ONLINE){
+						courseScheduleTeacherSalary.setExpectSalary(feeInfo.get("onlineTeacherSalary"));
+					}else{
+						courseScheduleTeacherSalary.setExpectSalary(feeInfo.get("offlineTeacherSalary"));
 					}
 				}
 				courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
@@ -93,6 +94,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private PayService payService;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
 	@Override
 	public BaseDAO<String, MusicGroup> getDAO() {
 		return musicGroupDao;
@@ -337,6 +341,53 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason) {
+
+		SysUser sysUser = sysUserFeignService.queryUserById(userId);
+		if (sysUser == null) {
+			throw new BizException("获取用户信息失败");
+		}
+
+		Date date = new Date();
+
+		MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+		musicGroupQuit.setCreateTime(date);
+		musicGroupQuit.setJoinDate(sysUser.getCreateTime());
+		musicGroupQuit.setMusicGroupId(musicGroupId);
+		musicGroupQuit.setUserId(sysUser.getId());
+		musicGroupQuit.setStatus(ApprovalStatus.APPROVED);
+		musicGroupQuit.setReason(reason);
+		musicGroupQuit.setQuitDate(date);
+
+		musicGroupQuitDao.insert(musicGroupQuit);
+
+		classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+
+		// 判断乐器是否是租赁
+		StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+		if (studentRegistration == null) {
+			throw new BizException("用户注册信息不存在");
+		}
+		// 退团
+		studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+		studentRegistration.setUpdateTime(date);
+
+		Integer subjectId = studentRegistration.getActualSubjectId();
+		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+		if (musicGroupSubjectPlan == null) {
+			throw new BizException("乐团声部费用设置不存在");
+		}
+		if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
+			// 增加交易流水
+			sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(), SysUserCashAccountDetailService.MUSIC_GROUP
+					+ musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+		}
+
+		return true;
+	}
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Map renew(String musicGroupId, Integer userId) {
 
 		MusicGroup musicGroup = this.get(musicGroupId);

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

@@ -2,11 +2,9 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.StudentManageDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
@@ -32,6 +30,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Autowired
     private StudentManageDao studentManageDao;
     @Autowired
+    private ClassGroupDao classGroupDao;
+    @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
     @Autowired
     private SysUserFeignService sysUserFeignService;
@@ -198,4 +198,9 @@ public class StudentManageServiceImpl implements StudentManageService {
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public List<ConditionDto> queryStudentClassGroup(String musicGroupId, Integer teacherId) {
+        return classGroupDao.queryStudentClassGroup(musicGroupId,teacherId);
+    }
 }

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

@@ -141,8 +141,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//计算课程相关费用信息
 		Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
+				vipGroupApplyBaseInfoDto.getUserId(),
 				vipGroupApplyBaseInfoDto.getOnlineClassesUnitPrice(),
-				vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice());
+				vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice(),
+				true);
 
 		//如果默认课酬与实际课酬不匹配则需要审批
 		if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())!=0||
@@ -441,14 +443,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         return new VipGroupCostCountDto(null,teacherSalary);
     }
 
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/2
-     * 计算VIP课程预计收费
-     */
     @Override
-    public Map<String,BigDecimal> countVipGroupPredictFee(VipGroup vipGroup,BigDecimal onlineClassesUnitPrice,BigDecimal offlineClassesUnitPrice){
-		if(Objects.isNull(vipGroup.getUserId())){
+    public Map<String,BigDecimal> countVipGroupPredictFee(VipGroup vipGroup,
+														  Integer teacherId,
+														  BigDecimal onlineClassesUnitPrice,
+														  BigDecimal offlineClassesUnitPrice,
+														  boolean computeTotalPrice){
+		if(Objects.isNull(teacherId)){
 			throw new BizException("请指定教师");
 		}
 
@@ -461,7 +462,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("未找到课程形式");
 		}
 
-		TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId().longValue(),
+		TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(teacherId.longValue(),
 				vipGroup.getVipGroupCategoryId());
 
 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
@@ -531,37 +532,39 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 
-		//课程购买费用计算
-		BigDecimal totalPrice;
-		switch (vipGroupActivity.getType()){
-			case BASE_ACTIVITY:
-				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-				break;
-			case DISCOUNT:
-				BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
-				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-				totalPrice=totalPrice.multiply(discount);
-				break;
-			case GIVE_CLASS:
-				if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
-					if(offlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
-						offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
-					}
-					offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
-				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
-					if(onlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
-						onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
+		if(computeTotalPrice){
+			//课程购买费用计算
+			BigDecimal totalPrice;
+			switch (vipGroupActivity.getType()){
+				case BASE_ACTIVITY:
+					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+					break;
+				case DISCOUNT:
+					BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
+					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+					totalPrice=totalPrice.multiply(discount);
+					break;
+				case GIVE_CLASS:
+					if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
+						if(offlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
+							offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
+						}
+						offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
+					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
+						if(onlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
+							onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
+						}
+						onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
+					}else{
+						throw new BizException("请指定赠送课程类型!");
 					}
-					onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
-				}else{
-					throw new BizException("请指定赠送课程类型!");
-				}
-				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
-				break;
-			default:
-				throw new BizException("活动类型错误!");
+					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
+					break;
+				default:
+					throw new BizException("活动类型错误!");
+			}
+			results.put("totalPrice",totalPrice);
 		}
-		results.put("totalPrice",totalPrice);
         return results;
     }
 
@@ -632,8 +635,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map payMap = payService.getPayMap(
 				vipGroup.getTotalPrice(),
 				orderNo,
-				"http://47.99.212.176:8000/api-student/studentOrder/notify",
-				"http://dev.dayaedu.com",
+				"http://103.46.128.45:11805/api-student/studentOrder/notify",
+				"http://103.46.128.45:41818/paymentresult",
 				"vip课购买",
 				vipGroup.getName());
 
@@ -651,6 +654,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Integer userId = order.getUserId();
 		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
 
+		studentPaymentOrderDao.update(order);
+
 		//将学生加入到班级,更新班级报名状态及人数信息
 		if(!isOk){
 			updateVipGroupStudentNumAndStatus(vipGroupId,-1);
@@ -693,8 +698,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//剩余课时数
 		Map surplusClassTimes=MapUtil.convertMybatisMap(vipGroupDao.countSurplusClassTimes(vipGroupId));
 		studentApplyRefunds.setExpectAmount(countVipGroupPredictFee(vipGroup,
+				vipGroup.getUserId(),
 				new BigDecimal(surplusClassTimes.get(TeachModeEnum.ONLINE.getCode()).toString()),
-				new BigDecimal(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString())).get("totalPrice"));
+				new BigDecimal(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString()),true).get("totalPrice"));
 		studentApplyRefunds.setStatus(AuditStatusEnum.ING);
 		String orderNo=StringUtils.join(new String[]{studentId.toString(),String.valueOf(System.currentTimeMillis())});
 		studentApplyRefunds.setOrderNo(orderNo);

+ 62 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -572,12 +572,72 @@
         GROUP BY sr.class_group_id_
     </select>
 
-    <select id="queryMusicGroupCourseSchedule" resultType="com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto">
-
+    <sql id="queryMusicGroupCourseScheduleSql">
+        <where>
+            <if test="classScheduleType != null and classScheduleType != ''">
+                AND cs.type_ = #{classScheduleType}
+            </if>
+            <if test="classScheduleType = null or classScheduleType = ''">
+                AND (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX' OR cs.type_ = 'HIGH')
+            </if>
+            <if test="classScheduleStatus != null and classScheduleStatus != ''">
+                AND cs.status_ = #{classScheduleStatus}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND cs.class_date_ &gt;= #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND cs.class_date_ &lt;= #{endTime}
+            </if>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND cg.music_group_id_ = #{musicGroupId}
+            </if>
+        </where>
+    </sql>
+    <resultMap id="MusicGroupCourseScheduleDto" type="com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto">
+        <result property="classDate" column="class_date_"/>
+        <result property="startClassTime" column="start_class_time_"/>
+        <result property="classGroupId" column="class_group_id_"/>
+        <result property="mixClassGroupId" column="mix_class_group_id_"/>
+        <result property="courseScheduleType" column="course_schedule_type_"/>
+        <result property="courseScheduleStatus" column="course_schedule_status_"/>
+        <result property="signInStatus" column="sign_in_status_"/>
+        <result property="signOutStatus" column="sign_out_status_"/>
+    </resultMap>
+    <select id="queryMusicGroupCourseSchedule" resultMap="MusicGroupCourseScheduleDto">
+        SELECT cs.class_date_,cs.start_class_time_,cs.class_group_id_,
+        cs.type_ course_schedule_type_,cs.status_ course_schedule_status_,
+        IF(cgr.class_group_id_ IS NULL,cs.class_group_id_,cgr.class_group_id_) mix_class_group_id_,
+        IF(ISNULL(ta.sign_in_status_),3,ta.sign_in_status_) sign_in_status_,
+        IF(ISNULL(ta.sign_out_status_),3,ta.sign_out_status_) sign_out_status_
+        FROM course_schedule cs
+        LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+        LEFT JOIN class_group_relation cgr ON cgr.sub_class_group_id_ = cs.class_group_id_
+        <include refid="queryMusicGroupCourseScheduleSql"/>
+        <include refid="global.limit"/>
     </select>
     <select id="countMusicGroupCourseSchedule" resultType="java.lang.Integer">
+        SELECT COUNT(cs.id_) FROM course_schedule cs
+        LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
+        <include refid="queryMusicGroupCourseScheduleSql"/>
+    </select>
 
+    <select id="findNameById" resultType="java.util.Map">
+        SELECT cg.id_ 'key',cg.name_ 'value'
+        FROM class_group cg WHERE FIND_IN_SET(cg.id_,#{classGroupIds})
     </select>
+
+    <resultMap id="ConditionDto" type="com.ym.mec.biz.dal.dto.ConditionDto">
+        <result property="id" column="id_"/>
+        <result property="name" column="name_"/>
+    </resultMap>
+    <select id="queryStudentClassGroup" resultMap="ConditionDto">
+        SELECT cg.id_,cg.name_,cg.student_num_ FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{userId} AND cg.del_flag_ = 0
+    </select>
+
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
         UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND

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

@@ -286,15 +286,45 @@
 
     <select id="findByCourseScheduleIds" resultMap="CourseSchedule">
         SELECT
-            *
+            cs.id_,
+            cs.class_group_id_,
+            cs.status_,
+            cs.subsidy_,
+            cs.class_date_,
+            cs.start_class_time_,
+            cs.end_class_time_,
+            cs.teacher_id_,
+            csts.user_id_ actual_teacher_id_,
+            cs.create_time_,
+            cs.update_time_,
+            cs.teach_mode_,
+            cs.type_,
+            cs.name_,
+            cs.student_num_,
+            cs.leave_student_num_,
+            cs.schoole_id_
         FROM
             course_schedule
+            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_= csts.course_schedule_id_ AND csts.teacher_role_='BISHOP'
         WHERE id_ IN
         <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
             #{id}
         </foreach>
     </select>
 
+    <select id="findTeachingTeachers" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao.CourseScheduleTeacherSalary">
+        SELECT
+          csts.*
+        FROM
+          course_schedule_teacher_salary csts
+        WHERE
+          csts.teacher_role_ = 'BISHOP'
+        AND csts.course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
         cg.id_ seal_class_id_,

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

@@ -166,4 +166,14 @@
 			update_time_ = now()
 		WHERE user_id_ = #{userId} and class_group_id_ = #{classGroupId}
 	</update>
+    <update id="batchUpdateTeacherExpectSalary">
+		UPDATE course_schedule_teacher_salary
+		SET expect_salary_ = 0
+		WHERE
+			course_schedule_id_ = #{courseScheduleId}
+			AND user_id_ IN
+			<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+				#{userId}
+			</foreach>
+	</update>
 </mapper>

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

@@ -61,7 +61,7 @@
     <select id="findAll" resultMap="Teacher">
         SELECT *
         FROM teacher
-        ORDER BY user_id_
+        ORDER BY id_
     </select>
 
     <!-- 向数据库增加一条记录 -->
@@ -133,12 +133,12 @@
                 introduction_ = #{introduction},
             </if>
         </set>
-        WHERE user_id_ = #{userId}
+        WHERE id_ = #{userId}
     </update>
 
     <!-- 根据主键删除一条记录 -->
     <update id="delete">
-        DELETE FROM teacher WHERE user_id_ = #{userId}
+        DELETE FROM teacher WHERE id_ = #{userId}
     </update>
 
     <update id="updateUser" parameterType="com.ym.mec.auth.api.entity.SysUser">

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

@@ -631,4 +631,14 @@
             </foreach>
         GROUP BY vgcgm.vip_group_id_
     </select>
+
+    <select id="findByCourseSchedule" resultMap="VipGroup">
+        SELECT
+            vg.*
+        FROM
+            vip_group vg
+            LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
+            LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
+            WHERE cs.id_=#{courseScheduleId}
+    </select>
 </mapper>

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

@@ -37,7 +37,7 @@ public class ClassGroupController extends BaseController {
     @ApiOperation(value = "小班课报名")
     @PostMapping("/highReg")
     @ApiImplicitParams({@ApiImplicitParam(name = "classGroupId", value = "班级id", required = true, dataType = "int")})
-    public HttpResponseResult highReg(int classGroupId) throws Exception {
+    public HttpResponseResult highReg(int classGroupId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         ClassGroup classGroup = classGroupService.get(classGroupId);
         if (classGroup == null || !classGroup.getType().equals(ClassGroupTypeEnum.HIGH) || classGroup.getDelFlag().equals(1)) {

+ 17 - 14
mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java

@@ -1,14 +1,15 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.dto.CashAccountDetail;
-import com.ym.mec.biz.dal.dto.WithdrawDto;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.StudentWithdraw;
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 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;
 
@@ -24,18 +25,20 @@ import org.springframework.web.bind.annotation.RestController;
 public class WithdrawController extends BaseController {
 
     @Autowired
-    private StudentWithdrawService withdrawService;
+    private StudentWithdrawService studentWithdrawService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
-    @PostMapping("confirm")
-    @ApiOperation(value = "确认提现")
-    public Object confirmWithdraw(@RequestBody WithdrawDto withdrawDto) {
-        withdrawService.confirmWithdraw(withdrawDto);
+    @ApiOperation(value = "新增提现申请")
+    @PostMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('studentWithdraw/add')")
+    public Object add(StudentWithdraw studentWithdraw) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null && sysUser.getId() == null){
+            return failed("获取用户信息失败");
+        }
+        studentWithdraw.setUserId(sysUser.getId());
+        studentWithdrawService.add(studentWithdraw);
         return succeed();
     }
-
-    @PostMapping("page")
-    @ApiOperation(value = "学员提现详情")
-    public Object getInfo(@RequestBody CashAccountDetail cashAccountDetail) {
-        return succeed(withdrawService.queryWithdrawPage(cashAccountDetail));
-    }
 }

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

@@ -27,34 +27,44 @@ public class MusicGroupQuitController extends BaseController {
 
 	@Autowired
 	private MusicGroupService musicGroupService;
-	
+
 	@Autowired
 	private MusicGroupQuitService musicGroupQuitService;
-	
+
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@ApiOperation(value = "分页查询")
 	@GetMapping("/queryPage")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/queryPage')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/queryPage')")
 	public HttpResponseResult queryPage(QueryInfo queryInfo) throws Exception {
 		return succeed(musicGroupQuitService.queryPage(queryInfo));
 	}
-	
+
 	@ApiOperation(value = "单查询")
 	@GetMapping("/query")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/query')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/query')")
 	public HttpResponseResult query(Long id) throws Exception {
 		return succeed(musicGroupQuitService.get(id));
 	}
 
 	@ApiOperation(value = "退团")
 	@PostMapping("/quitMusicGroup")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/quitMusicGroup')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/quitMusicGroup')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "退团申请id", required = true, dataType = "Long"),
 			@ApiImplicitParam(name = "status", value = "审批状态(APPROVED, DENIED, PROCESSING)", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
 	public HttpResponseResult quitMusicGroup(Long id, ApprovalStatus status, String reason) throws Exception {
 		return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason));
 	}
+
+	@ApiOperation(value = "一键退团")
+	@PostMapping("/directQuitMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/directQuitMusicGroup')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"),
+			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
+	public HttpResponseResult directQuitMusicGroup(String musicGroupId, Integer userId, String reason) throws Exception {
+		return succeed(musicGroupService.directQuitMusicGroup(musicGroupId, userId, reason));
+	}
 }

+ 14 - 3
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -4,9 +4,8 @@ import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -35,6 +34,18 @@ public class StudentManageController extends BaseController {
         return succeed(studentManageService.queryMusicGroupStudent(queryInfo));
     }
 
+    @ApiOperation(value = "乐团管理--乐团详情--学员列表--查看班级")
+    @GetMapping("/queryStudentClassGroup")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentClassGroup')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "teacherId", value = "学生编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
+    public Object queryStudentClassGroup(String musicGroupId,Integer teacherId){
+        if(StringUtils.isEmpty(musicGroupId) || teacherId == null){
+            return failed("参数校验失败");
+        }
+        return succeed(studentManageService.queryStudentClassGroup(musicGroupId,teacherId));
+    }
+
     @ApiOperation(value = "乐团管理--乐团详情--学员列表,汇总数据接口")
     @GetMapping("/musicGroupStudentsSum")
     @PreAuthorize("@pcs.hasPermissions('studentManage/musicGroupStudentsSum')")

+ 17 - 20
mec-web/src/main/java/com/ym/mec/web/controller/StudentWithdrawController.java

@@ -1,19 +1,14 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
 import com.ym.mec.biz.dal.dto.WithdrawDto;
-import com.ym.mec.biz.dal.entity.StudentWithdraw;
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 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.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("studentWithdraw")
 @Api(tags = "提现服务")
@@ -22,22 +17,24 @@ public class StudentWithdrawController extends BaseController {
 
     @Autowired
     private StudentWithdrawService studentWithdrawService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @ApiOperation(value = "新增提现申请")
-    @PostMapping("/add")
-    @PreAuthorize("@pcs.hasPermissions('studentWithdraw//add')")
-    public Object add(StudentWithdraw studentWithdraw) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null && sysUser.getId() == null){
-            return failed("获取用户信息失败");
-        }
-        studentWithdraw.setUserId(sysUser.getId());
-        studentWithdrawService.add(studentWithdraw);
+
+
+    @PostMapping("confirm")
+    @ApiOperation(value = "确认提现")
+    @PreAuthorize("@pcs.hasPermissions('studentWithdraw/confirm')")
+    public Object confirmWithdraw(@RequestBody WithdrawDto withdrawDto) {
+        studentWithdrawService.confirmWithdraw(withdrawDto);
         return succeed();
     }
 
+    @PostMapping("page")
+    @ApiOperation(value = "学员提现详情")
+    @PreAuthorize("@pcs.hasPermissions('studentWithdraw/page')")
+    public Object getInfo(@RequestBody CashAccountDetail cashAccountDetail) {
+        return succeed(studentWithdrawService.queryWithdrawPage(cashAccountDetail));
+    }
+
+
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('studentWithdraw/queryPage')")

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/UploadFileController.java

@@ -32,7 +32,6 @@ public class UploadFileController extends BaseController {
 	private UploadFileService uploadFileService;
 
 	@PostMapping(value = "uploadFile")
-    @PreAuthorize("@pcs.hasPermissions('uploadFile')")
 	public Object uploadFile(@ApiParam(value = "上传的文件", required = true) @RequestParam("file") MultipartFile file) {
 		try {
 			if (file != null && StringUtils.isNotBlank(file.getOriginalFilename())) {

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

@@ -118,7 +118,11 @@ public class VipGroupManageController extends BaseController {
     @PostMapping("/getVipGroupCostCount")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getVipGroupCostCount')")
     public Object getVipGroupCostCount(VipGroup vipGroup){
-        Map results = vipGroupService.countVipGroupPredictFee(vipGroup, vipGroup.getOnlineClassesUnitPrice(), vipGroup.getOfflineClassesUnitPrice());
+        Map results = vipGroupService.countVipGroupPredictFee(vipGroup,
+                vipGroup.getUserId(),
+                vipGroup.getOnlineClassesUnitPrice(),
+                vipGroup.getOfflineClassesUnitPrice(),
+                true);
         return succeed(results);
     }