Browse Source

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into saas

yanite 3 years ago
parent
commit
e39c42399c
43 changed files with 414 additions and 326 deletions
  1. 3 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebMvcConfig.java
  2. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupCategoryDao.java
  3. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexBaseMonthData.java
  4. 4 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DeductReasonEnum.java
  5. 4 6
      mec-biz/src/main/java/com/ym/mec/biz/event/SendSeoMessageChangeEvent.java
  6. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/event/listener/SendSeoMessageListener.java
  7. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/event/source/SendSeoMessageSource.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/IndexBaseMonthDataService.java
  9. 11 11
      mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java
  10. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 25 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  13. 43 44
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  14. 21 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderCourseSettingsServiceImpl.java
  15. 19 36
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  16. 65 40
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java
  17. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java
  18. 15 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  19. 33 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  20. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java
  21. 11 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  22. 23 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java
  23. 27 45
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  24. 1 1
      mec-biz/src/main/resources/config/mybatis/ChargeTypeSubjectMapperMapper.xml
  25. 1 1
      mec-biz/src/main/resources/config/mybatis/EmployeeInfoMapper.xml
  26. 3 3
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  27. 1 1
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMessageMapper.xml
  28. 2 2
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml
  29. 25 25
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  30. 1 1
      mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml
  31. 1 1
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  32. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  33. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml
  34. 4 4
      mec-im/src/main/java/com/ym/config/WebMvcConfig.java
  35. 0 4
      mec-im/src/main/java/com/ym/controller/GroupController.java
  36. 0 3
      mec-im/src/main/java/com/ym/controller/PrivateController.java
  37. 0 1
      mec-im/src/main/java/com/ym/interceptor/TenantInterceptor.java
  38. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  39. 1 1
      mec-web/src/main/java/com/ym/mec/web/WebApplication.java
  40. 8 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java
  41. 20 4
      mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java
  42. 7 1
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java
  43. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java

+ 3 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebMvcConfig.java

@@ -36,7 +36,9 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
-		registry.addInterceptor(tenantInterceptor).addPathPatterns("/**").excludePathPatterns("/queryUserInfo");
+		registry.addInterceptor(tenantInterceptor).addPathPatterns("/**").
+				excludePathPatterns("/queryUserInfo","/user/queryUserByPhone","/user/add",
+						"user/queryUserById/*","/role/queryRoleCodeListByUserId","/user/updateSysUser");
 		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/userDevice/unbind").excludePathPatterns("/*");
 	}
 	

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

@@ -3,12 +3,13 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface VipGroupCategoryDao extends BaseDAO<Integer, VipGroupCategory> {
 
-    List<VipGroupCategory> findAllByOrgan(String organId);
+    List<VipGroupCategory> findAllByOrgan(@Param("organId") String organId, @Param("cloudRoomUpLimit") Integer cloudRoomUpLimit);
 
     List<VipGroupCategory> findTeacherDefaultSalary(Integer userId);
 

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexBaseMonthData.java

@@ -63,9 +63,10 @@ public class IndexBaseMonthData extends BaseEntity {
 	public IndexBaseMonthData() {
 	}
 
-	public IndexBaseMonthData(Date month, Integer organId) {
+	public IndexBaseMonthData(Date month, Integer organId, Integer tenantId) {
 		this.month = month;
 		this.organId = organId;
+		setTenantId(tenantId);
 		this.totalNum = BigDecimal.ZERO;
 		this.activateNum = BigDecimal.ZERO;
 		this.percent = BigDecimal.ZERO;

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DeductReasonEnum.java

@@ -9,8 +9,10 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum DeductReasonEnum implements BaseEnum<String,DeductReasonEnum> {
     SIGN_IN_TIME_ERR("SIGN_IN_TIME_ERR", "签到时间异常", ""),
     SIGN_OUT_TIME_ERR("SIGN_OUT_TIME_ERR", "签退时间异常", ""),
-    GPS_ERR_IN("GPS_ERR", "签到位置异常", ""),
-    GPS_ERR_OUT("GPS_ERR", "签退位置异常", ""),
+    GPS_ERR_IN("GPS_ERR_IN", "签到位置异常", ""),
+    GPS_ERR_OUT("GPS_ERR_OUT", "签退位置异常", ""),
+    NO_GPS("NO_GPS", "未点名", ""),
+    GPS_ERR("GPS_ERR", "点名位置异常", ""),
     NOT_SETTLEMENT("NOT_SETTLEMENT", "不结算课酬", "特殊老师不结算课酬"),
     TRAIL("TRAIL", "试用期扣减", "试用期老师课酬按系统配置的折扣计算"),
 

+ 4 - 6
mec-biz/src/main/java/com/ym/mec/biz/event/SendSeoMessageChangeEvent.java

@@ -4,8 +4,6 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
 import org.springframework.context.ApplicationEvent;
 
-import java.util.Map;
-
 public class SendSeoMessageChangeEvent extends ApplicationEvent {
     //分部
     private Integer organId;
@@ -14,7 +12,7 @@ public class SendSeoMessageChangeEvent extends ApplicationEvent {
     private SysUserRoleEnum[] roleArr;
 
     //额外参数
-    private Map<String, Long> memo;
+    private String memo;
 
     //其他的目标用户
     private Integer targetId;
@@ -30,7 +28,7 @@ public class SendSeoMessageChangeEvent extends ApplicationEvent {
      *
      * @param source the object on which the event initially occurred (never {@code null})
      */
-    public SendSeoMessageChangeEvent(Object source,Integer organId,SysUserRoleEnum[] roleArr,Map<String, Long> memo,
+    public SendSeoMessageChangeEvent(Object source,Integer organId,SysUserRoleEnum[] roleArr,String memo,
                                      Integer targetId,MessageTypeEnum msgTemplate,Object... args) {
         super(source);
         this.organId = organId;
@@ -73,11 +71,11 @@ public class SendSeoMessageChangeEvent extends ApplicationEvent {
         this.roleArr = roleArr;
     }
 
-    public Map<String, Long> getMemo() {
+    public String getMemo() {
         return memo;
     }
 
-    public void setMemo(Map<String, Long> memo) {
+    public void setMemo(String memo) {
         this.memo = memo;
     }
 

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

@@ -24,10 +24,10 @@ public class SendSeoMessageListener implements ApplicationListener<SendSeoMessag
     @Override
     public void onApplicationEvent(SendSeoMessageChangeEvent event) {
         Set<Integer> targetUserIdList = organizationService.queryUserIdByRoleId(event.getRoleArr(), event.getOrganId());
+        if(event.getTargetId() != null){
+            targetUserIdList.add(event.getTargetId());
+        }
         if(targetUserIdList != null && targetUserIdList.size() > 0){
-            if(event.getTargetId() != null){
-                targetUserIdList.add(event.getTargetId());
-            }
             sysMessageService.batchSeoMessage(targetUserIdList,
                     event.getMsgTemplate(),
                     JSONObject.toJSONString(event.getMemo()),

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/event/source/SendSeoMessageSource.java

@@ -7,14 +7,13 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.Map;
 
 @Component
 public class SendSeoMessageSource {
     @Resource
     private ApplicationContext applicationContext;
 
-    public void sendSeoMessage(Integer organId, SysUserRoleEnum[] roleArr, Map<String, Long> memo,
+    public void sendSeoMessage(Integer organId, SysUserRoleEnum[] roleArr, String memo,
                                Integer targetId, MessageTypeEnum msgTemplate, Object... args){
         applicationContext.publishEvent(new SendSeoMessageChangeEvent(this,organId,roleArr,memo,targetId,msgTemplate,args));
     }

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

@@ -21,7 +21,7 @@ public interface IndexBaseMonthDataService extends BaseService<Long, IndexBaseMo
 
     List<IndexBaseDto> getIndexBaseData(IndexDataQueryInfo indexDataQueryInfo);
 
-    void indexBaseDataTask(String month, Set<IndexDataType> dataTypes);
+    void indexBaseDataTask(Integer tenantId, String month, Set<IndexDataType> dataTypes);
 
     Map<String, Object> getIndexErrData(String organIds, IndexErrorType errorType);
 

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

@@ -1,11 +1,8 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.MapDto;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
-import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
 import com.ym.mec.common.entity.Mapper;
-import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.*;
@@ -15,13 +12,6 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     Set<Integer>  EXCLUDE_ORGAN_IDS = new HashSet<>(Arrays.asList(36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24));
 
     /**
-     * 获取节点树状结构
-     * @param queryInfo
-     * @return
-     */
-    PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo);
-
-    /**
      * 获取员工坐在分部列表
      * @return
      */
@@ -49,7 +39,7 @@ public interface OrganizationService extends BaseService<Integer, Organization>
 
     Long add(Organization organization);
 
-    Map<String,List<Mapper>> getOrganRole(Integer id);
+    Map<String,List<Mapper>> getOrganRole(List<Integer> organIds);
 
     /**
     * @description: 获取分部的管理人员
@@ -60,4 +50,14 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     * @date 2022/1/4 11:36
     */
     Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId);
+
+    /**
+    * @description: 获取员工能访问的分部列表
+     * @param userId
+     * @param organIds
+    * @return java.lang.String
+    * @author zx
+    * @date 2022/1/5 12:44
+    */
+    String getEmployeeOrgan(Integer userId,String organIds,Boolean isSuper);
 }

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

@@ -105,6 +105,15 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY = "offline_sign_out_gps_error_cut_salary";
     //线下课签退定位异常扣除金额
     String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT = "offline_sign_out_gps_error_cut_salary_unit";
+    //vip线下课点名定位异常扣除金额
+    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY = "vip_offline_gps_error_cut_salary";
+    //vip线下课点名定位异常扣除金额单位
+    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_gps_error_cut_salary_unit";
+    //vip线下课未点名扣除金额
+    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY = "vip_offline_no_gps_error_cut_salary";
+    //vip线下课未点名扣除金额单位
+    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_no_gps_error_cut_salary_unit";
+
     //试用期老师课酬发放百分比
     String PROBATION_TEACHER_SALARY = "probation_teacher_salary";
 

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

@@ -4055,7 +4055,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},
-				memo,targetUserId,MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL,courseSchedule.getName(), user.getUsername());
+				JSONObject.toJSONString(memo),targetUserId,MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL,courseSchedule.getName(), user.getUsername());
     }
 
     @Override

+ 25 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -411,22 +411,23 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             CourseSchedule courseSchedule = courseScheduleTeacherSalary.getCourseSchedule();
             TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
             if(TeachModeEnum.OFFLINE == teachMode){
-                if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
-                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY, tenantId);
-                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
+                //如果没签到也没签退,那么就是未点名
+                if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == null){
+                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY, tenantId);
+                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                     BigDecimal signInGpsCutAmount = getCutAmount(c, c1, expectSalary);
                     if(signInGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                         deductCost = deductCost.add(signInGpsCutAmount);
-                        deductReasons.add("签到经纬度异常扣除" + signInGpsCutAmount);
+                        deductReasons.add("VIP线下课未点名扣除" + signInGpsCutAmount);
                     }
                 }
-                if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
-                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY, tenantId);
-                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
+                if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
+                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY, tenantId);
+                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                     BigDecimal signOutGpsCutAmount = getCutAmount(c, c1, expectSalary);
                     if(signOutGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                         deductCost = deductCost.add(signOutGpsCutAmount);
-                        deductReasons.add("签退经纬度异常扣除" + signOutGpsCutAmount);
+                        deductReasons.add("VIP线下课点名经纬度异常扣除" + signOutGpsCutAmount);
                     }
                 }
             }else {
@@ -1783,33 +1784,34 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //扣除费用
         BigDecimal deductCost = BigDecimal.ZERO;
         TeachModeEnum teachMode = courseSchedule.getTeachMode();
+        TeacherAttendance teacherAttendance = null;
+        if(teacherAttendances != null && teacherAttendances.size() > 0){
+            teacherAttendance = teacherAttendances.get(0);
+        }
+        if(teacherAttendance == null){
+            teacherAttendance = new TeacherAttendance();
+        }
         if(TeachModeEnum.OFFLINE == teachMode){
-            if(true){
-                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY, tenantId);
-                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
+            //如果没签到也没签退,那么就是未点名
+            if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == null){
+                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY, tenantId);
+                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                 BigDecimal signInGpsCutAmount = getCutAmount(c, c1, expectSalary);
                 if(signInGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                     deductCost = deductCost.add(signInGpsCutAmount);
-                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR_IN, signInGpsCutAmount));
+                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.NO_GPS, signInGpsCutAmount));
                 }
             }
-            if(true){
-                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY, tenantId);
-                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
+            if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
+                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY, tenantId);
+                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                 BigDecimal signOutGpsCutAmount = getCutAmount(c, c1, expectSalary);
                 if(signOutGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                     deductCost = deductCost.add(signOutGpsCutAmount);
-                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR_OUT, signOutGpsCutAmount));
+                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR, signOutGpsCutAmount));
                 }
             }
         }else {
-            TeacherAttendance teacherAttendance = null;
-            if(teacherAttendances != null && teacherAttendances.size() > 0){
-                teacherAttendance = teacherAttendances.get(0);
-            }
-            if(teacherAttendance == null){
-                teacherAttendance = new TeacherAttendance();
-            }
             if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
                 SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
                 BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);

+ 43 - 44
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -21,6 +21,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -325,11 +326,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void indexBaseDataTask(String dayStr, Set<IndexDataType> dataTypes) {
+	public void indexBaseDataTask(Integer tenantId, String dayStr, Set<IndexDataType> dataTypes) {
 		LocalDate nowDate = LocalDate.now();
 		
-		Integer tenantId = TenantContextHolder.getTenantId();
-
 		List<Organization> allOrgans = organizationDao.findAllOrgans(tenantId);
 		if(CollectionUtils.isEmpty(this.organIds.get())){
 			this.organIds.get().clear();
@@ -345,21 +344,21 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		//学员数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.STUDENT_REGISTRATION_NUM)){
-			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM);
+			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CHARGE_STUDENT_CHANGE_RATE)) {
-			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr,tenantId), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE);
+			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr,tenantId), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ACTIVATION_RATE)) {
-			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString(),tenantId), dayStr, IndexDataType.ACTIVATION_RATE);
+			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString(),tenantId), dayStr, IndexDataType.ACTIVATION_RATE, tenantId);
 		}
 
 		//运营数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SCHOOL)) {
-			saveData(indexBaseMonthDataDao.getSchoolData(dayStr,tenantId), dayStr, IndexDataType.SCHOOL);
+			saveData(indexBaseMonthDataDao.getSchoolData(dayStr,tenantId), dayStr, IndexDataType.SCHOOL, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PROGRESS_MUSIC_GROUP_NUM)) {
-			saveData(indexBaseMonthDataDao.getMusicData(dayStr,tenantId), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM);
+			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);
@@ -386,47 +385,47 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				data.setPercent(num);
 				datas.add(data);
 			}
-			saveData(datas, dayStr, IndexDataType.TRANSACTION_TEACHER_NUM);
+			saveData(datas, dayStr, IndexDataType.TRANSACTION_TEACHER_NUM, tenantId);
 		}
 
 		//人事数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.TEACHER_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null,tenantId), dayStr, IndexDataType.TEACHER_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null,tenantId), dayStr, IndexDataType.TEACHER_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.FULL_TIME_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null,tenantId), dayStr, IndexDataType.FULL_TIME_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null,tenantId), dayStr, IndexDataType.FULL_TIME_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PART_TIME_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null,tenantId), dayStr, IndexDataType.PART_TIME_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null,tenantId), dayStr, IndexDataType.PART_TIME_NUM, tenantId);
 		}
 //		saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, true), dayStr, IndexDataType.DIMISSION_NUM);
 
 		//剩余课时
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_MUSIC_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_VIP_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_PRACTICE_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM, tenantId);
 		}
 
 		//已消耗课时
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_MUSIC_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_VIP_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_VIP_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_VIP_COURSE_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_PRACTICE_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM, tenantId);
 		}
 
 		//经营数据
@@ -442,18 +441,18 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		//业务数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_CREATE_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null,tenantId), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null,tenantId), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_SUBMIT_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit",tenantId), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit",tenantId), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_COMMENT_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment",tenantId), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment",tenantId), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE, tenantId);
 		}
 
 		//课程数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_COURSE)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_COURSE, tenantId);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_COURSE)) {
@@ -468,7 +467,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organCategoryCourseMap.get(vipCourseDatum.getOrganId())));
 				}
 			}
-			saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE);
+			saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE, tenantId);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_ONLINE_COURSE)) {
@@ -483,7 +482,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organOnlineCategoryCourseMap.get(vipCourseDatum.getOrganId())));
 				}
 			}
-			saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE);
+			saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE, tenantId);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_OFFLINE_COURSE)) {
@@ -498,73 +497,73 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organOfflineCategoryCourseMap.get(vipCourseDatum.getOrganId())));
 				}
 			}
-			saveData(vipOfflineCourseData, dayStr, IndexDataType.VIP_GROUP_OFFLINE_COURSE);
+			saveData(vipOfflineCourseData, dayStr, IndexDataType.VIP_GROUP_OFFLINE_COURSE, tenantId);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PRACTICE_GROUP_COURSE)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null,tenantId), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null,tenantId), dayStr, IndexDataType.PRACTICE_GROUP_COURSE, tenantId);
 		}
 
 		//学员变动
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ADD_STUDENT_REGISTRATION_NUM)) {
-			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);
+			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_STUDENT)) {
-			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_STUDENT);
+			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_STUDENT, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEWLY_STUDENT_NUM)) {
-			saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM);
+			saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM)) {
-			saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+			saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM, tenantId);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM, tenantId);
 		}
 
 		//云教练相关
 		//分部学员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ORGAN_TOTAL_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr,tenantId), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr,tenantId), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM, tenantId);
 		}
 
 		//会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.MEMBER_STUDENT_NUM, tenantId);
 		}
 
 		//新增会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEW_MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM, tenantId);
 		}
 
 		//试用会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM, tenantId);
 		}
 
 		//云教练使用用户
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM, tenantId);
 		}
 
 		//活跃用户
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM, tenantId);
 		}
 
 		//云教练新增人数
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM, tenantId);
 		}
 
 		//云教练新用户人数
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_NEW_STUDENT_NUM)) {
 			List<Integer> studentIdList = studentRegistrationDao.findStudentIds(tenantId);
-			saveData(studentDao.groupOrganId(null,studentIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM);
+			saveData(studentDao.groupOrganId(null,studentIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM, tenantId);
 		}
 
 	}
@@ -575,7 +574,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	 * @date 2021/1/11 0011
 	 * @return void
 	 */
-	private void saveData(List<IndexBaseMonthData> dataList, String dayStr, IndexDataType indexDataType){
+	private void saveData(List<IndexBaseMonthData> dataList, String dayStr, IndexDataType indexDataType, Integer tenantId){
 		Date date = DateUtil.stringToDate(dayStr, "yyyy-MM-dd");
 		if(Objects.isNull(dataList)){
 			dataList = new ArrayList<>();
@@ -598,7 +597,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			if(specialType&&ignoreOrganIds.contains(organId)){
 				continue;
 			}
-			dataList.add(new IndexBaseMonthData(date, organId));
+			dataList.add(new IndexBaseMonthData(date, organId, tenantId));
 		}
 		if(!IndexDataType.NEWLY_STUDENT_NUM.equals(indexDataType)&&!IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM.equals(indexDataType)){
 			indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(dayStr), indexDataType);

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

@@ -20,6 +20,8 @@ import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.BiFunction;
+import java.util.function.BinaryOperator;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
@@ -171,7 +173,25 @@ public class MusicGroupPaymentCalenderCourseSettingsServiceImpl extends BaseServ
 
 	@Override
 	public BigDecimal getCurrentAmount(MusicGroupPaymentBaseCalender baseCalender) {
-		return this.getActualAmount(baseCalender);
+		BigDecimal totalAmount = BigDecimal.ZERO;
+		List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList = baseCalender.getMusicGroupPaymentCalenderCourseSettingsList();
+		if(baseCalender.getMusicGroupOrganizationCourseSettingId() != null){
+			List<MusicGroupOrganizationCourseSettingsDetail> musicGroupOrganizationCourseSettingsDetails = musicGroupOrganizationCourseSettingsDetailDao
+					.queryByMusicGroupOrganizationCourseSettingsId(baseCalender.getMusicGroupOrganizationCourseSettingId());
+			return musicGroupOrganizationCourseSettingsDetails.stream().map(e -> e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+		}else {
+			MusicGroup musicGroup = baseCalender.getMusicGroup();
+			// 如果是课程收费,判断是否审核
+			for (MusicGroupPaymentCalenderCourseSettings courseSettings : musicGroupPaymentCalenderCourseSettingsList) {
+				OrganizationCourseUnitPriceSettings defaultUnitPrice = organizationCourseUnitPriceSettingsDao.queryByOrganIdAndCourseTypeAndChargeType(
+						musicGroup.getOrganId(), courseSettings.getCourseType(), musicGroup.getChargeTypeId());
+				if (defaultUnitPrice == null) {
+					throw new BizException("请先设置分部课程类型单价");
+				}
+				totalAmount = totalAmount.add(defaultUnitPrice.getUnitPrice().multiply(new BigDecimal(courseSettings.getCourseTotalMinuties())));
+			}
+			return totalAmount;
+		}
 	}
 
 	@Override

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

@@ -26,6 +26,7 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -1345,10 +1346,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(), musicGroupId);
         }
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName());
-
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                null,null,MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,sysUser.getRealName(), musicGroup.getName());
     }
 
     @Override
@@ -1412,11 +1411,8 @@ 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());
         }
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-        integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_ACTION_GROUP, "1", musicGroup.getName());
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                "1",musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,musicGroup.getName());
 
         //统计变更学员数
         groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.NORMAL, null);
@@ -1447,10 +1443,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "提交审核(草稿 -> 审核中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
         musicGroupDao.update(musicGroup);
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName());
-
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                null,null,MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,sysUser.getRealName(), musicGroup.getName());
     }
 
     @Override
@@ -1511,10 +1505,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         // 添加成员
         imGroupMemberService.join(Long.parseLong(musicGroupId), userRoleMap);
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(roleIds,
-                MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, "", musicGroup.getName());
+        //缴费老师推送消息
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),null,
+                null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, musicGroup.getName());
         Map<Integer, String> map = new HashMap<>(1);
         map.put(musicGroup.getEducationalTeacherId(), musicGroup.getEducationalTeacherId().toString());
         if (map != null && map.size() > 0) {
@@ -1721,11 +1714,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "取消乐团", sysUser.getId(), ""));
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-        integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, "1", musicGroup.getName());
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                "1",musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, musicGroup.getName());
         return true;
     }
 
@@ -1864,11 +1854,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-        integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, musicGroup.getName());
         return true;
     }
 
@@ -2027,17 +2014,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			Map<String, Object> memo = new HashMap<>(2);
 			memo.put("Id", musicGroupQuit.getId());
 			memo.put("type", "MUSICGROUP");
-
 			SysUser sysUser = sysUserFeignService.queryUserById(userId);
-
-			sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, JSONObject.toJSONString(memo),
-					sysUser.getUsername());
 			Map<Integer, String> receivers = new HashMap<>(integers.size());
 			for (Integer integer : integers) {
 				receivers.put(integer, integer.toString());
 			}
 			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},
+                    JSONObject.toJSONString(memo),null,MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, sysUser.getUsername());
 		} else {
 			musicGroupQuit.setStatus(reqMusicGroupQuit.getStatus());
 			approveQuitMusicGroup(currentOperatorRoleIds, musicGroupQuit);
@@ -3683,11 +3669,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 //                }
 //            }
 //        }
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-        integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, "", musicGroup.getName());
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, musicGroup.getName());
     }
 
     /**

+ 65 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java

@@ -1,33 +1,29 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import com.alibaba.fastjson.JSON;
 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.dao.OrganizationDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dto.MapDto;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Organization;
 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.service.OrganizationService;
+import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.Mapper;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
-import com.ym.mec.util.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.*;
 
@@ -39,6 +35,8 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
+	private EmployeeDao employeeDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@Override
@@ -47,15 +45,6 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
-	public PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo){
-		PageInfo<Organization> pageInfo = queryPage(queryInfo);
-		for (Organization organization:pageInfo.getRows()) {
-			organization = getTree(organization);
-		}
-		return pageInfo;
-	}
-
-	@Override
 	public List<Organization> queryEmployeeOrgan(Integer userId,String organId){
 		return organizationDao.queryEmployeeOrgan(userId,organId);
 	}
@@ -131,23 +120,41 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
-	public Map<String,List<Mapper>> getOrganRole(Integer id) {
-		Organization organization = organizationDao.get(id);
-		if(organization == null){
+	public Map<String,List<Mapper>> getOrganRole(List<Integer> organIds) {
+		List<Organization> organizationList = organizationDao.findOrgans(organIds);
+		if(organizationList == null || organizationList.size() == 0){
 			throw new BizException("分部信息不存在");
 		}
-		String organManager = organization.getOrganManager();
-		String repairId = organization.getRepairId();
-		String educationId = organization.getEducationId();
-		String joinTeacherId = organization.getJoinTeacherId();
-		String organManagerUserIds = concatOrganManager(organManager, repairId, educationId, joinTeacherId);
+		StringJoiner organManager = new StringJoiner(",")
+				,repairId = new StringJoiner(",")
+				,educationId = new StringJoiner(",")
+				,joinTeacherId = new StringJoiner(","),
+				userId = new StringJoiner(",");
+		for (Organization organization : organizationList) {
+			if(StringUtils.isNotEmpty(organization.getOrganManager())){
+				organManager.add(organization.getOrganManager());
+				userId.add(organization.getOrganManager());
+			}
+			if(StringUtils.isNotEmpty(organization.getRepairId())){
+				repairId.add(organization.getRepairId());
+				userId.add(organization.getRepairId());
+			}
+			if(StringUtils.isNotEmpty(organization.getEducationId())){
+				educationId.add(organization.getEducationId());
+				userId.add(organization.getEducationId());
+			}
+			if(StringUtils.isNotEmpty(organization.getJoinTeacherId())){
+				joinTeacherId.add(organization.getJoinTeacherId());
+				userId.add(organization.getJoinTeacherId());
+			}
+		}
 		Map<String,List<Mapper>> resultMap = new HashMap<>(4);
-		if(StringUtils.isNotEmpty(organManagerUserIds) && organManagerUserIds.length() > 0){
-			Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(organManagerUserIds));
-			resultMap.put("organManager",getOrganManagerName(educationalTeacherNameMap,organManager));
-			resultMap.put("repairId",getOrganManagerName(educationalTeacherNameMap,repairId));
-			resultMap.put("educationId",getOrganManagerName(educationalTeacherNameMap,educationId));
-			resultMap.put("joinTeacherId",getOrganManagerName(educationalTeacherNameMap,joinTeacherId));
+		if(userId.length() > 0){
+			Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(userId.toString()));
+			resultMap.put("organManager",getOrganManagerName(educationalTeacherNameMap,organManager.toString()));
+			resultMap.put("repairId",getOrganManagerName(educationalTeacherNameMap,repairId.toString()));
+			resultMap.put("educationId",getOrganManagerName(educationalTeacherNameMap,educationId.toString()));
+			resultMap.put("joinTeacherId",getOrganManagerName(educationalTeacherNameMap,joinTeacherId.toString()));
 		}
 		return resultMap;
 	}
@@ -159,7 +166,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 			throw new BizException("分部信息不存在");
 		}
 		if(roleArr == null || roleArr.length == 0){
-			return null;
+			return new HashSet<>();
 		}
 		StringJoiner stringJoiner = new StringJoiner(",");
 		for (SysUserRoleEnum e : roleArr) {
@@ -176,10 +183,28 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		if(stringJoiner.length() > 0) {
 			return Arrays.stream(stringJoiner.toString().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
 		}
-		return null;
+		return new HashSet<>();
+	}
+
+	@Override
+	public String getEmployeeOrgan(Integer userId, String organIds,Boolean isSuper) {
+		if(StringUtils.isEmpty(organIds)){
+			Employee employee = employeeDao.get(userId);
+			organIds = employee.getOrganIdList();
+		}
+		if(StringUtils.isEmpty(organIds) && isSuper){
+			Map<String,Object> param = new HashMap<>();
+			Integer tenantId = TenantContextHolder.getTenantId();
+			param.put("tenantId",tenantId);
+			List<Organization> all = this.findAll(param);
+			if(all != null && all.size() > 0){
+				organIds = StringUtils.join(all.stream().map(e->e.getId()).collect(Collectors.toSet()),",");
+			}
+		}
+		return organIds;
 	}
 
-    private List<Mapper> getOrganManagerName(Map<Integer, String> nameMap, String organManager){
+	private List<Mapper> getOrganManagerName(Map<Integer, String> nameMap, String organManager){
 		List<Mapper> mapperList = new ArrayList<>();
 		if(StringUtils.isNotEmpty(organManager)){
 			List<Integer> organIds = Arrays.stream(organManager.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());

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

@@ -532,7 +532,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                 && !(o.getType() == PRACTICE)
                 && !(o.getType() == MAINTENANCE)
                 && !(o.getType() == CLOUD_TEACHER)
-                && !(o.getType() == CLOUD_TEACHER)
+                && !(o.getType() == CLOUD_TEACHER_PLUS)
                 && !(o.getType() == ACCESSORIES))
                 .map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
                 .reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -607,6 +607,10 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 
     @Override
     public List<StudentPaymentOrderDetail> findByOrderId(Long paymentOrderId) {
-        return studentPaymentOrderDetailDao.findByOrderId(paymentOrderId);
+        List<StudentPaymentOrderDetail> paymentOrderDetails = studentPaymentOrderDetailDao.findByOrderId(paymentOrderId);
+        for (StudentPaymentOrderDetail paymentOrderDetail : paymentOrderDetails) {
+            paymentOrderDetail.setGoodsList(goodsService.findGoodsByIds(paymentOrderDetail.getGoodsIdList()));
+        }
+        return paymentOrderDetails;
     }
 }

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

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.event.source.SendSeoMessageSource;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -44,6 +45,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;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -71,6 +73,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
+    private SendSeoMessageSource sendSeoMessageSource;
+    @Autowired
     private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
     @Autowired
     private SubjectDao subjectDao;
@@ -140,6 +144,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private MusicGroupPaymentCalenderActivityService musicGroupPaymentCalenderActivityService;
     @Autowired
     private MusicGroupPaymentCalenderMemberService musicGroupPaymentCalenderMemberService;
+    @Autowired
+    private MusicGroupPaymentCalenderRepairService musicGroupPaymentCalenderRepairService;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -223,11 +229,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             //修改专业已报名人数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, subId, 1);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-            Set<Integer> roleIds = new HashSet<>(1);
-            roleIds.add(SysUserRole.SECTION_MANAGER);
-            Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-            integers.add(musicGroup.getEducationalTeacherId());
-            sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
+
+            sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                    null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, musicGroup.getName());
         }
         return i;
     }
@@ -521,10 +525,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     @Transactional(rollbackFor = Exception.class)
     public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, StudentPaymentOrder studentPaymentOrder,
-                                        MusicGroupApplyGoodsDto goodsDto,RegisterPayDto registerPayDto) throws Exception {
+                                        MusicGroupApplyGoodsDto goodsDto,RegisterPayDto registerPayDto) {
         Date date = new Date();
         ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
-        Integer tenantId = TenantContextHolder.getTenantId();
         //乐器及打包辅件
         String maintenanceGoodsId = "";
         List<MusicGroupSubjectGoodsGroup> goodsGroups = goodsDto.getGoodsGroups();
@@ -608,17 +611,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //乐保
         if (registerPayDto.getBuyMaintenance()) {
-            if ("".equals(maintenanceGoodsId)) {
+            if (StringUtils.isEmpty(maintenanceGoodsId)) {
                 throw new BizException("有乐器才能购买乐保,请核查");
             }
-            String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONE_YEAR_MUSICAL_REPAIR_AMOUNT, tenantId);
-            if(StringUtils.isEmpty(configValue)){
-                throw new BizException("乐保价格异常,请联系指导老师");
-            }
-            BigDecimal maintenancePrice = new BigDecimal(configValue);
+            MusicGroupPaymentCalenderRepair calenderRepair = musicGroupPaymentCalenderRepairService.findByCalenderId(studentPaymentOrder.getCalenderId());
             StudentPaymentOrderDetail maintenanceOrderDetail = new StudentPaymentOrderDetail();
             maintenanceOrderDetail.setType(MAINTENANCE);
-            maintenanceOrderDetail.setPrice(maintenancePrice);
+            maintenanceOrderDetail.setPrice(calenderRepair.getActualAmount());
             maintenanceOrderDetail.setRemitFee(BigDecimal.ZERO);
             maintenanceOrderDetail.setCreateTime(date);
             maintenanceOrderDetail.setUpdateTime(date);
@@ -856,12 +855,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         imFeignService.update(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
         
         //学生报名表
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
-        integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
-        
+        sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+                null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, musicGroup.getName(), studentRegistration.getName());
         return userId;
     }
 

+ 33 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -1053,6 +1053,18 @@ public class StudentServeServiceImpl implements StudentServeService {
 
     @Override
     public List<IndexBaseDto> musicGroupHomeworkStat(String musicGroupId, Integer studentId, String startDayStr, String endDayStr) {
+    	if(StringUtils.isBlank(musicGroupId)){
+    		throw new BizException("参数[乐团编号]错误");
+    	}
+    	
+    	MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+    	
+    	if(musicGroup == null){
+    		throw new BizException("乐团[{}]信息不存在", musicGroupId);
+    	}
+    	
+    	Integer tenantId = musicGroup.getTenantId();
+    	
         List<IndexBaseDto> result = new ArrayList<>();
         List<StudentRegistration> musicGroupStu = studentRegistrationDao.getMusicGroupStu(musicGroupId);
         List<Integer> studentIds = new ArrayList<>();
@@ -1081,13 +1093,13 @@ public class StudentServeServiceImpl implements StudentServeService {
             d2 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, musicGroupId, "submit", studentIds);
             d3 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, musicGroupId, "comment", studentIds);
         }
-        musicGroupHomeworkDataDeal(d1, mondayDateStrs, IndexDataType.HOMEWORK_CREATE_RATE);
+        musicGroupHomeworkDataDeal(d1, mondayDateStrs, IndexDataType.HOMEWORK_CREATE_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_CREATE_RATE, d1);
 
-        musicGroupHomeworkDataDeal(d2, mondayDateStrs, IndexDataType.HOMEWORK_SUBMIT_RATE);
+        musicGroupHomeworkDataDeal(d2, mondayDateStrs, IndexDataType.HOMEWORK_SUBMIT_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_SUBMIT_RATE, d2);
 
-        musicGroupHomeworkDataDeal(d3, mondayDateStrs, IndexDataType.HOMEWORK_COMMENT_RATE);
+        musicGroupHomeworkDataDeal(d3, mondayDateStrs, IndexDataType.HOMEWORK_COMMENT_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_COMMENT_RATE, d3);
 
         for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {
@@ -1099,7 +1111,7 @@ public class StudentServeServiceImpl implements StudentServeService {
         return result;
     }
 
-    private List<IndexBaseMonthData> musicGroupHomeworkDataDeal(List<IndexBaseMonthData> dataList, List<String> mondayDateStrs, IndexDataType dataType){
+    private List<IndexBaseMonthData> musicGroupHomeworkDataDeal(List<IndexBaseMonthData> dataList, List<String> mondayDateStrs, IndexDataType dataType, Integer tenantId){
         if(Objects.isNull(dataList)){
             dataList = new ArrayList<>();
         }
@@ -1109,7 +1121,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             if(hasMondayDates.contains(mondayDate)){
                 continue;
             }
-            IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData(DateUtil.stringToDate(mondayDate, "yyyy-MM-dd"), null);
+            IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData(DateUtil.stringToDate(mondayDate, "yyyy-MM-dd"), null, tenantId);
             indexBaseMonthData.setDataType(dataType);
             indexBaseMonthData.setTotalNum(BigDecimal.ZERO);
             indexBaseMonthData.setActivateNum(BigDecimal.ZERO);
@@ -1122,6 +1134,19 @@ public class StudentServeServiceImpl implements StudentServeService {
 
     @Override
     public List<IndexBaseDto> musicGroupHomeworkStatWithStu(String musicGroupId, Integer studentId, String startDayStr, String endDayStr) {
+    	
+    	if(StringUtils.isBlank(musicGroupId)){
+    		throw new BizException("参数[乐团编号]错误");
+    	}
+    	
+    	MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+    	
+    	if(musicGroup == null){
+    		throw new BizException("乐团[{}]信息不存在", musicGroupId);
+    	}
+    	
+    	Integer tenantId = musicGroup.getTenantId();
+    	
         List<IndexBaseDto> result = new ArrayList<>();
         List<StudentRegistration> musicGroupStu = studentRegistrationDao.getMusicGroupStu(musicGroupId);
         List<Integer> studentIds = new ArrayList<>();
@@ -1150,13 +1175,13 @@ public class StudentServeServiceImpl implements StudentServeService {
             d2 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, musicGroupId, "submit", studentIds);
             d3 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, musicGroupId, "comment", studentIds);
         }
-        musicGroupHomeworkDataDeal(d1, mondayDateStrs, IndexDataType.HOMEWORK_CREATE_RATE);
+        musicGroupHomeworkDataDeal(d1, mondayDateStrs, IndexDataType.HOMEWORK_CREATE_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_CREATE_RATE, d1);
 
-        musicGroupHomeworkDataDeal(d2, mondayDateStrs, IndexDataType.HOMEWORK_SUBMIT_RATE);
+        musicGroupHomeworkDataDeal(d2, mondayDateStrs, IndexDataType.HOMEWORK_SUBMIT_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_SUBMIT_RATE, d2);
 
-        musicGroupHomeworkDataDeal(d3, mondayDateStrs, IndexDataType.HOMEWORK_COMMENT_RATE);
+        musicGroupHomeworkDataDeal(d3, mondayDateStrs, IndexDataType.HOMEWORK_COMMENT_RATE, tenantId);
         typeDateMap.put(IndexDataType.HOMEWORK_COMMENT_RATE, d3);
 
         for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {

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

@@ -13,6 +13,7 @@ import com.ym.mec.biz.dal.entity.StudentWithdraw;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.event.source.SendSeoMessageSource;
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.SysUserCashAccountDetailService;
@@ -32,6 +33,8 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.*;
 
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.SECTION_MANAGER;
+
 @Service
 public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, StudentWithdraw> implements StudentWithdrawService {
 
@@ -57,9 +60,7 @@ public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, Student
 	@Autowired
 	private SysUserCashAccountDetailService accountDetailService;
 	@Autowired
-	private SysMessageService sysMessageService;
-	@Autowired
-	private MusicGroupDao musicGroupDao;
+	private SendSeoMessageSource sendSeoMessageSource;
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -192,9 +193,8 @@ public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, Student
 				cashAccountDetail.setStatus(DealStatusEnum.ING);
 				cashAccountDetail.setAttribute(withdraw.getId()+"");
 				cashAccountDetailService.insert(cashAccountDetail);
-				Set<Integer> roleIds = new HashSet<>(1);
-				roleIds.add(SysUserRole.SECTION_MANAGER);
-				sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId()), MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_WITHDRAW,"",sysUser.getUsername());
+				sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+						null,null,MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_WITHDRAW, sysUser.getUsername());
 			} else {
 				throw new BizException("账户余额不足");
 			}

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

@@ -10,6 +10,8 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
+import com.ym.mec.biz.event.source.SendSeoMessageSource;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import org.apache.commons.lang3.StringUtils;
@@ -44,6 +46,9 @@ 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;
+
 @Service
 public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
 
@@ -52,14 +57,11 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
-	private MusicGroupDao musicGroupDao;
-
-	@Autowired
 	private CourseScheduleService courseScheduleService;
-
 	@Autowired
 	private SysMessageService sysMessageService;
-
+	@Autowired
+	private SendSeoMessageSource sendSeoMessageSource;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
@@ -109,16 +111,11 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 			}
 		}
 		teacherLeaveRecordDao.insert(teacherLeaveRecord);
-		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.SECTION_MANAGER);
-		roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 		Teacher teacher = teacherDao.get(sysUser.getId());
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
-		if (userIds != null && userIds.size() > 0) {
-			Map<String,Object> memo = new HashMap<>(1);
-			memo.put("leaveRecordId",teacherLeaveRecord.getId());
-			sysMessageService.batchSeoMessage(userIds, MessageTypeEnum.EDUCATION_PUSH_TEACHER_LEAVE_APPLY, JSONObject.toJSONString(memo), sysUser.getRealName());
-		}
+		Map<String,Object> memo = new HashMap<>(1);
+		memo.put("leaveRecordId",teacherLeaveRecord.getId());
+		sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER,EDUCATIONAL_TEACHER},
+				JSONObject.toJSONString(memo),null,MessageTypeEnum.EDUCATION_PUSH_TEACHER_LEAVE_APPLY, sysUser.getRealName());
 		return true;
 	}
 

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java

@@ -1,7 +1,13 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dto.ConditionDto;
+import com.ym.mec.biz.dal.entity.TenantConfig;
+import com.ym.mec.biz.dal.entity.TenantConfigDetail;
+import com.ym.mec.biz.service.TenantConfigService;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -13,12 +19,15 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 @Service
 public class VipGroupCategoryServiceImpl extends BaseServiceImpl<Integer, VipGroupCategory>  implements VipGroupCategoryService {
 	
 	@Autowired
 	private VipGroupCategoryDao vipGroupCategoryDao;
+	@Autowired
+	private TenantConfigService tenantConfigService;
 
 	@Override
 	public BaseDAO<Integer, VipGroupCategory> getDAO() {
@@ -27,7 +36,20 @@ public class VipGroupCategoryServiceImpl extends BaseServiceImpl<Integer, VipGro
 
 	@Override
 	public List<VipGroupCategory> findAllByOrgan(String organId) {
-		return vipGroupCategoryDao.findAllByOrgan(organId);
+		Integer tenantId = TenantContextHolder.getTenantId();
+		//查询云教室扣费标准
+		TenantConfig tenantConfig = tenantConfigService.getOne(new WrapperUtil<TenantConfig>()
+				.hasEq("tenant_id_", tenantId).queryWrapper());
+		if (Objects.isNull(tenantConfig)) {
+			return null;
+		}
+		//云教室人数上限(含老师)
+		Integer cloudRoomUpLimit = Optional.ofNullable(tenantConfig.getConfig())
+				.map(c -> JSON.parseObject(c, TenantConfigDetail.class))
+				.map(TenantConfigDetail::getCloud_room_rule)
+				.map(TenantConfigDetail.CloudRoomRule::getCloud_room_up_limit).orElse(null);
+
+		return vipGroupCategoryDao.findAllByOrgan(organId,cloudRoomUpLimit);
 	}
 
 	@Override

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

@@ -4,13 +4,13 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 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.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.event.source.SendSeoMessageSource;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
@@ -26,7 +26,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,15 +39,14 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 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 java.math.BigDecimal.ROUND_DOWN;
 import static java.math.BigDecimal.ZERO;
 
@@ -71,9 +69,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Autowired
 	private VipGroupActivityDao vipGroupActivityDao;
 	@Autowired
-	private VipGroupCategoryDao vipGroupCategoryDao;
-	@Autowired
-	private MusicGroupDao musicGroupDao;
+	private VipGroupCategoryService vipGroupCategoryService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
@@ -120,6 +116,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
+	private SendSeoMessageSource sendSeoMessageSource;
+	@Autowired
 	private VipGroupDefaultClassesCycleDao vipGroupDefaultClassesCycleDao;
 	@Autowired
 	private TeacherDao teacherDao;
@@ -297,7 +295,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请勿重复提交");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -571,7 +569,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请勿重复提交");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -724,26 +722,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			createVipGroupCourseScheInfo(vipGroupApplyBaseInfoDto.getId(),classGroup);
 		}
 
-		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.SECTION_MANAGER);
-		Map<String,Long> memo = new HashMap<>(1);
-		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
-//		SysUser sysUser = sysUserFeignService.queryUserById(vipGroup.getVipGroupApplyBaseInfo().getUserId());
 		if(Objects.isNull(teacher)){
 			throw new BizException("该用户不存在");
 		}
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
-		if(CollectionUtils.isEmpty(userIds)){
-			throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
-		}
-		if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
-			userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
-		}
-//		if (vipGroup.getVipGroupApplyBaseInfo().getUserId() != null){
-//			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),sysUser.getUsername(),sysUser.getUsername());
-//		}else {
-		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
-//		}
+		Map<String,Long> memo = new HashMap<>(1);
+		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
+		sendSeoMessageSource.sendSeoMessage(teacher.getTeacherOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+				JSONObject.toJSONString(memo),vipGroupApplyBaseInfoDto.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, teacher.getRealName());
 		return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
 	}
 
@@ -770,7 +755,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
-			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(vipGroup.getVipGroupApplyBaseInfo().getOrganId().toString());
+			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(vipGroup.getVipGroupApplyBaseInfo().getOrganId().toString());
 			VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals("1v2")).findFirst().get();
 			vipGroup.getVipGroupApplyBaseInfo().setVipGroupCategoryId(vipGroupCategory.getId());
 		}
@@ -902,7 +887,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("{}课程时间冲突({}-{})", sysUser.getRealName(), DateUtil.dateToString(firstCourseSchedule.getStartClassTime(), "yyyy-MM-dd HH:mm:ss"), DateUtil.dateToString(latestCourseSchedule.getEndClassTime(), "HH:mm:ss"));
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroupApplyBaseInfoDto.getVipGroupCategoryId());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -1207,7 +1192,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(StringUtils.isBlank(studentIds)){
 			throw new BizException("请选择学员");
 		}
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(applyBaseInfo.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(applyBaseInfo.getVipGroupCategoryId());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -1597,7 +1582,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				throw new BizException("学员信息异常");
 			}
 
-			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(student.getOrganId().toString());
+			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(student.getOrganId().toString());
 			VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals(vipGroupCategoryName)).findFirst().get();
 
 			List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.findByName(vipGroupActivityName, TenantContextHolder.getTenantId());
@@ -2218,7 +2203,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				vipGroupDetail.setCourseSchedules(collect);
 				vipGroupDetail.setTotalClassTimes(collect.size());
 			}
-			VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId());
+			VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId());
 			vipGroupDetail.setCategoryName(vipGroupCategory.getName());
 			vipGroupDetail.setNumberOfClasses(vipGroupDao.countTeacherVipGroups(vipGroupDetail.getTeacherId().longValue()));
 			return vipGroupDetail;
@@ -2237,7 +2222,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请指定课程形式");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId().intValue());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -2364,7 +2349,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请指定课程形式");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId().intValue());
 		if(Objects.isNull(vipGroupCategory)){
 			throw new BizException("课程形式不存在");
 		}
@@ -3002,7 +2987,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         if(Objects.isNull(surplusCourseFee)){
             surplusCourseFee = new BigDecimal(0);
         }
-        VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+        VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId().intValue());
 		surplusCourseFee = sysUserCashAccountLogService.vipReturnFeeCharges(surplusCourseFee,vipGroupCategory == null?0:vipGroupCategory.getStudentNum());
 //        if(vipGroupCategory.getStudentNum()<=1){
 //            surplusCourseFee = surplusCourseFee.multiply(new BigDecimal(0.8)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
@@ -3017,14 +3002,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
 		studentApplyRefunds.setUserId(userId);
 		studentApplyRefundsDao.insert(studentApplyRefunds);
-		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.SECTION_MANAGER);
-		Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, sysUser.getOrganId());
-		integers.add(vipGroup.getEducationalTeacherId());
 		Map<String,Object> memo = new HashMap<>(2);
 		memo.put("Id",studentApplyRefunds.getId());
 		memo.put("type","VIPGROUP");
-		sysMessageService.batchSeoMessage(integers,MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
+		sendSeoMessageSource.sendSeoMessage(sysUser.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
+				JSONObject.toJSONString(memo),vipGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,sysUser.getUsername());
 	}
 
 	@Override
@@ -3046,7 +3028,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("当前课程类型不支持退学");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId());
 
 		List<StudentApplyRefunds> studentApplyRefunds = studentApplyRefundsDao.findByGroupAndUser(vipGroupId.toString(), GroupType.VIP.getCode(), studentId);
 		if(!CollectionUtils.isEmpty(studentApplyRefunds)){
@@ -3204,7 +3186,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			return;
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId());
 
 		List<StudentApplyRefunds> studentApplyRefunds = studentApplyRefundsDao.findByGroupAndUser(vipGroupId.toString(), GroupType.VIP.getCode(), studentId);
 		if(!CollectionUtils.isEmpty(studentApplyRefunds)){
@@ -3607,7 +3589,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
 			throw new BizException("不能对已停止的课程进行退课操作");
 		}
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId().intValue());
 		Map<String,BigDecimal> result = new HashMap<>();
 		Date now = new Date();
         BigDecimal bigDecimal;
@@ -3618,14 +3600,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			if(activityUserMapper != null && !activityUserMapper.getReturnFee()){
 				if(Objects.nonNull(activityUserMapper.getVipGroupId())){
 					VipGroup group = vipGroupDao.get(activityUserMapper.getVipGroupId());
-					vipGroupCategory = vipGroupCategoryDao.get(group.getVipGroupCategoryId().intValue());
+					vipGroupCategory = vipGroupCategoryService.get(group.getVipGroupCategoryId().intValue());
 					userCourseInfos.addAll(courseScheduleDao.findUserCourseInfos(GroupType.VIP, activityUserMapper.getVipGroupId().toString(), studentId, null));
 				}
 				if(Objects.nonNull(activityUserMapper.getGiveVipGroupId())){
 					userCourseInfos.addAll(courseScheduleDao.findUserCourseInfos(GroupType.VIP, activityUserMapper.getGiveVipGroupId().toString(), studentId, null));
 				}
 				if(Objects.nonNull(activityUserMapper.getPracticeGroupId())){
-					vipGroupCategory = vipGroupCategoryDao.get(1);
+					vipGroupCategory = vipGroupCategoryService.get(1);
 					userCourseInfos.addAll(courseScheduleDao.findUserCourseInfos(GroupType.PRACTICE, activityUserMapper.getPracticeGroupId().toString(), studentId, null));
 				}
 				if(Objects.nonNull(activityUserMapper.getGivePracticeGroupId())){
@@ -4289,7 +4271,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("选择的学生中存在此课程中已存在的学生");
 		}
 
-		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId());
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroup.getVipGroupCategoryId());
 
 		if(vipGroupCategory == null){
 			throw new BizException("请修改VIP课课程形式");

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

@@ -112,7 +112,7 @@
                     update_time_ = NOW(),
                 </if>
             </set>
-            WHERE id_ = #{item.id} tenant_id_ = #{item.tenantId}
+            WHERE id_ = #{item.id} and tenant_id_ = #{item.tenantId}
         </foreach>
     </update>
 

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

@@ -160,7 +160,7 @@
 	
 	<sql id="queryPageMap">
 		<where>
-			tenant_id_ = #{tenantId}
+			ei.tenant_id_ = #{tenantId}
 			<if test="notMobileAndWechat == 1">
             	AND ei.mobile_no_ IS NULL AND ei.wechat_no_ IS NULL
 	        </if>

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

@@ -26,7 +26,7 @@
 
 	<sql id="queryPageCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			ee.tenant_id_ = #{tenantId}
 			<if test="teacherId != null">
 				and teacher_id_ = #{teacherId}
 			</if>
@@ -230,7 +230,7 @@
 		SELECT ch.id_,ch.create_time_,'HOMEWORK' type_ FROM course_homework ch
 		LEFT JOIN course_schedule_teacher_salary csts ON ch.course_schedule_id_ = csts.course_schedule_id_ AND csts.teacher_role_ = 'BISHOP'
 		<where>
-			tenant_id_ = #{tenantId}
+			csts.tenant_id_ = #{tenantId}
 			<if test="teacherId!=null">
 				AND csts.user_id_ = #{teacherId}
 			</if>
@@ -260,7 +260,7 @@
 		SELECT ch.id_,ch.create_time_,'HOMEWORK' type_ FROM course_homework ch
 		LEFT JOIN course_schedule_teacher_salary csts ON ch.course_schedule_id_ = csts.course_schedule_id_ AND csts.teacher_role_ = 'BISHOP'
 		<where>
-			tenant_id_ = #{tenantId}
+			csts.tenant_id_ = #{tenantId}
 			<if test="teacherId!=null">
 				AND csts.user_id_ = #{teacherId}
 			</if>

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

@@ -85,7 +85,7 @@
 
 	<sql id="StudentExtraCommentsQueryCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			eem.tenant_id_ = #{tenantId}
 			<if test="studentCourseHomeworkId!=null">
 				AND extracurricular_exercises_reply_id_=#{studentCourseHomeworkId}
 			</if>

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

@@ -41,7 +41,7 @@
 
 	<sql id="queryPageCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			eer.tenant_id_ = #{tenantId}
 			<if test="extracurricularExercisesId != null">
 				AND extracurricular_exercises_id_ = #{extracurricularExercisesId}
 			</if>
@@ -248,7 +248,7 @@
 
 	<sql id="queryExtraExercisesCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			eer.tenant_id_ = #{tenantId}
 			<if test="extracurricularExercisesId != null">
 				AND extracurricular_exercises_id_ = #{extracurricularExercisesId}
 			</if>

+ 25 - 25
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -222,7 +222,7 @@
 
 	<select id="getStudentSignUpData" resultMap="IndexBaseMonthData">
 		SELECT
-			organ_id_,
+			organ_id_,su.tenant_id_,
 			#{dayStr} month_,
 			COUNT( id_ ) total_num_,
 			COUNT(CASE WHEN password_ IS NOT NULL THEN id_ ELSE NULL END) activate_num_,
@@ -265,7 +265,7 @@
 
 	<select id="getStudentRegistrationData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT stu.user_id_ ) total_num_,
 			COUNT( DISTINCT stu.user_id_ ) activate_num_,
@@ -284,7 +284,7 @@
 
 	<select id="getAddStudentRegistrationData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,stu.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT stu.user_id_ ) total_num_,
 			COUNT( DISTINCT stu.user_id_ ) activate_num_,
@@ -303,7 +303,7 @@
 
 	<select id="getChargeStudentChangeData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT stu.user_id_ ) total_num_,
 			COUNT( DISTINCT (CASE WHEN DATE_FORMAT( spo.create_time_, '%Y-%m-%d' ) &lt;= #{dayStr} THEN spo.user_id_ ELSE NULL END) ) activate_num_,
@@ -323,7 +323,7 @@
 
 	<select id="getHomeworkData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			sees.monday_ month_,
 			<choose>
 				<when test="type == 'submit'">
@@ -356,7 +356,7 @@
 
 	<select id="getSchoolData" resultMap="IndexBaseMonthData">
 		SELECT
-			mg.organ_id_,
+			mg.organ_id_,mg.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT mg.cooperation_organ_id_ ) total_num_,
 			COUNT( DISTINCT mg.cooperation_organ_id_ ) activate_num_,
@@ -375,7 +375,7 @@
 	</select>
 	<select id="getMusicData" resultMap="IndexBaseMonthData">
 		SELECT
-			organ_id_,
+			organ_id_,tenant_id_,
 			#{dayStr} month_,
 			COUNT( id_ ) total_num_,
 			COUNT( id_ ) activate_num_,
@@ -396,7 +396,7 @@
 	</select>
 	<select id="getMusicStudentData" resultMap="IndexBaseMonthData">
 		SELECT
-			mg.organ_id_,
+			mg.organ_id_,sr.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT sr.user_id_ ) total_num_,
 			COUNT( DISTINCT sr.user_id_ ) activate_num_,
@@ -429,7 +429,7 @@
 
 	<select id="getTeacherData" resultMap="IndexBaseMonthData">
 		SELECT
-			t.organ_id_,
+			t.organ_id_,t.tenant_id_,
 			#{dayStr} month_,
 			COUNT( t.id_ ) total_num_,
 			COUNT( t.id_ ) activate_num_,
@@ -461,7 +461,7 @@
 
 	<select id="getGroupCourseData" resultMap="IndexBaseMonthData">
 		SELECT
-			m.organ_id_,
+			m.organ_id_,m.tenant_id_,
 			#{dayStr} month_,
 			COUNT( m.id_ ) total_num_,
 			COUNT( m.id_ ) activate_num_,
@@ -489,7 +489,7 @@
 
 	<select id="getGroupSurplusCourseData" resultMap="IndexBaseMonthData">
 		SELECT
-			m.organ_id_,
+			m.organ_id_,m.tenant_id_,
 			#{dayStr} month_,
 			COUNT( m.id_ ) total_num_,
 			COUNT( m.id_ ) activate_num_,
@@ -515,7 +515,7 @@
 
 	<select id="getGroupCourseDataWithGroup" resultMap="IndexBaseMonthData">
 		SELECT
-		m.organ_id_,
+		m.organ_id_,m.tenant_id_,
 		m.class_date_ month_,
 		COUNT( m.id_ ) total_num_,
 		COUNT( m.id_ ) activate_num_,
@@ -596,7 +596,7 @@
 
 	<select id="getOtherStudentData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT s.user_id_ ) total_num_,
 			COUNT( DISTINCT s.user_id_ ) activate_num_,
@@ -622,7 +622,7 @@
 
 	<select id="getVipPracticeAddStudentData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT s.user_id_ ) total_num_,
 			COUNT( DISTINCT s.user_id_ ) activate_num_,
@@ -1699,14 +1699,14 @@
 
 	<select id="getOrgansStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-			t.organ_id_,
+			t.organ_id_,t.tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT t.user_id_ ) total_num_,
 			COUNT( DISTINCT t.user_id_ ) activate_num_,
 			COUNT( DISTINCT t.user_id_ ) percent_
 		FROM((
 			SELECT
-				su.organ_id_,
+				su.organ_id_,sr.tenant_id_,
 				sr.user_id_
 			FROM
 				student_registration sr
@@ -1722,7 +1722,7 @@
 		UNION ALL
 		(
 			SELECT
-				su.organ_id_,
+				su.organ_id_,sr.tenant_id_,
 				cssp.user_id_
 			FROM
 				course_schedule_student_payment cssp
@@ -1741,7 +1741,7 @@
 
 	<select id="getMemberStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,cto.tenant_id_,
 			#{dayStr} month_,
 			COUNT(DISTINCT cto.student_id_) total_num_,
 			COUNT(DISTINCT cto.student_id_) activate_num_,
@@ -1757,7 +1757,7 @@
 
 	<select id="getNewMemberStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-		su.organ_id_,
+		su.organ_id_,cto.tenant_id_,
 		#{dayStr} month_,
 		COUNT(DISTINCT cto.student_id_) total_num_,
 		COUNT(DISTINCT cto.student_id_) activate_num_,
@@ -1773,7 +1773,7 @@
 
 	<select id="getExperienceMemberStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-		su.organ_id_,
+		su.organ_id_,stu.tenant_id_,
 		#{dayStr} month_,
 		COUNT(DISTINCT stu.user_id_) total_num_,
 		COUNT(DISTINCT stu.user_id_) activate_num_,
@@ -1790,7 +1790,7 @@
 
 	<select id="getCloudStudyDayUseStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-			su.organ_id_,
+			su.organ_id_,smcr.tenant_id_,
 			#{dayStr} month_,
 			COUNT(DISTINCT smcr.user_id_) total_num_,
 			COUNT(DISTINCT smcr.user_id_) activate_num_,
@@ -1807,13 +1807,13 @@
 
 	<select id="getCloudStudyLivelyStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-			t.organ_id_,
+			t.organ_id_,t.tenant_id_,
 			#{dayStr} month_,
 			COUNT(user_id_) total_num_,
 			COUNT(user_id_) activate_num_,
 			COUNT(user_id_) percent_
 		FROM (SELECT
-			su.organ_id_,
+			su.organ_id_,su.tenant_id_,
 			smcr.user_id_,
 			COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)&lt;=15 THEN DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') ELSE NULL END)) days
 			FROM sys_music_compare_record smcr
@@ -1829,7 +1829,7 @@
 
 	<select id="getCloudStudyNewStudentNumData" resultMap="IndexBaseMonthData">
 		SELECT
-			organ_id_,
+			organ_id_,tenant_id_,
 			#{dayStr} month_,
 			COUNT( DISTINCT user_id_ ) total_num_,
 			COUNT( DISTINCT user_id_ ) activate_num_,
@@ -1837,7 +1837,7 @@
 		FROM
 		(
 		SELECT
-			su.organ_id_,
+			su.organ_id_,smcr.tenant_id_,
 			smcr.user_id_
 		FROM
 			sys_music_compare_record smcr

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

@@ -130,7 +130,7 @@
 
     <sql id="queryPageSql">
         <where>
-        	tenant_id_ = #{tenantId}
+        	iip.tenant_id_ = #{tenantId}
             <if test="itemId != null">
                 AND iip.item_id_ = #{itemId}
             </if>

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

@@ -37,7 +37,7 @@
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="Organization">
-		SELECT * FROM organization where tenant_id_ = #{tenantId} ORDER BY id_
+		SELECT * FROM organization WHERE tenant_id_ = #{tenantId} AND del_flag_ = 0 ORDER BY id_
 	</select>
 
     <!-- 向数据库增加一条记录 -->

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

@@ -1152,7 +1152,7 @@
         </foreach>
     </select>
     <select id="groupOrganId" resultMap="com.ym.mec.biz.dal.dao.IndexBaseMonthDataDao.IndexBaseMonthData">
-        SELECT su.organ_id_,CURDATE() month_,
+        SELECT su.organ_id_,CURDATE() month_,su.tenant_id_,
                COUNT(DISTINCT su.id_) total_num_ ,
                COUNT(DISTINCT su.id_) activate_num_ ,
                COUNT(DISTINCT su.id_) percent_

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

@@ -34,7 +34,7 @@
 	<select id="findAllByOrgan" resultMap="VipGroupCategory">
 		SELECT vgc.*,vgdcup.online_classes_unit_price_,vgdcup.offline_classes_unit_price_ FROM vip_group_category vgc
 		LEFT JOIN vip_group_default_classes_unit_price_ vgdcup ON vgc.id_=vgdcup.vip_group_category_id_ AND FIND_IN_SET(vgdcup.organ_id_,#{organId})
-		WHERE vgc.del_flag_!= 1
+		WHERE vgc.del_flag_ != 1 AND vgc.student_num_ &lt; #{cloudRoomUpLimit}
 		ORDER BY id_
 	</select>
 

+ 4 - 4
mec-im/src/main/java/com/ym/config/WebMvcConfig.java

@@ -54,10 +54,10 @@ public class WebMvcConfig implements WebMvcConfigurer {
 
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
-		registry.addInterceptor(tenantInterceptor).addPathPatterns("/**").excludePathPatterns("/v2/api-docs","/user/register",
-				"/group/join","/group/create","/group/quit","/room/leave","/room/statusSync",
-				"/room/statusImMsg","/group/batchDismiss","/private/send","/group/send",
-				"/group/dismiss","/room/statusImMsg","/history/get");
+		registry.addInterceptor(tenantInterceptor).addPathPatterns("/**").excludePathPatterns("/v2/api-docs",
+				"/group/*","/room/statusSync",
+				"/room/statusImMsg","/private/*","/system/*",
+				"/room/statusImMsg","/history/get","/user/*","/push/*");
 	}
 
 	@SuppressWarnings("rawtypes")

+ 0 - 4
mec-im/src/main/java/com/ym/controller/GroupController.java

@@ -1,8 +1,6 @@
 package com.ym.controller;
 
-import com.ym.mec.common.entity.ImBaseMessage;
 import com.ym.mec.common.entity.ImGroupMessage;
-import com.ym.mec.common.entity.ImNoticeMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.pojo.NoticeMessage;
 import com.ym.service.GroupService;
@@ -13,9 +11,7 @@ import io.rong.models.group.GroupModel;
 import io.rong.models.group.UserGroup;
 import io.rong.models.message.GroupMessage;
 import io.rong.models.message.MentionMessage;
-import io.rong.models.message.PrivateMessage;
 import io.rong.models.message.RecallMessage;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 0 - 3
mec-im/src/main/java/com/ym/controller/PrivateController.java

@@ -1,12 +1,9 @@
 package com.ym.controller;
 
-import com.ym.mec.common.entity.ImGroupMessage;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
-import com.ym.pojo.CustomMessage;
 import com.ym.service.MessageService;
 import io.rong.messages.TxtMessage;
-import io.rong.models.message.GroupMessage;
 import io.rong.models.message.PrivateMessage;
 import io.rong.models.message.RecallMessage;
 import io.rong.models.message.TemplateMessage;

+ 0 - 1
mec-im/src/main/java/com/ym/interceptor/TenantInterceptor.java

@@ -49,5 +49,4 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 		TenantContextHolder.clearTenantId();
 	}
-
 }

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

@@ -191,7 +191,7 @@ public class TeacherController extends BaseController {
 
     @ApiOperation(value = "获取教务人员")
     @GetMapping("/findEducationUsers")
-    public HttpResponseResult findEducationUsers(Integer userId){
+    public HttpResponseResult findEducationUsers(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/WebApplication.java

@@ -25,7 +25,7 @@ import com.ym.mec.common.filters.EmojiEncodingFilter;
 @EnableDiscoveryClient
 @EnableFeignClients("com.ym.mec")
 @MapperScan(basePackages = {"com.ym.mec.biz.**.dao", "com.yonge.datasource.dao"})
-@ComponentScan(basePackages = {"com.ym.mec", "com.yonge.log", "com.yonge.datasource"})
+@ComponentScan(basePackages = {"com.ym.mec", "com.yonge.log"})
 @Configuration
 @EnableSwagger2Doc
 @EnableAsync

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderCourseSettingsService;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
@@ -42,12 +43,19 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @Autowired
     private EmployeeDao employeeDao;
     @Autowired
+    private OrganizationService organizationService;
+    @Autowired
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 
     @ApiOperation(value = "分页查询乐团缴费日历列表")
     @GetMapping(value = "/queryPage")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/queryPage')")
     public Object queryPage(MusicGroupPaymentCalenderQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(),queryInfo.getOrganId(),sysUser.getIsSuperAdmin()));
         return succeed(musicGroupPaymentCalenderService.queryCalenderPage(queryInfo));
     }
 

+ 20 - 4
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -2,21 +2,26 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+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.EmployeeService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("organization")
 @Api(tags = "分部服务")
@@ -27,6 +32,8 @@ public class OrganizationController extends BaseController {
     private OrganizationService organizationService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private EmployeeService employeeService;
 
     @ApiOperation(value = "分页查询分部列表")
     @GetMapping("/queryPage")
@@ -92,8 +99,17 @@ public class OrganizationController extends BaseController {
     @GetMapping("/getOrganRole")
     @PreAuthorize("@pcs.hasPermissions('organization/getOrganRole')")
     @ApiParam(value = "分部编号", required = true)
-    public Object getOrganRole(Integer id){
-        return succeed(organizationService.getOrganRole(id));
+    public Object getOrganRole(String organIds){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        organIds = organizationService.getEmployeeOrgan(sysUser.getId(),organIds,sysUser.getIsSuperAdmin());
+        if(StringUtils.isEmpty(organIds)){
+            return failed("分部信息异常");
+        }
+        List<Integer> collect = Arrays.stream(organIds.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+        return succeed(organizationService.getOrganRole(collect));
     }
 
     @ApiOperation(value = "获取用户所在分部的年级列表)")

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -404,7 +404,13 @@ public class TaskController extends BaseController {
 		if(StringUtils.isNotBlank(dataTypes)){
 			dataTypeSet = Arrays.stream(dataTypes.split(",")).map(s->IndexDataType.valueOf(s)).collect(Collectors.toSet());
 		}
-		indexBaseMonthDataService.indexBaseDataTask(month, dataTypeSet);
+
+		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
+		if(tenantInfos != null && tenantInfos.size() > 0){
+			for (TenantInfo tenantInfo : tenantInfos) {
+				indexBaseMonthDataService.indexBaseDataTask(tenantInfo.getId(), month, dataTypeSet);
+			}
+		}
 	}
 
 	//乐团巡查计划当日9:00

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

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,7 +44,6 @@ public class VipGroupCategoryController extends BaseController {
 		return succeed(vipGroupCategoryService.findTeacherSalary(userId));
 	}
 
-
 	@ApiOperation("新增")
 	@PostMapping(value = "/add")
     @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/add')")