zouxuan 5 سال پیش
والد
کامیت
4591a37fc2
35فایلهای تغییر یافته به همراه950 افزوده شده و 180 حذف شده
  1. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java
  3. 36 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java
  4. 11 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  5. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HighClassGroupDto.java
  6. 100 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupClassGroupDto.java
  7. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupCourseScheduleDto.java
  8. 50 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentSignDto.java
  9. 127 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentsDto.java
  10. 38 27
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentApplyDetailDto.java
  11. 53 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentFeeDetailDto.java
  12. 12 24
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentFeeDto.java
  13. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupStudentStatusEnum.java
  14. 51 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java
  15. 7 18
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeachersQueryInfo.java
  16. 16 16
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRegistrationQueryInfo.java
  17. 64 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/queryMusicGroupCourseScheduleQueryInfo.java
  18. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  19. 17 5
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java
  20. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  21. 42 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  22. 1 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  23. 37 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  24. 6 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  25. 4 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  26. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  27. 37 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  28. 3 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  29. 89 0
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  30. 24 11
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  31. 8 7
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  32. 6 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  33. 16 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  34. 17 9
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  35. 7 11
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

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

@@ -280,4 +280,39 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return java.util.List<java.lang.Integer>
      */
     List<Integer> findStudentOrganIdsByClassGroup(Long classGroupId);
+
+    /**
+     * 乐团详情--班级详情列表
+     * @param params
+     * @return
+     */
+    List<MusicGroupClassGroupDto> queryMusicGroupClassGroup(Map<String, Object> params);
+
+    /**
+     * COUNT乐团详情--班级详情列表
+     * @param params
+     * @return
+     */
+    int countMusicGroupClassGroup(Map<String, Object> params);
+
+    /**
+     * 根据班级编号列表,获取老师名字
+     * @param classGroupIds
+     * @return
+     */
+    List<Map<Integer, String>> countStudentNum(@Param("classGroupIds") String classGroupIds,@Param("teacherRole") String teacherRole);
+
+    /**
+     * 根据班级编号列表,获取班级在读人数
+     * @param classGroupIds
+     * @return
+     */
+    List<Map<Integer, Integer>> countStudyNum(@Param("classGroupIds") String classGroupIds);
+
+    /**
+     * 根据班级编号列表,获取班级退班人数
+     * @param classGroupIds
+     * @return
+     */
+    List<Map<Integer, Integer>> countQuitNum(@Param("classGroupIds") String classGroupIds);
 }

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java

@@ -2,7 +2,6 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,7 +13,7 @@ public interface MusicGroupSubjectGoodsGroupDao extends BaseDAO<Long, MusicGroup
      * @param musicGroupSubjectGoodsGroups
      * @return
      */
-    int batchInsert(@Param("mappers") List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroups);
+    int batchInsert(@Param("lists") List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroups,@Param("musicGroupId")String musicGroupId);
 
     /**
      * 获取建团申请,声部设置已确认数据

+ 36 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -104,7 +104,7 @@ public interface StudentManageDao {
      * @param params
      * @return
      */
-    List queryMusicGroupStudent(Map<String, Object> params);
+    List<MusicGroupStudentsDto> queryMusicGroupStudent(Map<String, Object> params);
 
     /**
      * COUNT乐团管理学员列表
@@ -112,4 +112,39 @@ public interface StudentManageDao {
      * @return
      */
     int countMusicGroupStudent(Map<String, Object> params);
+
+    /**
+     * 获取乐团在读人数
+     * @param musicGroupId
+     * @return
+     */
+    Integer countStudyNum(String musicGroupId);
+
+    /**
+     * 获取乐团退团人数
+     * @param musicGroupId
+     * @return
+     */
+    Integer countQuitNum(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 获取乐团新增的学员人数
+     * @param musicGroupId
+     * @return
+     */
+    Integer countAddNum(String musicGroupId);
+
+    /**
+     * 乐团管理--点名总览
+     * @param params
+     * @return
+     */
+    List<MusicGroupStudentSignDto> queryMusicGroupStudentsSign(Map<String, Object> params);
+
+    /**
+     * COUNT乐团管理--点名总览
+     * @param params
+     * @return
+     */
+    int countMusicGroupStudentsSign(Map<String, Object> params);
 }

+ 11 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
@@ -36,7 +37,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @param musicGroupId
 	 * @return
 	 */
-	List<Map<Integer, Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
+	List<Map<Integer, Long>> countPayNum(@Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 学生报名缴费金额详情
@@ -45,7 +46,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @param musicGroupId
 	 * @return
 	 */
-	StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);
+	StudentFeeDetailDto queryFeeDetail(@Param("studentId") Integer studentId, @Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 获取乐团声部未分配的班级的学生
@@ -114,4 +115,12 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @return
 	 */
 	List<StudentRegistration> findClassGroupStu(@Param("musicGroupId") String musicGroupId, @Param("classGroupId") Integer classGroupId);
+
+	/**
+	 * 批量调剂学生专业
+	 * @param userIds
+	 * @param subId
+	 * @return
+	 */
+	int batchUpdateSubject(@Param("userIds")String userIds, @Param("subId") Integer subId,@Param("musicGroupId") String musicGroupId);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HighClassGroupDto.java

@@ -32,8 +32,6 @@ public class HighClassGroupDto extends ClassGroup {
 	@ApiModelProperty(value = "排课次数", required = true)
 	private Integer courseTimes;
 
-
-
 	public Integer getUserId() {
 		return userId;
 	}

+ 100 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupClassGroupDto.java

@@ -0,0 +1,100 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 班级调整
+ */
+public class MusicGroupClassGroupDto {
+
+    @ApiModelProperty(value = "班级编号", required = true)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "班级名称", required = true)
+    private String classGroupName;
+
+    @ApiModelProperty(value = "班级类型", required = true)
+    private String classGroupType;
+
+    //TEACHING("TEACHING","助教"),
+    //    BISHOP("BISHOP","主教")
+    @ApiModelProperty(value = "主教老师", required = true)
+    private String masterTeacher;
+
+    @ApiModelProperty(value = "助教老师", required = true)
+    private String subTeacher;
+
+    @ApiModelProperty(value = "当前课次", required = true)
+    private Integer currentClassTimes;
+
+    @ApiModelProperty(value = "跟班人数", required = true)
+    private String studyNum;
+
+    @ApiModelProperty(value = "退班人数", required = true)
+    private String quitNum;
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public String getClassGroupType() {
+        return classGroupType;
+    }
+
+    public void setClassGroupType(String classGroupType) {
+        this.classGroupType = classGroupType;
+    }
+
+    public String getMasterTeacher() {
+        return masterTeacher;
+    }
+
+    public void setMasterTeacher(String masterTeacher) {
+        this.masterTeacher = masterTeacher;
+    }
+
+    public String getSubTeacher() {
+        return subTeacher;
+    }
+
+    public void setSubTeacher(String subTeacher) {
+        this.subTeacher = subTeacher;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public String getStudyNum() {
+        return studyNum;
+    }
+
+    public void setStudyNum(String studyNum) {
+        this.studyNum = studyNum;
+    }
+
+    public String getQuitNum() {
+        return quitNum;
+    }
+
+    public void setQuitNum(String quitNum) {
+        this.quitNum = quitNum;
+    }
+}

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupCourseScheduleDto.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class MusicGroupCourseScheduleDto {
+
+    @ApiModelProperty(value = "上课日期",required = false)
+    private String classDate;
+
+    @ApiModelProperty(value = "上课时间",required = false)
+    private String startClassTime;
+
+}

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentSignDto.java

@@ -0,0 +1,50 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupStudentSignDto{
+
+    @ApiModelProperty(value = "签到时间",required = false)
+    private String signTime;
+
+    @ApiModelProperty(value = "学生姓名",required = false)
+    private String name;
+
+    @ApiModelProperty(value = "签到状态",required = false)
+    private String signStatus;
+
+    @ApiModelProperty(value = "课程名称",required = false)
+    private String courseScheduleName;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSignTime() {
+        return signTime;
+    }
+
+    public void setSignTime(String signTime) {
+        this.signTime = signTime;
+    }
+
+    public String getSignStatus() {
+        return signStatus;
+    }
+
+    public void setSignStatus(String signStatus) {
+        this.signStatus = signStatus;
+    }
+
+    public String getCourseScheduleName() {
+        return courseScheduleName;
+    }
+
+    public void setCourseScheduleName(String courseScheduleName) {
+        this.courseScheduleName = courseScheduleName;
+    }
+}

+ 127 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentsDto.java

@@ -0,0 +1,127 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupStudentsDto{
+
+    @ApiModelProperty(value = "学生编号",required = false)
+    private Integer userId;
+
+    @ApiModelProperty(value = "姓名",required = false)
+    private String realName;
+
+    @ApiModelProperty(value = "性别",required = false)
+    private String gender;
+
+    @ApiModelProperty(value = "手机号",required = false)
+    private String phone;
+
+    @ApiModelProperty(value = "年级",required = false)
+    private String currentGrade;
+
+    @ApiModelProperty(value = "班级",required = false)
+    private String currentClass;
+
+    @ApiModelProperty(value = "专业",required = false)
+    private String subjectName;
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "学员状态 NORMAL(NORMAL, 在读), LEAVE(LEAVE, 请假), QUIT(QUIT, 退班)",required = false)
+    private String studentStatus;
+
+    @ApiModelProperty(value = "缴费状态  PAID_COMPLETED(完成缴费), NON_PAYMENT(未缴费), PROCESSING(缴费中)",required = false)
+    private String paymentStatus;
+
+    @ApiModelProperty(value = "是否新增学员(1是0否)",required = false)
+    private Integer isNewStudent;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getGender() {
+        return gender;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCurrentGrade() {
+        return currentGrade;
+    }
+
+    public void setCurrentGrade(String currentGrade) {
+        this.currentGrade = currentGrade;
+    }
+
+    public String getCurrentClass() {
+        return currentClass;
+    }
+
+    public void setCurrentClass(String currentClass) {
+        this.currentClass = currentClass;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getStudentStatus() {
+        return studentStatus;
+    }
+
+    public void setStudentStatus(String studentStatus) {
+        this.studentStatus = studentStatus;
+    }
+
+    public String getPaymentStatus() {
+        return paymentStatus;
+    }
+
+    public void setPaymentStatus(String paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
+
+    public Integer getIsNewStudent() {
+        return isNewStudent;
+    }
+
+    public void setIsNewStudent(Integer isNewStudent) {
+        this.isNewStudent = isNewStudent;
+    }
+}

+ 38 - 27
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentApplyDetailDto.java

@@ -11,6 +11,9 @@ public class StudentApplyDetailDto{
     @ApiModelProperty(value = "学生姓名",required = false)
     private String studentName;
 
+    @ApiModelProperty(value = "学生编号",required = false)
+    private Integer studentId;
+
     @ApiModelProperty(value = "家长姓名",required = false)
     private String parentsName;
 
@@ -23,11 +26,11 @@ public class StudentApplyDetailDto{
     private String currentClass;
 
     @ApiModelProperty(value = "性别",required = false)
-    private UserGenderEnum gender;
+    private String gender;
 
     /** 是否允许调剂 */
     @ApiModelProperty(value = "是否允许调剂",required = false)
-    private YesOrNoEnum isAllowAdjust;
+    private String isAllowAdjust;
 
     @ApiModelProperty(value = "报名专业名称",required = false)
     private String subjectName;
@@ -39,22 +42,22 @@ public class StudentApplyDetailDto{
     private String parentsPhone;
 
     @ApiModelProperty(value = "学员缴费状态",required = false)
-    private YesOrNoEnum paymentStatus;
+    private String paymentStatus;
 
-    public String getActualSubjectName() {
-        return actualSubjectName;
+    public Integer getStudentId() {
+        return studentId;
     }
 
-    public void setActualSubjectName(String actualSubjectName) {
-        this.actualSubjectName = actualSubjectName;
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
     }
 
-    public YesOrNoEnum getPaymentStatus() {
-        return paymentStatus;
+    public String getActualSubjectName() {
+        return actualSubjectName;
     }
 
-    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
-        this.paymentStatus = paymentStatus;
+    public void setActualSubjectName(String actualSubjectName) {
+        this.actualSubjectName = actualSubjectName;
     }
 
     public String getStudentName() {
@@ -89,22 +92,6 @@ public class StudentApplyDetailDto{
         this.currentClass = currentClass;
     }
 
-    public UserGenderEnum getGender() {
-        return gender;
-    }
-
-    public void setGender(UserGenderEnum gender) {
-        this.gender = gender;
-    }
-
-    public YesOrNoEnum getIsAllowAdjust() {
-        return isAllowAdjust;
-    }
-
-    public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
-        this.isAllowAdjust = isAllowAdjust;
-    }
-
     public String getSubjectName() {
         return subjectName;
     }
@@ -120,4 +107,28 @@ public class StudentApplyDetailDto{
     public void setParentsPhone(String parentsPhone) {
         this.parentsPhone = parentsPhone;
     }
+
+    public String getGender() {
+        return gender;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
+    public String getIsAllowAdjust() {
+        return isAllowAdjust;
+    }
+
+    public void setIsAllowAdjust(String isAllowAdjust) {
+        this.isAllowAdjust = isAllowAdjust;
+    }
+
+    public String getPaymentStatus() {
+        return paymentStatus;
+    }
+
+    public void setPaymentStatus(String paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
 }

+ 53 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentFeeDetailDto.java

@@ -0,0 +1,53 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public class StudentFeeDetailDto {
+
+    @ApiModelProperty(value = "课程费用",required = false)
+    private BigDecimal courseFee;
+
+    @ApiModelProperty(value = "乐器费用",required = false)
+    private List<StudentFeeDto> goods;
+
+    @ApiModelProperty(value = "保证金",required = false)
+    private BigDecimal depositFee;
+
+    @ApiModelProperty(value = "实缴总额",required = false)
+    private BigDecimal totalAmount;
+
+    public BigDecimal getCourseFee() {
+        return courseFee;
+    }
+
+    public void setCourseFee(BigDecimal courseFee) {
+        this.courseFee = courseFee;
+    }
+
+    public List<StudentFeeDto> getGoods() {
+        return goods;
+    }
+
+    public void setGoods(List<StudentFeeDto> goods) {
+        this.goods = goods;
+    }
+
+    public BigDecimal getDepositFee() {
+        return depositFee;
+    }
+
+    public void setDepositFee(BigDecimal depositFee) {
+        this.depositFee = depositFee;
+    }
+
+    public BigDecimal getTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(BigDecimal totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+}

+ 12 - 24
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentFeeDto.java

@@ -5,26 +5,14 @@ import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;
 
 public class StudentFeeDto {
-
-    @ApiModelProperty(value = "课程费用",required = false)
-    private BigDecimal courseFee;
-
     @ApiModelProperty(value = "乐器费用",required = false)
     private BigDecimal musicalFee;
 
-    @ApiModelProperty(value = "保证金",required = false)
-    private BigDecimal depositFee;
-
-    @ApiModelProperty(value = "实缴总额",required = false)
-    private BigDecimal totalAmount;
+    @ApiModelProperty(value = "商品类型",required = false)
+    private String goodsType;
 
-    public BigDecimal getCourseFee() {
-        return courseFee;
-    }
-
-    public void setCourseFee(BigDecimal courseFee) {
-        this.courseFee = courseFee;
-    }
+    @ApiModelProperty(value = "商品名称",required = false)
+    private String goodsName;
 
     public BigDecimal getMusicalFee() {
         return musicalFee;
@@ -34,19 +22,19 @@ public class StudentFeeDto {
         this.musicalFee = musicalFee;
     }
 
-    public BigDecimal getDepositFee() {
-        return depositFee;
+    public String getGoodsType() {
+        return goodsType;
     }
 
-    public void setDepositFee(BigDecimal depositFee) {
-        this.depositFee = depositFee;
+    public void setGoodsType(String goodsType) {
+        this.goodsType = goodsType;
     }
 
-    public BigDecimal getTotalAmount() {
-        return totalAmount;
+    public String getGoodsName() {
+        return goodsName;
     }
 
-    public void setTotalAmount(BigDecimal totalAmount) {
-        this.totalAmount = totalAmount;
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
     }
 }

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupStudentStatusEnum.java

@@ -2,9 +2,6 @@ package com.ym.mec.biz.dal.enums;
 
 import com.ym.mec.common.enums.BaseEnum;
 
-/**
- * 班级类型(普通班级、合奏班级)
- */
 public enum ClassGroupStudentStatusEnum implements BaseEnum<String, ClassGroupStudentStatusEnum> {
     NORMAL("NORMAL", "在读"), LEAVE("LEAVE", "请假"), QUIT("QUIT", "退班");
 

+ 51 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java

@@ -0,0 +1,51 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupStudentQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "科目编号")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "学员状态 NORMAL(NORMAL, 在读), LEAVE(LEAVE, 请假), QUIT(QUIT, 退班)",required = false)
+    private Integer studentStatus;
+
+    @ApiModelProperty(value = "缴费状态  PAID_COMPLETED(完成缴费), NON_PAYMENT(未缴费), PROCESSING(缴费中)",required = false)
+    private Integer paymentStatus;
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getStudentStatus() {
+        return studentStatus;
+    }
+
+    public void setStudentStatus(Integer studentStatus) {
+        this.studentStatus = studentStatus;
+    }
+
+    public Integer getPaymentStatus() {
+        return paymentStatus;
+    }
+
+    public void setPaymentStatus(Integer paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
+}

+ 7 - 18
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeachersQueryInfo.java

@@ -7,15 +7,12 @@ import java.util.Date;
 
 public class MusicGroupTeachersQueryInfo extends QueryInfo {
 
+    @ApiModelProperty(value = "合奏班编号",required = false)
+    private Integer classGroupId;
+
     @ApiModelProperty(value = "乐团编号",required = false)
     private String musicGroupId;
 
-    @ApiModelProperty(value = "工作类型",required = false)
-    private String jobNature;
-
-    @ApiModelProperty(value = "合奏班名称",required = false)
-    private String classGroupName;
-
     public String getMusicGroupId() {
         return musicGroupId;
     }
@@ -24,19 +21,11 @@ public class MusicGroupTeachersQueryInfo extends QueryInfo {
         this.musicGroupId = musicGroupId;
     }
 
-    public String getJobNature() {
-        return jobNature;
-    }
-
-    public void setJobNature(String jobNature) {
-        this.jobNature = jobNature;
-    }
-
-    public String getClassGroupName() {
-        return classGroupName;
+    public Integer getClassGroupId() {
+        return classGroupId;
     }
 
-    public void setClassGroupName(String classGroupName) {
-        this.classGroupName = classGroupName;
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
     }
 }

+ 16 - 16
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRegistrationQueryInfo.java

@@ -11,7 +11,7 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
     private Integer musicGroupId;
 
     @ApiModelProperty(value = "是否允许调剂",required = false)
-    private YesOrNoEnum isAllowAdjust;
+    private String isAllowAdjust;
 
     @ApiModelProperty(value = "专业编号",required = false)
     private Integer subjectId;
@@ -20,19 +20,11 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
     private Integer actualSubjectId;
 
     @ApiModelProperty(value = "学员缴费状态",required = false)
-    private YesOrNoEnum paymentStatus;
+    private String paymentStatus;
 
     @ApiModelProperty(value = "用户名或手机号",required = false)
     private String name;
 
-    public YesOrNoEnum getPaymentStatus() {
-        return paymentStatus;
-    }
-
-    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
-        this.paymentStatus = paymentStatus;
-    }
-
     public String getName() {
         return name;
     }
@@ -57,19 +49,27 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
         this.musicGroupId = musicGroupId;
     }
 
-    public YesOrNoEnum getIsAllowAdjust() {
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getIsAllowAdjust() {
         return isAllowAdjust;
     }
 
-    public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
+    public void setIsAllowAdjust(String isAllowAdjust) {
         this.isAllowAdjust = isAllowAdjust;
     }
 
-    public Integer getSubjectId() {
-        return subjectId;
+    public String getPaymentStatus() {
+        return paymentStatus;
     }
 
-    public void setSubjectId(Integer subjectId) {
-        this.subjectId = subjectId;
+    public void setPaymentStatus(String paymentStatus) {
+        this.paymentStatus = paymentStatus;
     }
 }

+ 64 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/queryMusicGroupCourseScheduleQueryInfo.java

@@ -0,0 +1,64 @@
+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 classGroupId;
+
+    @ApiModelProperty(value = "课程类型",required = false)
+    private String classGroupType;
+
+    @ApiModelProperty(value = "课程状态",required = false)
+    private String classGroupStatus;
+
+    @ApiModelProperty(value = "老师编号",required = false)
+    private String teacherId;
+
+    public String getMixClassId() {
+        return mixClassId;
+    }
+
+    public void setMixClassId(String mixClassId) {
+        this.mixClassId = mixClassId;
+    }
+
+    public String getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(String classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getClassGroupType() {
+        return classGroupType;
+    }
+
+    public void setClassGroupType(String classGroupType) {
+        this.classGroupType = classGroupType;
+    }
+
+    public String getClassGroupStatus() {
+        return classGroupStatus;
+    }
+
+    public void setClassGroupStatus(String classGroupStatus) {
+        this.classGroupStatus = classGroupStatus;
+    }
+
+    public String getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(String teacherId) {
+        this.teacherId = teacherId;
+    }
+}

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -6,11 +6,13 @@ import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
+import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
+import org.snaker.engine.access.Page;
 
 import java.util.List;
 
@@ -244,4 +246,18 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return
      */
     ClassGroup classGroupAdjust(ClassGroupAdjustDto classGroupAdjustDto) throws Exception;
+
+    /**
+     * 乐团详情--班级详情列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<MusicGroupClassGroupDto> queryMusicGroupClassGroup(QueryInfo queryInfo);
+
+    /**
+     * 乐团详情-----课表详情
+     * @param queryInfo
+     * @return
+     */
+    PageInfo queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo);
 }

+ 17 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -1,12 +1,10 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
+import org.snaker.engine.access.Page;
 
 import java.util.List;
 
@@ -77,5 +75,19 @@ public interface StudentManageService {
      * @param queryInfo
      * @return
      */
-    PageInfo queryMusicGroupStudent(StudentManageQueryInfo queryInfo);
+    PageInfo<MusicGroupStudentsDto> queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo);
+
+    /**
+     * 乐团管理学员列表数据汇总
+     * @param musicGroupId
+     * @return
+     */
+    Object musicGroupStudentsSum(String musicGroupId);
+
+    /**
+     * 乐团管理--点名总览
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<MusicGroupStudentSignDto> queryMusicGroupStudentsSign(QueryInfo queryInfo);
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -5,6 +5,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.Goods;
@@ -33,7 +34,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @param subId
 	 * @return
 	 */
-	boolean batchUpdateSubject(String userId, Integer subId);
+	Integer batchUpdateSubject(String userId, Integer subId,String musicGroupId);
 
 	/**
 	 * 学生报名缴费金额详情
@@ -42,7 +43,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @param musicGroupId
 	 * @return
 	 */
-	StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);
+	StudentFeeDetailDto queryFeeDetail(Integer studentId, String musicGroupId);
 
 	/**
 	 * 获取未分配的班级的学生

+ 42 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
+import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -21,14 +22,12 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.format.datetime.DateFormatter;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.text.DateFormat;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -61,8 +60,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Autowired
     private TeacherDefaultMusicGroupSalaryService teacherDefaultMusicGroupSalaryService;
     @Autowired
-    private CourseScheduleService courseScheduleService;
-    @Autowired
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
@@ -110,8 +107,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId) {
-        List<ClassGroup> allMixClassGroup = classGroupDao.findAllClassGroupByMusicGroup(musicGroupId);
-        return allMixClassGroup;
+        return classGroupDao.findAllClassGroupByMusicGroup(musicGroupId);
     }
 
     @Override
@@ -761,4 +757,44 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
         return classGroup;
     }
+
+    @Override
+    public PageInfo<MusicGroupClassGroupDto> queryMusicGroupClassGroup(QueryInfo queryInfo) {
+        PageInfo<MusicGroupClassGroupDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        List<MusicGroupClassGroupDto> dataList = null;
+        int count = classGroupDao.countMusicGroupClassGroup(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = classGroupDao.queryMusicGroupClassGroup(params);
+            Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+            String join = StringUtils.join(classGroups, ",");
+            //获取主教老师
+            Map<Integer,String> masterTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"));
+            //获取助教老师
+            Map<Integer,String> subTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"));
+            //获取在读人数
+            Map<Integer,String> studyNums = MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join));
+            //获取退班人数
+            Map<Integer,String> quitNums = MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join));
+            dataList.forEach(e->{
+                e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
+                e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
+                e.setStudyNum(studyNums.get(e.getClassGroupId()));
+                e.setQuitNum(quitNums.get(e.getClassGroupId()));
+            });
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
+        return null;
+    }
 }

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

@@ -119,10 +119,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		if (musicGroupSubjectGoodsGroups == null) {
 			musicGroupSubjectGoodsGroups = new ArrayList<>();
 		}
-		musicGroupSubjectGoodsGroups.forEach(e -> {
-			e.setMusicGroupId(musicGroupId);
-			musicGroupSubjectGoodsGroupDao.insert(e);
-		});
+		musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups,musicGroupId);
 		// 新增聊天群
 		// ImGroupModel imGroupModel = new ImGroupModel(musicGroupId, musicGroup.getName());
 		// 教务老师和运营主管加入群组

+ 37 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -7,10 +7,8 @@ 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.dto.*;
-import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.page.PageInfo;
@@ -150,12 +148,12 @@ public class StudentManageServiceImpl implements StudentManageService {
     }
 
     @Override
-    public PageInfo queryMusicGroupStudent(StudentManageQueryInfo queryInfo) {
-        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+    public PageInfo<MusicGroupStudentsDto> queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo) {
+        PageInfo<MusicGroupStudentsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List dataList = null;
+        List<MusicGroupStudentsDto> dataList = null;
         int count = studentManageDao.countMusicGroupStudent(params);
         if (count > 0) {
             pageInfo.setTotal(count);
@@ -168,4 +166,36 @@ public class StudentManageServiceImpl implements StudentManageService {
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public Object musicGroupStudentsSum(String musicGroupId) {
+        Map<String,Integer> resultMap = new HashMap<>(3);
+        //乐团在读人数
+        resultMap.put("studying",studentManageDao.countStudyNum(musicGroupId));
+        //退团人数
+        resultMap.put("quit",studentManageDao.countQuitNum(musicGroupId));
+        //新增人数
+        resultMap.put("add",studentManageDao.countAddNum(musicGroupId));
+        return resultMap;
+    }
+
+    @Override
+    public PageInfo<MusicGroupStudentSignDto> queryMusicGroupStudentsSign(QueryInfo queryInfo) {
+        PageInfo<MusicGroupStudentSignDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<MusicGroupStudentSignDto> dataList = null;
+        int count = studentManageDao.countMusicGroupStudentsSign(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentManageDao.queryMusicGroupStudentsSign(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 6 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -8,6 +8,7 @@ import javax.annotation.Resource;
 
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
@@ -89,25 +90,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    public boolean batchUpdateSubject(String userIds, Integer subId) {
-        String[] userId = userIds.split(",");
-        StudentRegistration studentRegistration;
-        Date date = new Date();
-        for (String str : userId) {
-            studentRegistration = studentRegistrationDao.get(Long.parseLong(str));
-            if (studentRegistration.getPaymentStatus() == YesOrNoEnum.NO) {
-                studentRegistration.setUpdateTime(date);
-                studentRegistration.setSubjectId(subId);
-                studentRegistrationDao.update(studentRegistration);
-            }
-        }
-        return true;
+    public Integer batchUpdateSubject(String userIds, Integer subId,String musicGroupId) {
+        //批量调剂(未缴费学员)
+        return studentRegistrationDao.batchUpdateSubject(userIds,subId,musicGroupId);
     }
 
     @Override
-    public StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId) {
-//		return studentRegistrationDao.queryFeeDetail(studentId,musicGroupId);
-        return null;
+    public StudentFeeDetailDto queryFeeDetail(Integer studentId, String musicGroupId) {
+		return studentRegistrationDao.queryFeeDetail(studentId,musicGroupId);
     }
 
     @Override

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

@@ -62,10 +62,11 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     @Override
     public List<SubjectApplyDetailDto> findSubApplyDetail(String musicGroupId) {
         List<SubjectApplyDetailDto> subApplyDetail = subjectDao.findSubApplyDetail(musicGroupId);
-        List<Map<Integer, Integer>> payNums = studentRegistrationDao.countPayNum(musicGroupId);
-        Map<Integer, Integer> payNumMap = MapUtil.convertMybatisMap(payNums);
+        List<Map<Integer, Long>> payNums = studentRegistrationDao.countPayNum(musicGroupId);
+        Map<Integer, Long> payNumMap = MapUtil.convertMybatisMap(payNums);
         subApplyDetail.forEach(detail ->{
-            detail.setPayNum(payNumMap.get(detail.getSubjectId()));
+            Long num = payNumMap.get(detail.getSubjectId());
+            detail.setPayNum(num == null?0:num.intValue());
         });
         return subApplyDetail;
     }

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

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.dto.TeacherCloseDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.MusicGroupTeachersQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;

+ 37 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -533,6 +533,43 @@
         GROUP BY cgr.class_group_id_
     </select>
 
+    <resultMap id="MusicGroupClassGroupDto" type="com.ym.mec.biz.dal.dto.MusicGroupClassGroupDto">
+        <result property="classGroupName" column="class_group_name_"/>
+        <result property="classGroupType" column="class_group_type_"/>
+        <result property="currentClassTimes" column="current_class_times_"/>
+        <result property="classGroupId" column="class_group_id_"/>
+    </resultMap>
+    <select id="queryMusicGroupClassGroup" resultMap="MusicGroupClassGroupDto">
+        SELECT cg.name_ class_group_name_,cg.type_ class_group_type_,
+        cg.current_class_times_,cg.id_ class_group_id_
+        FROM class_group cg
+        WHERE cg.music_group_id_ = #{search} AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
+        <include refid="global.limit"/>
+    </select>
+    <select id="countMusicGroupClassGroup" resultType="java.lang.Integer">
+        SELECT COUNT(cg.id_)
+        FROM class_group cg
+        WHERE cg.music_group_id_ = #{search} AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
+    </select>
+
+    <select id="countStudentNum" resultType="java.util.Map">
+        SELECT cg.class_group_id_ 'key',GROUP_CONCAT(su.real_name_) 'value' FROM class_group_teacher_mapper cg
+        LEFT JOIN sys_user su ON cg.user_id_ = su.id_
+        WHERE FIND_IN_SET(cg.class_group_id_,#{classGroupIds}) AND cg.teacher_role_ = #{teacherRole}
+        GROUP BY cg.class_group_id_
+    </select>
+
+    <select id="countStudyNum" resultType="java.util.Map">
+        SELECT sr.class_group_id_ 'key',COUNT(sr.user_id_) 'value' FROM student_registration sr
+        WHERE FIND_IN_SET(sr.class_group_id_,#{classGroupIds}) AND sr.music_group_status_ != 'QUIT'
+        GROUP BY sr.class_group_id_
+    </select>
+    <select id="countQuitNum" resultType="java.util.Map">
+        SELECT sr.class_group_id_ 'key',COUNT(sr.user_id_) 'value' FROM student_registration sr
+        WHERE FIND_IN_SET(sr.class_group_id_,#{classGroupIds}) AND sr.music_group_status_ = 'QUIT'
+        GROUP BY sr.class_group_id_
+    </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

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

@@ -41,8 +41,9 @@
     <insert id="batchInsert" parameterType="java.util.List">
         INSERT INTO music_group_subject_goods_group
         (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
-        <foreach collection="mappers" item="item" index="index" separator=",">
-            VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
+        <foreach collection="lists" item="item" index="index" separator=",">
+            VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
         </foreach>
     </insert>
 

+ 89 - 0
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -287,4 +287,93 @@
         <include refid="studentPaymentSql"/>
     </select>
 
+    <sql id="queryMusicGroupStudentSql">
+        <where>
+            <if test="search != null and search != ''">
+                AND (su.real_name_ like CONCAT("%",#{search},"%") OR sr.parents_phone_ like CONCAT("%",#{search},"%"))
+            </if>
+            <if test="subjectId != null">
+                AND sr.actual_subject_id_ = #{subjectId}
+            </if>
+            <if test="studentStatus != null and studentStatus != ''">
+                AND sr.music_group_status_ = #{studentStatus}
+            </if>
+            <if test="paymentStatus != null">
+                AND mgsf.payment_status_ = #{paymentStatus}
+            </if>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND sr.music_group_id_ = #{musicGroupId}
+            </if>
+        </where>
+    </sql>
+    <resultMap id="MusicGroupStudentsDto" type="com.ym.mec.biz.dal.dto.MusicGroupStudentsDto">
+        <result property="userId" column="user_id_"/>
+        <result property="realName" column="real_name_"/>
+        <result property="phone" column="parents_phone_"/>
+        <result property="currentGrade" column="current_grade_"/>
+        <result property="currentClass" column="current_class_"/>
+        <result property="subjectName" column="subject_name_"/>
+        <result property="studentStatus" column="music_group_status_"/>
+        <result property="paymentStatus" column="payment_status_"/>
+        <result property="musicGroupId" column="music_group_id_"/>
+        <result property="isNewStudent" column="is_new_student_"/>
+    </resultMap>
+    <select id="queryMusicGroupStudent" resultMap="MusicGroupStudentsDto">
+        SELECT sr.user_id_,su.real_name_,su.gender_,sr.parents_phone_,sr.current_grade_,
+        sr.current_class_,sr.music_group_status_,mgsf.payment_status_,s.name_ subject_name_,sr.music_group_id_,
+        IF(sr.create_time_ > mg.payment_expire_date_,1,0) is_new_student_
+        FROM student_registration sr
+        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        LEFT JOIN music_group_student_fee_ mgsf ON (mgsf.music_group_id_ = sr.music_group_id_ AND mgsf.user_id_ = sr.user_id_)
+        LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
+        LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+        <include refid="queryMusicGroupStudentSql"/>
+        <include refid="global.limit"/>
+    </select>
+    <select id="countMusicGroupStudent" resultType="java.lang.Integer">
+        SELECT COUNT(sr.user_id_)
+        FROM student_registration sr
+        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        LEFT JOIN music_group_student_fee_ mgsf ON (mgsf.music_group_id_ = sr.music_group_id_ AND mgsf.user_id_ = sr.user_id_)
+        LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
+        <include refid="queryMusicGroupStudentSql"/>
+    </select>
+    <select id="countStudyNum" resultType="java.lang.Integer">
+        SELECT COUNT(sr.user_id_) FROM student_registration sr
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.payment_status_ = 1
+        AND sr.music_group_status_ != 'QUIT'
+    </select>
+    <select id="countQuitNum" resultType="java.lang.Integer">
+        SELECT COUNT(sr.user_id_) FROM student_registration sr
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.payment_status_ = 1
+        AND sr.music_group_status_ = 'QUIT'
+    </select>
+    <select id="countAddNum" resultType="java.lang.Integer">
+        SELECT COUNT(sr.user_id_) FROM student_registration sr
+        LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_ AND sr.create_time_ > mg.apply_expire_date_
+        WHERE sr.music_group_id_ = #{musicGroupId} and sr.music_group_status_ != 'QUIT'
+    </select>
+
+    <resultMap id="MusicGroupStudentSignDto" type="com.ym.mec.biz.dal.dto.MusicGroupStudentSignDto">
+        <result property="signTime" column="create_time_"/>
+        <result property="name" column="real_name_"/>
+        <result property="signStatus" column="status_"/>
+        <result property="courseScheduleName" column="name_"/>
+    </resultMap>
+    <select id="queryMusicGroupStudentsSign" resultMap="MusicGroupStudentSignDto">
+        SELECT sa.create_time_,su.real_name_,sa.status_,cs.name_
+        FROM student_attendance sa
+        LEFT JOIN sys_user su ON sa.user_id_ = su.id_
+        LEFT JOIN course_schedule cs ON sa.course_schedule_id_ = cs.id_
+        WHERE (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX') AND sa.music_group_id_ = #{search}
+        <include refid="global.limit"/>
+    </select>
+    <select id="countMusicGroupStudentsSign" resultType="java.lang.Integer">
+        SELECT COUNT(sa.id_)
+        FROM student_attendance sa
+        LEFT JOIN sys_user su ON sa.user_id_ = su.id_
+        LEFT JOIN course_schedule cs ON sa.course_schedule_id_ = cs.id_
+        WHERE (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX') AND sa.music_group_id_ = #{search}
+    </select>
+
 </mapper>

+ 24 - 11
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -186,18 +186,18 @@
     <resultMap type="com.ym.mec.biz.dal.dto.StudentApplyDetailDto" id="studentApplyDetail">
         <result column="current_grade_" property="currentGrade"/>
         <result column="current_class_" property="currentClass"/>
-        <result column="is_allow_adjust_" property="isAllowAdjust"
-                typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_allow_adjust_" property="isAllowAdjust"/>
         <result column="parents_name_" property="parentsName"/>
         <result column="parents_phone_" property="parentsPhone"/>
         <result column="subject_name_" property="subjectName"/>
         <result column="username_" property="studentName"/>
         <result column="actual_subject_name_" property="actualSubjectName"/>
         <result column="payment_status_" property="paymentStatus"/>
-        <result column="gender_" property="gender" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="gender_" property="gender"/>
+        <result column="user_id_" property="studentId"/>
     </resultMap>
     <select id="queryStudentDetailPage" resultMap="studentApplyDetail">
-        SELECT sr.name_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,
+        SELECT sr.user_id_,sr.name_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,
         su.gender_,sr.is_allow_adjust_, s.name_ subject_name_,ss.name_ actual_subject_name_,sr.parents_phone_,sr.payment_status_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.subject_id_ = su.id_
@@ -216,14 +216,23 @@
         WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = 1 GROUP BY subject_id_
     </select>
 
-    <resultMap id="queryFeeDetailMap" type="com.ym.mec.biz.dal.dto.StudentFeeDto">
-        <result column="deposit_fee_" property="depositFee"/>
-        <result column="course_fee_" property="courseFee"/>
-        <result column="musical_fee_" property="musicalFee"/>
-        <result column="total_amount_" property="totalAmount"/>
+    <resultMap id="queryFeeDetailMap" type="com.ym.mec.biz.dal.dto.StudentFeeDetailDto">
+        <result column="expect_amount_" property="courseFee"/>
+        <result column="actual_amount_" property="totalAmount"/>
+        <collection property="goods" ofType="com.ym.mec.biz.dal.dto.StudentFeeDto">
+            <result property="goodsName" column="goods_name_"/>
+            <result property="goodsType" column="goods_type_"/>
+            <result property="musicalFee" column="price_"/>
+        </collection>
     </resultMap>
     <select id="queryFeeDetail" resultMap="queryFeeDetailMap">
-
+        SELECT spo.actual_amount_,spo.expect_amount_,spod.price_,GROUP_CONCAT(g.name_) goods_name_,MAX(g.type_) goods_type_
+        FROM student_registration sr
+        LEFT JOIN student_payment_order spo ON sr.music_group_id_ = spo.music_group_id_ AND spo.user_id_ = sr.user_id_
+        LEFT JOIN student_payment_order_detail spod ON spod.payment_order_id_ = spo.id_
+        LEFT JOIN goods g ON FIND_IN_SET(g.id_,spod.goods_id_list_)
+        WHERE spo.type_ = 'APPLY' AND sr.user_id_ = #{studentId} AND sr.music_group_id_ = #{musicGroupId}
+        GROUP BY spo.id_,spod.id_
     </select>
 
     <!-- 根据乐团和声部获取未分班的学生 -->
@@ -252,7 +261,11 @@
     <update id="updateByUserIdAndMusicGroupId" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
         UPDATE student_registration SET class_group_id_ = #{studentRegistration.classGroupId} WHERE user_id_ = #{studentRegistration.userId} AND music_group_id_ = #{studentRegistration.musicGroupId}
     </update>
-    
+    <update id="batchUpdateSubject">
+        UPDATE student_registration SET actual_subject_id_ = #{subId},update_time_ = now()
+        WHERE FIND_IN_SET(user_id_,#{userIds}) AND payment_status_ = 0 AND music_group_id_ = #{musicGroupId}
+    </update>
+
     <select id="queryStudentInfo" resultMap="StudentInfo">
         SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join student_registration  sr on u.id_ = sr.user_id_ where u.id_ = #{userId} order by sr.create_time_ desc limit 0,1
     </select>

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

@@ -338,14 +338,14 @@
     <sql id="queryMusicGroupTeachersSql">
         <where>
                 cg.type_ = 'MIX'
-            <if test="musicGroupId != null and musicGroupId != ''">
-                AND cg.music_group_id_ = #{musicGroupId}
+            <if test="search != null and search != ''">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
             </if>
-            <if test="jobNature != null and jobNature != ''">
-                AND t.job_nature_ = #{jobNature}
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND cgtm.music_group_id_ = #{musicGroupId}
             </if>
-            <if test="classGroupName != null and classGroupName != ''">
-                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
+            <if test="classGroupId != null">
+                AND cg.id_  = #{classGroupId}
             </if>
         </where>
     </sql>
@@ -382,7 +382,8 @@
         <result property="signOutStatus" column="sign_out_status_"/>
     </resultMap>
     <select id="queryTeacherAttendance" resultMap="MusicGroupTeacherAttendanceDto">
-        SELECT cs.class_date_,cs.start_class_time_,cs.name_,su.real_name_,ta.sign_in_status_,ta.sign_out_status_
+        SELECT cs.class_date_,cs.start_class_time_,cs.name_,su.real_name_,
+        IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_
         FROM course_schedule cs
         LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_
         LEFT JOIN sys_user su ON su.id_ = ta.teacher_id_

+ 6 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -46,10 +46,15 @@ public class TeacherController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "修改教师")
+    @ApiOperation(value = "修改教师个人中心信息")
     @PostMapping("/update")
     public Object update(Teacher teacher) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
         teacher.setUpdateTime(new Date());
+        teacher.setId(sysUser.getId());
         teacherService.updateTea(teacher);
         return succeed();
     }

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

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.controller.BaseController;
@@ -119,13 +120,27 @@ public class ClassGroupController extends BaseController {
         return succeed(classGroupService.findAllMixClassGroupByMusicGroupId(musicGroupId));
     }
 
-    @ApiOperation(value = "乐团所有班列表")
+    @ApiOperation(value = "乐团所有班列表")
     @GetMapping("/findAllClassGroupByMusicGroup")
     @PreAuthorize("@pcs.hasPermissions('classGroup/findAllClassGroupByMusicGroup')")
     public HttpResponseResult findAllClassGroupByMusicGroup(@ApiParam(value = "乐团编号", required = true) @RequestParam String musicGroupId) {
         return succeed(classGroupService.findAllClassGroupByMusicGroup(musicGroupId));
     }
 
+    @ApiOperation(value = "乐团详情--班级详情列表")
+    @GetMapping("/queryMusicGroupClassGroup")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/queryMusicGroupClassGroup')")
+    public HttpResponseResult queryMusicGroupClassGroup(QueryInfo queryInfo) {
+        return succeed(classGroupService.queryMusicGroupClassGroup(queryInfo));
+    }
+
+    @ApiOperation(value = "乐团详情--课表详情列表")
+    @GetMapping("/queryMusicGroupCourseSchedule")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/queryMusicGroupCourseSchedule')")
+    public HttpResponseResult queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
+        return succeed(classGroupService.queryMusicGroupCourseSchedule(queryInfo));
+    }
+
     @ApiOperation(value = "乐团班级老师设置")
     @PostMapping("/addClassGroupTeacher")
     @ApiParam(value = "乐团班级老师json", required = true)

+ 17 - 9
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,11 +1,9 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
+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;
@@ -15,10 +13,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-/**
- * @Author Joburgess
- * @Date 2019/9/19
- */
 @Api(tags = "学生管理")
 @RequestMapping("studentManage")
 @RestController
@@ -37,10 +31,24 @@ public class StudentManageController extends BaseController {
     @ApiOperation(value = "乐团管理--乐团详情--获取学员列表")
     @GetMapping("/queryMusicGroupStudent")
     @PreAuthorize("@pcs.hasPermissions('studentManage/queryMusicGroupStudent')")
-    public Object queryMusicGroupStudent(StudentManageQueryInfo queryInfo){
+    public Object queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo){
         return succeed(studentManageService.queryMusicGroupStudent(queryInfo));
     }
 
+    @ApiOperation(value = "乐团管理--乐团详情--学员列表,汇总数据接口")
+    @GetMapping("/musicGroupStudentsSum")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/musicGroupStudentsSum')")
+    public Object musicGroupStudentsSum(String musicGroupId){
+        return succeed(studentManageService.musicGroupStudentsSum(musicGroupId));
+    }
+
+    @ApiOperation(value = "乐团管理--乐团详情--点名总览")
+    @GetMapping("/queryMusicGroupStudentsSign")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryMusicGroupStudentsSign')")
+    public Object queryMusicGroupStudentsSign(QueryInfo queryInfo){
+        return succeed(studentManageService.queryMusicGroupStudentsSign(queryInfo));
+    }
+
     @ApiOperation(value = "根据学生ID获取学生基本报名信息")
     @GetMapping("/findStudentBaseInfo")
     @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentBaseInfo')")

+ 7 - 11
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -37,13 +37,6 @@ public class StudentRegistrationController extends BaseController {
         return succeed(studentRegistrationService.insertStudent(studentRegistration));
     }
 
-//    @ApiOperation(value = "删除学生报名信息")
-//    @PostMapping("/del")
-//    public Object del(@ApiParam(value = "学生报名信息编号", required = true) @PathVariable("id") Long id) {
-//        studentRegistrationService.delete(id);
-//        return succeed();
-//    }
-
     @ApiOperation(value = "修改学生报名信息")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/update')")
@@ -56,11 +49,14 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "批量调剂学生报名专业")
     @PostMapping("/batchUpdateSubject")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/batchUpdateSubject')")
-    public Object batchUpdateSubject(String userId,Integer subId) {
-        if (StringUtils.isEmpty(userId) || subId == null) {
-            return failed();
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "学生编号(多个逗号)", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "subId", value = "声部编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
+    public Object batchUpdateSubject(String userId,Integer subId,String musicGroupId) {
+        if (StringUtils.isEmpty(userId) || subId == null || StringUtils.isEmpty(musicGroupId)) {
+            return failed("参数校验异常");
         }
-        return succeed(studentRegistrationService.batchUpdateSubject(userId, subId));
+        return succeed(studentRegistrationService.batchUpdateSubject(userId, subId,musicGroupId));
     }
 
     @ApiOperation(value = "乐团【报名中、缴费中】 学生详情列表分页查询")