Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java
Joburgess 5 anni fa
parent
commit
1cad60105f
35 ha cambiato i file con 368 aggiunte e 151 eliminazioni
  1. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java
  4. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  5. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultVipGroupSalaryDao.java
  6. 26 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  7. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessage.java
  8. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRegistrationQueryInfo.java
  9. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java
  10. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  12. 44 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  13. 58 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  14. 99 35
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  15. 20 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java
  16. 9 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  17. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  18. 0 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  19. 1 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java
  20. 1 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  21. 2 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  22. 1 4
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  23. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  24. 4 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  25. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  26. 9 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  27. 1 1
      mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml
  28. 3 12
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  29. 7 0
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultVipGroupSalaryMapper.xml
  30. 5 5
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  31. 1 1
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  32. 7 6
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  33. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/SmsCodeController.java
  34. 1 0
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/YimeiSmsPlugin.java
  35. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
@@ -21,10 +22,10 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
     /**
      * 查询班级老师
      *
-     * @param classGroupList
+     * @param classGroupIds
      * @return
      */
-    List<ClassGroupTeacherMapper> findClassGroupTeachers(@Param("classGroupList") List classGroupList);
+    List<ClassGroupTeacherMapper> findClassGroupTeachers(@Param("classGroupIds") String classGroupIds);
 
     /**
      * 批量删除班级的老师关联关系

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java

@@ -76,4 +76,11 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 */
 	List<Map<Integer,Integer>> findContinuousAbsenteeismTimesByUsersAndMusicGroup(@Param("musicGroupId") String musicGroupId,
 																				  @Param("userIds") List<Integer> userIds);
+
+	/**
+	 * 获取当前乐团未缴费的学员人数
+	 * @param musicGroupId
+	 * @return
+	 */
+    Integer countStudentNoPayNum(String musicGroupId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java

@@ -25,4 +25,11 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @return
      */
     MusicGroupSubjectPlan getMusicOneSubjectClassPlan(@Param("musicGroupId") String musicGroupId, @Param("subjectId") int subjectId);
+
+    /**
+     * 批量新增乐团声部规划
+     * @param musicGroupSubjectPlans
+     * @param musicGroupId
+     */
+    void batchAdd( @Param("subjectPlans") List<MusicGroupSubjectPlan> musicGroupSubjectPlans,@Param("musicGroupId") String musicGroupId);
 }

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

@@ -53,7 +53,15 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param userIds
      * @return
      */
-    List<Map<Integer, String>> queryNameByIds(@Param("userIds") Set<Integer> userIds);
+    List<Map<Integer, String>> queryNameByIds(@Param("userIds") String userIds);
+
+    /**
+     * 根据用户编号获取用户名称
+     *
+     * @param userId
+     * @return
+     */
+    String queryNameById(@Param("userId") Integer userId);
 
     /**
      * 查询分部所有老师

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultVipGroupSalaryDao.java

@@ -21,4 +21,10 @@ public interface TeacherDefaultVipGroupSalaryDao extends BaseDAO<Long, TeacherDe
      * @param userId
      */
     void delByTeacherId(Integer userId);
+
+    /**
+     * 批量新增
+     * @param teacherDefaultVipGroupSalaries
+     */
+    void batchAdd(@Param("vipGroupSalaries") List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries);
 }

+ 26 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -3,9 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -21,8 +19,12 @@ public class MusicGroup {
 	private String name;
 	
 	/** 所属分部 */
-	@ApiModelProperty(value = "所属分部",required = false)
+	@ApiModelProperty(value = "所属分部编号",required = false)
 	private Integer organId;
+
+	/** 所属分部 */
+	@ApiModelProperty(value = "所属分部名称",required = false)
+	private String organName;
 	
 	/** 学校(合作单位) */
 	@ApiModelProperty(value = "学校(合作单位) ",required = false)
@@ -31,6 +33,10 @@ public class MusicGroup {
 	/** 学校(合作单位) */
 	@ApiModelProperty(value = "学校名称 ",required = false)
 	private String schoolName;
+
+	/** 学校(合作单位) */
+	@ApiModelProperty(value = "上课地点 ",required = false)
+	private String address;
 	
 	/** 报名截止日期 */
 	@ApiModelProperty(value = "报名截止日期",required = false)
@@ -47,7 +53,7 @@ public class MusicGroup {
 	@ApiModelProperty(value = "教务老师名字",required = false)
 	private String educationalTeacherName;
 	/** 教务老师 */
-	@ApiModelProperty(value = "教务老师",required = false)
+	@ApiModelProperty(value = "教务老师编号",required = false)
 	private Integer educationalTeacherId;
 	
 	/** 收费类型 */
@@ -116,6 +122,22 @@ public class MusicGroup {
 	@ApiModelProperty(value = "在读人数",required = true)
 	private Integer payNum;
 
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
 	public String getSchoolName() {
 		return schoolName;
 	}

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

@@ -63,7 +63,19 @@ public class SysMessage {
 	
 	@ApiModelProperty(value = "消息组",required = false)
 	private String group;
-	
+
+	public SysMessage() {
+	}
+
+	public SysMessage(String title, String content, MessageSendMode type, String receiver, Integer userId, String memo) {
+		this.title = title;
+		this.content = content;
+		this.type = type;
+		this.receiver = receiver;
+		this.userId = userId;
+		this.memo = memo;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

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

@@ -8,7 +8,7 @@ import com.ym.mec.common.page.QueryInfo;
 public class StudentRegistrationQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "乐团编号",required = false)
-    private Integer musicGroupId;
+    private String musicGroupId;
 
     @ApiModelProperty(value = "是否允许调剂",required = false)
     private String isAllowAdjust;
@@ -41,11 +41,11 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
         this.actualSubjectId = actualSubjectId;
     }
 
-    public Integer getMusicGroupId() {
+    public String getMusicGroupId() {
         return musicGroupId;
     }
 
-    public void setMusicGroupId(Integer musicGroupId) {
+    public void setMusicGroupId(String musicGroupId) {
         this.musicGroupId = musicGroupId;
     }
 

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.common.service.BaseService;
@@ -22,7 +23,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      * @param classGroupList
      * @return
      */
-    List<ClassGroupTeacherMapper> findClassGroupTeachers(List classGroupList);
+    List<ClassGroupTeacherMapper> findClassGroupTeachers(List<ClassGroupTeachersDto> classGroupList);
 
     /**
      * 批量更新教师薪酬

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

@@ -136,7 +136,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 修改乐团基本信息
 	 * @param subFeeSettingDto
 	 */
-	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
+	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception;
 
 	/**
 	 * 获取修改乐团时的基本信息数据
@@ -165,4 +165,11 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return
 	 */
 	MusicGroup openPay(String musicGroupId);
+
+	/**
+	 * 获取乐团详情
+	 * @param musicGroupId
+	 * @return
+	 */
+	MusicGroup getMusicGroupDetail(String musicGroupId);
 }

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

@@ -93,8 +93,8 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @param goodsList
 	 * @return
 	 */
-	StudentPaymentOrder addOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
-			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId);
+	StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
+			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList);
 
 	/**
 	 * 学生注册缴费重新下订单

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

@@ -12,12 +12,14 @@ 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.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -76,6 +78,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
     private StudentRegistrationService studentRegistrationService;
+    @Autowired
+    private ImFeignService imFeignService;
+
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -118,20 +123,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ClassGroup addClassGroup(ClassGroup classGroup) throws Exception {
+        String userIds = classGroup.getUserIds();
+        if (userIds == null || userIds.isEmpty()) throw new Exception("班级学生不能为空");
+
+        Set<String> userIdStrSet = new HashSet<>(Arrays.asList(userIds.split(",")));
+
         Date date = new Date();
         classGroup.setCreateTime(date);
         classGroup.setUpdateTime(date);
         classGroup.setType(ClassGroupTypeEnum.NORMAL);
-        String userIds = classGroup.getUserIds();
-        String[] userIdArr = userIds.split(",");
 
-        classGroup.setExpectStudentNum(userIdArr.length);
-        classGroup.setStudentNum(userIdArr.length);
+        classGroup.setExpectStudentNum(userIdStrSet.size());
+        classGroup.setStudentNum(userIdStrSet.size());
         insert(classGroup);
 
         //2、插入班级学生关联关系
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         List<ClassGroupStudentMapper> classGroupStudentList = new ArrayList<>();
-        for (String userId : userIdArr) {
+        for (String userId : userIdStrSet) {
             ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
             classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
             classGroupStudentMapper.setClassGroupId(classGroup.getId());
@@ -139,14 +148,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             classGroupStudentMapper.setCreateTime(date);
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentList.add(classGroupStudentMapper);
+
             StudentRegistration studentRegistration = new StudentRegistration();
             studentRegistration.setClassGroupId(classGroup.getId());
-            studentRegistration.setUserId(Integer.getInteger(userId));
+            studentRegistration.setUserId(Integer.parseInt(userId));
             studentRegistration.setMusicGroupId(classGroup.getMusicGroupId());
             studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
+            imGroupMemberList.add(new ImGroupMember(userId));
         }
 
         classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentList);
+        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+        // 创建群组
+        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
         return classGroup;
     }
@@ -160,9 +174,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<ClassGroup> classGroups = findClassGroupByIds(classGroupIds);
         int studentNum = 0; //学生数
         String subjectIds = "";
+        List<Integer> classGroupIdList = new ArrayList<>();
         for (ClassGroup classGroup : classGroups) {
             studentNum += classGroup.getStudentNum();
             subjectIds += subjectIds.isEmpty() ? classGroup.getSubjectIdList() : "," + classGroup.getSubjectIdList();
+            classGroupIdList.add(classGroup.getId());
+        }
+
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findByClassGroups(classGroupIdList);
+
+        for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
+            if (classGroupStudentMapper.getStatus().equals(ClassGroupStudentStatusEnum.QUIT)) continue;
+            imGroupMemberList.add(new ImGroupMember(classGroupStudentMapper.getUserId().toString()));
         }
 
         //1、插入班级
@@ -187,6 +211,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             classGroupRelationList.add(classGroupRelation);
         }
         classGroupRelationService.classGroupRelationsInsert(classGroupRelationList);
+
+        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+        // 创建群组
+        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
         return classGroup;
     }
 
@@ -269,6 +297,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 }
             }
             courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
+
+            ImGroupMember[] imGroupMembers = {new ImGroupMember(classGroupTeacherMapper.getUserId().toString())};
+            // 创建群组
+            imFeignService.groupCreate(new ImGroupModel(highClassGroup.getId().toString(), imGroupMembers, highClassGroup.getName()));
         }
         return highClassGroupList;
     }
@@ -393,23 +425,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         PageInfo<CourseListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
-        params.put("userId",userId);
+        params.put("userId", userId);
         List<CourseListDto> courseListDtos = null;
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
         List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
         courseListDtos = new ArrayList<>();
         //获取学员所购买的vip课列表详情
-        List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds,","));
+        List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","));
         //获取vip课的学生列表
         Set<String> vipIds = vipCourses.stream().map(CourseListDto::getMusicGroupId).collect(Collectors.toSet());
-        Map<String,String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds,",")));
+        Map<String, String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ",")));
         //获取学员的乐团列表详情
-        courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds,",")));
+        courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ",")));
         courseListDtos.addAll(vipCourses);
         //获取所有教学点名称列表
         Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
-        Map<Integer,String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds,",")));
+        Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
 
         courseListDtos.forEach(e -> {
             e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
@@ -444,7 +476,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(musicGroupIds);
 
             //获取乐团群用户总数map
-            List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds,","));
+            List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds, ","));
             Map<String, BigDecimal> musicGroupUserNumMap = MapUtil.convertMybatisMap(musicGroupUserNums);
             MusicGroup musicGroup;
             Set<Integer> teachers;

+ 58 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -3,15 +3,20 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
 import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImGroupMember;
+import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang.StringUtils;
@@ -37,6 +42,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     private TeacherDefaultMusicGroupSalaryDao teacherDefaultMusicGroupSalaryDao;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private ImFeignService imFeignService;
+    @Autowired
+    private ClassGroupService classGroupService;
 
     @Override
     public BaseDAO<Long, ClassGroupTeacherMapper> getDAO() {
@@ -48,13 +57,34 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
         //删除班级已经设置的老师
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
+
+        //老师加入群组
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        String classGroupIds = "";
+        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+            classGroupIds += classGroupTeacherMapper.getClassGroupId() + ",";
+        }
+        classGroupIds = classGroupIds.substring(0, classGroupIds.length() - 1);
+        List<ClassGroup> classGroups = classGroupService.findClassGroupByIds(classGroupIds);
+
+        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+            for (ClassGroup classGroup : classGroups) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+                ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+                // 加入群组
+                imFeignService.groupJoin(new ImGroupModel(classGroupTeacherMapper.getClassGroupId().toString(), imGroupMembers, classGroup.getName()));
+            }
+        }
+
         return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
     }
 
 
     @Override
-    public List<ClassGroupTeacherMapper> findClassGroupTeachers(List ClassGroupList) {
-        return classGroupTeacherMapperDao.findClassGroupTeachers(ClassGroupList);
+    public List<ClassGroupTeacherMapper> findClassGroupTeachers(List<ClassGroupTeachersDto> ClassGroupList) {
+        Set<Integer> collect = ClassGroupList.stream().map(ClassGroupTeachersDto::getId).collect(Collectors.toSet());
+        return classGroupTeacherMapperDao.findClassGroupTeachers(StringUtils.join(collect, ","));
     }
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
@@ -116,18 +146,18 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
 
-        BigDecimal teacherSalaryTimeUnit=new BigDecimal(sysConfigService.findByParamName(SysConfigService.TEACHER_SALARY_TIME_UNIT).getParanValue());
+        BigDecimal teacherSalaryTimeUnit = new BigDecimal(sysConfigService.findByParamName(SysConfigService.TEACHER_SALARY_TIME_UNIT).getParanValue());
 
         //课程编号列表
         List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
         //主教老师列表
         List<Integer> allTeacherIds = courseSchedules.stream().map(courseSchedule -> courseSchedule.getActualTeacherId().intValue()).collect(Collectors.toList());
         //助教老师列表
-        List<Integer> teachingTeacherIds=new ArrayList<>();
+        List<Integer> teachingTeacherIds = new ArrayList<>();
         courseSchedules.forEach(courseSchedule -> teachingTeacherIds.addAll(courseSchedule.getTeachingTeacherIdList()));
         allTeacherIds.addAll(teachingTeacherIds);
         //所有老师列表
-        allTeacherIds=allTeacherIds.stream().distinct().collect(Collectors.toList());
+        allTeacherIds = allTeacherIds.stream().distinct().collect(Collectors.toList());
 
         //所有老师默认乐团课酬
         List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(allTeacherIds);
@@ -135,35 +165,35 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         //获取课程对应教学点补贴
         List<Map<Integer, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
-        Map<Integer,BigDecimal> courseSubsidyMap= MapUtil.convertMybatisMap(courseSubsidyByCourses);
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertMybatisMap(courseSubsidyByCourses);
 
         //课程对应乐团结算方式集合
         List<Map<String, String>> musicGroupSettlementTypeByCourse = courseScheduleTeacherSalaryDao.findMusicGroupSettlementTypeByCourse(courseScheduleIds);
         Map<String, String> musicGroupSettlementsMap = MapUtil.convertMybatisMap(musicGroupSettlementTypeByCourse);
 
         courseSchedules.forEach(courseSchedule -> {
-            if(Objects.isNull(courseSchedule.getType())){
+            if (Objects.isNull(courseSchedule.getType())) {
                 throw new BizException("存在未指定课程类型的课程");
             }
 
             //获取结算方式
             String settlementType = musicGroupSettlementsMap.get(courseSchedule.getId());
-            if(StringUtils.isBlank(settlementType)){
+            if (StringUtils.isBlank(settlementType)) {
                 throw new BizException("存在未指定结算方式的课程");
             }
 
             //根据课程类型获取对应的默认课酬设置列表
             List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithCourseType = teacherDefaultMusicGroupSalariesGroupByCourseType.get(courseSchedule.getType());
-            if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithCourseType)){
+            if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithCourseType)) {
                 throw new BizException("存在未指定结算方式的课程类型");
             }
 
             //根据结算方式将对应课程类型下的默认课酬设置列表分组
-            Map<String, List<TeacherDefaultMusicGroupSalary>> teacherDefaultMusicGroupSalaryGroupBySettlementType = teacherDefaultMusicGroupSalariesWithCourseType.stream().collect(Collectors.groupingBy(teacherDefaultMusicGroupSalary->teacherDefaultMusicGroupSalary.getSettlementType().getCode()));
+            Map<String, List<TeacherDefaultMusicGroupSalary>> teacherDefaultMusicGroupSalaryGroupBySettlementType = teacherDefaultMusicGroupSalariesWithCourseType.stream().collect(Collectors.groupingBy(teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary.getSettlementType().getCode()));
 
             //获取对应结算方式下的默认课酬设置列表
             List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithSettlementType = teacherDefaultMusicGroupSalaryGroupBySettlementType.get(settlementType);
-            if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithSettlementType)){
+            if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithSettlementType)) {
                 throw new BizException("未找到结算方式对应的默认课酬");
             }
 
@@ -174,9 +204,9 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             int duration = DateUtil.minutesBetween(courseSchedule.getEndClassTime(), courseSchedule.getStartClassTime());
 
             //课程时长与结算单位时长占比
-            BigDecimal classTimeDuty=new BigDecimal(duration).divide(teacherSalaryTimeUnit);
+            BigDecimal classTimeDuty = new BigDecimal(duration).divide(teacherSalaryTimeUnit);
 
-            if(!courseSchedule.isBishopTeacherSalaryNotCreate()){
+            if (!courseSchedule.isBishopTeacherSalaryNotCreate()) {
                 //根据课程获取主教的默认课酬设置列表
                 List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(courseSchedule.getActualTeacherId());
                 courseScheduleTeacherSalaryList.add(countMusicGroupTeacherSalary(
@@ -193,10 +223,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             //计算助教课程薪酬
             //助教编号列表
             List<Integer> teachingTeacherIdList = courseSchedule.getTeachingTeacherIdList();
-            if(CollectionUtils.isEmpty(teachingTeacherIdList)){
+            if (CollectionUtils.isEmpty(teachingTeacherIdList)) {
                 return;
             }
-            teachingTeacherIdList.forEach(teacherId->{
+            teachingTeacherIdList.forEach(teacherId -> {
                 List<TeacherDefaultMusicGroupSalary> teachingTeacherDefaultMusicGroupSalariesWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(teacherId);
                 courseScheduleTeacherSalaryList.add(countMusicGroupTeacherSalary(
                         courseSchedule,
@@ -213,9 +243,6 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     /**
-     * @describe 计算教师课酬
-     * @author Joburgess
-     * @date 2019/10/24
      * @param courseSchedule:
      * @param teachType:
      * @param settlementType:
@@ -225,6 +252,9 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
      * @param teacherId:
      * @param teacherDefaultMusicGroupSalariesWithTeacherId:
      * @return com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary
+     * @describe 计算教师课酬
+     * @author Joburgess
+     * @date 2019/10/24
      */
     private CourseScheduleTeacherSalary countMusicGroupTeacherSalary(CourseSchedule courseSchedule,
                                                                      TeachTypeEnum teachType,
@@ -233,25 +263,25 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                                                                      BigDecimal subsidy,
                                                                      int duration,
                                                                      Integer teacherId,
-                                                                     List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId){
-        if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithTeacherId)){
+                                                                     List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId) {
+        if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithTeacherId)) {
             throw new BizException("存在未设置默认课酬的教师");
         }
         //教师课酬
-        BigDecimal teacherSalary=new BigDecimal(0);
+        BigDecimal teacherSalary = new BigDecimal(0);
 
         //如果结算方式是教师默认课酬
-        if(settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)){
+        if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
             TeacherDefaultMusicGroupSalary bishopTeacherDefaultMusicGroupSalary = teacherDefaultMusicGroupSalariesWithTeacherId.get(0);
-            if(Objects.isNull(bishopTeacherDefaultMusicGroupSalary)){
+            if (Objects.isNull(bishopTeacherDefaultMusicGroupSalary)) {
                 throw new BizException("存在未设置默认课酬的教师");
             }
-            BigDecimal bishopTeacherDefaultSalary = teachType==TeachTypeEnum.BISHOP?bishopTeacherDefaultMusicGroupSalary.getMainTeacherSalary():bishopTeacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
-            teacherSalary=bishopTeacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
-        }else if(settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)){
+            BigDecimal bishopTeacherDefaultSalary = teachType == TeachTypeEnum.BISHOP ? bishopTeacherDefaultMusicGroupSalary.getMainTeacherSalary() : bishopTeacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+            teacherSalary = bishopTeacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
+        } else if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
             for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalariesWithTeacherId) {
-                if(duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()){
-                    teacherSalary=teachType==TeachTypeEnum.BISHOP?teacherDefaultMusicGroupSalary.getMainTeacherSalary():teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                if (duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
+                    teacherSalary = teachType == TeachTypeEnum.BISHOP ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
                     break;
                 }
             }

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

@@ -19,6 +19,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 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.stereotype.Service;
@@ -26,6 +27,8 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -82,6 +85,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private CourseScheduleDao courseScheduleDao;
 
     @Autowired
+    private OrganizationDao organizationDao;
+
+    @Autowired
     private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
     @Autowired
@@ -110,7 +116,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<SubjectRegisterDto> subjectRegisters = subFeeSettingDto.getSubjectRegisters();
         String musicGroupId = idGeneratorService.generatorId() + "";
         musicGroup.setId(musicGroupId);
-        musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
+        musicGroup.setStatus(MusicGroupStatusEnum.APPLY);
         // 保存乐团基本信息
         musicGroupDao.insert(musicGroup);
         // 保存乐团付费主体列表
@@ -123,37 +129,45 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (months != null && months.size() > 0) {
             musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
         }
-        // 保存乐团声部规划
-        if (musicGroupSubjectPlans == null) {
-            musicGroupSubjectPlans = new ArrayList<>();
-        }
-        musicGroupSubjectPlans.forEach(e -> {
-            e.setMusicGroupId(musicGroupId);
-            musicGroupSubjectPlanDao.insert(e);
-        });
+
         //乐团科目学生
         if (subjectRegisters != null) {
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             subjectRegisters.forEach(e -> {
-                        //原来乐团的注册学生
-                        List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationService.findStudentListByIdList(e.getRegisterIdList());
-                        for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
-                            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-                            studentRegistration.setPaymentStatus(PaymentStatusEnum.NO);
-                            studentRegistration.setMusicGroupId(musicGroupId);
-                            studentRegistration.setSubjectId(e.getSubjectId());
-                            studentRegistration.setActualSubjectId(e.getSubjectId());
-                        }
-                        studentRegistrationList.addAll(musicGroupStudentRegistrationList);
-                    }
-            );
+                    //原来乐团的注册学生
+                List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationService.findStudentListByIdList(e.getRegisterIdList());
+                for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
+                    studentRegistration.setId(null);
+                    studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+                    studentRegistration.setPaymentStatus(PaymentStatusEnum.NO);
+                    studentRegistration.setMusicGroupId(musicGroupId);
+                    studentRegistration.setSubjectId(e.getSubjectId());
+                    studentRegistration.setActualSubjectId(e.getSubjectId());
+                }
+                studentRegistrationList.addAll(musicGroupStudentRegistrationList);
+
+                for (MusicGroupSubjectPlan musicGroupSubjectPlan : musicGroupSubjectPlans) {
+                    if(!musicGroupSubjectPlan.getSubjectId().equals(e.getSubjectId())) continue;
+                    musicGroupSubjectPlan.setExpectedStudentNum(e.getRegisterIdList().size());
+                    musicGroupSubjectPlan.setApplyStudentNum(e.getRegisterIdList().size());
+                }
+            });
             studentRegistrationService.batchInsert(studentRegistrationList);
         }
+
+        // 保存乐团声部规划
+        if (musicGroupSubjectPlans != null) {
+            musicGroupSubjectPlanDao.batchAdd(musicGroupSubjectPlans,musicGroupId);
+        }
+//        musicGroupSubjectPlans.forEach(e -> {
+//            e.setMusicGroupId(musicGroupId);
+//            musicGroupSubjectPlanDao.insert(e);
+//        });
+
         // 保存乐团声部商品规划
-        if (musicGroupSubjectGoodsGroups == null) {
-            musicGroupSubjectGoodsGroups = new ArrayList<>();
+        if (musicGroupSubjectGoodsGroups != null) {
+            musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups,musicGroupId);
         }
-        musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups,musicGroupId);
         // 新增聊天群
         // ImGroupModel imGroupModel = new ImGroupModel(musicGroupId, musicGroup.getName());
         // 教务老师和运营主管加入群组
@@ -537,12 +551,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 获取教务老师编号列表
         Set<Integer> educationalTeacherIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toSet());
         // 获取相关老师的名字
-        List<Map<Integer, String>> educationalTeacherNames = teacherDao.queryNameByIds(educationalTeacherIds);
+        List<Map<Integer, String>> educationalTeacherNames = teacherDao.queryNameByIds(StringUtils.join(educationalTeacherIds,","));
         Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(educationalTeacherNames);
 
         // 获取运营主管编号列表
         Set<Integer> teamTeacherIds = musicGroupList.stream().map(e -> e.getTeamTeacherId()).collect(Collectors.toSet());
-        List<Map<Integer, String>> teamTeacherNames = teacherDao.queryNameByIds(teamTeacherIds);
+        List<Map<Integer, String>> teamTeacherNames = teacherDao.queryNameByIds(StringUtils.join(teamTeacherIds,","));
         Map<Integer, String> teamTeacherNameMap = MapUtil.convertMybatisMap(teamTeacherNames);
 
         // 获取乐团编号列表
@@ -568,11 +582,46 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) {
+    public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
         String musicGroupId = musicGroup.getId();
         MusicGroup group = musicGroupDao.get(musicGroupId);
         if(group != null){
+            Date date = new Date();
+            List<Integer> months = subFeeSettingDto.getMonths();
+            //删除乐团相关付费周期
+            musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
+            if(months != null && months.size() > 0){
+                Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
+                if(num > 0){
+                    throw new Exception("缴费周期更新失败,当前乐团有未缴费的学员");
+                }
+                //修改学员下次缴费日期
+                //获取当前月份
+                int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
+                int nextMonth = currentMonth;
+                for (int i = 0;i < months.size();i++){
+                    if(i == months.size()-1 && months.get(i) <= currentMonth){
+                        nextMonth = months.get(0);
+                        break;
+                    }else if(months.get(i) > currentMonth){
+                        nextMonth = months.get(i);
+                        break;
+                    }
+                }
+                // 修改学员付费周期
+                Date nextPaymentDate = null;
+                if(nextMonth > currentMonth){
+                    nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
+                }else if(nextMonth < currentMonth) {
+                    nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
+                }else {
+                    nextPaymentDate = DateUtil.addMonths(date, 12);
+                }
+                musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId,nextPaymentDate);
+                //批量插入
+                musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
+            }
             musicGroupDao.update(musicGroup);
             //修改课程里面的教学点
             if(!group.getSchoolId().equals(musicGroup.getSchoolId())){
@@ -581,14 +630,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             // 删除乐团付费主体列表
             musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
             //批量新增
-            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
-
-            // 修改学员付费周期
-            List<Integer> calender = subFeeSettingDto.getMonths();
-            //删除乐团相关付费周期
-            musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
-            //批量插入
-            musicGroupPaymentCalenderDao.batchAdd(calender,musicGroupId);
+            if(subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0){
+                musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
+            }
         }
     }
 
@@ -620,7 +664,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroupDao.update(musicGroup);
+        return musicGroup;
+    }
 
+    @Override
+    public MusicGroup getMusicGroupDetail(String musicGroupId) {
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        musicGroup.setEducationalTeacherName(teacherDao.queryNameById(musicGroup.getEducationalTeacherId()));
+        musicGroup.setTeamTeacherName(teacherDao.queryNameById(musicGroup.getTeamTeacherId()));
+        Organization organization = organizationDao.get(musicGroup.getOrganId());
+        if(organization != null){
+            musicGroup.setOrganName(organization.getName());
+        }
+        School school = schoolDao.get(musicGroup.getSchoolId());
+        if(school != null){
+            musicGroup.setSchoolName(school.getName());
+            musicGroup.setAddress(school.getAddress());
+        }
+        ChargeType chargeType = chargeTypeDao.get(musicGroup.getChargeTypeId());
+        if(chargeType != null){
+            musicGroup.setChargeTypeName(chargeType.getName());
+        }
         return musicGroup;
     }
 }

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

@@ -1,7 +1,13 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysMessageConfigDao;
+import com.ym.mec.biz.dal.dao.SysMessageDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.service.SmsCodeService;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.common.redis.service.RedisCache;
@@ -26,6 +32,10 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 
 	@Autowired
 	private SysMessageConfigDao sysMessageConfigDao;
+	@Autowired
+	private SysMessageDao sysMessageDao;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public boolean verifyValidCode(String mobile, String authCode) {
@@ -33,16 +43,24 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
 			return true;
 		}
-		return true;
+		return false;
 	}
 
 	@Override
 	public boolean sendValidCode(String mobile) throws Exception {
-		String code = RandomStringUtils.randomNumeric(6);
+//		String code = RandomStringUtils.randomNumeric(6);
+		String code = "123456";
 		// 发送验证码
 		SysMessageConfig messageConfig = sysMessageConfigDao.get(1);
 		String content = String.format(messageConfig.getContent(), code);
 		messageSenderPluginContext.send(MessageSenderPluginContext.MessageSender.YIMEI,"",content,mobile,"");
+		//保存发送记录
+		SysUser sysUser = sysUserFeignService.queryUserByMobile(mobile);
+		Integer userId = null;
+		if(sysUser != null){
+			userId = sysUser.getId();
+		}
+		sysMessageDao.insert(new SysMessage("",content, MessageSendMode.SMS,mobile,userId,""));
 		redisCache.put(loginVerifyCodeKey + mobile, code, expireTime);
 		return true;
 	}

+ 9 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -169,7 +169,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistrationDao.insert(studentRegistration);
         //增加报名学生数
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
-        musicOneSubjectClassPlan.setApplyStudentNum(musicOneSubjectClassPlan.getApplyStudentNum() + 1);
+        int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
+        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + 1);
         return studentRegistration;
     }
 
@@ -180,18 +181,18 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public StudentPaymentOrder addOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId) {
+    public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList) {
 
         Date date = new Date();
         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-        studentPaymentOrder.setUserId(userId);
+        studentPaymentOrder.setUserId(studentRegistration.getUserId());
         studentPaymentOrder.setOrderNo(orderNo);
         studentPaymentOrder.setType(OrderTypeEnum.APPLY);
         studentPaymentOrder.setExpectAmount(amount);
         studentPaymentOrder.setActualAmount(amount);
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setPaymentChannel(paymentChannel);
-        studentPaymentOrder.setMusicGroupId(musicGroupId);
+        studentPaymentOrder.setMusicGroupId(studentRegistration.getMusicGroupId());
         studentPaymentOrderService.insert(studentPaymentOrder);
 
         ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
@@ -254,9 +255,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 
-        //增加报名学生数
-//        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, studentPaymentOrder.get);
-//        musicOneSubjectClassPlan.setApplyStudentNum(musicOneSubjectClassPlan.getApplyStudentNum()+1);
+        //增加缴费学生数
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
+        musicOneSubjectClassPlan.setPaidStudentNum(paidNum+1);
 
         return studentPaymentOrder;
     }

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

@@ -73,6 +73,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
 
     @Override
     public void upSetSubject(Subject subject) {
+        if(subject.getDelFlag() == YesOrNoEnum.YES){
+            subjectDao.delete(subject.getId());
+            return;
+        }
         Integer parentId = upset(subject, null);
         List<Subject> subjects = subject.getSubjects();
         if(subjects != null && subjects.size() > 0){

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

@@ -48,13 +48,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
-	private ClassGroupDao classGroupDao;
-	@Autowired
 	private CourseScheduleService courseScheduleService;
-	
 	@Autowired
 	private SysConfigService sysConfigService;
-	
 	@Autowired
 	private SysMessageService sysMessageService;
 

+ 1 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java

@@ -35,9 +35,7 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 			TeacherDefaultVipGroupSalary salary = teacherDefaultVipGroupSalaries.get(0);
 			teacherDefaultVipGroupSalaryDao.delByTeacherId(salary.getUserId());
 			//新增
-			teacherDefaultVipGroupSalaries.forEach(e->{
-				teacherDefaultVipGroupSalaryDao.insert(e);
-			});
+			teacherDefaultVipGroupSalaryDao.batchAdd(teacherDefaultVipGroupSalaries);
 		}
 	}
 }

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

@@ -18,7 +18,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
-
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,8 +37,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Autowired
 	private ClassGroupDao classGroupDao;
 	@Autowired
-	private ClassGroupService classGroupService;
-	@Autowired
 	private VipGroupClassGroupMapperDao vipGroupClassGroupMapperDao;
 	@Autowired
 	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
@@ -63,15 +60,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     private StudentVipGroupPaymentDao studentVipGroupPaymentDao;
     @Autowired
 	private StudentApplyRefundsDao studentApplyRefundsDao;
-	
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
-
     @Autowired
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
     @Autowired
 	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
-
     @Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
@@ -86,14 +80,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private PayService payService;
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-
 	@Autowired
 	private CourseScheduleRewardsRulesService courseScheduleRewardsRulesService;
 	@Autowired
 	private SysConfigService sysConfigService;
-
+	@Autowired
 	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
-
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
 		return vipGroupDao;

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

@@ -628,8 +628,8 @@
 
     <!-- 增加实际学生人数 -->
     <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
-        student_num_=#{studentNum}
+        UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{classGroup.updateTime} WHERE id_ = #{classGroup.id} AND
+        student_num_=#{classGroup.studentNum}
     </update>
 
     <update id="batchIncreaseClassTimes" parameterType="java.util.List">

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

@@ -105,10 +105,7 @@
         SELECT u.real_name_, ct.*
         FROM sys_user u,
         class_group_teacher_mapper ct
-        WHERE u.id_=ct.user_id_ AND ct.class_group_id_ IN
-        <foreach collection="classGroupList" item="item" index="index" open="(" close=")" separator=",">
-            #{item.id}
-        </foreach>
+        WHERE u.id_=ct.user_id_ AND FIND_IN_SET(ct.class_group_id_,#{classGroupIds})
     </select>
     <select id="findByClassGroupAndRole" resultMap="ClassGroupTeacherMapper">
         SELECT u.real_name_, ct.*

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

@@ -121,7 +121,7 @@
 				director_user_id_ = #{directorUserId},
 			</if>
 			<if test="settlementType != null">
-				settlement_type = #{settlementType},
+				settlement_type_ = #{settlementType},
 			</if>
 		</set>
 		WHERE id_ = #{id}

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

@@ -133,6 +133,10 @@
         SELECT DISTINCT music_group_id_ 'key',payment_status_ 'value' FROM music_group_student_fee_
         WHERE user_id_ = #{userId} AND FIND_IN_SET(music_group_id_,#{musicGroupIds})
     </select>
+    <select id="countStudentNoPayNum" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT sr.id_) FROM student_registration sr LEFT JOIN music_group_student_fee_ sf ON sr.user_id_ = sf.user_id_
+        WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ != 'QUIT' AND sf.payment_status_ != 'PAID_COMPLETED'
+    </select>
 
     <select id="findContinuousAbsenteeismTimesByUsersAndMusicGroup" resultType="map">
         SELECT

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

@@ -42,7 +42,7 @@
         INSERT INTO music_group_subject_goods_group
         (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
         <foreach collection="lists" item="item" index="index" separator=",">
-            (#{item.name},#{item.type.code},#{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price})
+            (#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price})
         </foreach>
     </insert>
 

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -42,6 +42,15 @@
         (id_,music_group_id_,subject_id_,expected_student_num_,apply_student_num_,fee_,kit_group_purchase_type_,deposit_fee_,create_time_,update_time_)
         VALUES(#{id},#{musicGroupId},#{subjectId},#{expectedStudentNum},#{applyStudentNum},#{fee},#{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{depositFee},now(),now())
     </insert>
+    <insert id="batchAdd">
+        INSERT INTO music_group_subject_plan
+        (music_group_id_,subject_id_,expected_student_num_,apply_student_num_,fee_,kit_group_purchase_type_,deposit_fee_,create_time_,update_time_)
+        VALUES
+        <foreach collection="subjectPlans" item="item" separator=",">
+            (#{musicGroupId},#{item.subjectId},#{item.expectedStudentNum},#{item.applyStudentNum},#{item.fee},#{item.kitGroupPurchaseType},
+            #{item.depositFee},now(),now())
+        </foreach>
+    </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan">

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

@@ -58,7 +58,7 @@
 
     <!-- 根据主键删除一条记录 -->
     <update id="delete">
-		UPDATE `subject` SET del_flag_ = 1 WHERE id_ = #{id} AND parent_subject_ = #{id}
+        UPDATE `subject` SET del_flag_ = 1 WHERE id_ = #{id} OR parent_subject_id_ = #{id}
 	</update>
 
     <!-- 分页查询 -->

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

@@ -63,18 +63,9 @@
 	</delete>
 
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysMessage">
-		insert into sys_message (id_, user_id_,
-		title_, content_,
-		type_, status_, receiver_,
-		send_time_, error_msg_,read_status_,memo_, create_on_,
-		modify_on_,group_)
-		values (#{id,jdbcType=BIGINT},#{userId,jdbcType=BIGINT}, #{title,jdbcType=VARCHAR},
-		#{content,jdbcType=VARCHAR},
-		#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{receiver,jdbcType=VARCHAR},
-		#{sendTime},#{errorMsg,jdbcType=VARCHAR},#{readStatus},#{memo},
-		#{createOn},
-		#{modifyOn},#{group})
+		insert into sys_message (user_id_,title_, content_,type_, receiver_,
+		send_time_, error_msg_,memo_, create_on_,modify_on_,group_)
+		values (#{userId}, #{title},#{content},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{receiver},now(),#{errorMsg},#{memo},now(),now(),#{group})
 	</insert>
 
 	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.SysMessage">

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

@@ -34,6 +34,13 @@
         (user_id_,vip_group_category_id_,online_classes_salary_,offline_classes_salary_,create_time_,update_time_)
         VALUES(#{userId},#{vipGroupCategoryId},#{onlineClassesSalary},#{offlineClassesSalary},now(),now())
     </insert>
+    <insert id="batchAdd">
+        INSERT INTO teacher_default_vip_group_salary
+        (user_id_,vip_group_category_id_,online_classes_salary_,offline_classes_salary_,create_time_,update_time_)VALUES
+        <foreach collection="vipGroupSalaries" item="item" separator=",">
+            (#{item.userId},#{item.vipGroupCategoryId},#{item.onlineClassesSalary},#{item.offlineClassesSalary},now(),now())
+        </foreach>
+    </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary">

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

@@ -213,7 +213,7 @@
             AND su.lock_flag_ = #{lockFlag}
         </if>
         <if test="subjectId != null">
-            AND t.subject_id_ LIKE CONCAT('%',#{subjectId},'%')
+            AND FIND_IN_SET(#{subjectId},t.subject_id_)
         </if>
         <if test="organId != null">
             AND su.organ_id_ = #{organId}
@@ -250,10 +250,7 @@
         </if>
     </select>
     <select id="queryNameByIds" resultType="java.util.Map" parameterType="list">
-        select id_ `key`,real_name_ `value` FROM sys_user s WHERE id_ IN
-        <foreach item="item" index="index" collection="userIds" open="(" separator="," close=")">
-            #{item}
-        </foreach>
+        select id_ `key`,real_name_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds})
     </select>
 
     <select id="findTeachers" resultMap="Teacher">
@@ -400,6 +397,9 @@
         LEFT JOIN sys_user su ON su.id_ = ta.teacher_id_
         <include refid="queryTeacherAttendanceSql"/>
     </select>
+    <select id="queryNameById" resultType="java.lang.String">
+        select real_name_ FROM sys_user s WHERE id_ = #{userId}
+    </select>
 
     <sql id="queryCloses">
         <where>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -25,7 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/v2/api-docs","/studentOrder/notify","/code/*").permitAll().anyRequest().authenticated().and().httpBasic();
+				.authorizeRequests().antMatchers("/v2/api-docs","/studentOrder/notify","/code/*","/register/add").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 7 - 6
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.util.string.IdWorker;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -47,9 +48,10 @@ public class MusicGroupController extends BaseController {
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
     private PayService payService;
-    
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
+    @Autowired
+    private IdGeneratorService idGeneratorService;
 
     @ApiOperation("获取学生所在乐团列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -102,9 +104,9 @@ public class MusicGroupController extends BaseController {
         }
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         if (studentRegistration == null) {
-            return failed("乐团报名信息不存在");
+            return failed(HttpStatus.CONTINUE,"乐团报名信息不存在");
         }
-        if (!musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY) && !studentRegistration.getPaymentStatus().equals(YesOrNoEnum.YES)) {
+        if (!musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY) && (studentRegistration.getPaymentStatus()==null || !studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN))) {
             return failed("乐团还未开启缴费,请等待通知");
         }
         return succeed(studentRegistration);
@@ -233,12 +235,11 @@ public class MusicGroupController extends BaseController {
         }
 
 
-        IdWorker idWorker = new IdWorker(0, 0);
-        String orderNo = "1017"+idWorker.nextId();
+        String orderNo = idGeneratorService.generatorId("payment")+"";
 
         Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
 
-        studentRegistrationService.addOrder(userId, amount, orderNo, (String) payMap.get("type"), courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId());
+        studentRegistrationService.addOrder(studentRegistration, amount, orderNo, (String) payMap.get("type"), courseFee, goodsGroups, goodsList, otherGoodsList);
 
         return succeed(payMap);
     }

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

@@ -55,7 +55,7 @@ public class SmsCodeController extends BaseController {
         if(smsCodeService.verifyValidCode(phone,code)){
             return succeed();
         }
-        return failed();
+        return failed("验证码校验失败");
     }
 
     @PostMapping(value = "/verifyLoginImage")

+ 1 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/YimeiSmsPlugin.java

@@ -51,6 +51,7 @@ public class YimeiSmsPlugin implements MessageSenderPlugin, InitializingBean {
 		String result = getParam(subject, content, receiver, host + "/simpleinter/sendSMS");
 		JSONObject json = JSONObject.parseObject(result);
 		if("SUCCESS".equals(json.get("code"))){
+
 			return true;
 		}else {
 			throw new Exception(json.getString("code"));

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

@@ -30,7 +30,7 @@ public class MusicGroupController extends BaseController {
     @ApiOperation(value = "修改乐团基本信息")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
-    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto){
+    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
         musicGroupService.updateBaseInfo(subFeeSettingDto);
         return succeed();
     }
@@ -49,7 +49,7 @@ public class MusicGroupController extends BaseController {
     @GetMapping("/get")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
     public Object get(String musicGroupId){
-        return succeed(musicGroupService.get(musicGroupId));
+        return succeed(musicGroupService.getMusicGroupDetail(musicGroupId));
     }
 
     @ApiOperation(value = "分页查询乐团列表")