Explorar el Código

角色权限调整

zouxuan hace 3 años
padre
commit
43ad5c36a9
Se han modificado 21 ficheros con 196 adiciones y 266 borrados
  1. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysEmployeePositionDao.java
  2. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SysUserRoleEnum.java
  3. 5 4
      mec-biz/src/main/java/com/ym/mec/biz/event/listener/SendSeoMessageListener.java
  4. 0 20
      mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java
  5. 8 30
      mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java
  6. 21 1
      mec-biz/src/main/java/com/ym/mec/biz/service/SysEmployeePositionService.java
  7. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  8. 1 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  9. 5 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  10. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  11. 17 17
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  12. 21 90
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java
  13. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  14. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java
  15. 25 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysEmployeePositionServiceImpl.java
  16. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  17. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  18. 9 0
      mec-biz/src/main/resources/config/mybatis/SysEmployeePositionMapper.xml
  19. 30 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysEmployeePositionController.java
  20. 2 2
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  21. 23 66
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysEmployeePositionDao.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface SysEmployeePositionDao extends BaseDAO<Integer, SysEmployeePosition> {
 
@@ -33,4 +34,14 @@ public interface SysEmployeePositionDao extends BaseDAO<Integer, SysEmployeePosi
     * @date 2022/1/8 14:25
     */
     List<SysUserRoleEnum> queryPositionList(@Param("userId") Integer userId, @Param("tenantId") Integer tenantId);
+
+    /**
+    * @description: 获取指定分部包含指定职位的员工列表
+     * @param roleArr
+     * @param organId
+    * @return java.util.Set<java.lang.Integer>
+    * @author zx
+    * @date 2022/1/8 16:28
+    */
+    Set<Integer> queryUserIdByRoleId(@Param("roleArr") SysUserRoleEnum[] roleArr, @Param("organId") Integer organId, @Param("tenantId") Integer tenantId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SysUserRoleEnum.java

@@ -4,7 +4,7 @@ import com.ym.mec.common.enums.BaseEnum;
 
 //分部经理,乐团主管,维修技师
 public enum SysUserRoleEnum implements BaseEnum<String,SysUserRoleEnum> {
-    SECTION_MANAGER,EDUCATIONAL_TEACHER,REPAIR,JOIN_TEACHER,HRBP;
+    ORGAN_MANAGER,EDUCATION,REPAIR,JOIN_TEACHER,HRBP;
 
     @Override
     public String getCode() {

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/event/listener/SendSeoMessageListener.java

@@ -2,7 +2,7 @@ package com.ym.mec.biz.event.listener;
 
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.event.SendSeoMessageChangeEvent;
-import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.SysEmployeePositionService;
 import com.ym.mec.biz.service.SysMessageService;
 import org.springframework.context.ApplicationListener;
 import org.springframework.scheduling.annotation.Async;
@@ -18,16 +18,17 @@ public class SendSeoMessageListener implements ApplicationListener<SendSeoMessag
     @Resource
     private SysMessageService sysMessageService;
     @Resource
-    private OrganizationService organizationService;
+    private SysEmployeePositionService employeePositionService;
 
     @Async
     @Override
     public void onApplicationEvent(SendSeoMessageChangeEvent event) {
-        Set<Integer> targetUserIdList = organizationService.queryUserIdByRoleId(event.getRoleArr(), event.getOrganId());
+        //获取当前分部,指定角色的用户列表
+        Set<Integer> targetUserIdList = employeePositionService.queryUserIdByRoleId(event.getRoleArr(), event.getOrganId());
         if(event.getTargetId() != null){
             targetUserIdList.add(event.getTargetId());
         }
-        if(targetUserIdList != null && targetUserIdList.size() > 0){
+        if(targetUserIdList.size() > 0){
             sysMessageService.batchSeoMessage(targetUserIdList,
                     event.getMsgTemplate(),
                     JSONObject.toJSONString(event.getMemo()),

+ 0 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java

@@ -41,16 +41,6 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
     void updateEmployee(Employee employee);
 
     /**
-     * @describe 根据角色和部门获取用户
-     * @author Joburgess
-     * @date 2020/3/12
-     * @param roleIds: 角色编号列表
-     * @param organIds: 用户编号列表
-     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
-     */
-    List<SimpleUserDto> findByRole(String roleIds,String organIds);
-
-    /**
      * 是否有课程组关联的教务老师
      * @param employeeId
      * @return
@@ -77,16 +67,6 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
      */
     void level(List<EmployeeLevelDto> employeeLevelDtos);
 
-    /**
-     * @describe 根据角色和部门获取用户(包含冻结和离职的)
-     * @author Joburgess
-     * @date 2020/3/12
-     * @param roleIds: 角色编号列表
-     * @param organIds: 用户编号列表
-     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
-     */
-    List<SimpleUserDto> findAllByRole(String roleIds,String organIds);
-
     List<Integer> queryUserRole(Integer sysUserId);
 
     int batchInsertRoleMenu( Integer roleId, List<Integer> menuIds, Integer tenantId);

+ 8 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java

@@ -42,36 +42,6 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     Map<String,Map<Integer,String>> getOrganRole(List<Integer> organIds);
 
     /**
-    * @description: 获取当前用户所在分部最高角色权限
-     * @param organId
-     * @param userId
-    * @return com.ym.mec.biz.dal.enums.SysUserRoleEnum
-    * @author zx
-    * @date 2022/1/6 11:29
-    */
-    SysUserRoleEnum getOrganRole(Integer organId,Integer userId);
-
-    /**
-    * @description: 获取当前用户所在分部所有权限
-     * @param organId
-     * @param userId
-    * @return com.ym.mec.biz.dal.enums.SysUserRoleEnum
-    * @author zx
-    * @date 2022/1/6 11:29
-    */
-    List<SysUserRoleEnum> queryOrganRole(Integer organId,Integer userId);
-
-    /**
-    * @description: 获取分部的管理人员
-     * @param roleArr
-     * @param organId
-    * @return java.util.Set<java.lang.Integer>
-    * @author zx
-    * @date 2022/1/4 11:36
-    */
-    Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId);
-
-    /**
     * @description: 获取员工能访问的分部列表
      * @param userId 当前用户
      * @param organIds 用户选择的分部
@@ -91,6 +61,14 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     */
     String getEmployeeOrgan(String organIds);
 
+    /**
+    * @description: 获取老师所在分部列表(包含流动分部)
+    * @return java.lang.String
+    * @author zx
+    * @date 2022/1/5 12:44
+    */
+    String getTeacherOrgan();
+
     List<Organization> findAllOrgans(Integer tenantId);
 
     List<Organization> findOrgans(List<Integer> organIds,Integer tenantId);

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

@@ -7,6 +7,7 @@ import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface SysEmployeePositionService extends BaseService<Integer, SysEmployeePosition> {
 
@@ -15,7 +16,7 @@ public interface SysEmployeePositionService extends BaseService<Integer, SysEmpl
     void delPosition(Integer userId, Integer tenantId);
 
     /**
-    * @description: 获取机构所有职位,员工列表
+    * @description: 获取分部下所有职位,员工列表
      * @param
     * @return void
     * @author zx
@@ -32,4 +33,23 @@ public interface SysEmployeePositionService extends BaseService<Integer, SysEmpl
     * @date 2022/1/8 14:15
     */
     Boolean onlyForRole(SysUserRoleEnum role, Integer userId,Boolean isSuper);
+
+    /**
+    * @description: 获取用户所有角色
+     * @param
+    * @return java.util.List<com.ym.mec.biz.dal.enums.SysUserRoleEnum>
+    * @author zx
+    * @date 2022/1/8 16:06
+    */
+    List<SysUserRoleEnum> queryAllRole(Integer userId,Boolean isSuper);
+
+    /**
+     * @description: 获取分部的管理人员
+     * @param roleArr
+     * @param organId
+     * @return java.util.Set<java.lang.Integer>
+     * @author zx
+     * @date 2022/1/4 11:36
+     */
+    Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId);
 }

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

@@ -4,7 +4,7 @@ import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
@@ -4061,7 +4061,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 		Map<String, Long> memo = new HashMap<>(1);
 		memo.put("courseScheduleComplaintsId", courseScheduleComplaints.getId());
-		sendSeoMessageSource.sendSeoMessage(user.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+		sendSeoMessageSource.sendSeoMessage(user.getOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER},
 				JSONObject.toJSONString(memo),targetUserId,MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL,courseSchedule.getName(), user.getUsername());
     }
 

+ 1 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -6,7 +6,6 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.EmployeeDto;
 import com.ym.mec.biz.dal.dto.EmployeeLevelDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
@@ -35,6 +34,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -259,11 +259,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	}
 
 	@Override
-	public List<SimpleUserDto> findByRole(String roleIds, String organIds) {
-		return employeeDao.findByRole(roleIds,organIds);
-	}
-
-	@Override
 	public HashMap<String, Integer> hasCourseGroupRelation(Integer employeeId) {
 		Integer hasCourseGroupRelation = employeeDao.hasCourseGroupRelation(employeeId);
 		Integer hasCourseSchedule = employeeDao.hasCourseSchedule(employeeId);
@@ -415,11 +410,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	}
 
 	@Override
-	public List<SimpleUserDto> findAllByRole(String roleIds, String organIds) {
-		return employeeDao.findAllByRole(roleIds,organIds);
-	}
-
-	@Override
 	public List<Integer> queryUserRole(Integer sysUserId) {
 		return employeeDao.queryUserRole(sysUserId);
 	}

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

@@ -363,7 +363,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			saveData(indexBaseMonthDataDao.getMusicData(dayStr,tenantId), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(TRANSACTION_TEACHER_NUM)) {
-			List<SimpleUserDto> transactionTeachers = employeeService.findByRole("58", null);
+			Map<String, List<SimpleUserDto>> organPosition = employeePositionService.findOrganPosition(null);
+			List<SimpleUserDto> transactionTeachers = organPosition.get(SysUserRoleEnum.JOIN_TEACHER.name());
 			Map<Integer, Integer> organTeacherNumMap = new HashMap<>();
 			for (SimpleUserDto transactionTeacher : transactionTeachers) {
 				Set<Integer> organIds = Arrays.stream(transactionTeacher.getOrganIds().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toSet());
@@ -623,7 +624,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		//如果当前用户只有教务老师角色,那么只能看到他所管理的课程组的信息
 		List<Long> classGroupIds = null;
 		Integer educationUserId = null;
-		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATIONAL_TEACHER,sysUser.getId(),sysUser.getIsSuperAdmin());
+		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATION,sysUser.getId(),sysUser.getIsSuperAdmin());
 		if (onlyForRole) {
 			//获取教务老师关联的班级列表
 			classGroupIds = classGroupDao.queryGroupClassGroupIds(sysUser.getId());
@@ -1040,7 +1041,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			organIdSet = Arrays.stream(organIds.split(",")).map(Integer::new).collect(Collectors.toSet());
 		}
 		//当前用户是否是分部经理
-		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATIONAL_TEACHER,sysUser.getId(),sysUser.getIsSuperAdmin());
+		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATION,sysUser.getId(),sysUser.getIsSuperAdmin());
 		Integer educationUserId = null;
 		if (onlyForRole) {
 			//获取教务老师关联的班级列表
@@ -1096,7 +1097,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			organIds = Arrays.stream(organIdsStr.split(",")).map(Integer::new).collect(Collectors.toSet());
 		}
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATIONAL_TEACHER,sysUser.getId(),sysUser.getIsSuperAdmin());
+		Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATION,sysUser.getId(),sysUser.getIsSuperAdmin());
 		//如果当前用户只有教务老师角色,那么只能看到他所管理的课程组的信息
 		List<Long> classGroupIds = null;
 		Integer educationUserId = null;

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

@@ -49,7 +49,7 @@ import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.ST
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.*;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.*;
 import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 @Service
 public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
@@ -498,7 +498,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (status == AUDITING) {
 			// 如果是审核中
 			Organization organization = organizationDao.get(musicGroup.getOrganId());
-			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER},
 					null,null,MessageTypeEnum.BACKSTAGE_PAYMENT_CALENDER_AUDIT,organization.getName(), musicGroup.getName());
 		}else {
 			imUserFriendService.refreshGroupImUserFriend(musicGroupId, GroupType.MUSIC);
@@ -679,7 +679,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (status == AUDITING) {
 			// 如果是审核中
 			Organization organization = organizationDao.get(musicGroup.getOrganId());
-			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER},
 					null,null,MessageTypeEnum.BACKSTAGE_PAYMENT_CALENDER_AUDIT,organization.getName(), musicGroup.getName());
 		}
 		return batchNo;
@@ -1080,7 +1080,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (status == AUDITING) {
 			// 如果是审核中
 			Organization organization = organizationDao.get(musicGroup.getOrganId());
-			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+			sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER},
 					null,null,MessageTypeEnum.BACKSTAGE_PAYMENT_CALENDER_AUDIT,organization.getName(), musicGroup.getName());
 		}else {
 			if(paymentType == ADD_STUDENT){

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

@@ -53,7 +53,7 @@ import static com.ym.mec.biz.dal.entity.ApprovalStatus.PROCESSING;
 import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
 import static com.ym.mec.biz.dal.enums.OrderDetailTypeEnum.*;
 import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -229,7 +229,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         String event = musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT ? "新建乐团,提交审核" : "保存乐团草稿";
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         if (musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT) {
-            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                     null, null, MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, sysUser.getRealName(), musicGroup.getName());
         }
         // 保存乐团付费主体列表
@@ -1309,7 +1309,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(), musicGroupId);
         }
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, null, MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, sysUser.getRealName(), musicGroup.getName());
     }
 
@@ -1383,7 +1383,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN,
                     map, null, 0, "1", "TEACHER", musicGroup.getName());
         }
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 "1", musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_ACTION_GROUP, musicGroup.getName());
 
         //统计变更学员数
@@ -1415,7 +1415,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "提交审核(草稿 -> 审核中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
         musicGroupDao.update(musicGroup);
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, null, MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, sysUser.getRealName(), musicGroup.getName());
     }
 
@@ -1686,7 +1686,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "取消乐团", sysUser.getId(), ""));
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 "1", musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, musicGroup.getName());
         return true;
     }
@@ -1826,7 +1826,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, musicGroup.getName());
         return true;
     }
@@ -1939,14 +1939,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupQuit.setCurrentApproveRole(SysUserRole.EDUCATIONAL_TEACHER + "");
 
         if (currentOperatorRoleIds != null && currentOperatorRoleIds.size() > 0) {
-            if (!currentOperatorRoleIds.contains(SysUserRoleEnum.SECTION_MANAGER) && currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER)) {
+            if (!currentOperatorRoleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) && currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATION)) {
 
                 if (musicGroupQuit.getStatus() == ApprovalStatus.APPROVED) {
                     throw new BizException("只能分部经理操作退团");
                 }
-                musicGroupQuit.setCurrentApproveRole(SysUserRoleEnum.SECTION_MANAGER.ordinal() + "");
+                musicGroupQuit.setCurrentApproveRole(SysUserRoleEnum.ORGAN_MANAGER.ordinal() + "");
             }
-            if (currentOperatorRoleIds.contains(SysUserRoleEnum.SECTION_MANAGER) && !currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER)) {
+            if (currentOperatorRoleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) && !currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATION)) {
 
                 throw new BizException("只能乐团主管操作退团申请");
             }
@@ -1994,7 +1994,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.SYSTEM_PUSH_STUDENT_COMMIT_QUIT_MUSIC_APPLY, receivers, null, 0, null,
                     "SYSTEM", musicGroup.getName(), sysUser.getUsername());
 
-            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                     JSONObject.toJSONString(memo), null, MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, sysUser.getUsername());
         } else {
             musicGroupQuit.setStatus(reqMusicGroupQuit.getStatus());
@@ -2049,9 +2049,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Date date = new Date();
 
         //如果发起退团申请的是乐团主管
-        if (!currentOperatorRoleIds.contains(SysUserRoleEnum.SECTION_MANAGER) && currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER)) {
+        if (!currentOperatorRoleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) && currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATION)) {
 
-            if (!StringUtils.equals(musicGroupQuit.getCurrentApproveRole(), SysUserRoleEnum.EDUCATIONAL_TEACHER.ordinal() + "")) {
+            if (!StringUtils.equals(musicGroupQuit.getCurrentApproveRole(), SysUserRoleEnum.EDUCATION.ordinal() + "")) {
                 throw new BizException("只有分部经理才能审核");
             }
 
@@ -2060,8 +2060,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
         }
 
-        if (currentOperatorRoleIds.contains(SysUserRoleEnum.SECTION_MANAGER) && !currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER)) {
-            if (!StringUtils.equals(musicGroupQuit.getCurrentApproveRole(), SysUserRoleEnum.SECTION_MANAGER.ordinal() + "")) {
+        if (currentOperatorRoleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) && !currentOperatorRoleIds.contains(SysUserRoleEnum.EDUCATION)) {
+            if (!StringUtils.equals(musicGroupQuit.getCurrentApproveRole(), SysUserRoleEnum.ORGAN_MANAGER.ordinal() + "")) {
                 throw new BizException("先需乐团主管审核");
             }
         }
@@ -3466,7 +3466,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         map, null, 0, "", "", musicGroup.getName(), studentApplyUrl);
             }
         }
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER}, null,
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER}, null,
                 musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT, musicGroup.getName());
         return musicGroup;
     }
@@ -3581,7 +3581,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 //                }
 //            }
 //        }
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, musicGroup.getName());
     }
 

+ 21 - 90
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java

@@ -5,13 +5,14 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
-import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
 import com.ym.mec.biz.dal.page.EducationBaseQueryInfo;
 import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.SysEmployeePositionService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -24,7 +25,7 @@ import org.springframework.stereotype.Service;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.*;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.EDUCATION;
 
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
@@ -41,6 +42,8 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	private ClassGroupDao classGroupDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SysEmployeePositionService employeePositionService;
 
 	@Override
 	public BaseDAO<Integer, Organization> getDAO() {
@@ -147,92 +150,6 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
-	public List<SysUserRoleEnum> queryOrganRole(Integer organId, Integer userId) {
-		List<SysUserRoleEnum> roleEnums = new ArrayList<>();
-		Organization organization = organizationDao.get(organId);
-		if(organization == null){
-			throw new BizException("分部信息不存在");
-		}
-		if(StringUtils.isNotEmpty(organization.getOrganManager())){
-			if(organization.getOrganManager().contains(userId.toString())){
-				roleEnums.add(SECTION_MANAGER);
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getEducationId())){
-			if(organization.getEducationId().contains(userId.toString())){
-				roleEnums.add(EDUCATIONAL_TEACHER);
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getRepairId())){
-			if(organization.getRepairId().contains(userId.toString())){
-				roleEnums.add(REPAIR);
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getJoinTeacherId())){
-			if(organization.getJoinTeacherId().contains(userId.toString())){
-				roleEnums.add(JOIN_TEACHER);
-			}
-		}
-		return roleEnums;
-	}
-
-	@Override
-	public SysUserRoleEnum getOrganRole(Integer organId, Integer userId) {
-		Organization organization = organizationDao.get(organId);
-		if(organization == null){
-			throw new BizException("分部信息不存在");
-		}
-		if(StringUtils.isNotEmpty(organization.getOrganManager())){
-			if(organization.getOrganManager().contains(userId.toString())){
-				return SECTION_MANAGER;
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getEducationId())){
-			if(organization.getEducationId().contains(userId.toString())){
-				return EDUCATIONAL_TEACHER;
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getRepairId())){
-			if(organization.getRepairId().contains(userId.toString())){
-				return REPAIR;
-			}
-		}
-		if(StringUtils.isNotEmpty(organization.getJoinTeacherId())){
-			if(organization.getJoinTeacherId().contains(userId.toString())){
-				return JOIN_TEACHER;
-			}
-		}
-		return null;
-	}
-
-	@Override
-    public Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId) {
-		Organization organization = organizationDao.get(organId);
-		if(organization == null){
-			throw new BizException("分部信息不存在");
-		}
-		if(roleArr == null || roleArr.length == 0){
-			return new HashSet<>();
-		}
-		StringJoiner stringJoiner = new StringJoiner(",");
-		for (SysUserRoleEnum e : roleArr) {
-			if(SECTION_MANAGER.equals(e) && StringUtils.isNotEmpty(organization.getOrganManager())){
-				stringJoiner.add(organization.getOrganManager());
-			}else if (EDUCATIONAL_TEACHER.equals(e) && StringUtils.isNotEmpty(organization.getEducationId())){
-				stringJoiner.add(organization.getEducationId());
-			}else if(REPAIR.equals(e) && StringUtils.isNotEmpty(organization.getRepairId())){
-				stringJoiner.add(organization.getRepairId());
-			}else if(JOIN_TEACHER.equals(e) && StringUtils.isNotEmpty(organization.getJoinTeacherId())){
-				stringJoiner.add(organization.getJoinTeacherId());
-			}
-		}
-		if(stringJoiner.length() > 0) {
-			return Arrays.stream(stringJoiner.toString().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
-		}
-		return new HashSet<>();
-	}
-
-	@Override
 	public String getEmployeeOrgan(Integer userId, String organIds,Boolean isSuper) {
 		if(StringUtils.isEmpty(organIds)){
 			Integer tenantId = TenantContextHolder.getTenantId();
@@ -264,6 +181,20 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
+	public String getTeacherOrgan() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			throw new BizException("用户信息获取失败");
+		}
+		Teacher teacher = teacherDao.get(sysUser.getId());
+		String organIds = teacher.getTeacherOrganId() + "";
+		if(StringUtils.isNotBlank(teacher.getFlowOrganRange())){
+			organIds = organIds + "," + teacher.getFlowOrganRange();
+		}
+		return organIds;
+	}
+
+	@Override
 	public List<Organization> findAllOrgans(Integer tenantId) {
 		return organizationDao.findAllOrgans(tenantId);
 	}
@@ -291,9 +222,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		if (sysUser == null) {
 			throw new BizException("用户信息获取失败");
 		}
-		SysUserRoleEnum organRole = this.getOrganRole(Integer.parseInt(queryInfo.getOrganIds()), sysUser.getId());
+		Boolean onlyForRole = employeePositionService.onlyForRole(EDUCATION, sysUser.getId(), sysUser.getIsSuperAdmin());
 		//如果当前用户只有教务老师角色,那么只能看到他所管理的课程组的信息
-		if (organRole == SysUserRoleEnum.EDUCATIONAL_TEACHER && !sysUser.getIsSuperAdmin()) {
+		if (onlyForRole) {
 			queryInfo.setEducationUserId(sysUser.getId());
 		}
 		return queryInfo;

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

@@ -44,7 +44,7 @@ import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_P
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
 import static com.ym.mec.biz.dal.enums.OrderDetailTypeEnum.*;
 import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -229,7 +229,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, subId, 1);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 
-            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                     null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, musicGroup.getName());
         }
         return i;
@@ -921,7 +921,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         imFeignService.update(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
 
         //学生报名表
-        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, musicGroup.getName(), studentRegistration.getName());
         return userId;
     }

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

@@ -33,7 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.*;
 
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 @Service
 public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, StudentWithdraw> implements StudentWithdrawService {
@@ -193,7 +193,7 @@ public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, Student
 				cashAccountDetail.setStatus(DealStatusEnum.ING);
 				cashAccountDetail.setAttribute(withdraw.getId()+"");
 				cashAccountDetailService.insert(cashAccountDetail);
-				sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+				sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER},
 						null,null,MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_WITHDRAW, sysUser.getUsername());
 			} else {
 				throw new BizException("账户余额不足");

+ 25 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysEmployeePositionServiceImpl.java

@@ -17,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -84,4 +82,28 @@ public class SysEmployeePositionServiceImpl extends BaseServiceImpl<Integer, Sys
 		}
 		return false;
     }
+
+	@Override
+	public List<SysUserRoleEnum> queryAllRole(Integer userId,Boolean isSuper) {
+		//如果是超管
+		if(isSuper){
+			return new ArrayList<>(Arrays.asList(SysUserRoleEnum.values()));
+		}
+		//如果是机构管理员
+		Integer tenantId = TenantContextHolder.getTenantId();
+		TenantInfo tenantInfo = tenantInfoDao.selectById(tenantId);
+		if(tenantInfo.getUserId() != null && tenantInfo.getUserId().equals(userId)){
+			return new ArrayList<>(Arrays.asList(SysUserRoleEnum.values()));
+		}
+		return sysEmployeePositionDao.queryPositionList(userId,tenantId);
+	}
+
+    @Override
+    public Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId) {
+		if(roleArr == null || roleArr.length == 0 || organId == null){
+			return new HashSet<>();
+		}
+		Integer tenantId = TenantContextHolder.getTenantId();
+		return sysEmployeePositionDao.queryUserIdByRoleId(roleArr,organId,tenantId);
+    }
 }

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

@@ -46,8 +46,8 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
 
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.EDUCATIONAL_TEACHER;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.EDUCATION;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 
 @Service
 public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
@@ -114,7 +114,7 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		Teacher teacher = teacherDao.get(sysUser.getId());
 		Map<String,Object> memo = new HashMap<>(1);
 		memo.put("leaveRecordId",teacherLeaveRecord.getId());
-		sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER,EDUCATIONAL_TEACHER},
+		sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(),new SysUserRoleEnum[]{ORGAN_MANAGER,EDUCATION},
 				JSONObject.toJSONString(memo),null,MessageTypeEnum.EDUCATION_PUSH_TEACHER_LEAVE_APPLY, sysUser.getRealName());
 		return true;
 	}

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

@@ -48,7 +48,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
 import static java.math.BigDecimal.ROUND_DOWN;
 import static java.math.BigDecimal.ZERO;
 
@@ -733,7 +733,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
         Map<String, Long> memo = new HashMap<>(1);
         memo.put("vipGroupId", vipGroupApplyBaseInfoDto.getId());
-        sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 JSONObject.toJSONString(memo), vipGroupApplyBaseInfoDto.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, teacher.getRealName());
         return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
     }
@@ -3018,7 +3018,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         Map<String, Object> memo = new HashMap<>(2);
         memo.put("Id", studentApplyRefunds.getId());
         memo.put("type", "VIPGROUP");
-        sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
+        sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 JSONObject.toJSONString(memo), vipGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE, sysUser.getUsername());
     }
 

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

@@ -100,4 +100,13 @@
 		LEFT JOIN sys_position sp ON sp.id_ = sep.role_id_
 		WHERE sep.user_id_ = #{userId} AND sep.tenant_id_ = #{tenantId}
 	</select>
+	<select id="queryUserIdByRoleId" resultType="java.lang.Integer">
+		SELECT DISTINCT sep.user_id_ FROM sys_employee_position sep
+		LEFT JOIN sys_position sp ON sp.id_ = sep.role_id_
+		LEFT JOIN employee e ON e.user_id_ = sep.user_id_
+		WHERE sep.tenant_id_ = #{tenantId} AND FIND_IN_SET(#{organId},e.organ_id_list_) AND sp.role_code_ IN
+		<foreach collection="roleArr" item="role" open="(" close=")">
+			#{role}
+		</foreach>
+	</select>
 </mapper>

+ 30 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysEmployeePositionController.java

@@ -0,0 +1,30 @@
+package com.ym.mec.teacher.controller;
+
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.SysEmployeePositionService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("employeePosition")
+@Api(tags = "员工职位管理")
+@RestController
+public class SysEmployeePositionController extends BaseController {
+
+    @Autowired
+    private SysEmployeePositionService employeePositionService;
+    @Autowired
+    private OrganizationService organizationService;
+
+    @ApiOperation(value = "获取分部下员工职位列表")
+    @GetMapping("/findOrganPosition")
+    @PreAuthorize("@pcs.hasPermissions('employeePosition/findOrganPosition')")
+    public Object findAll() throws Exception {
+        return succeed(employeePositionService.findOrganPosition(organizationService.getTeacherOrgan()));
+    }
+}

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

@@ -189,7 +189,7 @@ public class TeacherController extends BaseController {
 		return succeed();
 	}
 
-    @ApiOperation(value = "获取教务人员")
+    /*@ApiOperation(value = "获取教务人员")
     @GetMapping("/findEducationUsers")
     public HttpResponseResult findEducationUsers(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
@@ -205,7 +205,7 @@ public class TeacherController extends BaseController {
             organIds = organIds + "," + teacher.getFlowOrganRange();
         }
         return succeed(employeeService.findByRole("4,5",organIds));
-    }
+    }*/
 
 
     @ApiOperation(value = "获取报名/预报名列表")

+ 23 - 66
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -1,42 +1,15 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
-import com.ym.mec.biz.service.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-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.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.StudentInstrumentDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.entity.ApprovalStatus;
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.dal.entity.MusicGroupReturnFeeDto;
-import com.ym.mec.biz.dal.entity.StudentInstrument;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQuitQueryInfo;
+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;
@@ -44,6 +17,19 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("musicGroupQuit")
 @Api(tags = "退团服务")
@@ -66,6 +52,8 @@ public class MusicGroupQuitController extends BaseController {
     private TeacherDao teacherDao;
     @Autowired
     private OrganizationService organizationService;
+    @Autowired
+    private SysEmployeePositionService employeePositionService;
 
     @ApiOperation(value = "分页查询")
     @RequestMapping("/queryPage")
@@ -184,15 +172,7 @@ public class MusicGroupQuitController extends BaseController {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-        List<SysUserRoleEnum> roleIds;
-		if(sysUser.getIsSuperAdmin() == true) {
-            roleIds = new ArrayList<>();
-			roleIds.add(SysUserRoleEnum.SECTION_MANAGER);
-			roleIds.add(SysUserRoleEnum.EDUCATIONAL_TEACHER);
-		} else {
-            MusicGroup musicGroup = musicGroupService.get(musicGroupQuit.getMusicGroupId());
-            roleIds = organizationService.queryOrganRole(musicGroup.getOrganId(), sysUser.getId());
-		}
+        List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(sysUser.getId(),sysUser.getIsSuperAdmin());
         return succeed(musicGroupService.applyQuitMusicGroup(roleIds, musicGroupQuit, sysUser.getId()));
     }
 
@@ -204,19 +184,8 @@ public class MusicGroupQuitController extends BaseController {
 		if (sysUser == null || sysUser.getId() == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-        List<SysUserRoleEnum> roleIds;
-        if(sysUser.getIsSuperAdmin() == true) {
-            roleIds = new ArrayList<>();
-            roleIds.add(SysUserRoleEnum.SECTION_MANAGER);
-            roleIds.add(SysUserRoleEnum.EDUCATIONAL_TEACHER);
-        } else {
-            MusicGroup musicGroup = musicGroupService.get(musicGroupQuit.getMusicGroupId());
-            if(musicGroup == null){
-            	return failed("乐团信息查询失败");
-            }
-            roleIds = organizationService.queryOrganRole(musicGroup.getOrganId(), sysUser.getId());
-        }
-		if (!(roleIds.contains(SysUserRoleEnum.SECTION_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER))) {
+        List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(sysUser.getId(),sysUser.getIsSuperAdmin());
+		if (!(roleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATION))) {
 			return failed("未经授权,不能操作");
 		}
         return succeed(musicGroupService.approveQuitMusicGroup(roleIds, musicGroupQuit));
@@ -230,20 +199,8 @@ public class MusicGroupQuitController extends BaseController {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-        List<SysUserRoleEnum> roleIds;
-        if(sysUser.getIsSuperAdmin() == true) {
-            roleIds = new ArrayList<>();
-            roleIds.add(SysUserRoleEnum.SECTION_MANAGER);
-            roleIds.add(SysUserRoleEnum.EDUCATIONAL_TEACHER);
-        } else {
-            Set<String> collect = musicGroupQuits.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
-            Set<Integer> collect1 = musicGroupService.queryListByIds(collect).stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
-            if(collect1.size() > 1){
-                throw new BizException("请选择同一个分部的乐团");
-            }
-            roleIds = organizationService.queryOrganRole(collect1.iterator().next(), sysUser.getId());
-        }
-		if (!(roleIds.contains(SysUserRoleEnum.SECTION_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATIONAL_TEACHER))) {
+        List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(sysUser.getId(),sysUser.getIsSuperAdmin());
+		if (!(roleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATION))) {
 			throw new BizException("未经授权,不能操作");
 		}
         for (MusicGroupQuit musicGroupQuit : musicGroupQuits) {