소스 검색

Merge remote-tracking branch 'origin/master'

Joburgess 5 년 전
부모
커밋
57c4dc646d
18개의 변경된 파일194개의 추가작업 그리고 165개의 파일을 삭제
  1. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java
  4. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAddDto.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupStudentMapperService.java
  7. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  8. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  9. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  10. 13 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 102 121
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  12. 3 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  13. 4 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  14. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  15. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  16. 0 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  17. 4 2
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  18. 0 1
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

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

@@ -37,7 +37,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @params [musicGroupId]
      * @describe 获取所有班级
      */
-    List<ClassGroup> findAllClassGroupByMusicGroup(@Param("musicGroupId") String musicGroupId);
+    List<ClassGroup> findAllClassGroupByMusicGroup(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") String type);
 
     /**
      * 根据合奏班ID查询该合奏班下的子班级

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -711,4 +711,6 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param schoolId
      */
     void updateCourseScheduleSchool(@Param("groupType") String groupType,@Param("musicGroupId") String musicGroupId,@Param("schoolId") Integer schoolId);
+
+    int countCourseScheduleByMusicGroupId(@Param("musicGroupId") String musicGroupId);
 }

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

@@ -118,5 +118,6 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @param musicGroupStudentFees
 	 * @param nextPaymentDate
 	 */
-	void batchInsert(@Param("musicGroupStudentFees") List<MusicGroupStudentFee> musicGroupStudentFees, @Param("nextPaymentDate") Date nextPaymentDate);
+	void batchInsert(@Param("musicGroupStudentFees") List<MusicGroupStudentFee> musicGroupStudentFees
+			, @Param("nextPaymentDate") Date nextPaymentDate, @Param("paymentStatus") String paymentStatus);
 }

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAddDto.java

@@ -15,6 +15,50 @@ public class StudentAddDto{
     @ApiModelProperty(value = "课程费用", required = false)
     private BigDecimal courseFee;
 
+    @ApiModelProperty(value = "单技班编号", required = false)
+    private Integer signClassId;
+
+    @ApiModelProperty(value = "合奏班编号", required = false)
+    private Integer mixClassId;
+
+    @ApiModelProperty(value = "零时班编号", required = false)
+    private String snapClassIds;
+
+    @ApiModelProperty(value = "基础技能训练班", required = false)
+    private Integer highClassId;
+
+    public Integer getSignClassId() {
+        return signClassId;
+    }
+
+    public void setSignClassId(Integer signClassId) {
+        this.signClassId = signClassId;
+    }
+
+    public Integer getMixClassId() {
+        return mixClassId;
+    }
+
+    public void setMixClassId(Integer mixClassId) {
+        this.mixClassId = mixClassId;
+    }
+
+    public String getSnapClassIds() {
+        return snapClassIds;
+    }
+
+    public void setSnapClassIds(String snapClassIds) {
+        this.snapClassIds = snapClassIds;
+    }
+
+    public Integer getHighClassId() {
+        return highClassId;
+    }
+
+    public void setHighClassId(Integer highClassId) {
+        this.highClassId = highClassId;
+    }
+
     @ApiModelProperty(value = "订单详情", required = false)
     private List<StudentPaymentOrderDetail> studentPaymentOrderDetails;
 

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

@@ -59,7 +59,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      * @describe 获取乐团下所有班级
      */
-    List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId);
+    List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId,String type);
 
     /**
      * 添加单技班

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

@@ -18,7 +18,7 @@ public interface ClassGroupStudentMapperService extends BaseService<Long, ClassG
      * @param classGroupId
      * @return
      */
-    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId);
+    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId,String status);
 
     /**
      * 删除班级学生

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

@@ -1,19 +1,19 @@
 package com.ym.mec.biz.service;
 
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.StudentAddDto;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
+import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 public interface StudentRegistrationService extends BaseService<Long, StudentRegistration> {
 

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

@@ -143,8 +143,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId) {
-        return classGroupDao.findAllClassGroupByMusicGroup(musicGroupId);
+    public List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId,String type) {
+        return classGroupDao.findAllClassGroupByMusicGroup(musicGroupId,type);
     }
 
     @Override

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

@@ -48,14 +48,14 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     @Override
-    public ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId) {
-        return classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId, "NORMAL");
+    public ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId,String status) {
+        return classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId, status);
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean delClassGroupStudent(Integer userId, Integer classGroupId) throws Exception {
-        ClassGroupStudentMapper classStudentMapper = findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId);
+        ClassGroupStudentMapper classStudentMapper = findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId,"NORMAL");
         if (classStudentMapper == null) {
             throw new Exception("班级学生不存在");
         }
@@ -94,7 +94,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean adjustClassGroup(Integer userId, Integer oldClassGroupId, Integer classGroupId) throws Exception {
-        ClassGroupStudentMapper classStudentMapper = findClassStudentMapperByUserIdAndClassGroupId(userId, oldClassGroupId);
+        ClassGroupStudentMapper classStudentMapper = findClassStudentMapperByUserIdAndClassGroupId(userId, oldClassGroupId,"NORMAL");
         if (classStudentMapper == null) {
             throw new Exception("原班级学生不存在");
         }

+ 13 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -318,7 +318,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
             if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
                 Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
-                musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate);
+                musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
             }
             musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "跨团调整", sysUser.getId(),""));
         }
@@ -656,7 +656,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
                     Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
-                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate);
+                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
                 }
             }
             List<MusicGroupSubjectPlan> musicGroupSubjectPlans = subFeeSettingDto.getMusicGroupSubjectPlans();
@@ -699,10 +699,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new Exception("采购清单未确认");
         }
         //课酬是否确认
-        if(classGroupService.checkSetSalary(musicGroupId) == false){
-        	throw new Exception("课酬未确认");
+        Integer courseScheduleNum = courseScheduleDao.countCourseScheduleByMusicGroupId(musicGroupId);
+        if(courseScheduleNum != null && courseScheduleNum > 0){
+            if(classGroupService.checkSetSalary(musicGroupId) == false){
+                throw new Exception("课酬未确认");
+            }
+        }
+        //生成学员费用表
+        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
+            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
         }
-//        courseScheduleTeacherSalaryDao.queryCount();
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
         musicGroup.setStatus(MusicGroupStatusEnum.PROGRESS);
@@ -711,16 +718,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setGroupMemberNum(studentRegistrations == null?0:studentRegistrations.size());
         musicGroup.setBillStartDate(new Date());
         musicGroupDao.update(musicGroup);
-        //3.0发送该消息
-        /*if(new Integer(3).equals(musicGroup.getChargeTypeId())){
-            Map<Integer,String> studentMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findIdMapByMusicGroupId(musicGroupId,2))),HashMap.class);
-            if(studentMap != null && studentMap.size() > 0){
-                String url = "http://mstudev.dayaedu.com/#/smallRegister?musicGroupId=" + musicGroupId;
-                String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-                sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
-                        studentMap,null,0,"5?" + url,musicGroup.getName(),HttpUtil.getSortUrl(url),serverPhone);
-            }
-        }*/
         //给老师发送乐团成立通知
         Map<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(musicGroupDao.queryTeacherIdMap(musicGroupId))),HashMap.class);
         if(map != null && map.size() > 0){
@@ -825,7 +822,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (String musicGroupId: musicGroupIds) {
                 musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
                 }
             }
         }

+ 102 - 121
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -476,6 +476,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (studentRegistration == null) {
             throw new Exception("参数校验失败");
         }
+        if(studentAddDto.getSignClassId() == null && studentAddDto.getMixClassId() == null){
+            throw new Exception("参数校验失败: 单技班或合奏班必填一项");
+        }
         String musicGroupId = studentRegistration.getMusicGroupId();
 
         StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
@@ -524,156 +527,134 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
-            Integer classGroupId = studentRegistration.getClassGroupId();
-            if (classGroupId != null) {
-                ClassGroup classGroup = classGroupDao.get(classGroupId);
-                if (classGroup != null) {
-                    if (!classGroup.getMusicGroupId().equals(musicGroupId)) {
-                        throw new Exception("班级录入错误");
-                    } else {
-                        //修改实际学生人数
-                        classGroup.setStudentNum(classGroup.getStudentNum() + 1);
-                        classGroup.setUpdateTime(new Date());
-                        classGroupDao.update(classGroup);
-                    }
-                } else {
-                    throw new Exception("班级不存在");
-                }
-                //添加班级关联
-                addStudents(classGroup, userId);
-                Date date = new Date();
-                //保存乐团学生费用表
-                if (studentAddDto.getCourseFee() == null) {
-                    MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
-                    studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
-                }
-                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
-                musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
-                        userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
-                        nextPaymentDate, studentAddDto.getTemporaryCourseFee()));
-                //生成订单
-                StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-                studentPaymentOrder.setUserId(userId);
-                studentPaymentOrder.setGroupType(GroupType.MUSIC);
-                studentPaymentOrder.setType(OrderTypeEnum.APPLY);
-                studentPaymentOrder.setStatus(DealStatusEnum.WAIT_PAY);
-                studentPaymentOrder.setMusicGroupId(musicGroupId);
-                studentPaymentOrder.setClassGroupId(classGroupId);
-
-                //生成订单明细
-                List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
-                if (studentPaymentOrderDetails == null) {
-                    studentPaymentOrderDetails = new ArrayList<>();
-                }
-                StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail.setPrice(studentAddDto.getTemporaryCourseFee());
-                studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
-                studentPaymentOrderDetails.add(studentPaymentOrderDetail);
-                //汇总金额
-                BigDecimal reduce = studentPaymentOrderDetails.stream().map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
-                if (reduce == BigDecimal.ZERO) {
-                    studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
-                    studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
-                    studentPaymentOrder.setActualAmount(reduce);
-                    studentPaymentOrder.setPayTime(date);
-                }
-                studentPaymentOrder.setExpectAmount(reduce);
-                //当前学员是否以前存在过当前乐团
+            //添加班级关联
+            addStudents(studentAddDto, userId);
+            Date date = new Date();
+            //保存乐团学生费用表
+            if (studentAddDto.getCourseFee() == null) {
+                MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
+                studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
+            }
+            Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+            musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
+                    userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
+                    nextPaymentDate, studentAddDto.getTemporaryCourseFee()));
+            //生成订单
+            StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+            studentPaymentOrder.setUserId(userId);
+            studentPaymentOrder.setGroupType(GroupType.MUSIC);
+            studentPaymentOrder.setType(OrderTypeEnum.APPLY);
+            studentPaymentOrder.setStatus(DealStatusEnum.WAIT_PAY);
+            studentPaymentOrder.setMusicGroupId(musicGroupId);
+            studentPaymentOrder.setClassGroupId(studentAddDto.getSignClassId());
+
+            //生成订单明细
+            List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
+            if (studentPaymentOrderDetails == null) {
+                studentPaymentOrderDetails = new ArrayList<>();
+            }
+            StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
+            studentPaymentOrderDetail.setPrice(studentAddDto.getTemporaryCourseFee());
+            studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
+            studentPaymentOrderDetails.add(studentPaymentOrderDetail);
+            //汇总金额
+            BigDecimal reduce = studentPaymentOrderDetails.stream().map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+            if (reduce == BigDecimal.ZERO) {
+                studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
+                studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+                studentPaymentOrder.setActualAmount(reduce);
+                studentPaymentOrder.setPayTime(date);
+            }
+            studentPaymentOrder.setExpectAmount(reduce);
+            //当前学员是否以前存在过当前乐团
 //                StudentRegistration registration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-                if(phoneAndMusicGroupId != null){
-                    studentRegistration.setId(phoneAndMusicGroupId.getId());
-                    studentRegistrationDao.update(studentRegistration);
-                }else {
-                    studentRegistrationDao.insertBasic(studentRegistration);
-                }
-                studentPaymentOrderService.insert(studentPaymentOrder);
-                studentPaymentOrderDetails.forEach(e -> {
-                    e.setPaymentOrderId(studentPaymentOrder.getId());
-                });
-                studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
-                Map<Integer, String> receivers = new HashMap<>(1);
-                receivers.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
-                if (reduce == BigDecimal.ZERO) {
-                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT_FREE,
-                            receivers, null, 0, null, studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName());
-                }else {
-                    String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
-                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT,
-                            receivers, null, 0, null, studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName(),HttpUtil.getSortUrl(studentApplyUrl));
-                }
+            if(phoneAndMusicGroupId != null){
+                studentRegistration.setId(phoneAndMusicGroupId.getId());
+                studentRegistrationDao.update(studentRegistration);
+            }else {
+                studentRegistrationDao.insertBasic(studentRegistration);
+            }
+            studentPaymentOrderService.insert(studentPaymentOrder);
+            studentPaymentOrderDetails.forEach(e -> {
+                e.setPaymentOrderId(studentPaymentOrder.getId());
+            });
+            studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
+            Map<Integer, String> receivers = new HashMap<>(1);
+            receivers.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
+            if (reduce == BigDecimal.ZERO) {
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT_FREE,
+                        receivers, null, 0, null, studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName());
+            }else {
+                String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT,
+                        receivers, null, 0, null, studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName(),HttpUtil.getSortUrl(studentApplyUrl));
             }
             return userId;
         }
     }
 
-    public void addStudents(ClassGroup classGroup, Integer userId) {
-        Date nowDate = new Date();
-        //1、班级关系添加
-//        List<ClassGroupStudentMapper> classGroupStudentMappers = new ArrayList<>();
-//        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
-        Integer classGroupId = classGroup.getId();
-
-        //校验是否存在历史记录
-        ClassGroupStudentMapper classGroupStudentMapper = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId);
+    private List<CourseSchedule> addStudent(Integer classGroupId,Integer userId,Date date,List<CourseSchedule> courseScheduleList){
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+        ClassGroupStudentMapper classGroupStudentMapper = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId,null);
         if(classGroupStudentMapper != null){
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-            classGroupStudentMapper.setClassGroupId(classGroupId);
+            classGroupStudentMapper.setClassGroupId(classGroup.getId());
             classGroupStudentMapperDao.update(classGroupStudentMapper);
         }else {
             classGroupStudentMapper = new ClassGroupStudentMapper();
             classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
             classGroupStudentMapper.setClassGroupId(classGroupId);
             classGroupStudentMapper.setUserId(userId);
-            classGroupStudentMapper.setCreateTime(nowDate);
+            classGroupStudentMapper.setCreateTime(date);
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentMapper.setGroupType(GroupType.MUSIC);
             classGroupStudentMapperDao.insert(classGroupStudentMapper);
         }
-
-        //添加进IM群组
         ImGroupMember[] imGroupMembers = {new ImGroupMember(userId.toString())};
-        imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+        imFeignService.groupJoin(new ImGroupModel(classGroupId.toString(), imGroupMembers, classGroup.getName()));
         //2、班级人数调整
-        classGroupDao.updateClassStudentNum(classGroupId.longValue(), 1);
+//        classGroupDao.updateClassStudentNum(classGroupId.longValue(), 1);
         //3、学生加入新班级未开始课程
-        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
-
-        ClassGroupRelation classGroupRelation = classGroupRelationService.findClassGroupRelation(classGroupId);
-        if(classGroupRelation != null){
-            ClassGroupStudentMapper classGroupStudentMapperMix = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupRelation.getClassGroupId());
-            if(classGroupStudentMapperMix != null){
-                classGroupStudentMapperMix.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-                classGroupStudentMapperMix.setClassGroupId(classGroupRelation.getClassGroupId());
-                classGroupStudentMapperDao.update(classGroupStudentMapperMix);
-            }else {
-                classGroupStudentMapperMix = new ClassGroupStudentMapper();
-                classGroupStudentMapperMix.setMusicGroupId(classGroup.getMusicGroupId());
-                classGroupStudentMapperMix.setClassGroupId(classGroupRelation.getClassGroupId());
-                classGroupStudentMapperMix.setUserId(userId);
-                classGroupStudentMapperMix.setCreateTime(nowDate);
-                classGroupStudentMapperMix.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-                classGroupStudentMapperMix.setGroupType(GroupType.MUSIC);
-                classGroupStudentMapperDao.insert(classGroupStudentMapperMix);
-            }
-            classGroupDao.updateClassStudentNum(classGroupRelation.getClassGroupId().longValue(), 1);
-            List<CourseSchedule> mixCourseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupRelation.getClassGroupId());
-            courseScheduleList.addAll(mixCourseScheduleList);
-
-            //添加进合奏班IM群组
-            imFeignService.groupJoin(new ImGroupModel(classGroupRelation.getClassGroupId().toString(), imGroupMembers, null));
+        List<CourseSchedule> noStartCoursesByClassGroupId = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
+        if(noStartCoursesByClassGroupId != null && noStartCoursesByClassGroupId.size() > 0){
+            courseScheduleList.addAll(noStartCoursesByClassGroupId);
         }
+        return courseScheduleList;
+    }
 
-        BigDecimal coursePrice = new BigDecimal("0");
+    public void addStudents(StudentAddDto studentAddDto, Integer userId) {
+        Date nowDate = new Date();
 
+        String musicGroupId = studentAddDto.getStudentRegistration().getMusicGroupId();
+        Integer signClassId = studentAddDto.getSignClassId();
+        List<CourseSchedule> courseScheduleList = new ArrayList<>();
+        if(signClassId != null){
+            addStudent(signClassId,userId,nowDate,courseScheduleList);
+        }
+        Integer mixClassId = studentAddDto.getMixClassId();
+        if(mixClassId != null){
+            addStudent(mixClassId,userId,nowDate,courseScheduleList);
+        }
+        Integer highClassId = studentAddDto.getHighClassId();
+        if(highClassId != null){
+            addStudent(mixClassId,userId,nowDate,courseScheduleList);
+        }
+        String snapClassIds = studentAddDto.getSnapClassIds();
+        if(StringUtils.isNotEmpty(snapClassIds)){
+            String[] split = snapClassIds.split(",");
+            for (int i = 0;i < split.length;i++){
+                addStudent(Integer.parseInt(split[i]),userId,nowDate,courseScheduleList);
+            }
+        }
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
         for (CourseSchedule courseSchedule : courseScheduleList) {
             CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
-            courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
-            courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
+            courseScheduleStudentPayment.setGroupType(GroupType.MUSIC);
+            courseScheduleStudentPayment.setMusicGroupId(musicGroupId);
             courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
             courseScheduleStudentPayment.setUserId(userId);
-            courseScheduleStudentPayment.setExpectPrice(coursePrice);
-            courseScheduleStudentPayment.setClassGroupId(classGroupId);
+            courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+            courseScheduleStudentPayment.setClassGroupId(signClassId);
             courseScheduleStudentPayment.setCreateTime(nowDate);
             courseScheduleStudentPayment.setUpdateTime(nowDate);
             courseScheduleStudentPayments.add(courseScheduleStudentPayment);

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

@@ -337,6 +337,9 @@
     <select id="findAllClassGroupByMusicGroup" resultMap="ClassGroup">
         SELECT * FROM class_group cg
         WHERE cg.music_group_id_=#{musicGroupId} AND del_flag_='0'
+        <if test="classGroupType != null">
+            AND cg.type_ = #{classGroupType}
+        </if>
     </select>
 
     <select id="queryTeacherIds" resultType="java.lang.Integer">

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

@@ -1503,7 +1503,7 @@
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_ LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
         LEFT JOIN student_attendance sa ON sa.course_schedule_id_= cssp.course_schedule_id_
-        WHERE CONCAT(cs.class_date_,' ',cs.end_class_time_) <= now() AND sa.id_ IS NULL
+        WHERE CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= now() AND sa.id_ IS NULL
     </select>
     <select id="getNextCourseSchedule" resultMap="CourseSchedule">
         SELECT
@@ -1537,4 +1537,7 @@
     <select id="countCurrentTimes" resultType="int">
         SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;#{currentCourseDate}
     </select>
+    <select id="countCourseScheduleByMusicGroupId" resultType="java.lang.Integer">
+        SELECT count(cs.id_) FROM course_schedule cs WHERE cs.music_group_id_ = #{musicGroupId} LIMIT 1
+    </select>
 </mapper>

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

@@ -42,7 +42,7 @@
         INSERT INTO music_group_student_fee_ (music_group_id_,user_id_,create_time_,update_time_,next_payment_date_,subject_id_,payment_status_)
 		VALUES
 		<foreach collection="musicGroupStudentFees" item="item" separator=",">
-            (#{item.musicGroupId},#{item.userId},NOW(),NOW(),#{nextPaymentDate},#{item.subjectId},'NON_PAYMENT')
+            (#{item.musicGroupId},#{item.userId},NOW(),NOW(),#{nextPaymentDate},#{item.subjectId},#{paymentStatus})
         </foreach>
     </insert>
 

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

@@ -157,7 +157,7 @@
         SELECT spo.*,u.username_ FROM student_payment_order spo
         left join sys_user u on spo.user_id_ = u.id_
         <include refid="queryPaymentOrder"/>
-        ORDER BY spo.id_
+        ORDER BY spo.id_ DESC
         <include refid="global.limit"/>
     </select>
 

+ 0 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -2,10 +2,8 @@ package com.ym.mec.teacher.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.biz.dal.page.queryMusicGroupStudentQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
@@ -15,7 +13,6 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.*;
 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;

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

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.dto.TestDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
@@ -128,8 +129,9 @@ public class ClassGroupController extends BaseController {
     @ApiOperation(value = "乐团所有班级列表")
     @GetMapping("/findAllClassGroupByMusicGroup")
     @PreAuthorize("@pcs.hasPermissions('classGroup/findAllClassGroupByMusicGroup')")
-    public HttpResponseResult findAllClassGroupByMusicGroup(@ApiParam(value = "乐团编号", required = true) @RequestParam String musicGroupId) {
-        return succeed(classGroupService.findAllClassGroupByMusicGroup(musicGroupId));
+    public HttpResponseResult findAllClassGroupByMusicGroup(@ApiParam(value = "乐团编号", required = true) @RequestParam String musicGroupId,
+                                                            @ApiParam(value = "班级类型", required = false) @RequestParam String type) {
+        return succeed(classGroupService.findAllClassGroupByMusicGroup(musicGroupId,type));
     }
 
     @ApiOperation(value = "乐团详情--班级详情列表")

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

@@ -17,7 +17,6 @@ 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.*;
-
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;