Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
#	mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
Joburgess 5 vuotta sitten
vanhempi
commit
f7dae695f8
21 muutettua tiedostoa jossa 248 lisäystä ja 151 poistoa
  1. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  3. 33 12
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/OrganizationQueryInfo.java
  5. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  6. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherLeaveRecordService.java
  7. 10 33
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  8. 33 46
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  9. 39 18
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  10. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  11. 4 4
      mec-biz/src/main/resources/config/contracts/goods.ftl
  12. 7 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  13. 10 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  14. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  15. 4 1
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  16. 8 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  17. 1 1
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  18. 21 21
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  19. 8 4
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  20. 28 0
      mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java
  21. 11 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -77,7 +77,7 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 			sysUser = sysUserService.queryByPhone(username.split(":")[1]);
 		}
 		if(StringUtils.isEmpty(sysUser.getImToken())){
-			ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), "https://daya-online.oss-cn-beijing.aliyuncs.com/201910/RgLS0KQ.jpeg"));
+			ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), null));
 			sysUser.setImToken(register.getToken());
 			sysUser.setUpdateTime(new Date());
 			sysUserService.update(sysUser);

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

@@ -514,5 +514,12 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     List<ImUserModel> queryImUser();
 
+    /**
+     * 批量更新班级学生数减一
+     * @param classGroupIdList
+     * @return
+     */
+    int batchUpdateStudentNumMinusOne(List<Integer> classGroupIdList);
+
     int updateTest(@Param("delFlag") YesOrNoEnum delFlag);
 }

+ 33 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -1,17 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dto.StudentAttendanceViewDto;
 import com.ym.mec.biz.dal.dto.TeacherClassStudentDto;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStudentMapper> {
     /**
@@ -99,7 +102,7 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      * @param classGroupId
      * @return
      */
-    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(@Param("userId") Integer userId, @Param("classGroupId") Integer classGroupId,@Param("status") String status);
+    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(@Param("userId") Integer userId, @Param("classGroupId") Integer classGroupId, @Param("status") String status);
 
     /**
      * @param classGroupIds: 班级编号列表
@@ -170,24 +173,42 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     Integer countClassGroupStudentNum(@Param("classGroupId") Integer classGroupId);
 
     /**
+     * @param classGroupId: 班级编号
+     * @param userIds:      学生编号
+     * @return java.lang.Integer
      * @describe 统计指定班级的重复人数
      * @author Joburgess
      * @date 2019/11/22
-     * @param classGroupId: 班级编号
-     * @param userIds: 学生编号
-     * @return java.lang.Integer
      */
     Integer countClassGroupExitStudentNum(@Param("classGroupId") Integer classGroupId,
                                           @Param("userIds") List<Integer> userIds);
 
     /**
+     * @param userId:    用户编号
+     * @param groupType: 乐团编号
+     * @return java.lang.Integer
      * @describe 统计用户对应加入乐团/小课/试听课的数量
      * @author Joburgess
      * @date 2019/11/29
-     * @param userId: 用户编号
-     * @param groupType: 乐团编号
-     * @return java.lang.Integer
      */
     Integer countUserGroups(@Param("userId") Integer userId,
                             @Param("groupType") String groupType);
+
+    /**
+     * 查询学生所在的班级编号
+     *
+     * @param musicGroupId
+     * @param userId
+     * @param groupTpye
+     * @return
+     */
+    List<Integer> queryClassGroupIdList(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId, @Param("groupType") GroupType groupType);
+
+    /**
+     * 查询乐团某种类型班级的学生
+     * @param musicGroupId
+     * @param classGroupType
+     * @return
+     */
+    List<ClassGroupStudentMapper> findMusicGroupClassGroupByType(@Param("musicGroupId") String musicGroupId, @Param("classGroupType") ClassGroupTypeEnum classGroupType);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/OrganizationQueryInfo.java

@@ -12,6 +12,8 @@ public class OrganizationQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "节点状态,默认0未删除,1删除",required = false)
     private YesOrNoEnum delFlag = YesOrNoEnum.NO;
+    
+    private String organId;
 
     public YesOrNoEnum getDelFlag() {
         return delFlag;
@@ -28,4 +30,12 @@ public class OrganizationQueryInfo extends QueryInfo {
     public void setParentId(Integer parentId) {
         this.parentId = parentId;
     }
+
+	public String getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(String organId) {
+		this.organId = organId;
+	}
 }

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

@@ -9,6 +9,7 @@ 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.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;
@@ -228,4 +229,13 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
 	StudentRegistration queryUserByPhone(String mobile);
+
+	/**
+	 * 获取没有某种班级类型的学生
+	 * @param musicGroupId
+	 * @param type
+	 * @param subjectId
+	 * @return
+	 */
+	List<StudentRegistration> findMusicGroupStuNoClassType(String musicGroupId, ClassGroupTypeEnum type, Integer subjectId);
 }

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

@@ -11,7 +11,6 @@ public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeav
 
 	/**
 	 * 请假
-	 * @param userId
 	 * @param teacherLeaveRecord
 	 * @return
 	 */

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

@@ -263,11 +263,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
-        MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
+        MusicGroup musicGroup = musicGroupDao.getLocked(highClassGroupList.get(0).getMusicGroupId());
 
         int highClassGroupNum = studentRegistrationDao.findMusicGroupStudentNum(musicGroup.getId()) / 5;
-        if(highClassGroupList.size() > highClassGroupNum){
-            throw new BizException("班数不能大于"+highClassGroupNum);
+        if (highClassGroupList.size() > highClassGroupNum) {
+            throw new BizException("班数不能大于" + highClassGroupNum);
         }
 
         List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
@@ -832,9 +832,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
             ClassGroup classGroup = classGorupIdMap.get(teacherClassGroupDto.getClassGroupId().intValue());
 
-            teacherClassGroupDto.setSurplusClassTimes(classGroup.getTotalClassTimes()-classGroup.getCurrentClassTimes());
-            Long studentNum=classGroupStudentNumMap.get(teacherClassGroupDto.getClassGroupId().intValue());
-            teacherClassGroupDto.setStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
+            teacherClassGroupDto.setSurplusClassTimes(classGroup.getTotalClassTimes() - classGroup.getCurrentClassTimes());
+            Long studentNum = classGroupStudentNumMap.get(teacherClassGroupDto.getClassGroupId().intValue());
+            teacherClassGroupDto.setStudentNum(Objects.isNull(studentNum) ? 0 : studentNum.intValue());
 
             String subjectIdList = teacherClassGroupDto.getSubjectIdList();
             if (StringUtils.isNotEmpty(subjectIdList)) {
@@ -1132,29 +1132,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //老师结算表
         courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
 
-        //加入合奏班
-        ClassGroupRelation classGroupRelation = new ClassGroupRelation();
-        classGroupRelation.setClassGroupId(classGroup4MixDto.getMixClassGroupId());
-        classGroupRelation.setSubClassGroupId(classGroup.getId());
-        classGroupRelation.setCreateTime(date);
-        classGroupRelationService.insert(classGroupRelation);
-
-        //6、添加学生未上合奏课课程
-        List<CourseSchedule> noStartCourses = courseScheduleDao.findNoStartCoursesByClassGroupId(classGroup4MixDto.getMixClassGroupId());
-        for (CourseSchedule noStartCourse : noStartCourses) {
-            for (StudentRegistration studentRegistration : studentList) {
-                CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
-                courseScheduleStudentPayment.setCourseScheduleId(noStartCourse.getId());
-                courseScheduleStudentPayment.setUserId(studentRegistration.getUserId());
-                courseScheduleStudentPayment.setExpectPrice(expectPrice);
-                courseScheduleStudentPayment.setCreateTime(date);
-                courseScheduleStudentPayment.setUpdateTime(date);
-                courseScheduleStudentPayment.setClassGroupId(noStartCourse.getClassGroupId());
-                courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
-                courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
-                courseScheduleStudentPaymentList.add(courseScheduleStudentPayment);
-            }
-        }
         //学生结算表
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
         return classGroup;
@@ -1633,15 +1610,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
                 List<CourseScheduleTeacherSalary> currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
                 List<CourseScheduleTeacherSalary> TeachingTeachers = new ArrayList<>();
-                if (!Objects.isNull(currentBishopTeacher)&&!CollectionUtils.isEmpty(currentBishopTeacher)) {
+                if (!Objects.isNull(currentBishopTeacher) && !CollectionUtils.isEmpty(currentBishopTeacher)) {
                     e.setMasterTeacherId(currentBishopTeacher.get(0).getUserId());
                     e.setMasterTeacherName(currentBishopTeacher.get(0).getUserName());
-                }else {
+                } else {
                     currentBishopTeacher = new ArrayList<>();
                 }
                 TeachingTeachers.addAll(currentBishopTeacher);
                 List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
-                if(Objects.isNull(currentCourseTeachingTeachers) || CollectionUtils.isEmpty(currentCourseTeachingTeachers)){
+                if (Objects.isNull(currentCourseTeachingTeachers) || CollectionUtils.isEmpty(currentCourseTeachingTeachers)) {
                     currentCourseTeachingTeachers = new ArrayList<>();
                 }
                 TeachingTeachers.addAll(currentCourseTeachingTeachers);
@@ -1784,7 +1761,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     public Boolean checkSetSalary(String musicGroupId) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalary = courseScheduleTeacherSalaryDao.findCourseScheduleTeacherSalaryByMusicGroupId(musicGroupId, GroupType.MUSIC);
-        if(courseScheduleTeacherSalary != null && courseScheduleTeacherSalary.size() > 0){
+        if (courseScheduleTeacherSalary != null && courseScheduleTeacherSalary.size() > 0) {
             return true;
         }
         return false;

+ 33 - 46
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -164,10 +164,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT){
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
-            String[] organIds = null;
-            if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-                organIds = sysUser.getOrganId().split(",");
-            }
+
+    		String[] organIds = { musicGroup.getOrganId() + "" };
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
         }
         // 保存乐团付费主体列表
@@ -483,10 +481,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
                 musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);*/
-
                 Map<String,Object> result=new HashMap<>();
                 result.put("orderNo",studentPaymentOrder.getOrderNo());
-
         		return result;
         	}else{
 				if (userCashAccount.getBalance().doubleValue() > 0) {
@@ -540,8 +536,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //删除原有的声部商品组合
             musicGroupSubjectGoodsGroupDao.delByMusicGroupId(subFeeSettingDto.getMusicGroupId());
 
-            musicGroupSubjectPlanDao.batchAdd(subFeeSettingDto.getMusicGroupSubjectPlans(),musicGroupId);
-            musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(),musicGroupId);
+			if (subFeeSettingDto.getMusicGroupSubjectPlans() != null && subFeeSettingDto.getMusicGroupSubjectPlans().size() > 0) {
+				musicGroupSubjectPlanDao.batchAdd(subFeeSettingDto.getMusicGroupSubjectPlans(), musicGroupId);
+			}
+			if (subFeeSettingDto.getMusicGroupSubjectGoodsGroups() != null && subFeeSettingDto.getMusicGroupSubjectGoodsGroups().size() > 0) {
+				musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(), musicGroupId);
+            }
         }else {
             throw new Exception("乐团信息不存在");
         }
@@ -605,10 +605,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
         roleIds.add(SysUserRole.DEAN_OF_STUDIES);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,"1",musicGroup.getName());
     }
 
@@ -639,10 +637,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
     }
 
@@ -677,10 +673,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_APPLY,"",musicGroup.getName());
     }
 
@@ -779,10 +773,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(2);
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP,"1",musicGroup.getName());
         return true;
     }
@@ -869,10 +861,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT,"",musicGroup.getName());
         return true;
     }
@@ -902,10 +892,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Map<String,Object> memo = new HashMap<>(2);
         memo.put("Id",musicGroupQuit.getId());
         memo.put("type","MUSICGROUP");
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,JSONObject.toJSONString(memo),sysUser.getUsername());
         return true;
     }
@@ -929,12 +917,18 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		musicGroupQuitDao.update(musicGroupQuit);
 
 		if (status == ApprovalStatus.APPROVED) {
-			classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
 			StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
 			if (studentRegistration == null) {
 				throw new BizException("用户注册信息不存在");
 			}
+			//更新学员在班级的状态
+			classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+			
+			//更新班级人数
+			List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
+			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			
 			// 删除未上课
 			courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);
 			
@@ -1280,10 +1274,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         MusicGroup musicGroup = musicGroupDao.get(classGroupDao.findByCourseSchedule(courseScheduleId.intValue()).getMusicGroupId());
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE,"",
                 teacher.getRealName(),musicGroup.getName(),scope.equals("all")?"所有":"本次");
         return true;
@@ -1481,11 +1473,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(3);
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT,"",musicGroup.getName());
         return musicGroup;
     }
@@ -1559,10 +1548,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		}
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        String[] organIds = null;
-        if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-            organIds = sysUser.getOrganId().split(",");
-        }
+
+		String[] organIds = { musicGroup.getOrganId() + "" };
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING,"",musicGroup.getName());
     }
 }

+ 39 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -54,6 +54,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
     @Autowired
+    private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+    @Autowired
+    private ClassGroupRelationDao classGroupRelationDao;
+    @Autowired
     private SysMessageService sysMessageService;
     @Autowired
     private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
@@ -132,10 +136,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             Set<Integer> roleIds = new HashSet<>(2);
             roleIds.add(SysUserRole.SECTION_MANAGER);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-            String[] organIds = null;
-            if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-                organIds = sysUser.getOrganId().split(",");
-            }
+
+    		String[] organIds = { musicGroup.getOrganId() + "" };
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
         }
         return i;
@@ -470,14 +472,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
             studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
             //学生报名表
-            studentRegistrationDao.insertBasic(studentRegistration);
+
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-            String[] organIds = null;
-            if(StringUtils.isNotEmpty(studentRegistration.getOrganId())){
-                organIds = studentRegistration.getOrganId().split(",");
-            }
+
+    		String[] organIds = { musicGroup.getOrganId() + "" };
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
@@ -497,10 +497,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     throw new Exception("班级不存在");
                 }
                 //新增班级学生关系(单技班)
-//                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupId, userId));
-//                //新增班级学生关系(合奏班)
-//                ClassGroupRelation classGroupRelation = classGroupRelationDao.findClassGroupRelation(classGroupId);
-//                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupRelation.getClassGroupId(), userId));
+                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupId, userId));
+                //新增班级学生关系(合奏班)
+                ClassGroupRelation classGroupRelation = classGroupRelationDao.findClassGroupRelation(classGroupId);
+                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupRelation.getClassGroupId(), userId));
 
                 //获取当前月
                 Integer month = Integer.parseInt(DateUtil.getMonth(new Date()));
@@ -531,20 +531,27 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrder.setStatus(DealStatusEnum.WAIT_PAY);
                 studentPaymentOrder.setMusicGroupId(musicGroupId);
                 studentPaymentOrder.setClassGroupId(classGroupId);
-                studentPaymentOrderService.insert(studentPaymentOrder);
+
                 //生成订单明细
                 List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
                 if (studentPaymentOrderDetails == null) {
                     studentPaymentOrderDetails = new ArrayList<>();
                 }
-                studentPaymentOrderDetails.forEach(e -> {
-                    e.setPaymentOrderId(studentPaymentOrder.getId());
-                });
                 StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
                 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);
+                }
+                studentRegistrationDao.insertBasic(studentRegistration);
+                studentPaymentOrderService.insert(studentPaymentOrder);
+                studentPaymentOrderDetails.forEach(e -> {
+                    e.setPaymentOrderId(studentPaymentOrder.getId());
+                });
                 studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
             }
             studentRegistrationDao.updateCurrentClass(studentRegistration);
@@ -774,4 +781,18 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     public StudentRegistration queryUserByPhone(String mobile) {
         return studentRegistrationDao.queryUserByPhone(mobile);
     }
+
+    @Override
+    public List<StudentRegistration> findMusicGroupStuNoClassType(String musicGroupId, ClassGroupTypeEnum type, Integer subjectId) {
+        List<StudentRegistration> students = studentRegistrationDao.findMusicGroupStudent(musicGroupId, subjectId);
+        List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findMusicGroupClassGroupByType(musicGroupId, type);
+        for (StudentRegistration student : students) {
+            for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
+                if(classGroupStudentMapper.getUserId().equals(student.getUserId())){
+                    students.remove(student);
+                }
+            }
+        }
+        return null;
+    }
 }

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

@@ -70,14 +70,14 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	public int add(Teacher teacher) throws Exception {
 		SysUser user = sysUserFeignService.queryUserByMobile(teacher.getPhone());
 		if(user != null && user.getId() != null){
-			if(!user.getUserType().equals(SysUserType.SYSTEM)){
+			if(user.getUserType() == SysUserType.TEACHER){
 				throw new BizException("此手机号已被占用");
 			}
 			Integer id = user.getId();
 			Teacher teacher1 = teacherDao.get(id);
 			if(teacher1 == null || teacher1.getId() == null){
-				user.setUserType(SysUserType.TEACHER);
 				teacher.setId(id);
+				teacher.setDelFlag(YesOrNoEnum.NO);
 				teacherDao.updateUser(user);
 				teacherDao.insert(teacher);
 			}else {
@@ -111,9 +111,6 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		teacher.setUpdateTime(new Date());
 		teacherDao.update(teacher);
 		teacherDao.updateUser(teacher);
-		if(StringUtils.isEmpty(teacher.getAvatar())){
-			teacher.setAvatar("https://daya-online.oss-cn-beijing.aliyuncs.com/201910/RgHwgKc.jpg");
-		}
 		imFeignService.update(new ImUserModel(teacher.getId().toString(),teacher.getUsername(),teacher.getAvatar()));
 	}
 

+ 4 - 4
mec-biz/src/main/resources/config/contracts/goods.ftl

@@ -112,12 +112,12 @@
         4、乙方终止乐团学习2个月内,仍未将乐器归还给甲方的,则视为乙方违约,乙方所交押金甲方有权不予退还,同时乙方须按乐器团购价格进行赔付。
         <h2>三、乐器标准:</h2> 
         <div class="iInfo">
-            <span>名称:${goodsList[0].name}</span>
-            <span>品牌:${goodsList[0].brand}</span>  
+            <span>名称:<#if (goodsList?size > 0)> ${goodsList[0].name} </#if></span>
+            <span>品牌:<#if (goodsList?size > 0)> ${goodsList[0].brand} </#if></span>  
         </div>
         <div class="iInfo">
-            <span>型号:${goodsList[0].specification}</span>
-            <span>团购价格:${goodsList[0].groupPurchasePrice?string("0.00")}元</span>
+            <span>型号:<#if (goodsList?size > 0)> ${goodsList[0].specification} </#if></span>
+            <span>团购价格:<#if (goodsList?size > 0)> ${goodsList[0].groupPurchasePrice?string("0.00")}元 </#if></span>
         </div>
 
         <h2>四、违约责任</h2>  

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

@@ -354,7 +354,7 @@
     <select id="findNoClassSubjects" resultMap="ClassGroup">
         SELECT cg.* FROM class_group cg LEFT JOIN class_group_relation cgr ON cgr.sub_class_group_id_=cg.id_
         WHERE cg.music_group_id_=#{musicGroupId} AND cg.type_ = 'NORMAL'
-        AND cg.group_type_='MUSIC' AND cg.del_flag_ = '0'
+        AND cg.group_type_='MUSIC' AND cg.del_flag_ = '0' and cgr.id_ is null
     </select>
 
     <select id="countTeacherNum" resultType="java.lang.Integer">
@@ -867,6 +867,12 @@
         WHERE su.id_ IS NOT NULL
     </select>
 
+	<update id="batchUpdateStudentNumMinusOne">
+		update class_group set student_num_ = (student_num_ - 1),update_time_ = now() where id_ IN
+      <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+          #{classGroupId}
+      </foreach>
+	</update>
     <update id="updateTest">
       update class_group set del_flag_=#{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} where id_=1
     </update>

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

@@ -236,4 +236,14 @@
     <select id="countUserGroups" resultType="int">
       SELECT COUNT(1) FROM class_group_student_mapper WHERE user_id_=#{userId} AND group_type_=#{groupType} AND status_!='QUIT'
     </select>
+    
+    <select id="queryClassGroupIdList" resultType="int" parameterType="map">
+      SELECT distinct class_group_id_ FROM class_group_student_mapper WHERE user_id_=#{userId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{musicGroupId}
+    </select>
+
+    <select id="findMusicGroupClassGroupByType" resultMap="ClassGroupStudentMapper">
+        SELECT  cgsm.* FROM  class_group_student_mapper cgsm
+        LEFT JOIN class_group cg on cgsm.class_group_id_ = cg.id_
+        WHERE cgsm.music_group_id_ = #{musicGroupId} AND cg.group_type_ ='MUSIC' AND cg.type_=#{classGroupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_='0' AND cgsm.status_='NORMAL'
+    </select>
 </mapper>

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

@@ -139,7 +139,7 @@
         SELECT sp.*, sb.name_
         FROM music_group_subject_plan sp
         LEFT JOIN subject sb ON sb.id_ = sp.subject_id_
-        WHERE sp.music_group_id_=#{musicGroupId} AND sp.subject_id_=#{subjectId} FOR UPDATE
+        WHERE sp.music_group_id_=#{musicGroupId} AND sp.subject_id_=#{subjectId}
     </select>
     <select id="findSubjectPlan" resultMap="MusicGroupSubjectPlan">
         SELECT * FROM music_group_subject_plan WHERE music_group_id_ = #{musicGroupId} AND subject_id_ = #{subjectId} LIMIT 1

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

@@ -77,7 +77,10 @@
     <sql id="queryPageSql">
         <where>
             <if test="delFlag != null">
-                o.del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                and o.del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="organId != null">
+                and o.id_ in (${organId})
             </if>
         </where>
     </sql>

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

@@ -75,8 +75,14 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPaymentOrder" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO student_payment_order
-        (id_,group_type_,user_id_,type_,expect_amount_,actual_amount_,balance_payment_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_)
-        VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},#{balancePaymentAmount},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
+        (id_,group_type_,user_id_,type_,expect_amount_,actual_amount_,balance_payment_amount_,trans_no_,
+        status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,
+        payment_account_no_,order_no_,music_group_id_,class_group_id_)
+        VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{expectAmount},#{actualAmount},#{balancePaymentAmount},#{transNo},
+        #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),
+        #{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->

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

@@ -110,7 +110,7 @@
 	</delete>
 
     <delete id="batchDeleteByCourseSchedules">
-        DELETE FROM teacher_attendance WHERE id_ IN
+        DELETE FROM teacher_attendance WHERE course_schedule_id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
             #{courseScheduleId}
         </foreach>

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

@@ -206,10 +206,9 @@
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Teacher" parameterType="map">
         SELECT t.id_,su.real_name_,su.lock_flag_,t.subject_id_,su.phone_,su.organ_id_,
-        t.job_nature_,t.is_probation_period_,GROUP_CONCAT(s.name_) subject_name_
+        t.job_nature_,t.is_probation_period_,GROUP_CONCAT(s.name_) subject_name_,su.del_flag_
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
-        WHERE su.user_type_ = 'TEACHER' AND su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
         ORDER BY t.update_time_ DESC
@@ -219,29 +218,30 @@
     <select id="queryCount" resultType="int">
         SELECT COUNT(DISTINCT t.id_)
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0
         <include refid="queryPageMap"/>
     </select>
 
     <sql id="queryPageMap">
-        <if test="lockFlag != null">
-            AND su.lock_flag_ = #{lockFlag}
-        </if>
-        <if test="subjectId != null">
-            AND FIND_IN_SET(#{subjectId},t.subject_id_)
-        </if>
-        <if test="organId != null">
-            AND FIND_IN_SET(su.organ_id_,#{organId})
-        </if>
-        <if test="search != null">
-            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
-        <if test="jobNature != null">
-            AND t.job_nature_ = #{jobNature}
-        </if>
-        <if test="isProbationPeriod != null">
-            AND t.is_probation_period_ = #{isProbationPeriod}
-        </if>
+        <where>
+            <if test="lockFlag != null">
+                AND su.lock_flag_ = #{lockFlag}
+            </if>
+            <if test="subjectId != null">
+                AND FIND_IN_SET(#{subjectId},t.subject_id_)
+            </if>
+            <if test="organId != null">
+                AND FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+            <if test="search != null">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="jobNature != null">
+                AND t.job_nature_ = #{jobNature}
+            </if>
+            <if test="isProbationPeriod != null">
+                AND t.is_probation_period_ = #{isProbationPeriod}
+            </if>
+        </where>
     </sql>
 
     <!-- 根据证件号查询老师 -->

+ 8 - 4
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -92,10 +92,14 @@ public class RoomServiceImpl implements RoomService {
 
         String userId = sysUserFeignService.queryUserInfo().getId().toString();
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
-        if(teacher == null){
-            studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
-        }else {
-            teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), SignStatusEnum.SIGN_IN,true);
+        try {
+            if(teacher == null){
+                studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
+            }else {
+                teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), SignStatusEnum.SIGN_IN,true);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
         }
         roomId = "DAYA" + roomId;
         String display = "";

+ 28 - 0
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -4,8 +4,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -14,6 +17,10 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
 import com.ym.mec.biz.service.OrganizationService;
@@ -26,11 +33,32 @@ public class OrganizationController extends BaseController {
 
     @Autowired
     private OrganizationService organizationService;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private EmployeeDao employeeDao;
 
     @ApiOperation(value = "分页查询分部列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('organization/queryPage')")
     public Object queryPage(OrganizationQueryInfo queryInfo){
+    	SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		if(!sysUser.getIsSuperAdmin()){
+			Employee employee = employeeDao.get(sysUser.getId());
+			if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+				queryInfo.setOrganId(employee.getOrganIdList());
+			}else if(StringUtils.isEmpty(employee.getOrganIdList())){
+				return failed("用户所在分部异常");
+			}else {
+				List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+				if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+					return failed("非法请求");
+				}
+			}
+		}
         return succeed(organizationService.queryPage(queryInfo));
     }
 

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

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -123,4 +124,14 @@ public class StudentRegistrationController extends BaseController {
         return succeed(studentRegistrationService.openPayment(ids));
     }
 
+    @ApiOperation(value = "获取乐团(声部)的(没有某种班级类型)学生")
+    @GetMapping("/getMusicGroupStuNoClassType")
+    @PreAuthorize("@pcs.hasPermissions('studentRegistration/getMusicGroupStuNoClassType')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "type", value = "类型(MIX,HIGH)", required = true, dataType = "ClassGroupTypeEnum"),
+            @ApiImplicitParam(name = "actualSubjectId", value = "科目(声部)id,", required = false, dataType = "int")})
+    public HttpResponseResult getMusicGroupStuNoClassType(String musicGroupId, ClassGroupTypeEnum type, Integer actualSubjectId) {
+        return succeed(studentRegistrationService.findMusicGroupStuNoClassType(musicGroupId, type,actualSubjectId));
+    }
+
 }