浏览代码

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

 Conflicts:
	mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java
yanite 3 年之前
父节点
当前提交
f60ebe8468
共有 70 个文件被更改,包括 1802 次插入918 次删除
  1. 6 11
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java
  2. 2 8
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HfMemberDao.java
  3. 69 74
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  4. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexErrDataRecordDao.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberPrivilegesItemDao.java
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderActivityDao.java
  7. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDao.java
  8. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantAssetsInfoDao.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentBaseCalender.java
  10. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderAuditDto.java
  11. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TenantInfoDto.java
  12. 23 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderCourseSettings.java
  14. 99 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantAssetsInfo.java
  15. 108 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantConfigDetail.java
  16. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantOrderRecord.java
  17. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java
  18. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderActivityService.java
  19. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderBaseService.java
  20. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/OrderPayOpsService.java
  21. 19 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantAssetsInfoService.java
  22. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoService.java
  23. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  24. 105 100
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  25. 9 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java
  26. 19 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberPaymentCalenderServiceImpl.java
  27. 9 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberPrivilegesItemServiceImpl.java
  28. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderActivityServiceImpl.java
  29. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderCourseSettingsServiceImpl.java
  30. 27 62
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  31. 46 54
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  32. 16 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicRepairPaymentCalenderServiceImpl.java
  33. 303 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java
  34. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PlatformServeServiceImpl.java
  35. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  36. 95 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java
  37. 81 47
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  38. 63 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java
  39. 1 1
      mec-biz/src/main/resources/config/mybatis/ChargeTypeMapper.xml
  40. 6 9
      mec-biz/src/main/resources/config/mybatis/HfMemberMapper.xml
  41. 21 20
      mec-biz/src/main/resources/config/mybatis/HotWordsLabelMapper.xml
  42. 88 89
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  43. 18 11
      mec-biz/src/main/resources/config/mybatis/IndexErrDataRecordMapper.xml
  44. 8 6
      mec-biz/src/main/resources/config/mybatis/InspectionItemMapper.xml
  45. 7 6
      mec-biz/src/main/resources/config/mybatis/InspectionItemPlanConclusionMapper.xml
  46. 5 3
      mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml
  47. 6 4
      mec-biz/src/main/resources/config/mybatis/InspectionMapper.xml
  48. 6 5
      mec-biz/src/main/resources/config/mybatis/LuckDrawCountMapper.xml
  49. 8 5
      mec-biz/src/main/resources/config/mybatis/LuckDrawGroupMapper.xml
  50. 6 4
      mec-biz/src/main/resources/config/mybatis/LuckDrawLogMapper.xml
  51. 9 7
      mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml
  52. 5 3
      mec-biz/src/main/resources/config/mybatis/ManagerDownloadMapper.xml
  53. 6 5
      mec-biz/src/main/resources/config/mybatis/MarketActivityMapper.xml
  54. 7 6
      mec-biz/src/main/resources/config/mybatis/MemberFeeSettingMapper.xml
  55. 7 4
      mec-biz/src/main/resources/config/mybatis/MemberRankOrganizationFeeMapperMapper.xml
  56. 6 4
      mec-biz/src/main/resources/config/mybatis/MusicEnlightenmentQuestionnaireMapper.xml
  57. 3 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderActivityDao.xml
  58. 25 8
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  59. 0 4
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  60. 2 2
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  61. 28 0
      mec-biz/src/main/resources/config/mybatis/TenantAssetsInfoMapper.xml
  62. 2 1
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  63. 16 0
      mec-biz/src/main/resources/rebel.xml
  64. 137 106
      mec-common/audit-log/src/main/java/com/yonge/log/interceptor/AuditLogInterceptor.java
  65. 7 1
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupPaymentCalenderController.java
  66. 33 201
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  67. 40 0
      mec-web/src/main/java/com/ym/mec/web/controller/TenantAssetsInfoController.java
  68. 7 2
      mec-web/src/main/java/com/ym/mec/web/controller/TenantInfoController.java
  69. 30 1
      mec-web/src/main/java/com/ym/mec/web/controller/TenantOrderRecordController.java
  70. 3 3
      mec-web/src/main/resources/logback-spring.xml

+ 6 - 11
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java

@@ -1,20 +1,15 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.math.BigDecimal;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
-import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
-import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
-import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
 import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
+import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
 	

+ 2 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HfMemberDao.java

@@ -1,10 +1,9 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.entity.HfMember;
-import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.List;
+import com.ym.mec.biz.dal.entity.HfMember;
+import com.ym.mec.common.dal.BaseDAO;
 
 public interface HfMemberDao extends BaseDAO<Integer, HfMember> {
 
@@ -24,9 +23,4 @@ public interface HfMemberDao extends BaseDAO<Integer, HfMember> {
      */
     HfMember getByName(@Param("name") String name);
 
-    /**
-     * 获取分佣账户中需要验证每月收最大金额的账户
-     * @return
-     */
-    List<HfMember> getNeedRouteMerNos();
 }

+ 69 - 74
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -41,20 +41,20 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 	List<IndexBaseMonthData> getIndexBaseData(@Param("organIds") Set<Integer> organIds,
                                               @Param("dataTypes") Set<String> dataTypes,
                                               @Param("startMonth") String startMonth,
-                                              @Param("endMonth") String endMonth);
+                                              @Param("endMonth") String endMonth,@Param("tenantId") Integer tenantId);
 
 	List<IndexBaseMonthData> getAllIndexBaseData(@Param("organIds") Set<Integer> organIds,
                                                  @Param("dataTypes") Set<String> dataTypes,
                                                  @Param("startMonth") String startMonth,
-                                                 @Param("endMonth") String endMonth);
+                                                 @Param("endMonth") String endMonth,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getVipCourseDataList(@Param("organIds") Set<Integer> organIds,
                                               @Param("dataTypes") Set<String> dataTypes,
                                               @Param("startMonth") String startMonth,
-                                              @Param("endMonth") String endMonth);
+                                              @Param("endMonth") String endMonth,@Param("tenantId") Integer tenantId);
 
 	List<IndexBaseMonthData> getWithDayAndDataType(@Param("day") String day,
-                                                   @Param("dataType")IndexDataType dataType);
+                                                   @Param("dataType")IndexDataType dataType,@Param("tenantId") Integer tenantId);
 
 	/**
 	 * @describe 统计学员注册数据
@@ -63,7 +63,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 	 * @param dayStr:
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
 	 */
-	List<IndexBaseMonthData> getStudentRegistrationData(@Param("dayStr") String dayStr);
+	List<IndexBaseMonthData> getStudentRegistrationData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
 	/**
 	 * @describe 统计新增学员注册数据
@@ -72,7 +72,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 	 * @param dayStr:
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
 	 */
-	List<IndexBaseMonthData> getAddStudentRegistrationData(@Param("dayStr") String dayStr);
+	List<IndexBaseMonthData> getAddStudentRegistrationData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
 	/**
 	 * @describe 付费转化率
@@ -81,7 +81,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 	 * @param dayStr:
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
 	 */
-	List<IndexBaseMonthData> getChargeStudentChangeData(@Param("dayStr") String dayStr);
+	List<IndexBaseMonthData> getChargeStudentChangeData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 统计系统中指定时间段的学员注册数据
@@ -90,7 +90,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
     List<IndexBaseMonthData> getStudentSignUpData(@Param("dayStr") String dayStr,
-                                                  @Param("courseStartDay") String courseStartDay);
+                                                  @Param("courseStartDay") String courseStartDay,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 统计作业布置数据
@@ -99,7 +99,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
     List<IndexBaseMonthData> getHomeworkData(@Param("dayStr") String dayStr,
-                                             @Param("type") String type);
+                                             @Param("type") String type,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 统计合作单位数据
@@ -107,7 +107,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/11 0011
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
      */
-    List<IndexBaseMonthData> getSchoolData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getSchoolData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 统计乐团数据
@@ -115,7 +115,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/11 0011
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
      */
-    List<IndexBaseMonthData> getMusicData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getMusicData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 统计乐团学员数据
@@ -124,34 +124,34 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
      */
     List<IndexBaseMonthData> getMusicStudentData(@Param("dayStr") String dayStr,
-                                                 @Param("type") String type);
+                                                 @Param("type") String type,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getMusicGroupPreRegistrationStudentData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getMusicGroupPreRegistrationStudentData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getMusicGroupStudentFromPreData(@Param("dayStr") String dayStr,
-                                                             @Param("paymentStatus") PaymentStatusEnum paymentStatus);
+                                                             @Param("paymentStatus") PaymentStatusEnum paymentStatus,@Param("tenantId") Integer tenantId);
 
     List<Integer> getMusicGroupStudentIdFromPre(@Param("dayStr") String dayStr,
-                                                @Param("paymentStatus") PaymentStatusEnum paymentStatus);
+                                                @Param("paymentStatus") PaymentStatusEnum paymentStatus,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getStudentConversionData(@Param("dayStr") String dayStr,
-                                                      @Param("studentIds") List<Integer> studentIds);
+                                                      @Param("studentIds") List<Integer> studentIds,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getOtherStudentData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getOtherStudentData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getVipPracticeAddStudentData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getVipPracticeAddStudentData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getTeacherData(@Param("dayStr") String dayStr,
                                             @Param("jobNature") JobNatureEnum jobNature,
-                                            @Param("isDemission") Boolean isDemission);
+                                            @Param("isDemission") Boolean isDemission,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getGroupCourseData(@Param("dayStr") String dayStr,
                                                 @Param("groupType")GroupType groupType,
-                                                @Param("courseStatus") CourseStatusEnum courseStatus);
+                                                @Param("courseStatus") CourseStatusEnum courseStatus,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getGroupSurplusCourseData(@Param("dayStr") String dayStr,
                                                 @Param("groupType")GroupType groupType,
-                                                @Param("courseStatus") CourseStatusEnum courseStatus);
+                                                @Param("courseStatus") CourseStatusEnum courseStatus,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getGroupCourseDataWithGroup(@Param("dayStr") String dayStr,
                                                         @Param("startDate") String startDate,
@@ -159,7 +159,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                                         @Param("groupType")GroupType groupType,
                                                         @Param("courseStatus") CourseStatusEnum courseStatus,
                                                          @Param("teachMode") TeachModeEnum teachMode,
-                                                         @Param("organIds") List<Integer> organIds);
+                                                         @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     List<OrganVipGroupCategoryCourseNumDto> getVipGroupCategoryCourseData(@Param("dayStr") String dayStr,
                                                                           @Param("startDate") String startDate,
@@ -167,38 +167,38 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                                                           @Param("groupType")GroupType groupType,
                                                                           @Param("courseStatus") CourseStatusEnum courseStatus,
                                                                           @Param("teachMode") TeachModeEnum teachMode,
-                                                                          @Param("organIds") List<Integer> organIds);
+                                                                          @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
-    int countLessThenThreeClassGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    int countLessThenThreeClassGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<Map<Integer, Integer>> countLessThenThreeClassOrganGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<Map<Integer, Integer>> countLessThenThreeClassOrganGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<String> getLessThenThreeMusicGroup(@Param("organIds") Set<Integer> organIds);
+    List<String> getLessThenThreeMusicGroup(@Param("organIds") Set<Integer> organIds,@Param("tenantId") Integer tenantId);
 
-    int queryErrInspection(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
+    int queryErrInspection(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
 
-    List<Map<Integer, Integer>> queryOrganErrInspection(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime);
+    List<Map<Integer, Integer>> queryOrganErrInspection(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
 
-    IndexErrInfoDto getNoClassMusicGroupStudentInfo(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    IndexErrInfoDto getNoClassMusicGroupStudentInfo(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<Map<Integer, Integer>> getOrganNoClassMusicGroupStudentNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<Map<Integer, Integer>> getOrganNoClassMusicGroupStudentNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
     int countNoPaymentStudentNum(@Param("organIds") Set<Integer> organIds,
                                  @Param("educationUserId") Integer educationUserId,
-                                 @Param("noPaymentType") Integer noPaymentType);
+                                 @Param("noPaymentType") Integer noPaymentType,@Param("tenantId") Integer tenantId);
 
 
 
-    List<Map<Integer, Integer>> countOrganNoPaymentStudentNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<Map<Integer, Integer>> countOrganNoPaymentStudentNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<String> getNoPaymentMusicGroup(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<String> getNoPaymentMusicGroup(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<Long> queryApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<Long> queryApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
-    List<Map<Integer, Integer>> queryOrganApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId);
+    List<Map<Integer, Integer>> queryOrganApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds, @Param("educationUserId") Integer educationUserId,@Param("tenantId") Integer tenantId);
 
     int queryStudentAttendanceInfo(@Param("organIds") Set<Integer> organIds,
-                                          @Param("type") String type, @Param("startTime") String startTime);
+                                          @Param("type") String type, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
 
 
     /**
@@ -209,7 +209,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     int getCourseTimeError(@Param("organIds") Set<Integer> organIds,
                            @Param("classGroupIds") List<Long> classGroupIds,
                            @Param("courseStartTimeError") String courseStartTimeError,
-                           @Param("courseEndTimeError") String courseEndTimeError);
+                           @Param("courseEndTimeError") String courseEndTimeError,@Param("tenantId") Integer tenantId);
 
     List<Map<Integer, Integer>> getOrganCourseTimeError(@Param("organIds") Set<Integer> organIds, @Param("classGroupIds") List<Long> classGroupIds);
 
@@ -218,23 +218,23 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @param organIds
      * @return
      */
-    int getAttendanceError(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds);
-    List<Map<Integer, Integer>> getOrganAttendanceError(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds);
+    int getAttendanceError(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds,@Param("tenantId") Integer tenantId);
+    List<Map<Integer, Integer>> getOrganAttendanceError(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds,@Param("tenantId") Integer tenantId);
 
     /**
      * 获取旷课考勤
      * @param organIds
      * @return
      */
-    int getNoAttendance(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds);
-    List<Map<Integer, Integer>> getOrganNoAttendance(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds);
+    int getNoAttendance(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds,@Param("tenantId") Integer tenantId);
+    List<Map<Integer, Integer>> getOrganNoAttendance(@Param("organIds") Set<Integer> organIds, @Param("startTime") String startTime, @Param("classGroupIds") List<Long> classGroupIds,@Param("tenantId") Integer tenantId);
 
     /**
      * 获取老师离职申请数
      * @param organIdsStr
      * @return
      */
-    int queryTeacherLeave(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
+    int queryTeacherLeave(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
 
     /**
      * 获取预计课酬偏低的老师编号
@@ -242,7 +242,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @param monthStr
      * @return
      */
-    int queryLowTeacherSalary(@Param("organIdsStr") String organIdsStr, @Param("monthStr") String monthStr);
+    int queryLowTeacherSalary(@Param("organIdsStr") String organIdsStr, @Param("monthStr") String monthStr,@Param("tenantId") Integer tenantId);
 
     /**
      * 获取预计课酬偏低的老师编号
@@ -250,49 +250,49 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @param monthStr
      * @return
      */
-    List<Map<Integer, Integer>> queryOrganLowTeacherSalary(@Param("organIdsStr") String organIdsStr, @Param("monthStr") String monthStr);
+    List<Map<Integer, Integer>> queryOrganLowTeacherSalary(@Param("organIdsStr") String organIdsStr, @Param("monthStr") String monthStr,@Param("tenantId") Integer tenantId);
 
     /**
      * 乐团巡查任务未计划
      * @param organIdsStr
      * @return
      */
-    int queryInspectionItem(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId);
-    List<Map<Integer, Integer>> queryOrganInspectionItem(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId);
+    int queryInspectionItem(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId,@Param("tenantId") Integer tenantId);
+    List<Map<Integer, Integer>> queryOrganInspectionItem(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId,@Param("tenantId") Integer tenantId);
 
     /**
      * 乐团巡查任务未提交
      * @param organIdsStr
      * @return
      */
-    int queryInspectionItemPlan(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
-    List<Map<Integer, Integer>> queryOrganInspectionItemPlan(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
+    int queryInspectionItemPlan(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
+    List<Map<Integer, Integer>> queryOrganInspectionItemPlan(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime,@Param("tenantId") Integer tenantId);
 
     /**
      * 未完成的回访任务
      * @param organIdsStr
      * @return
      */
-    int queryStudentVisit(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId);
-    List<Map<Integer, Integer>> queryOrganStudentVisit(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId);
+    int queryStudentVisit(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId,@Param("tenantId") Integer tenantId);
+    List<Map<Integer, Integer>> queryOrganStudentVisit(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime, @Param("userId") Integer userId,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getFinancePayData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getFinancePayData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getFinanceBalanceData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getFinanceBalanceData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getFinanceActualData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getFinanceActualData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getFinancePayDataWithTimely(@Param("startDate") String startDate,
                                                          @Param("endDate") String endDate,
-                                                         @Param("organIds") List<Integer> organIds);
+                                                         @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getFinanceBalanceDataWithTimely(@Param("startDate") String startDate,
                                                              @Param("endDate") String endDate,
-                                                             @Param("organIds") List<Integer> organIds);
+                                                             @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getFinanceActualDataWithTimely(@Param("startDate") String startDate,
                                                             @Param("endDate") String endDate,
-                                                            @Param("organIds") List<Integer> organIds);
+                                                            @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     /**
      * @describe 各分部教师服务指标异常
@@ -305,28 +305,28 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 
     List<IndexBaseMonthData> getTotalAmountDataWithTimely(@Param("startDate") String startDate,
                                                             @Param("endDate") String endDate,
-                                                            @Param("organIds") List<Integer> organIds);
+                                                            @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getTotalAmountDataWithTimelyDetails(@Param("startDate") String startDate,
                                                                  @Param("endDate") String endDate,
                                                                  @Param("organIds") List<Integer> organIds,
                                                                  @Param("orderType") String orderType,
-                                                                 @Param("notOrderType") List<String> notOrderType);
+                                                                 @Param("notOrderType") List<String> notOrderType,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getVipAmountDataWithTimelyDetails(@Param("startDate") String startDate,
                                                                  @Param("endDate") String endDate,
-                                                                 @Param("organIds") List<Integer> organIds);
+                                                                 @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     List<IndexBaseMonthData> getOtherAmountDataWithTimelyDetails(@Param("startDate") String startDate,
                                                                  @Param("endDate") String endDate,
-                                                                 @Param("organIds") List<Integer> organIds);
+                                                                 @Param("organIds") List<Integer> organIds,@Param("tenantId") Integer tenantId);
 
     int countStudentErrorLeave(@Param("organIdList") Set<Integer> organIdList,
                                @Param("format") String format,
                                @Param("classGroupIds") List<Long> classGroupIds,
-                               @Param("studentErrorLeaveNum") Integer studentErrorLeaveNum);
+                               @Param("studentErrorLeaveNum") Integer studentErrorLeaveNum,@Param("tenantId") Integer tenantId);
 
-    List<Map<Integer, Integer>> countOrganStudentErrorLeave(@Param("organIds") Set<Integer> organIds, @Param("classGroupIds") List<Long> classGroupIds);
+    List<Map<Integer, Integer>> countOrganStudentErrorLeave(@Param("organIds") Set<Integer> organIds, @Param("classGroupIds") List<Long> classGroupIds,@Param("tenantId") Integer tenantId);
 
     int countStudentErrorLeave1(Map<String, Object> params);
 
@@ -338,19 +338,19 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
 
     List<Map<Integer, BigDecimal>> getStudentErrorLeaveNumMap(Map<String, Object> params);
 
-    List<IndexBaseMonthData> getOrgansStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getOrgansStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getMemberStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getMemberStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getNewMemberStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getNewMemberStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getExperienceMemberStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getExperienceMemberStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getCloudStudyDayUseStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getCloudStudyDayUseStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getCloudStudyLivelyStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getCloudStudyLivelyStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
-    List<IndexBaseMonthData> getCloudStudyNewStudentNumData(@Param("dayStr") String dayStr);
+    List<IndexBaseMonthData> getCloudStudyNewStudentNumData(@Param("dayStr") String dayStr,@Param("tenantId") Integer tenantId);
 
     /**
      * 云教练活动分部统计
@@ -359,9 +359,4 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      */
     List<CloudTeacherActiveTargetDto> countCloudTeacherActive(Map<String, Object> params);
 
-    /**
-     * 获取各分部学员总人数
-     * @return
-     */
-    List<Map<String, Long>> countTotalStudentNum();
 }

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

@@ -29,7 +29,7 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
      * @param generateTime:
      * @return int
      */
-    int countWithGenerateTime(@Param("generateTime") String generateTime);
+    int countWithGenerateTime(@Param("generateTime") String generateTime, @Param("tenantId") Integer tenantId);
 
     /**
      * @describe 获取所有异常相关教务老师编号
@@ -38,7 +38,7 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
      * @param organIds:
      * @return java.util.List<java.lang.Integer>
      */
-    List<Integer> getAllDealUserIds(@Param("organIds") Collection organIds);
+    List<Integer> getAllDealUserIds(@Param("organIds") Collection organIds, @Param("tenantId") Integer tenantId);
 
     /**
      * @describe 根据产生日期
@@ -50,7 +50,7 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
      */
     List<IndexErrDataRecord> getWithGenerateTime(@Param("organIds") Set<Integer> organIds,
                                                  @Param("generateStartTime") String generateStartTime,
-                                                @Param("generateEndTime") String generateEndTime);
+                                                @Param("generateEndTime") String generateEndTime, @Param("tenantId") Integer tenantId);
 
     /**
      * @describe 查询未处理记录

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

@@ -14,7 +14,7 @@ public interface MemberPrivilegesItemDao extends BaseDAO<Integer, MemberPrivileg
      * @param parentId
      * @return
      */
-    List<MemberPrivilegesItem> findList(@Param("parentId") Integer parentId);
+    List<MemberPrivilegesItem> findList(@Param("parentId") Integer parentId,@Param("tenantId") Integer tenantId);
 
     void batchDel(@Param("collect") List<Integer> collect);
     

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

@@ -11,4 +11,6 @@ public interface MusicGroupPaymentCalenderActivityDao extends BaseMapper<MusicGr
     void insertBatch(@Param("calenderActivityList") List<MusicGroupPaymentCalenderActivity> musicGroupPaymentCalenderActivities);
 
     void delByCalenderId(@Param("calenderId") Long calenderId);
+
+    List<MusicGroupPaymentCalenderActivity> findByCalenderId(Long calenderId);
 }

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

@@ -9,8 +9,6 @@ import java.util.Set;
 
 public interface OrganizationDao extends BaseDAO<Integer, Organization> {
 
-    Organization getByName(@Param("name") String name,@Param("tenantId") Integer tenantId);
-
     /**
      * 根据父级id查询子级列表
      * @param parentId

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantAssetsInfoDao.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.entity.TenantAssetsInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 机构资产信息(TenantAssetsInfo)表数据库访问层
+ *
+ * @author hgw
+ * @since 2021-12-22 14:27:02
+ */
+public interface TenantAssetsInfoDao extends BaseMapper<TenantAssetsInfo> {
+
+    int insertBatch(@Param("entities") List<TenantAssetsInfo> entities);
+
+}
+

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentBaseCalender.java

@@ -23,7 +23,7 @@ public class MusicGroupPaymentBaseCalender {
 	@ApiModelProperty(value = "学校缴费、个人缴费", required = true)
 	private PayUserType payUserType;
 
-	@ApiModelProperty(value = "缴费类型", required = true)
+	@ApiModelProperty(value = "缴费类型", required = false)
 	private PaymentType paymentType;
 
 	@ApiModelProperty(value = "缴费开始时间", required = true)

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderAuditDto.java

@@ -47,6 +47,12 @@ public class MusicGroupPaymentCalenderAuditDto {
     @ApiModelProperty(value = "申请价格",required = false)
     private BigDecimal courseCurrentPrice;
 
+    @ApiModelProperty(value = "申请总价",required = false)
+    private BigDecimal currentTotalAMount;
+
+    @ApiModelProperty(value = "申请原价",required = false)
+    private BigDecimal originalTotalAMount;
+
     @ApiModelProperty(value = "备注",required = false)
     private String memo;
 
@@ -89,6 +95,22 @@ public class MusicGroupPaymentCalenderAuditDto {
     @ApiModelProperty(value = "会员现价",required = false)
     private BigDecimal memberPaymentAmount = BigDecimal.ZERO;
 
+    public BigDecimal getCurrentTotalAMount() {
+        return currentTotalAMount;
+    }
+
+    public void setCurrentTotalAMount(BigDecimal currentTotalAMount) {
+        this.currentTotalAMount = currentTotalAMount;
+    }
+
+    public BigDecimal getOriginalTotalAMount() {
+        return originalTotalAMount;
+    }
+
+    public void setOriginalTotalAMount(BigDecimal originalTotalAMount) {
+        this.originalTotalAMount = originalTotalAMount;
+    }
+
     public BigDecimal getOriginalMemberPaymentAmount() {
         return originalMemberPaymentAmount;
     }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TenantInfoDto.java

@@ -49,7 +49,6 @@ public class TenantInfoDto implements Serializable {
     /**
      * 地址
      */
-    @NotBlank(message = "地址不能为空!")
     @Size(max = 200, message = "地址不能超过200个字!")
     @ApiModelProperty(value = "地址")
     private String address;

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java

@@ -171,7 +171,7 @@ public class MusicGroupPaymentCalender extends BaseEntity {
 	private CourseViewTypeEnum courseViewType;
 
 	//会员周期
-	private PeriodEnum memberPeriod = MONTH;
+	private PeriodEnum memberPeriod;
 
 	//会员有效期(月)
 	private Integer memberValidDate;
@@ -200,6 +200,28 @@ public class MusicGroupPaymentCalender extends BaseEntity {
 	//乐保是否必选
 	private Boolean musicRepairOptionalFlag = false;
 
+	//申请价格
+	private BigDecimal currentTotalAmount;
+
+	//原价
+	private BigDecimal originalTotalAmount;
+
+	public BigDecimal getCurrentTotalAmount() {
+		return currentTotalAmount;
+	}
+
+	public void setCurrentTotalAmount(BigDecimal currentTotalAmount) {
+		this.currentTotalAmount = currentTotalAmount;
+	}
+
+	public BigDecimal getOriginalTotalAmount() {
+		return originalTotalAmount;
+	}
+
+	public void setOriginalTotalAmount(BigDecimal originalTotalAmount) {
+		this.originalTotalAmount = originalTotalAmount;
+	}
+
 	public Boolean getMemberOptionalFlag() {
 		return memberOptionalFlag;
 	}

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

@@ -35,7 +35,7 @@ public class MusicGroupPaymentCalenderCourseSettings extends BaseEntity {
 	private java.math.BigDecimal courseCurrentPrice;
 	
 	/** 是否学生可选 */
-	private boolean isStudentOptional = false;
+	private boolean isStudentOptional = true;
 	
 	/**  */
 	private java.util.Date createTime;

+ 99 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantAssetsInfo.java

@@ -0,0 +1,99 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+
+/**
+ * 机构资产信息(TenantAssetsInfo)表实体类
+ *
+ * @author hgw
+ * @since 2021-12-22 14:27:02
+ */
+@ApiModel(value = "tenant_assets_info-机构资产信息")
+public class TenantAssetsInfo implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @TableField("tenant_id_")
+    @ApiModelProperty(value = "机构id")
+    private Integer tenantId;
+
+    @TableField("balance_")
+    @ApiModelProperty(value = "余额")
+    private BigDecimal balance;
+
+    @TableField("frozen_amount_")
+    @ApiModelProperty(value = "冻结金额")
+    private BigDecimal frozenAmount;
+
+    @TableField("created_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createdTime;
+
+    @TableField("updated_time_")
+    @ApiModelProperty(value = "更新时间")
+    private Date updatedTime;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId) {
+        this.tenantId = tenantId;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public BigDecimal getFrozenAmount() {
+        return frozenAmount;
+    }
+
+    public void setFrozenAmount(BigDecimal frozenAmount) {
+        this.frozenAmount = frozenAmount;
+    }
+
+    public Date getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Date getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Date updatedTime) {
+        this.updatedTime = updatedTime;
+    }
+
+
+}
+

+ 108 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantConfigDetail.java

@@ -0,0 +1,108 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * TenantConfig表config字段,该字段是动态
+ * @author hgw
+ * Created by 2021-12-22
+ */
+public class TenantConfigDetail implements Serializable {
+
+    /**
+     * 会员设置-分润金额
+     */
+    private MemberConfig member_config;
+
+    /**
+     * 云教室规则
+     */
+    private CloudRoomRule cloud_room_rule;
+
+    public static class MemberConfig implements Serializable {
+        private BigDecimal month_divide;
+        private BigDecimal quarter_divide;
+        private BigDecimal half_year_divide;
+        private BigDecimal year_divide;
+
+        public BigDecimal getMonth_divide() {
+            return month_divide;
+        }
+
+        public void setMonth_divide(BigDecimal month_divide) {
+            this.month_divide = month_divide;
+        }
+
+        public BigDecimal getQuarter_divide() {
+            return quarter_divide;
+        }
+
+        public void setQuarter_divide(BigDecimal quarter_divide) {
+            this.quarter_divide = quarter_divide;
+        }
+
+        public BigDecimal getHalf_year_divide() {
+            return half_year_divide;
+        }
+
+        public void setHalf_year_divide(BigDecimal half_year_divide) {
+            this.half_year_divide = half_year_divide;
+        }
+
+        public BigDecimal getYear_divide() {
+            return year_divide;
+        }
+
+        public void setYear_divide(BigDecimal year_divide) {
+            this.year_divide = year_divide;
+        }
+    }
+
+    public static class CloudRoomRule implements Serializable {
+
+        /**
+         * 云教室人数上限(含老师)
+         */
+        private Integer cloud_room_up_limit;
+
+        /**
+         * String人数-BigDecimal每分钟扣费标准
+         */
+        private Map<String, BigDecimal> cloud_room_config;
+
+        public Integer getCloud_room_up_limit() {
+            return cloud_room_up_limit;
+        }
+
+        public void setCloud_room_up_limit(Integer cloud_room_up_limit) {
+            this.cloud_room_up_limit = cloud_room_up_limit;
+        }
+
+        public Map<String, BigDecimal> getCloud_room_config() {
+            return cloud_room_config;
+        }
+
+        public void setCloud_room_config(Map<String, BigDecimal> cloud_room_config) {
+            this.cloud_room_config = cloud_room_config;
+        }
+    }
+
+    public MemberConfig getMember_config() {
+        return member_config;
+    }
+
+    public void setMember_config(MemberConfig member_config) {
+        this.member_config = member_config;
+    }
+
+    public CloudRoomRule getCloud_room_rule() {
+        return cloud_room_rule;
+    }
+
+    public void setCloud_room_rule(CloudRoomRule cloud_room_rule) {
+        this.cloud_room_rule = cloud_room_rule;
+    }
+}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantOrderRecord.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -75,6 +76,17 @@ public class TenantOrderRecord implements Serializable {
     @ApiModelProperty(value = "订单创建时间")
     private Date createdTime;
 
+    public DealStatusEnum getEnumOrderState() {
+        switch (orderState) {
+            case 0:
+                return DealStatusEnum.ING;
+            case 1:
+                return DealStatusEnum.SUCCESS;
+            default:
+                return DealStatusEnum.FAILED;
+        }
+    }
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {

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

@@ -147,9 +147,9 @@ public class VipGroupActivity extends BaseEntity {
 	@ApiModelProperty(value = "-1:所有;0:线上;1:线下")
 	private Integer giveTeachMode = -1;
 
-	private PeriodEnum periodEnum = MONTH;
+	private PeriodEnum periodEnum;
 
-	private PeriodEnum givePeriodEnum = DAY;
+	private PeriodEnum givePeriodEnum;
 
 	private String status = "DRAFT";
 

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderActivityService.java

@@ -1,6 +1,9 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderActivity;
+
+import java.util.List;
 
 public interface MusicGroupPaymentCalenderActivityService {
     /**
@@ -14,4 +17,6 @@ public interface MusicGroupPaymentCalenderActivityService {
     void batchInsert(MusicGroupPaymentBaseCalender musicGroupPaymentBaseCalender, Long calenderId);
 
     void delByCalenderId(Long calenderId);
+
+    List<MusicGroupPaymentCalenderActivity> findByCalenderId(Long calenderId);
 }

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

@@ -31,7 +31,7 @@ public interface MusicGroupPaymentCalenderBaseService {
     MusicGroupPaymentCalender.PaymentCalenderStatusEnum checkComponentAmount(MusicGroupPaymentBaseCalender baseCalender);
 
     /**
-    * @description: 获取实际金额
+    * @description: 获取申请价格
      * @param baseCalender
     * @return java.math.BigDecimal
     * @author zx
@@ -39,5 +39,12 @@ public interface MusicGroupPaymentCalenderBaseService {
     */
     BigDecimal getActualAmount(MusicGroupPaymentBaseCalender baseCalender);
 
-
+    /**
+    * @description: 获取原价
+     * @param baseCalender
+    * @return java.math.BigDecimal
+    * @author zx
+    * @date 2021/12/21 23:35
+    */
+    BigDecimal getOriginalAmount(MusicGroupPaymentBaseCalender baseCalender);
 }

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.service;
+
+import java.math.BigDecimal;
+import java.util.Map;
+
+public interface OrderPayOpsService {
+
+    Map<String, Object> executePayment(BigDecimal amount, String orderNo, String payChannel, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception;
+}

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TenantAssetsInfoService.java

@@ -0,0 +1,19 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.TenantAssetsInfo;
+
+import java.util.List;
+
+/**
+ * 机构资产信息(TenantAssetsInfo)表服务接口
+ *
+ * @author hgw
+ * @since 2021-12-22 14:27:02
+ */
+public interface TenantAssetsInfoService extends IService<TenantAssetsInfo> {
+
+    void courseDeductionRules(List<CourseSchedule> dto);
+}
+

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

@@ -23,7 +23,7 @@ public interface TenantInfoService extends IService<TenantInfo> {
 
     TenantInfo get(Integer tenantId);
 
-    Map<String, Object> pay(Integer tenantId) throws Exception;
+    Map<String, Object> tenantOpenPay(Integer tenantId) throws Exception;
 
     Msg orderNotify(Msg msg);
 

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

@@ -88,7 +88,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				employee.setId(user.getId());
 				employeeDao.insert(employee);
 				//新增用户角色
-				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds(), user.getTeacherId());
+				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds(), user.getTenantId());
 				employee.setUserType(user.getUserType() + ",SYSTEM");
 				teacherDao.updateUser(employee);
 				return;
@@ -102,7 +102,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		employee.setUserId(employee.getId());
         employeeDao.insert(employee);
 		//新增用户角色
-		employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds(), user.getTeacherId());
+		employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds(), employee.getTenantId());
 		//添加用户现金账户
 		sysUserCashAccountDao.insert(new SysUserCashAccount(employee.getId(),"CNY"));
 		ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(),null));
@@ -112,8 +112,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			employee.setAvatar(user.getAvatar());
 		}
 
-		//添加到OA
-		oaUserService.addOaUser(employee);
+		//todo 添加到OA 临时注释
+//		oaUserService.addOaUser(employee);
 	}
 
 	@Override

+ 105 - 100
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -113,7 +113,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			dataTypes = Arrays.stream(queryInfo.getDataTypes().split(",")).collect(Collectors.toSet());
 		}
 
-		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, startDate.toString(), endDate.toString());
+		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, startDate.toString(), endDate.toString(),queryInfo.getTenantId());
 		if(Objects.isNull(indexBaseDatas)){
 			indexBaseDatas = new ArrayList<>();
 		}
@@ -124,7 +124,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			vipDataTypes.add("VIP_GROUP_COURSE");
 			vipDataTypes.add("VIP_GROUP_ONLINE_COURSE");
 			vipDataTypes.add("VIP_GROUP_OFFLINE_COURSE");
-			List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getVipCourseDataList(organIds, vipDataTypes, startDate.toString(), endDate.toString());
+			List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getVipCourseDataList(organIds, vipDataTypes, startDate.toString(), endDate.toString(),queryInfo.getTenantId());
 			if(!CollectionUtils.isEmpty(indexBaseDataList)){
 				for (IndexBaseMonthData indexBaseMonthData : indexBaseDataList) {
 					if(StringUtils.isBlank(indexBaseMonthData.getExtendInfo())){
@@ -150,22 +150,22 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = indexBaseDatas.stream().filter(d->Objects.nonNull(d.getDataType())).collect(Collectors.groupingBy(IndexBaseMonthData::getDataType));
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(FINANCE_PAY.getCode())||dataTypes.contains(FINANCE_BALANCE_AMOUNT.getCode())||dataTypes.contains(FINANCE_AMOUNT.getCode())){
-			List<IndexBaseMonthData> financePayDataWithTimely = indexBaseMonthDataDao.getFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			List<IndexBaseMonthData> financePayDataWithTimely = indexBaseMonthDataDao.getFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
 			typeDateMap.put(IndexDataType.FINANCE_PAY,financePayDataWithTimely);
-			typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
-			typeDateMap.put(FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
-			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId()));
+			typeDateMap.put(FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId()));
+			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
 			typeDateMap.put(IndexDataType.TOTAL_AMOUNT,totalAmountDataWithTimely);
 			//经营报表细化
-			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY,ADD_STUDENT",null);
+			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY,ADD_STUDENT",null,queryInfo.getTenantId());
 			typeDateMap.put(APPLY_AMOUNT,applyAmount);
-			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null);
+			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null,queryInfo.getTenantId());
 			typeDateMap.put(RENEW_AMOUNT,renewAmount);
-			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getVipAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getVipAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
 			typeDateMap.put(VIP_AMOUNT,vipAmount);
-			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null);
+			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null,queryInfo.getTenantId());
 			typeDateMap.put(PRACTICE_AMOUNT,practiceAmount);
-			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOtherAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOtherAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
 			typeDateMap.put(OTHER_AMOUNT,otherAmount);
 		}
 
@@ -173,13 +173,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				||dataTypes.contains(VIP_GROUP_ONLINE_COURSE.getCode())||dataTypes.contains(VIP_GROUP_OFFLINE_COURSE.getCode())
 				||dataTypes.contains(PRACTICE_GROUP_COURSE.getCode())){
 			if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_COURSE.getCode())) {
-				List<IndexBaseMonthData> musicCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.MUSIC, null, null, new ArrayList<>(organIds));
+				List<IndexBaseMonthData> musicCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.MUSIC, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
 				typeDateMap.put(MUSIC_GROUP_COURSE,musicCourseData);
 			}
 
 			if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_COURSE.getCode())) {
-				List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds));
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds));
+				List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
 				Map<Integer, Map<String, Integer>> organCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupCategoryCourseData)) {
 					organCategoryCourseMap = vipGroupCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -193,8 +193,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_ONLINE_COURSE.getCode())) {
-				List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds));
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds));
+				List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
 				Map<Integer, Map<String, Integer>> organOnlineCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupOnlineCategoryCourseData)) {
 					organOnlineCategoryCourseMap = vipGroupOnlineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -208,8 +208,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_OFFLINE_COURSE.getCode())) {
-				List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds));
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds));
+				List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
 				Map<Integer, Map<String, Integer>> organOfflineCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupOfflineCategoryCourseData)) {
 					organOfflineCategoryCourseMap = vipGroupOfflineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -223,7 +223,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PRACTICE_GROUP_COURSE.getCode())) {
-				List<IndexBaseMonthData> practiceCourses = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.PRACTICE, null, null, new ArrayList<>(organIds));
+				List<IndexBaseMonthData> practiceCourses = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.PRACTICE, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
 				typeDateMap.put(PRACTICE_GROUP_COURSE,practiceCourses);
 			}
 		}
@@ -340,24 +340,26 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		LocalDate day = LocalDate.parse(dayStr, DateUtil.dateFormatter);
 		LocalDate monday = day.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+		
+		Integer tenantId = TenantContextHolder.getTenantId();
 
 		//学员数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.STUDENT_REGISTRATION_NUM)){
-			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM);
+			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CHARGE_STUDENT_CHANGE_RATE)) {
-			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE);
+			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr,tenantId), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ACTIVATION_RATE)) {
-			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString()), dayStr, IndexDataType.ACTIVATION_RATE);
+			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString(),tenantId), dayStr, IndexDataType.ACTIVATION_RATE);
 		}
 
 		//运营数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SCHOOL)) {
-			saveData(indexBaseMonthDataDao.getSchoolData(dayStr), dayStr, IndexDataType.SCHOOL);
+			saveData(indexBaseMonthDataDao.getSchoolData(dayStr,tenantId), dayStr, IndexDataType.SCHOOL);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PROGRESS_MUSIC_GROUP_NUM)) {
-			saveData(indexBaseMonthDataDao.getMusicData(dayStr), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM);
+			saveData(indexBaseMonthDataDao.getMusicData(dayStr,tenantId), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(TRANSACTION_TEACHER_NUM)) {
 			List<SimpleUserDto> transactionTeachers = employeeService.findByRole("58", null);
@@ -389,42 +391,42 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		//人事数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.TEACHER_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null), dayStr, IndexDataType.TEACHER_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null,tenantId), dayStr, IndexDataType.TEACHER_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.FULL_TIME_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null), dayStr, IndexDataType.FULL_TIME_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null,tenantId), dayStr, IndexDataType.FULL_TIME_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PART_TIME_NUM)) {
-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null), dayStr, IndexDataType.PART_TIME_NUM);
+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null,tenantId), dayStr, IndexDataType.PART_TIME_NUM);
 		}
 //		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), dayStr, IndexDataType.SURPLUS_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_MUSIC_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_VIP_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_PRACTICE_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM);
 		}
 
 		//已消耗课时
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER), dayStr, IndexDataType.OVER_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_MUSIC_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_VIP_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER), dayStr, IndexDataType.OVER_VIP_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_VIP_COURSE_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_PRACTICE_COURSE_NUM)) {
-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM);
+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM);
 		}
 
 		//经营数据
@@ -440,23 +442,23 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		//业务数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_CREATE_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null,tenantId), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_SUBMIT_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit"), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit",tenantId), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_COMMENT_RATE)) {
-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment"), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE);
+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment",tenantId), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE);
 		}
 
 		//课程数据
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_COURSE)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_COURSE)) {
-			List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, null, null);
-			List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, null, null);
+			List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, null, null,tenantId);
+			List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, null, null,tenantId);
 			Map<Integer, Map<String, Integer>> organCategoryCourseMap = new HashMap<>();
 			if (!CollectionUtils.isEmpty(vipGroupCategoryCourseData)) {
 				organCategoryCourseMap = vipGroupCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -470,8 +472,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_ONLINE_COURSE)) {
-			List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.ONLINE, null);
-			List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.ONLINE, null);
+			List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.ONLINE, null,tenantId);
+			List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.ONLINE, null,tenantId);
 			Map<Integer, Map<String, Integer>> organOnlineCategoryCourseMap = new HashMap<>();
 			if (!CollectionUtils.isEmpty(vipGroupOnlineCategoryCourseData)) {
 				organOnlineCategoryCourseMap = vipGroupOnlineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -485,8 +487,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_OFFLINE_COURSE)) {
-			List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.OFFLINE, null);
-			List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.OFFLINE, null);
+			List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.OFFLINE, null,tenantId);
+			List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, null, null, GroupType.VIP, null, TeachModeEnum.OFFLINE, null,tenantId);
 			Map<Integer, Map<String, Integer>> organOfflineCategoryCourseMap = new HashMap<>();
 			if (!CollectionUtils.isEmpty(vipGroupOfflineCategoryCourseData)) {
 				organOfflineCategoryCourseMap = vipGroupOfflineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -500,15 +502,15 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PRACTICE_GROUP_COURSE)) {
-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null,tenantId), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
 		}
 
 		//学员变动
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ADD_STUDENT_REGISTRATION_NUM)) {
-			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);
+			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_STUDENT)) {
-			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null), dayStr, IndexDataType.MUSIC_GROUP_STUDENT);
+			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_STUDENT);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEWLY_STUDENT_NUM)) {
 			saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM);
@@ -517,46 +519,46 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM);
 		}
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM);
 		}
 
 		//云教练相关
 		//分部学员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ORGAN_TOTAL_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr,tenantId), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM);
 		}
 
 		//会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr), dayStr, IndexDataType.MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.MEMBER_STUDENT_NUM);
 		}
 
 		//新增会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEW_MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM);
 		}
 
 		//试用会员数量
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM);
 		}
 
 		//云教练使用用户
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM);
 		}
 
 		//活跃用户
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM);
 		}
 
 		//云教练新增人数
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM)) {
-			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM);
+			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM);
 		}
 
 		//云教练新用户人数
@@ -583,7 +585,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		boolean specialType = IndexDataType.NEWLY_STUDENT_NUM.equals(indexDataType)||IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM.equals(indexDataType);
 		Set<Integer> ignoreOrganIds = new HashSet<>();
 		if(specialType){
-			List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getWithDayAndDataType(dayStr, indexDataType);
+			List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getWithDayAndDataType(dayStr, indexDataType,TenantContextHolder.getTenantId());
 			if(!CollectionUtils.isEmpty(indexBaseDatas)) {
 				ignoreOrganIds = indexBaseDatas.stream().map(IndexBaseMonthData::getOrganId).collect(Collectors.toSet());
 			}
@@ -627,7 +629,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			classGroupIds = classGroupDao.queryGroupClassGroupIds(sysUser.getId());
 			educationUserId = sysUser.getId();
 		}
-
+		
 		if(IndexErrorType.MUSIC_PATROL.equals(errorType)){
 			IndexErrInfoDto<IndexErrInfoDto> one = new IndexErrInfoDto<>();
 			one.setErrorType(IndexErrorType.MUSIC_PATROL);
@@ -635,14 +637,14 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			List<IndexErrInfoDto> oneChild = new ArrayList<>();
 
 			//基础技能班学员数量异常
-			oneChild.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,educationUserId), null));
+			oneChild.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,educationUserId,tenantId), null));
 
 			//乐团巡查事项异常
-			int errInspection = indexBaseMonthDataDao.queryErrInspection(organIds,startTime);
+			int errInspection = indexBaseMonthDataDao.queryErrInspection(organIds,startTime,tenantId);
 			oneChild.add(new IndexErrInfoDto(IndexErrorType.MUSIC_PATROL_ITEM, IndexErrorType.MUSIC_PATROL_ITEM.getMsg(),errInspection, null));
 
 			//未加入任何班级学员
-			IndexErrInfoDto noClassMusicGroupStudentInfo = indexBaseMonthDataDao.getNoClassMusicGroupStudentInfo(organIds,educationUserId);
+			IndexErrInfoDto noClassMusicGroupStudentInfo = indexBaseMonthDataDao.getNoClassMusicGroupStudentInfo(organIds,educationUserId,tenantId);
 			noClassMusicGroupStudentInfo.setDesc(IndexErrorType.NO_CLASS_MUSIC_GROUP_STUDENT_INFO.getMsg());
 			oneChild.add(noClassMusicGroupStudentInfo);
 
@@ -662,16 +664,16 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			String studentErrorLeaveNum = sysTenantConfigService.getTenantConfigValue(SysConfigService.STUDENT_ERROR_LEAVE_NUM, tenantId);
 			if(StringUtils.isNotEmpty(studentErrorLeaveNum)){
 				String format1 = DateUtil.format(new Date(), DateUtil.ISO_YEAR_MONTH_FORMAT);
-				studentErrorLeave = indexBaseMonthDataDao.countStudentErrorLeave(organIds, format1, classGroupIds,Integer.parseInt(studentErrorLeaveNum));
+				studentErrorLeave = indexBaseMonthDataDao.countStudentErrorLeave(organIds, format1, classGroupIds,Integer.parseInt(studentErrorLeaveNum),tenantId);
 			}
 
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_ERROR_LEAVE, IndexErrorType.STUDENT_ERROR_LEAVE.getMsg(),studentErrorLeave , null));
 
 			//未缴费学员数
-			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_ARREARAGE, IndexErrorType.STUDENT_ARREARAGE.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId,0), Arrays.asList(educationUserId)));
+			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_ARREARAGE, IndexErrorType.STUDENT_ARREARAGE.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId,0,tenantId), Arrays.asList(educationUserId)));
 
 			//申请退团学员数
-			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,educationUserId);
+			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,educationUserId,tenantId);
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP, IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP.getMsg(), quitGroupNum.size(),  quitGroupNum));
 
 			//乐团学员会员到期首页提醒
@@ -707,15 +709,15 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			//乐团巡查任务未计划
-			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime,userId);
+			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime,userId,tenantId);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.INSPECTION_ITEM, IndexErrorType.INSPECTION_ITEM.getMsg(),inspectionItem, null));
 
 			//乐团巡查任务未提交
-			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime);
+			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime,tenantId);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.INSPECTION_ITEM_PLAN, IndexErrorType.INSPECTION_ITEM_PLAN.getMsg(),inspectionItemPlan, null));
 
 			//回访任务未完成
-			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime,userId);
+			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime,userId,tenantId);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_VISIT, IndexErrorType.STUDENT_VISIT.getMsg(),studentVisit, null));
 
 			three.setNum(threeChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
@@ -735,12 +737,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			//课程时间安排异常
 			int courseTimeError = 0;
 			if(classGroupIds == null || classGroupIds.size() > 0){
-				attendanceError = indexBaseMonthDataDao.getAttendanceError(organIds,startTime,classGroupIds);
-				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds);
+				attendanceError = indexBaseMonthDataDao.getAttendanceError(organIds,startTime,classGroupIds,tenantId);
+				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds,tenantId);
 				String courseStartTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_START_TIME_ERROR, tenantId);
 				String courseEndTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_END_TIME_ERROR, tenantId);
 				if(StringUtils.isNotEmpty(courseStartTimeError) && StringUtils.isNotEmpty(courseEndTimeError)){
-					courseTimeError = indexBaseMonthDataDao.getCourseTimeError(organIds,classGroupIds,courseStartTimeError,courseEndTimeError);
+					courseTimeError = indexBaseMonthDataDao.getCourseTimeError(organIds,classGroupIds,courseStartTimeError,courseEndTimeError,tenantId);
 				}
 			}
 			fourChild.add(new IndexErrInfoDto(IndexErrorType.COURSE_TIME_ERROR, IndexErrorType.COURSE_TIME_ERROR.getMsg(), courseTimeError, null));
@@ -830,32 +832,34 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		Map<Integer, Integer> studentErrorLeaveMap = new HashMap<>();
 		//会员过期学员数
 		Map<Integer, Integer> noMemberStudentMap = new HashMap<>();
+		
+		Integer tenantId = TenantContextHolder.getTenantId();
 
 		if(IndexErrorType.MUSIC_PATROL.equals(errorType)||Objects.isNull(errorType)){
 			//基础技能班学员数量异常
-			List<Map<Integer, Integer>> highClassStudentLessThanThreeMapList = indexBaseMonthDataDao.countLessThenThreeClassOrganGroupNum(organIds, educationUserId);
+			List<Map<Integer, Integer>> highClassStudentLessThanThreeMapList = indexBaseMonthDataDao.countLessThenThreeClassOrganGroupNum(organIds, educationUserId, tenantId);
 			highClassStudentLessThanThreeMap = MapUtil.mapListToMap(highClassStudentLessThanThreeMapList, Integer.class, Integer.class);
 
 			//乐团巡查事项异常
-			List<Map<Integer, Integer>> musicPatrolItemMapList = indexBaseMonthDataDao.queryOrganErrInspection(organIds, startTime);
+			List<Map<Integer, Integer>> musicPatrolItemMapList = indexBaseMonthDataDao.queryOrganErrInspection(organIds, startTime, tenantId);
 			musicPatrolItemMap = MapUtil.mapListToMap(musicPatrolItemMapList, Integer.class, Integer.class);
 
 			//未加入任何班级学员
-			List<Map<Integer, Integer>> organNoClassMusicGroupStudentNumMapList = indexBaseMonthDataDao.getOrganNoClassMusicGroupStudentNum(organIds, educationUserId);
+			List<Map<Integer, Integer>> organNoClassMusicGroupStudentNumMapList = indexBaseMonthDataDao.getOrganNoClassMusicGroupStudentNum(organIds, educationUserId, tenantId);
 			organNoClassMusicGroupStudentNumMap = MapUtil.mapListToMap(organNoClassMusicGroupStudentNumMapList, Integer.class, Integer.class);
 		}
 
 		if(IndexErrorType.STUDENT_INFO.equals(errorType)||Objects.isNull(errorType)){
 			//学员异常请假数
-			List<Map<Integer, Integer>> studentErrorLeaveMapList = indexBaseMonthDataDao.countOrganStudentErrorLeave(organIds, classGroupIds);
+			List<Map<Integer, Integer>> studentErrorLeaveMapList = indexBaseMonthDataDao.countOrganStudentErrorLeave(organIds, classGroupIds, tenantId);
 			studentErrorLeaveMap = MapUtil.mapListToMap(studentErrorLeaveMapList, Integer.class, Integer.class);
 
 			//未缴费学员数
-			List<Map<Integer, Integer>> studentNotPaymentMapList = indexBaseMonthDataDao.countOrganNoPaymentStudentNum(organIds, educationUserId);
+			List<Map<Integer, Integer>> studentNotPaymentMapList = indexBaseMonthDataDao.countOrganNoPaymentStudentNum(organIds, educationUserId, tenantId);
 			studentNotPaymentMap = MapUtil.mapListToMap(studentNotPaymentMapList, Integer.class, Integer.class);
 
 			//申请退团学员数
-			List<Map<Integer, Integer>> studentApplyForQuitMusicGroupMapList = indexBaseMonthDataDao.queryOrganApplyForQuitGroupNum(organIds, educationUserId);
+			List<Map<Integer, Integer>> studentApplyForQuitMusicGroupMapList = indexBaseMonthDataDao.queryOrganApplyForQuitGroupNum(organIds, educationUserId, tenantId);
 			studentApplyForQuitMusicGroupMap = MapUtil.mapListToMap(studentApplyForQuitMusicGroupMapList, Integer.class, Integer.class);
 
 			//会员过期学员数
@@ -868,7 +872,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 			//全职未离职老师
 			//预计课酬较低
-			List<Map<Integer, Integer>> teacherExpectSalaryBeLowMapList = indexBaseMonthDataDao.queryOrganLowTeacherSalary(organIdsStr, monthStr);
+			List<Map<Integer, Integer>> teacherExpectSalaryBeLowMapList = indexBaseMonthDataDao.queryOrganLowTeacherSalary(organIdsStr, monthStr, tenantId);
 			teacherExpectSalaryBeLowMap = MapUtil.mapListToMap(teacherExpectSalaryBeLowMapList, Integer.class, Integer.class);
 
 			//课程时间安排异常
@@ -882,26 +886,26 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			//乐团巡查任务未计划
-			List<Map<Integer, Integer>> inspectionItemMapList = indexBaseMonthDataDao.queryOrganInspectionItem(organIdsStr, startTime, userId);
+			List<Map<Integer, Integer>> inspectionItemMapList = indexBaseMonthDataDao.queryOrganInspectionItem(organIdsStr, startTime, userId, tenantId);
 			inspectionItemMap = MapUtil.mapListToMap(inspectionItemMapList, Integer.class, Integer.class);
 
 			//乐团巡查任务未提交
-			List<Map<Integer, Integer>> inspectionItemPlanMapList = indexBaseMonthDataDao.queryOrganInspectionItemPlan(organIdsStr, startTime);
+			List<Map<Integer, Integer>> inspectionItemPlanMapList = indexBaseMonthDataDao.queryOrganInspectionItemPlan(organIdsStr, startTime, tenantId);
 			inspectionItemPlanMap = MapUtil.mapListToMap(inspectionItemPlanMapList, Integer.class, Integer.class);
 
 			//回访任务未完成
-			List<Map<Integer, Integer>> studentVisitMapList = indexBaseMonthDataDao.queryOrganStudentVisit(organIdsStr, startTime, userId);
+			List<Map<Integer, Integer>> studentVisitMapList = indexBaseMonthDataDao.queryOrganStudentVisit(organIdsStr, startTime, userId, tenantId);
 			studentVisitMap = MapUtil.mapListToMap(studentVisitMapList, Integer.class, Integer.class);
 		}
 
 		if(IndexErrorType.ATTENDANCE_SERVE.equals(errorType)||Objects.isNull(errorType)){
 			if(classGroupIds == null || classGroupIds.size() > 0){
 				//课程考勤异常
-				List<Map<Integer, Integer>> teacherExceptionAttendanceMapList = indexBaseMonthDataDao.getOrganAttendanceError(organIds, startTime, classGroupIds);
+				List<Map<Integer, Integer>> teacherExceptionAttendanceMapList = indexBaseMonthDataDao.getOrganAttendanceError(organIds, startTime, classGroupIds, tenantId);
 				teacherExceptionAttendanceMap = MapUtil.mapListToMap(teacherExceptionAttendanceMapList, Integer.class, Integer.class);
 
 				//课程异常
-				List<Map<Integer, Integer>> teacherNotAClassMapList = indexBaseMonthDataDao.getOrganNoAttendance(organIds, startTime, classGroupIds);
+				List<Map<Integer, Integer>> teacherNotAClassMapList = indexBaseMonthDataDao.getOrganNoAttendance(organIds, startTime, classGroupIds, tenantId);
 				teacherNotAClassMap = MapUtil.mapListToMap(teacherNotAClassMapList, Integer.class, Integer.class);
 			}
 
@@ -916,6 +920,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			params.put("jobNature", JobNatureEnum.FULL_TIME);
 			params.put("unDone",1);
 			params.put("reminded",0);
+			params.put("tenantId",TenantContextHolder.getTenantId());
 			List<Map<Integer, Integer>> teacherServeErrorMapList = indexBaseMonthDataDao.countOrganTeacherServeInfo(params);
 			teacherServeErrorMap = MapUtil.mapListToMap(teacherServeErrorMapList, Integer.class, Integer.class);
 		}
@@ -1072,12 +1077,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		result.add(indexErrInfoDto);
 
 		//未缴费学员数
-		result.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIdSet,educationUserId, 1), Arrays.asList(educationUserId)));
+		result.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIdSet,educationUserId, 1, tenantId), Arrays.asList(educationUserId)));
 
 		String monthStr = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
 		//全职未离职老师
 		//预计课酬较低
-		int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIds,monthStr);
+		int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIds,monthStr, tenantId);
 		result.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW, IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW.getMsg(),lowTeacherSalary, null));
 
 		//乐团学员会员即将到期首页提醒
@@ -1128,18 +1133,18 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 		Date date = new Date();
 		boolean flag1 = false;
-		int countLessThenThreeClassGroupNum = indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,educationUserId);
+		int countLessThenThreeClassGroupNum = indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds,educationUserId, tenantId);
 		if(countLessThenThreeClassGroupNum > 0){
 			flag1 = true;
 		}
 		if(!flag1){
-			int errInspection = indexBaseMonthDataDao.queryErrInspection(organIds,startTime);
+			int errInspection = indexBaseMonthDataDao.queryErrInspection(organIds,startTime, tenantId);
 			if(errInspection > 0){
 				flag1 = true;
 			}
 		}
 		if(!flag1){
-			IndexErrInfoDto noClassMusicGroupStudentInfo = indexBaseMonthDataDao.getNoClassMusicGroupStudentInfo(organIds,educationUserId);
+			IndexErrInfoDto noClassMusicGroupStudentInfo = indexBaseMonthDataDao.getNoClassMusicGroupStudentInfo(organIds,educationUserId, tenantId);
 			if(Objects.nonNull(noClassMusicGroupStudentInfo) && noClassMusicGroupStudentInfo.getNum() > 0){
 				flag1 = true;
 			}
@@ -1152,21 +1157,21 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			String studentErrorLeaveNum = sysTenantConfigService.getTenantConfigValue(SysConfigService.STUDENT_ERROR_LEAVE_NUM, tenantId);
 			if(StringUtils.isNotEmpty(studentErrorLeaveNum)){
 				String format1 = DateUtil.format(new Date(), DateUtil.ISO_YEAR_MONTH_FORMAT);
-				studentErrorLeave = indexBaseMonthDataDao.countStudentErrorLeave(organIds, format1, classGroupIds,Integer.parseInt(studentErrorLeaveNum));
+				studentErrorLeave = indexBaseMonthDataDao.countStudentErrorLeave(organIds, format1, classGroupIds,Integer.parseInt(studentErrorLeaveNum), tenantId);
 			}
 			if(studentErrorLeave > 0){
 				flag2 = true;
 			}
 		}
 		if(!flag2){
-			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,educationUserId);
+			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,educationUserId, tenantId);
 			if(quitGroupNum.size() > 0){
 				flag2 = true;
 			}
 		}
 
 		if(!flag2){
-			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId, 0);
+			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId, 0, tenantId);
 			if(countNoPaymentStudentNum > 0){
 				flag2 = true;
 			}
@@ -1191,19 +1196,19 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 
 		if(!flag3){
-			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime,userId);
+			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime,userId, tenantId);
 			if(inspectionItem > 0){
 				flag3 = true;
 			}
 		}
 		if(!flag3){
-			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime);
+			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime, tenantId);
 			if(inspectionItemPlan > 0){
 				flag3 = true;
 			}
 		}
 		if(!flag3){
-			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime,userId);
+			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime,userId, tenantId);
 			if(studentVisit > 0){
 				flag3 = true;
 			}
@@ -1217,7 +1222,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				String courseStartTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_START_TIME_ERROR, tenantId);
 				String courseEndTimeError = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_END_TIME_ERROR, tenantId);
 				if(StringUtils.isNotEmpty(courseStartTimeError) && StringUtils.isNotEmpty(courseEndTimeError)){
-					courseTimeError = indexBaseMonthDataDao.getCourseTimeError(organIds,classGroupIds,courseStartTimeError,courseEndTimeError);
+					courseTimeError = indexBaseMonthDataDao.getCourseTimeError(organIds,classGroupIds,courseStartTimeError,courseEndTimeError, tenantId);
 				}
 			}
 			if(courseTimeError > 0){
@@ -1227,7 +1232,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		if(!flag4){
 			int attendanceError = 0;
 			if(classGroupIds == null || classGroupIds.size() > 0){
-				attendanceError = indexBaseMonthDataDao.getAttendanceError(organIds,startTime,classGroupIds);
+				attendanceError = indexBaseMonthDataDao.getAttendanceError(organIds,startTime,classGroupIds, tenantId);
 			}
 			if(attendanceError > 0){
 				flag4 = true;
@@ -1236,7 +1241,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		if(!flag4){
 			int noAttendance = 0;
 			if(classGroupIds == null || classGroupIds.size() > 0){
-				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds);
+				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds, tenantId);
 			}
 			if(noAttendance > 0){
 				flag4 = true;
@@ -1263,13 +1268,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		boolean flag5 = false;
 		if(!flag5){
 			String monthStr = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
-			int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIdsStr,monthStr);
+			int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIdsStr,monthStr, tenantId);
 			if(lowTeacherSalary > 0){
 				flag5 = true;
 			}
 		}
 		if(!flag5){
-			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId, 1);
+			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId, 1, tenantId);
 			if(countNoPaymentStudentNum > 0){
 				flag5 = true;
 			}
@@ -1314,7 +1319,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			add(ORGAN_TOTAL_STUDENT_NUM.getCode());add(CLOUD_STUDY_NEW_STUDENT_NUM.getCode());add(CLOUD_STUDY_DAY_USE_STUDENT_NUM.getCode());}};
 
 
-		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getAllIndexBaseData(new HashSet<>(organIds), dataTypes, queryInfo.getDate(), queryInfo.getDate());
+		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getAllIndexBaseData(new HashSet<>(organIds), dataTypes, queryInfo.getDate(), queryInfo.getDate(), queryInfo.getTenantId());
 
 		Map<Integer, Integer> organsStudentNumMap = indexBaseDatas.stream().filter(i->ORGAN_TOTAL_STUDENT_NUM.equals(i.getDataType())).collect(Collectors.toMap(IndexBaseMonthData::getOrganId, i->i.getActivateNum().intValue(), (i1, i2)->i1));
 

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

@@ -21,11 +21,15 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
+
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.biz.service.IndexErrDataRecordService;
+
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -74,8 +78,10 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 			date = LocalDate.now().plusDays(-1).toString();
 		}
 		Date dt = DateUtil.stringToDate(date, "yyyy-MM-dd");
+		
+		Integer tenantId = TenantContextHolder.getTenantId();
 
-		int errDateNum = indexErrDataRecordDao.countWithGenerateTime(date);
+		int errDateNum = indexErrDataRecordDao.countWithGenerateTime(date, tenantId);
 
 		if(errDateNum<=0){
 			//乐团巡查事项异常
@@ -183,7 +189,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 		if(StringUtils.isNotBlank(organIds)){
 			queryOrganIds = Arrays.stream(organIds.split(",")).map(Integer::new).collect(Collectors.toSet());
 		}
-		List<Integer> allDealUserIds = indexErrDataRecordDao.getAllDealUserIds(queryOrganIds);
+		List<Integer> allDealUserIds = indexErrDataRecordDao.getAllDealUserIds(queryOrganIds, TenantContextHolder.getTenantId());
 		List<SimpleUserDto> users = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(allDealUserIds)){
 			users = teacherDao.getUsersSimpleInfo(allDealUserIds);
@@ -198,7 +204,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 		if(StringUtils.isNotBlank(organIdsStr)){
 			queryOrganIds = Arrays.stream(organIdsStr.split(",")).map(Integer::new).collect(Collectors.toSet());
 		}
-		List<IndexErrDataRecord> errRecords = indexErrDataRecordDao.getWithGenerateTime(queryOrganIds, startDate, endDate);
+		List<IndexErrDataRecord> errRecords = indexErrDataRecordDao.getWithGenerateTime(queryOrganIds, startDate, endDate, TenantContextHolder.getTenantId());
 		if(CollectionUtils.isEmpty(errRecords)){
 			return result;
 		}

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberPaymentCalenderServiceImpl.java

@@ -62,8 +62,27 @@ public class MemberPaymentCalenderServiceImpl implements MusicGroupPaymentCalend
         return BigDecimal.ZERO;
     }
 
+    @Override
+    public BigDecimal getOriginalAmount(MusicGroupPaymentBaseCalender baseCalender) {
+        CalenderMemberDto calenderMember = baseCalender.getCalenderMember();
+        if(calenderMember != null){
+            MusicGroup musicGroup = baseCalender.getMusicGroup();
+            //会员价格是否变动
+            MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId());
+            if(memberFee == null){
+                throw new BizException("操作失败:请配置当前分部会员收费标准");
+            }
+            //获取会员总价
+            return getGroupPurchaseFee(calenderMember.getPeriodEnum(),memberFee).
+                    multiply(new BigDecimal(calenderMember.getMemberNum())).setScale(0, BigDecimal.ROUND_HALF_UP);
+        }
+        return BigDecimal.ZERO;
+    }
+
     private BigDecimal getGroupPurchaseFee(PeriodEnum periodEnum,MemberFeeSetting memberFee){
         switch (periodEnum){
+            case DAY :
+                return memberFee.getGroupPurchaseDayFee();
             case MONTH :
                 return memberFee.getGroupPurchaseMonthFee();
             case QUARTERLY :

+ 9 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberPrivilegesItemServiceImpl.java

@@ -7,8 +7,10 @@ import com.ym.mec.biz.dal.page.MemberPrivilegesItemQueryInfo;
 import com.ym.mec.biz.service.MemberPrivilegesItemService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.filters.TenantIdThreadLocal;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,13 +26,15 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 	@Autowired
 	private MemberRankPrivilegesDao memberRankPrivilegesDao;
 
+
+
 	@Override
 	public BaseDAO<Integer, MemberPrivilegesItem> getDAO() {
 		return memberPrivilegesItemDao;
 	}
 
 	private MemberPrivilegesItem getTree(MemberPrivilegesItem item){
-		List<MemberPrivilegesItem> privilegesItems = memberPrivilegesItemDao.findList(item.getId());
+		List<MemberPrivilegesItem> privilegesItems = memberPrivilegesItemDao.findList(item.getId(), TenantContextHolder.getTenantId());
 		if(privilegesItems != null && privilegesItems.size() > 0) {
 			item.setMemberPrivilegesItems(privilegesItems);
 			for (MemberPrivilegesItem privilegesItem : privilegesItems) {
@@ -52,7 +56,7 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 		if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItemId)){
 			throw new BizException("删除失败:该功能已被使用");
 		}
-		List<MemberPrivilegesItem> memberPrivilegesItems = memberPrivilegesItemDao.findList(memberPrivilegesItemId);
+		List<MemberPrivilegesItem> memberPrivilegesItems = memberPrivilegesItemDao.findList(memberPrivilegesItemId,TenantContextHolder.getTenantId());
 		for (MemberPrivilegesItem item : memberPrivilegesItems) {
 			item = getTree(item);
 		}
@@ -80,7 +84,7 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 
 	@Override
 	public List<MemberPrivilegesItem> findAllItem(MemberPrivilegesItemQueryInfo queryInfo) {
-		List<MemberPrivilegesItem> rows = memberPrivilegesItemDao.findList(queryInfo.getParentId());
+		List<MemberPrivilegesItem> rows = memberPrivilegesItemDao.findList(queryInfo.getParentId(),TenantContextHolder.getTenantId());
 		if(rows == null || rows.size() == 0){
 			return rows;
 		}
@@ -93,7 +97,7 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateItem(MemberPrivilegesItem memberPrivilegesItem) {
-		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId());
+		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId(),TenantContextHolder.getTenantId());
 		if(itemList.size() == 0){
 			if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItem.getParentId())){
 				throw new BizException("修改失败:被关联的子集不能被添加子功能");
@@ -116,7 +120,7 @@ public class MemberPrivilegesItemServiceImpl extends BaseServiceImpl<Integer, Me
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void add(MemberPrivilegesItem memberPrivilegesItem) {
-		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId());
+		List<MemberPrivilegesItem> itemList = memberPrivilegesItemDao.findList(memberPrivilegesItem.getParentId(),TenantContextHolder.getTenantId());
 		if(itemList.size() == 0){
 			if(memberRankPrivilegesDao.hasPrivileges(memberPrivilegesItem.getParentId())){
 				throw new BizException("修改失败:被关联的子集不能被添加子功能");

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderActivityServiceImpl.java

@@ -2,20 +2,30 @@ package com.ym.mec.biz.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderActivityDao;
+import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderActivity;
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.biz.dal.enums.CalenderBaseServiceEnum;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderActivityService;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderBaseService;
+import com.ym.mec.biz.service.VipGroupActivityService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupPaymentCalenderActivityServiceImpl extends ServiceImpl<MusicGroupPaymentCalenderActivityDao, MusicGroupPaymentCalenderActivity>
         implements MusicGroupPaymentCalenderActivityService, MusicGroupPaymentCalenderBaseService {
 
+    @Autowired
+    private VipGroupActivityDao vipGroupActivityDao;
+
     public MusicGroupPaymentCalenderActivityServiceImpl() {
         MusicGroupPaymentCalenderBaseService.calenderBaseServiceMap.put(CalenderBaseServiceEnum.ACTIVITY,this);
     }
@@ -40,6 +50,17 @@ public class MusicGroupPaymentCalenderActivityServiceImpl extends ServiceImpl<Mu
     }
 
     @Override
+    public BigDecimal getOriginalAmount(MusicGroupPaymentBaseCalender baseCalender) {
+        List<MusicGroupPaymentCalenderActivity> calenderActivityList = baseCalender.getCalenderActivityList();
+        if(calenderActivityList != null && calenderActivityList.size() > 0){
+            List<Integer> collect = calenderActivityList.stream().map(e -> e.getActivityId()).collect(Collectors.toList());
+            List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.queryByIds(StringUtils.join(collect, ","));
+            return vipGroupActivities.stream().map(e->e.getMarketPrice()).reduce(BigDecimal.ZERO,BigDecimal::add);
+        }
+        return BigDecimal.ZERO;
+    }
+
+    @Override
     public void batchInsert(MusicGroupPaymentBaseCalender musicGroupPaymentBaseCalender, Long calenderId) {
         List<MusicGroupPaymentCalenderActivity> calenderActivityList = musicGroupPaymentBaseCalender.getCalenderActivityList();
         if(calenderActivityList != null && calenderActivityList.size() > 0){
@@ -52,4 +73,9 @@ public class MusicGroupPaymentCalenderActivityServiceImpl extends ServiceImpl<Mu
     public void delByCalenderId(Long calenderId) {
         baseMapper.delByCalenderId(calenderId);
     }
+
+    @Override
+    public List<MusicGroupPaymentCalenderActivity> findByCalenderId(Long calenderId) {
+        return baseMapper.findByCalenderId(calenderId);
+    }
 }

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderCourseSettingsServiceImpl.java

@@ -163,4 +163,34 @@ public class MusicGroupPaymentCalenderCourseSettingsServiceImpl extends BaseServ
 		}
 		return BigDecimal.ZERO;
 	}
+
+    @Override
+    public BigDecimal getOriginalAmount(MusicGroupPaymentBaseCalender baseCalender) {
+		List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList = baseCalender.getMusicGroupPaymentCalenderCourseSettingsList();
+		if(musicGroupPaymentCalenderCourseSettingsList != null && musicGroupPaymentCalenderCourseSettingsList.size() > 0){
+			if (baseCalender.getPaymentType() == MUSIC_APPLY || baseCalender.getPaymentType() == MUSIC_RENEW) {
+				// 查询默认课程费用
+				Integer musicGroupOrganizationCourseSettingId = baseCalender.getMusicGroupOrganizationCourseSettingId();
+				List<MusicGroupOrganizationCourseSettingsDetail> musicGroupOrganizationCourseSettingsDetails = musicGroupOrganizationCourseSettingsDetailDao.queryByMusicGroupOrganizationCourseSettingsId(musicGroupOrganizationCourseSettingId);
+				return musicGroupOrganizationCourseSettingsDetails.stream().map(e -> e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+			} else if (baseCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_COURSE) {
+				MusicGroup musicGroup = baseCalender.getMusicGroup();
+				BigDecimal totalAmount = BigDecimal.ZERO;
+				// 如果是课程收费,判断是否审核
+				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;
+			}else {
+				throw new BizException("错误的缴费类型");
+			}
+		}
+        return BigDecimal.ZERO;
+    }
 }

+ 27 - 62
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -51,16 +51,12 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
 	@Autowired
 	private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
-	
 	@Autowired
 	private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
-	
 	@Autowired
 	private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
-
 	@Autowired
 	private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
-	
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
@@ -77,6 +73,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	private StudentService studentService;
 	@Autowired
 	private CloudTeacherOrderDao cloudTeacherOrderDao;
+	@Autowired
+	private MusicGroupPaymentCalenderActivityService musicGroupPaymentCalenderActivityService;
 
 	@Override
 	public BaseDAO<Long, MusicGroupPaymentCalenderDetail> getDAO() {
@@ -103,13 +101,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		Date date = new Date();
 		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderDetails.get(0).getMusicGroupPaymentCalenderId());
 		MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
-		//缴费项目已结束,并且没有单独开启缴费的学员,不能修改缴费金额
-//		if(calender.getStatus() == OVER){
-//			List<MusicGroupPaymentCalenderDetail> paymentCalenderDetails = calenderDetails.stream().filter(e -> e.getOpenFlag() == YesOrNoEnum.NO).collect(Collectors.toList());
-//			if(paymentCalenderDetails != null && paymentCalenderDetails.size() > 0){
-//				throw new BizException("修改失败:存在未开启缴费的学员");
-//			}
-//		}
+
 		if(calender.getPaymentAmount().doubleValue() > 0d){
 			BigDecimal totalAmount = calender.getPaymentAmount();
 			BigDecimal subExpectAmount = expectAmount;
@@ -467,11 +459,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				}
 			}
 		}
-		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
-		
-		Long musicGroupPaymentCalenderId = null;
 		for(MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList){
-			musicGroupPaymentCalenderId = musicGroupPaymentCalender.getId();
+			Long musicGroupPaymentCalenderId = musicGroupPaymentCalender.getId();
 			
 			if(musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY){
 				throw new BizException("操作失败:报名缴费项不允许添加学员");
@@ -480,31 +469,15 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 					|| musicGroupPaymentCalender.getStatus() == PaymentCalenderStatusEnum.REJECT) {
 				throw new BizException("当前缴费状态不能添加学生");
 			}
-			
 			//判断学生是否已存在
 			Set<Integer> userList = musicGroupPaymentCalenderDetailDao.queryStudentIds(musicGroupPaymentCalenderId);
-
 			if(Collections.disjoint(userList, userIdList) == false){
 				throw new BizException("操作失败:包含已存在的学员");
 			}
 			
-			List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
-//
-//			BigDecimal expectAmount = BigDecimal.ZERO;
-//			BigDecimal expectMemberAmount = musicGroupPaymentCalender.getMemberPaymentAmount();
-
-//			if (musicGroupPaymentCalender.getPayUserType() == STUDENT) {
-//				for (MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList) {
-//					// 剔除可选课程
-//					if (courseSettings.getIsStudentOptional() == false) {
-//						expectAmount = expectAmount.add(courseSettings.getCourseCurrentPrice());
-//					}
-//				}
-//			}
-			
 			Date date = new Date();
 			MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
-			Map<Integer,MusicGroupPaymentCalenderDetail> userMap = new HashMap<Integer, MusicGroupPaymentCalenderDetail>();
+			Map<Integer,Long> userMap = new HashMap<>();
 			List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
 			//创建缴费明细
 			MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -512,8 +485,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 				musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 				musicGroupPaymentCalenderDetail.setCreateTime(date);
-//				musicGroupPaymentCalenderDetail.setExpectAmount(musicGroupPaymentCalender.getPaymentAmount());
-//				musicGroupPaymentCalenderDetail.setExpectMemberAmount(musicGroupPaymentCalender.getMemberPaymentAmount());
 				if (musicGroupPaymentCalender.getPaymentAmount().compareTo(BigDecimal.ZERO) == 0) {
 					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
 				} else {
@@ -524,7 +495,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 				musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 				musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
-				
+
 				musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
 				if (musicGroupPaymentCalender.getPaymentAmount().compareTo(BigDecimal.ZERO) == 0) {
 					// 添加会员有效时长
@@ -540,16 +511,13 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 						cloudTeacherOrder.setRemark("缴费项目0元新增学员");
 						cloudTeacherOrder.setMusicGroupId(musicGroupId);
 						cloudTeacherOrderDao.insert(cloudTeacherOrder);
-//						studentService.updateMemberRank(cloudTeacherOrder);
 					}
 				}
 			}
 
 			if (musicGroupPaymentCalenderDetailList.size() > 0) {
 				musicGroupPaymentCalenderDetailDao.batchInsert(musicGroupPaymentCalenderDetailList);
-				for(MusicGroupPaymentCalenderDetail cd : musicGroupPaymentCalenderDetailList){
-					userMap.put(cd.getUserId(), cd);
-				}
+				musicGroupPaymentCalenderDetailList.stream().map(e-> userMap.put(e.getUserId(),e.getId()));
 			}
 			//更新预计缴费人数
 			musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + userIdList.size());
@@ -558,34 +526,31 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 				musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + userIdList.size());
 			}
 			musicGroupPaymentCalenderService.update(musicGroupPaymentCalender);
-			
-			MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
+
 			//创建学生课排课分钟数
-			for(Integer studentId : userIdList){
-				for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
-					if (courseSettings.getIsStudentOptional() == true || courseSettings.getCourseTotalMinuties() == null || courseSettings.getCourseTotalMinuties() == 0) {
-						continue;
+			List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
+			if(courseSettingsList != null && courseSettingsList.size() > 0){
+				List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<>();
+				MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
+				for(Integer studentId : userIdList){
+					for(MusicGroupPaymentCalenderCourseSettings courseSettings : courseSettingsList){
+						musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+						musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
+						musicGroupPaymentStudentCourseDetail.setCreateTime(date);
+						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
+						musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(userMap.get(studentId));
+						musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+						musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSettings.getCourseOriginalPrice());
+						musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSettings.getCourseCurrentPrice());
+						musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
+						musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
+						musicGroupPaymentStudentCourseDetail.setUserId(studentId);
+						musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
 					}
-					musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
-					musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
-					musicGroupPaymentStudentCourseDetail.setCreateTime(date);
-					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
-					musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(userMap.get(studentId).getId());
-					musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
-					musicGroupPaymentStudentCourseDetail.setCourseOriginalPrice(courseSettings.getCourseOriginalPrice());
-					musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSettings.getCourseCurrentPrice());
-					musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
-					musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
-					musicGroupPaymentStudentCourseDetail.setUserId(studentId);
-					
-					musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
 				}
+				musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
 			}
 		}
-		
-		if(musicGroupPaymentStudentCourseDetailList.size() > 0){
-			musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
-		}
 		//给学员推送缴费通知
 		for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList) {
 			if (musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroupPaymentCalender.getStatus() == PaymentCalenderStatusEnum.OPEN) {

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

@@ -123,8 +123,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	@Autowired
 	private MemberRankSettingDao memberRankSettingDao;
 	@Autowired
-	private StudentService studentService;
-	@Autowired
 	private CloudTeacherOrderDao cloudTeacherOrderDao;
 	@Autowired
 	private MusicGroupPaymentCalenderActivityService musicGroupPaymentCalenderActivityService;
@@ -141,6 +139,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		String musicGroupId = musicGroupPaymentCalenderDto.getMusicGroupId();
 
 		PaymentType paymentType = musicGroupPaymentCalenderDto.getPaymentType();
+		if(paymentType == ADD_COURSE || paymentType == MUSIC_APPLY || paymentType == MUSIC_RENEW){
+			throw new BizException("操作失败:该入口不支持{}",paymentType.getDesc());
+		}
 
 		PayUserType payUserType = musicGroupPaymentCalenderDto.getPayUserType();
 
@@ -545,10 +546,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			throw new BizException("请登录");
 		}
 		// 所有缴费项目已完成排课才能创建下一个缴费项目
-//		String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,null);
-//		if (StringUtils.isNoneBlank(orignBatchNo)) {
-//			throw new BizException("当前乐团存在未排课的缴费项目,请先完成排课再操作");
-//		}
+		String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,null);
+		if (StringUtils.isNoneBlank(orignBatchNo)) {
+			throw new BizException("当前乐团存在未排课的缴费项目,请先完成排课再操作");
+		}
 
 		// 不是进行中,只能创建一次缴费
 		if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
@@ -557,29 +558,48 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				throw new BizException("创建失败,已经存在缴费信息");
 			}
 		}
+		if(musicGroup.getStatus() == MusicGroupStatusEnum.PRE_BUILD_FEE){
+			musicGroupPaymentBaseCalender.setPaymentType(MUSIC_APPLY);
+		}else {
+			if(musicGroupPaymentBaseCalender.getMusicGroupOrganizationCourseSettingId() != null){
+				musicGroupPaymentBaseCalender.setPaymentType(MUSIC_RENEW);
+			}else {
+				musicGroupPaymentBaseCalender.setPaymentType(ADD_COURSE);
+			}
+		}
 		musicGroupPaymentBaseCalender.setMusicGroup(musicGroup);
 
-		PaymentCalenderStatusEnum status = PaymentCalenderStatusEnum.NO;
-
 		//检测缴费项目是否有费用变更
 		Map<CalenderBaseServiceEnum, MusicGroupPaymentCalenderBaseService> calenderBaseServiceMap = MusicGroupPaymentCalenderBaseService.calenderBaseServiceMap;
+
+		//计算缴费项目总金额
+		BigDecimal courseActualAmount = ((MusicGroupPaymentCalenderCourseSettingsServiceImpl) musicGroupPaymentCalenderCourseSettingsService).getActualAmount(musicGroupPaymentBaseCalender);
+		BigDecimal currentTotalAmount = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MEMBER).getActualAmount(musicGroupPaymentBaseCalender);
+		currentTotalAmount = currentTotalAmount.add(courseActualAmount);
+		currentTotalAmount = currentTotalAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.MUSIC_REPAIR).getActualAmount(musicGroupPaymentBaseCalender));
+		currentTotalAmount = currentTotalAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.ACTIVITY).getActualAmount(musicGroupPaymentBaseCalender));
+
+		//计算缴费项目原价
+		BigDecimal memberOriginalAmount = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MEMBER).getOriginalAmount(musicGroupPaymentBaseCalender);
+		BigDecimal originalTotalAmount = memberOriginalAmount;
+		originalTotalAmount = originalTotalAmount.add(((MusicGroupPaymentCalenderCourseSettingsServiceImpl)musicGroupPaymentCalenderCourseSettingsService).getOriginalAmount(musicGroupPaymentBaseCalender));
+		originalTotalAmount = originalTotalAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.MUSIC_REPAIR).getOriginalAmount(musicGroupPaymentBaseCalender));
+		originalTotalAmount = originalTotalAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.ACTIVITY).getOriginalAmount(musicGroupPaymentBaseCalender));
+
+		PaymentCalenderStatusEnum status;
 		if (musicGroupPaymentBaseCalender.getPayUserType() == SCHOOL) {
 			status = AUDITING;
 		} else {
-			status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MEMBER).checkComponentAmount(musicGroupPaymentBaseCalender);
-			if(status != AUDITING){
-				status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.COURSE).checkComponentAmount(musicGroupPaymentBaseCalender);
-			}
-			if(status != AUDITING){
-				status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MUSIC_REPAIR).checkComponentAmount(musicGroupPaymentBaseCalender);
-			}
+			int compare = currentTotalAmount.setScale(0, BigDecimal.ROUND_HALF_UP).compareTo(originalTotalAmount.setScale(0, BigDecimal.ROUND_HALF_UP));
+			status = compare == 0?NO:AUDITING;
+//			status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MEMBER).checkComponentAmount(musicGroupPaymentBaseCalender);
+//			if(status != AUDITING){
+//				status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.COURSE).checkComponentAmount(musicGroupPaymentBaseCalender);
+//			}
+//			if(status != AUDITING){
+//				status = calenderBaseServiceMap.get(CalenderBaseServiceEnum.MUSIC_REPAIR).checkComponentAmount(musicGroupPaymentBaseCalender);
+//			}
 		}
-		//计算缴费项目总金额
-		BigDecimal totalPaymentAmount = BigDecimal.ZERO;
-		totalPaymentAmount = totalPaymentAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.MEMBER).getActualAmount(musicGroupPaymentBaseCalender));
-		totalPaymentAmount = totalPaymentAmount.add(((MusicGroupPaymentCalenderCourseSettingsServiceImpl)musicGroupPaymentCalenderCourseSettingsService).getActualAmount(musicGroupPaymentBaseCalender));
-		totalPaymentAmount = totalPaymentAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.MUSIC_REPAIR).getActualAmount(musicGroupPaymentBaseCalender));
-		totalPaymentAmount = totalPaymentAmount.add(calenderBaseServiceMap.get(CalenderBaseServiceEnum.ACTIVITY).getActualAmount(musicGroupPaymentBaseCalender));
 
 		Date date = new Date();
 
@@ -594,7 +614,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		musicGroupPaymentCalender.setCreateTime(date);
 		musicGroupPaymentCalender.setUpdateTime(date);
 		musicGroupPaymentCalender.setPaymentType(musicGroupPaymentBaseCalender.getPaymentType());
-		musicGroupPaymentCalender.setPaymentAmount(totalPaymentAmount);
+		musicGroupPaymentCalender.setPaymentAmount(courseActualAmount);
+		musicGroupPaymentCalender.setCurrentTotalAmount(currentTotalAmount);
+		musicGroupPaymentCalender.setOriginalTotalAmount(originalTotalAmount);
 
 		//会员缴费信息
 		CalenderMemberDto calenderMember = musicGroupPaymentBaseCalender.getCalenderMember();
@@ -605,7 +627,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			musicGroupPaymentCalender.setMemberValidDate(calenderMember.getMemberNum());
 			musicGroupPaymentCalender.setMemberPeriod(calenderMember.getPeriodEnum());
 			musicGroupPaymentCalender.setMemberOptionalFlag(calenderMember.getOptionalFlag());
-			musicGroupPaymentCalender.setOriginalMemberPaymentAmount(calenderMember.getOriginalAmount());
+			musicGroupPaymentCalender.setOriginalMemberPaymentAmount(memberOriginalAmount);
 		}
 		//乐保缴费信息
 		MusicRepairDto musicRepair = musicGroupPaymentBaseCalender.getMusicRepair();
@@ -616,37 +638,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}
 		musicGroupPaymentCalender.setStatus(status);
 
-//		BigDecimal totalPaymentAmount = musicGroupPaymentCalenderDto.getMasterTotalPrice();
-//		if(musicGroupPaymentCalenderCourseSettingsList != null){
-//			List<MusicGroupPaymentCalenderCourseSettings> newCSList = new ArrayList<MusicGroupPaymentCalenderCourseSettings>(
-//					musicGroupPaymentCalenderCourseSettingsList.size());
-//			for (MusicGroupPaymentCalenderCourseSettings pccs : musicGroupPaymentCalenderCourseSettingsList) {
-//				MusicGroupPaymentCalenderCourseSettings tempPccs = new MusicGroupPaymentCalenderCourseSettings();
-//				try {
-//					BeanUtils.copyProperties(tempPccs, pccs);
-//				} catch (Exception e) {
-//					throw new BizException("克隆对象出错", e);
-//				}
-//				if (pccs.getIsStudentOptional()) {
-//					tempPccs.setCourseCurrentPrice(pccs.getCourseCurrentPrice());
-//					tempPccs.setCourseOriginalPrice(pccs.getCourseOriginalPrice());
-//					tempPccs.setCourseTotalMinuties(pccs.getCourseTotalMinuties());
-//				} else {
-//					tempPccs.setCourseCurrentPrice(BigDecimal.ZERO);
-//					tempPccs.setCourseOriginalPrice(BigDecimal.ZERO);
-//					tempPccs.setCourseTotalMinuties(pccs.getCourseTotalMinuties());
-//				}
-//				totalPaymentAmount = totalPaymentAmount.add(tempPccs.getCourseCurrentPrice());
-//				newCSList.add(tempPccs);
-//			}
-//			musicGroupPaymentCalender.setMusicGroupPaymentCalenderCourseSettingsList(newCSList);
-//		}
-
-		//缴费截止日期默认三天后
-//		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null && payUserType == PayUserType.STUDENT) {
-//			musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
-//		}
-
 		if (musicGroupPaymentCalender.getStatus() != AUDITING) {
 			if (date.after(musicGroupPaymentCalender.getStartPaymentDate())) {
 				musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OPEN);
@@ -663,6 +654,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		musicGroupPaymentCalenderDao.insert(musicGroupPaymentCalender);
 
 		//课程费用列表
+		musicGroupPaymentCalender.setMusicGroupPaymentCalenderCourseSettingsList(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList());
 		musicGroupPaymentCalenderCourseSettingsService.batchInsert(musicGroupPaymentCalender);
 		//活动费用列表
 		musicGroupPaymentCalenderActivityService.batchInsert(musicGroupPaymentBaseCalender,musicGroupPaymentCalender.getId());

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

@@ -55,7 +55,22 @@ public class MusicRepairPaymentCalenderServiceImpl implements MusicGroupPaymentC
     public BigDecimal getActualAmount(MusicGroupPaymentBaseCalender baseCalender) {
         MusicRepairDto musicRepair = baseCalender.getMusicRepair();
         if(musicRepair != null){
-            return musicRepair.getActualAmount().multiply(musicRepair.getNum());
+            return musicRepair.getActualAmount();
+        }
+        return BigDecimal.ZERO;
+    }
+
+    @Override
+    public BigDecimal getOriginalAmount(MusicGroupPaymentBaseCalender baseCalender) {
+        MusicRepairDto musicRepair = baseCalender.getMusicRepair();
+        if(musicRepair != null){
+            Integer tenantId = TenantContextHolder.getTenantId();
+            String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONE_YEAR_MUSICAL_REPAIR_AMOUNT, tenantId);
+            if(StringUtils.isEmpty(configValue)){
+                throw new BizException("操作失败:请配置乐保零售价");
+            }
+            //获取会员总价
+            return new BigDecimal(configValue).multiply(musicRepair.getNum()).setScale(0, BigDecimal.ROUND_HALF_UP);
         }
         return BigDecimal.ZERO;
     }

+ 303 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java

@@ -0,0 +1,303 @@
+package com.ym.mec.biz.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.TenantOrderRecord;
+import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.service.OrderPayOpsService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.TenantOrderRecordService;
+import com.ym.mec.biz.service.TenantPaymentOrderService;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.thirdparty.adapay.ConfigInit;
+import com.ym.mec.thirdparty.adapay.Payment;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.http.HttpUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.DigestUtils;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.function.BiPredicate;
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+/**
+ * @author hgw
+ * Created by 2021-12-22
+ */
+@Service
+public class OrderPayOpsServiceImpl implements OrderPayOpsService {
+    private static final Logger log = LoggerFactory.getLogger(OrderPayOpsServiceImpl.class);
+
+    @Autowired
+    private StudentPaymentOrderService studentPaymentOrderService;
+    @Autowired
+    private TenantPaymentOrderService tenantPaymentOrderService;
+    @Autowired
+    private TenantOrderRecordService tenantOrderRecordService;
+
+    @Override
+    public Map<String, Object> executePayment(BigDecimal amount, String orderNo, String payChannel, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
+        PaymentParam payParam = new PaymentParam(amount, orderNo, payChannel, returnUrl,
+                orderSubject, orderBody, sign, code, platform);
+        log.info("executePayment >>>>> {}", JSON.toJSONString(payParam));
+        //签名验证
+        checkSing(payParam);
+
+        Map<String, Object> payment = new HashMap<>();
+        if (platform != null) {
+            if (platform.equals("tenant")) {
+                //机构开通付款
+                TenantOrderRecord tenantOrderRecord = tenantOrderRecordService.getOne(new WrapperUtil<TenantOrderRecord>()
+                        .hasEq("order_no_", payParam.getOrderNo()).queryWrapper());
+                payment = checkOrderAndGetParam(payParam,
+                        tenantOrderRecord,
+                        TenantOrderRecord::getEnumOrderState,
+                        TenantOrderRecord::getCreatedTime,
+                        tenantOrderRecord::setTransNo,
+                        tenantOrderRecordService::updateById
+                );
+            } else if (platform.equals("teacher")) {
+                TenantPaymentOrder tenantPaymentOrder = tenantPaymentOrderService.queryByOrderNo(payParam.getOrderNo());
+                payment = checkOrderAndGetParam(payParam,
+                        tenantPaymentOrder,
+                        TenantPaymentOrder::getStatus,
+                        TenantPaymentOrder::getCreateTime,
+                        tenantPaymentOrder::setTransNo,
+                        tenantPaymentOrderService::update
+                );
+            } else {
+                StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findOrderByOrderNo(payParam.getOrderNo());
+                payment = checkOrderAndGetParam(payParam,
+                        studentPaymentOrder,
+                        StudentPaymentOrder::getStatus,
+                        StudentPaymentOrder::getCreateTime,
+                        studentPaymentOrder::setTransNo,
+                        studentPaymentOrderService::update
+                );
+            }
+        }
+
+        return payment;
+    }
+
+    private void checkSing(PaymentParam param) {
+        Map<String, Object> signParams = new LinkedHashMap<>();
+        signParams.put("appId", ConfigInit.appId);
+        signParams.put("amount", param.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
+        signParams.put("orderNo", param.getOrderNo());
+        signParams.put("orderSubject", param.getOrderSubject());
+        signParams.put("orderBody", param.getOrderBody());
+        signParams.put("wxAppId", ConfigInit.wxAppId);
+        String originalStr = JSONObject.toJSONString(signParams);
+        String newSign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
+        if (!newSign.equals(param.getSign())) {
+            log.info("executePayment >>>>>> checkSing : {}", newSign);
+            throw new BizException("请勿非法请求");
+        }
+    }
+
+    private <T> Map<String, Object> checkOrderAndGetParam(PaymentParam payParam, T clazz,
+                                                          Function<T, DealStatusEnum> enumFunc, Function<T, Date> dateFunc,
+                                                          Consumer<String> setOption, Consumer<T> action) throws Exception {
+        if (Objects.isNull(clazz)) {
+            throw new BizException("订单不存在");
+        }
+        checkOrderState(clazz, enumFunc);
+        Date createTime = dateFunc.apply(clazz);
+        //校验订单是否超时
+        String timeExpire = checkOrderTimeOut(createTime);
+        //初始化支付数据
+        Map<String, Object> paymentParams = getPaymentParam(payParam);
+        paymentParams.put("time_expire", timeExpire);
+        paymentParams.put("expend", getExpend(payParam));
+        //获取第三方的支付的信息
+        Map<String, Object> payment = Payment.executePayment(paymentParams);
+        log.info("executePayment create order param >>>>> {}", JSON.toJSONString(payment));
+        String transNo = (String) payment.get("id");
+        //修改流水
+        setTransNoByApply(transNo, clazz, setOption, action);
+
+        return payment;
+    }
+
+    private <T> void checkOrderState(T obj, Function<T, DealStatusEnum> func) {
+        BiPredicate<Object, DealStatusEnum> predicate = (o, s) -> Objects.nonNull(o) && !DealStatusEnum.ING.equals(s);
+        DealStatusEnum em = func.apply(obj);
+        if (predicate.test(obj, em)) {
+            String msg = em.equals(DealStatusEnum.SUCCESS) ? "订单已支付,请勿重复支付" : "订单已关闭,不能支付";
+            throw new BizException(msg);
+        }
+    }
+
+    private String checkOrderTimeOut(Date createTime) {
+        Calendar beforeTime = Calendar.getInstance();
+        beforeTime.add(Calendar.MINUTE, -28);// 28 分钟之前的时间
+        Date beforeDate = beforeTime.getTime();
+        if (createTime.before(beforeDate)) {
+            throw new BizException("订单已超时,请重新下单");
+        }
+        Date expireDate = DateUtil.addMinutes(createTime, 30);
+        return new SimpleDateFormat("yyyyMMddHHmmss").format(expireDate);
+    }
+
+    private <T> void setTransNoByApply(String TransNo, T clazz, Consumer<String> setOption, Consumer<T> action) {
+        Optional.ofNullable(clazz)
+                .filter(c -> Objects.nonNull(setOption))
+                .filter(c -> Objects.nonNull(action))
+                .filter(c -> StringUtils.isNotBlank(TransNo))
+                .map(c -> {
+                    setOption.accept(TransNo);
+                    return c;
+                })
+                .ifPresent(action);
+    }
+
+
+    private Map<String, Object> getExpend(PaymentParam payParam) throws Exception {
+        Map<String, Object> expendParams = new HashMap<>(5);
+        String openId = "";
+        if (payParam.getPayChannel().equals("wx_pub")) {
+            //微信支付则获取openId
+            openId = getOpenId(payParam.getCode());
+        }
+        expendParams.put("open_id", openId);
+        expendParams.put("is_raw", "1");
+        expendParams.put("callback_url", payParam.getReturnUrl());
+        expendParams.put("limit_pay", "1");
+        return expendParams;
+    }
+
+    private String getOpenId(String code) throws Exception {
+        String openId;
+        if (code == null || code.isEmpty()) {
+            throw new BizException("微信支付请先授权");
+        }
+        String wxMpOAuth2AccessTokenUrl = String.format(ConfigInit.wxMpOAuth2AccessTokenUrl, ConfigInit.wxAppId, ConfigInit.wxAppSecret, code);
+        Map<String, String> weChatRes = JSON.parseObject(HttpUtil.get(wxMpOAuth2AccessTokenUrl, new HashMap<>()), Map.class);
+        if (!weChatRes.containsKey("openid")) {
+            throw new BizException("授权失败,请重新授权");
+        }
+        openId = weChatRes.get("openid");
+        return openId;
+    }
+
+    private Map<String, Object> getPaymentParam(PaymentParam payParam) {
+        Map<String, Object> paymentParams = new HashMap<>();
+        paymentParams.put("app_id", ConfigInit.appId);
+        paymentParams.put("order_no", payParam.getOrderNo());
+        paymentParams.put("pay_channel", payParam.getPayChannel());
+        paymentParams.put("pay_amt", payParam.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
+        paymentParams.put("goods_title", payParam.getOrderSubject());
+        paymentParams.put("goods_desc", payParam.getOrderBody());
+        paymentParams.put("pay_mode", "delay");
+        return paymentParams;
+    }
+
+    static class PaymentParam {
+        private BigDecimal amount;
+        private String orderNo;
+        private String payChannel;
+        private String returnUrl;
+        private String orderSubject;
+        private String orderBody;
+        private String sign;
+        private String code;
+        private String platform;
+
+        PaymentParam(BigDecimal amount, String orderNo, String payChannel, String returnUrl, String orderSubject,
+                     String orderBody, String sign, String code, String platform) {
+            this.amount = amount;
+            this.orderNo = orderNo;
+            this.payChannel = payChannel;
+            this.returnUrl = returnUrl;
+            this.orderSubject = orderSubject;
+            this.orderBody = orderBody;
+            this.sign = sign;
+            this.code = code;
+            this.platform = platform;
+        }
+
+        public BigDecimal getAmount() {
+            return amount;
+        }
+
+        public void setAmount(BigDecimal amount) {
+            this.amount = amount;
+        }
+
+        public String getOrderNo() {
+            return orderNo;
+        }
+
+        public void setOrderNo(String orderNo) {
+            this.orderNo = orderNo;
+        }
+
+        public String getPayChannel() {
+            return payChannel;
+        }
+
+        public void setPayChannel(String payChannel) {
+            this.payChannel = payChannel;
+        }
+
+        public String getReturnUrl() {
+            return returnUrl;
+        }
+
+        public void setReturnUrl(String returnUrl) {
+            this.returnUrl = returnUrl;
+        }
+
+        public String getOrderSubject() {
+            return orderSubject;
+        }
+
+        public void setOrderSubject(String orderSubject) {
+            this.orderSubject = orderSubject;
+        }
+
+        public String getOrderBody() {
+            return orderBody;
+        }
+
+        public void setOrderBody(String orderBody) {
+            this.orderBody = orderBody;
+        }
+
+        public String getSign() {
+            return sign;
+        }
+
+        public void setSign(String sign) {
+            this.sign = sign;
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public void setCode(String code) {
+            this.code = code;
+        }
+
+        public String getPlatform() {
+            return platform;
+        }
+
+        public void setPlatform(String platform) {
+            this.platform = platform;
+        }
+    }
+
+}

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

@@ -127,7 +127,6 @@ public class PlatformServeServiceImpl extends ServiceImpl<PlatformServeDao, Plat
         return platformServeDetailDao.queryDetailById(id);
     }
 
-
     private PlatformServeServiceInfo getServeInfo(PlatformServeDto obj) {
         List<PlatformServeDetail> detailList = getDetailList(obj);
 
@@ -177,7 +176,6 @@ public class PlatformServeServiceImpl extends ServiceImpl<PlatformServeDao, Plat
         }
     }
 
-
     private List<PlatformServeDetail> getDetailList(PlatformServeDto obj) {
         return Optional.ofNullable(obj)
                 .filter(o -> CollectionUtils.isNotEmpty(obj.getDetailList()))

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

@@ -775,7 +775,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         if(!CollectionUtils.isEmpty(organsNewCloudStudyNumMapList)){
             organsNewCloudStudyNumMap = MapUtil.convertIntegerMap(organsNewCloudStudyNumMapList);
         }
-        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
+        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM, TenantContextHolder.getTenantId());
         Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 
         Integer tenantId = TenantContextHolder.getTenantId();
@@ -887,7 +887,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             organsNewCloudStudyNumMap = MapUtil.convertIntegerMap(organsNewCloudStudyNumMapList);
         }
 
-        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
+        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM, queryInfo.getTenantId());
         Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 
         List<EduOrganStudentDataDto> result = new ArrayList<>();

+ 95 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ym.mec.biz.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.biz.dal.dao.TenantAssetsInfoDao;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.TenantAssetsInfo;
+import com.ym.mec.biz.dal.entity.TenantConfig;
+import com.ym.mec.biz.dal.entity.TenantConfigDetail;
+import com.ym.mec.biz.dal.entity.TenantConfigDetail.CloudRoomRule;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.service.TenantAssetsInfoService;
+import com.ym.mec.biz.service.TenantConfigService;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.filters.TenantIdThreadLocal;
+import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * 机构资产信息(TenantAssetsInfo)表服务实现类
+ *
+ * @author hgw
+ * @since 2021-12-22 14:27:02
+ */
+@Service("tenantAssetsInfoService")
+public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao, TenantAssetsInfo> implements TenantAssetsInfoService {
+
+    private final static Logger log = LoggerFactory.getLogger(TenantAssetsInfoServiceImpl.class);
+
+    @Autowired
+    private TenantConfigService tenantConfigService;
+
+    /**
+     * 排课扣费计算
+     * 1.线上排课计算出的总价格不能超过账户余额(注意多人同时操作账户余额多扣问题)
+     * 2.若符合规则冻结部分账户
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void courseDeductionRules(List<CourseSchedule> dto) {
+        dto = Optional.ofNullable(dto)
+                .filter(CollectionUtils::isNotEmpty)
+                .orElseThrow(() -> new BizException("请传入课程表参数!"))
+                .stream()
+                .filter(c -> c.getTeachMode().equals(TeachModeEnum.ONLINE))
+                .collect(Collectors.toList());
+
+        Integer tenantId = TenantContextHolder.getTenantId();
+        TenantConfig tenantConfig = tenantConfigService.getOne(new WrapperUtil<TenantConfig>()
+                .hasEq("tenant_id_", tenantId).queryWrapper());
+        if (Objects.isNull(tenantConfig)) {
+            throw new BizException("未查询到机构云教室规则信息!");
+        }
+        //获取云教室规则
+        Map<String, BigDecimal> rule = Optional.ofNullable(tenantConfig.getConfig())
+                .map(c -> JSON.parseObject(c, TenantConfigDetail.class))
+                .map(TenantConfigDetail::getCloud_room_rule)
+                .map(CloudRoomRule::getCloud_room_config)
+                .orElseThrow(() -> new BizException("未查询到机构云教室规则!"));
+        BigDecimal total = BigDecimal.ZERO;
+//        dto.forEach(course -> {
+//            Integer peopleNum = course.getPeopleNum();
+//            BigDecimal minutePrice = rule.get(String.valueOf(peopleNum));
+//            BigDecimal duration = BigDecimal.valueOf(course.getCourseDuration());
+//            BigDecimal coursePrice = minutePrice.multiply(duration, new MathContext(2, RoundingMode.HALF_UP));
+//
+//        });
+
+        System.out.println(1);
+
+        TenantAssetsInfo assetsInfo = this.getOne(new WrapperUtil<TenantAssetsInfo>()
+                .hasEq("tenant_id_", tenantId).queryWrapper());
+        if (Objects.isNull(assetsInfo)) {
+            throw new BizException("未查询到该机构的账户资产信息!");
+        }
+    }
+
+
+}
+

+ 81 - 47
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -8,6 +8,7 @@ import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysRole;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.OrganizationDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.TenantInfoDao;
@@ -74,6 +75,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private SysConfigDao sysConfigDao;
     @Autowired
     private TenantOrderRecordService tenantOrderRecordService;
+    @Autowired
+    private TenantAssetsInfoService assetsInfoService;
 
     /**
      * 新增机构
@@ -103,20 +106,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                 tenantProductInfoService::addTenantProduct);
         //添加机构配置
         setIdByApply(tenantId, dto.getConfig(), dto.getConfig()::setTenantId, tenantConfigService::addConfig);
-        //创建一个和机构同名称的“分部”
-        createOrg(tenantInfo, dto.getAreaId());
-    }
-
-    //创建一个和机构同名称的“分部”
-    private void createOrg(TenantInfo tenantInfo, Integer areaId) {
-        Organization organization = new Organization();
-        organization.setName(tenantInfo.getName());
-        organization.setDelFlag(YesOrNoEnum.NO);
-        organization.setGradeType(GradeTypeEnum.SIX_PLUS);
-        organization.setCreateTime(new Date());
-        organization.setTenantId(tenantInfo.getId());
-        organization.setAreaId(areaId);
-        organizationDao.insert(organization);
     }
 
     /**
@@ -151,8 +140,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             //校验营业执照信息
             checkTsign(dto.getTsignCode());
             //修改产品
-            setIdByApply(tenantId, dto.getProductInfo(), dto.getProductInfo()::setTenantId,
-                    tenantProductInfoService::updateTenantProduct);
+            if (Objects.nonNull(dto.getProductInfo())) {
+                setIdByApply(tenantId, dto.getProductInfo(), dto.getProductInfo()::setTenantId,
+                        tenantProductInfoService::updateTenantProduct);
+            }
         }
 
         Date now = new Date();
@@ -162,7 +153,9 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         this.updateById(tenantInfo);
 
         //修改机构配置
-        setIdByApply(tenantId, dto.getConfig(), dto.getConfig()::setTenantId, tenantConfigService::updateConfig);
+        if (Objects.nonNull(dto.getConfig())) {
+            setIdByApply(tenantId, dto.getConfig(), dto.getConfig()::setTenantId, tenantConfigService::updateConfig);
+        }
     }
 
     /**
@@ -246,13 +239,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         Integer tenantId = tenantInfo.getId();
         SysUser user = sysUserFeignService.queryUserByMobile(tenantInfo.getPhone());
         if (Objects.nonNull(user)) {
-            return;
+            if (user.getUserType().contains(SysUserType.SYSTEM.getCode())) {
+                return;
+            }
         }
+
         //防止重复点击 加锁
         String key = "Tenant_First_Open:" + tenantId;
         RBucket<Object> bucket = redissonClient.getBucket(key);
         //原子操作 抢锁成功为true
-        if (!bucket.trySet(tenantId, 3L, TimeUnit.MINUTES)) {
+        if (!bucket.trySet(tenantId, 1L, TimeUnit.MINUTES)) {
             throw new BizException("机构正在开通中请勿频繁操作");
         }
         //获取产品信息得到服务id
@@ -268,12 +264,22 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         }
         //拆分菜单获取菜单ID
         List<Integer> collectMenuId = getMenuId(menuIdList);
+        //创建一个和机构同名称的“分部”
+        Integer orgId = createOrg(tenantInfo);
         //建立角色
         Integer roleId = createRole(tenantInfo);
-        //建立角色和菜单关系数据
-        employeeService.batchInsertRoleMenu(roleId, collectMenuId, tenantId);
         // 创建账号、用户信息、用户和角色关系
-        createUser(tenantInfo, Lists.newArrayList(roleId));
+        createUser(tenantInfo, orgId, Lists.newArrayList(roleId));
+        //建立角色和菜单关系数据
+        Lists.partition(collectMenuId, 50)
+                .forEach(idList -> employeeService.batchInsertRoleMenu(roleId, idList, tenantId));
+        //创建资产信息
+        TenantAssetsInfo assetsInfo = new TenantAssetsInfo();
+        assetsInfo.setTenantId(tenantId);
+        assetsInfo.setBalance(BigDecimal.ZERO);
+        assetsInfo.setFrozenAmount(BigDecimal.ZERO);
+        assetsInfo.setCreatedTime(new Date());
+        assetsInfoService.save(assetsInfo);
     }
 
     //拆分菜单获取菜单ID
@@ -294,28 +300,42 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         sysRole.setCreateTime(new Date());
         sysRole.setDelFlag("0");
         sysRole.setTenantId(tenantInfo.getId());
-        Organization organization = organizationDao.getByName(tenantInfo.getName(), tenantInfo.getId());
-        sysRole.setOrganId(organization.getId());
         employeeService.insertSysRole(sysRole);
         return sysRole.getId();
     }
 
     //创建账号、用户信息、用户和角色关系
-    private void createUser(TenantInfo tenantInfo, List<Integer> roles) {
+    private void createUser(TenantInfo tenantInfo, Integer orgId, List<Integer> roles) {
         Employee e = new Employee();
+        e.setTenantId(tenantInfo.getId());
         e.setPhone(tenantInfo.getPhone());
         e.setRealName(tenantInfo.getContacts());
         e.setJobNature(JobNatureEnum.FULL_TIME);
         e.setEntryDate(LocalDate.now().toDate());
         e.setRoles(roles);
         e.setRoleIds(roles);
+        e.setOrganIdList(String.valueOf(orgId));
         try {
+            log.info("createUser >>>> {}", e);
             employeeService.add(e);
         } catch (Exception ex) {
             throw new BizException("开通账号信息异常!");
         }
     }
 
+    //创建一个和机构同名称的“分部”
+    private Integer createOrg(TenantInfo tenantInfo) {
+        Organization organization = new Organization();
+        organization.setName(tenantInfo.getName());
+        organization.setDelFlag(YesOrNoEnum.NO);
+        organization.setGradeType(GradeTypeEnum.SIX_PLUS);
+        organization.setCreateTime(new Date());
+        organization.setTenantId(tenantInfo.getId());
+        organization.setAreaId(tenantInfo.getAreaId());
+        organizationDao.insert(organization);
+        return organization.getId();
+    }
+
     /**
      * 分页查询
      *
@@ -335,9 +355,9 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     }
 
     /**
-     * 机构缴费
+     * 机构开通缴费
      */
-    public Map<String, Object> pay(Integer tenantId) throws Exception {
+    public Map<String, Object> tenantOpenPay(Integer tenantId) throws Exception {
         TenantInfo tenantInfo = Optional.ofNullable(tenantId)
                 .map(baseMapper::selectById)
                 .orElseThrow(() -> new BizException("未查询到机构信息!"));
@@ -345,7 +365,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         RBucket<Object> bucket = redissonClient.getBucket(key);
         //原子操作 抢锁成功为true
         if (!bucket.trySet(tenantId, 10, TimeUnit.SECONDS)) {
-            if(tenantInfo.getPayState() == 1){
+            if (tenantInfo.getPayState() == 1) {
                 throw new BizException("已缴费请勿重复缴费!");
             }
             throw new BizException("该机构数正在缴费中请勿频繁操作");
@@ -357,11 +377,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         String orderNo = idGenerator.generatorId("payment") + "";
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_OPEN;
-        //获取分部信息
-        Organization organization = organizationDao.getByName(tenantInfo.getName(), tenantId);
-        if (Objects.isNull(organization)) {
-            throw new BizException("未查询到机构分部信息!");
-        }
         Map<String, Object> result = new HashMap<>();
         int orderState = 0;
         //消费大于0元则拉起支付
@@ -386,13 +401,12 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             result.put("payMap", payMap);
         }
         createOrderRecord(tenantId, productInfo.getPayAmount(), orderNo, tenantEnum, orderState);
-        log.info("tenant pay >>>>> " + JSON.toJSONString(result));
+        log.info("tenant pay >>>>> {} ", result);
         return result;
     }
 
     //生成订单
     private void createOrderRecord(Integer tenantId, BigDecimal payAmount, String orderNo, TenantOrderRecordEnum tenantEnum, Integer orderState) {
-        LocalDateTime now = LocalDateTime.now();
         TenantOrderRecord record = new TenantOrderRecord();
         record.setTenantId(tenantId);
         record.setOrderNo(orderNo);
@@ -401,8 +415,11 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         record.setExpectAmount(payAmount);
         record.setActualAmount(payAmount);
         record.setOrderState(orderState);
-        record.setPayDate(now.toLocalDate().toDate());
-        record.setPayTime(now.toDate());
+        LocalDateTime now = LocalDateTime.now();
+        if (orderState == 1) {
+            record.setPayDate(now.toLocalDate().toDate());
+            record.setPayTime(now.toDate());
+        }
         record.setCreatedTime(now.toDate());
         tenantOrderRecordService.save(record);
     }
@@ -415,19 +432,21 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      */
     @Override
     public Msg orderNotify(Msg msg) {
-        log.info("tenant orderNotify >>>>> " + msg.toString());
+        log.info("tenant orderNotify >>>>> {}", msg);
         msg.setMsg("fail");
         Map<String, String> notifyMap = JSON.parseObject(msg.getResponseParameters(), Map.class);
         String orderNo = notifyMap.get("merMerOrderNo");
         TenantOrderRecord record = tenantOrderRecordService.getOne(new WrapperUtil<TenantOrderRecord>()
                 .hasEq("order_no_", orderNo).queryWrapper());
-        record.setTransNo(notifyMap.get("orderNo"));
         String channelType = notifyMap.get("channelType").equals("1") ? "WXPay" : (notifyMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
         record.setPayChannel(channelType);
         //支付中订单存在,更新状态 tradeState 88就是正确的 其他错误的
         if (msg.getResponseType().equals("1") && notifyMap.size() > 0 && msg.getCode().equals("88")) {
             // notifyMap.put("totalMoney", notifyMap.get("payAmount"));
+            LocalDateTime now = LocalDateTime.now();
             record.setOrderState(1);
+            record.setPayDate(now.toLocalDate().toDate());
+            record.setPayTime(now.toDate());
             msg.setCode("000000");
             msg.setMsg("success");
             if (TenantOrderRecordEnum.TENANT_OPEN.getCode().equals(record.getOrderType())) {
@@ -437,9 +456,9 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             //支付失败
             record.setOrderState(2);
         }
-        tenantOrderRecordService.update(record, new QueryWrapper<TenantOrderRecord>()
-                .eq("order_no_", record.getOrderNo()));
-        log.info("tenant orderNotify return>>>>> " + msg.toString());
+        log.info("tenant orderNotify return>>>>> {}", record);
+        tenantOrderRecordService.updateById(record);
+        log.info("tenant orderNotify return>>>>> {}", msg);
         return msg;
     }
 
@@ -447,12 +466,21 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * 校验手机号
      */
     private void checkPhone(TenantInfoDto dto) {
-        SysUser sysUser = Optional.ofNullable(dto)
+        //防止重复点击 加锁
+        String key = "Tenant_First_Add:" + dto.getPhone();
+        RBucket<Object> bucket = redissonClient.getBucket(key);
+        //原子操作 抢锁成功为true
+        if (!bucket.trySet(dto.getPhone(), 1L, TimeUnit.MINUTES)) {
+            throw new BizException("同一个手机号请勿频繁操作!");
+        }
+        SysUser sysUser = Optional.of(dto)
                 .map(TenantInfoDto::getPhone)
                 .map(sysUserFeignService::queryUserByMobile)
                 .orElse(null);
         if (Objects.nonNull(sysUser)) {
-            throw new BizException("该手机号已被注册!");
+            if (sysUser.getUserType().contains(SysUserType.SYSTEM.getCode())) {
+                throw new BizException("该手机号已被注册!");
+            }
         }
     }
 
@@ -465,9 +493,15 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * @param action    需要执行的操作
      */
     private <T> void setIdByApply(Integer tenantId, T clazz, Consumer<Integer> setOption, Consumer<T> action) {
-        Optional.ofNullable(tenantId)
-                .ifPresent(setOption);
-        action.accept(clazz);
+        Optional.ofNullable(clazz)
+                .filter(c -> Objects.nonNull(setOption))
+                .filter(c -> Objects.nonNull(action))
+                .filter(c -> Objects.nonNull(tenantId))
+                .map(c -> {
+                    setOption.accept(tenantId);
+                    return c;
+                })
+                .ifPresent(action);
     }
 
     /**

+ 63 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java

@@ -1,29 +1,30 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.TenantOrderRecordDao;
 import com.ym.mec.biz.dal.dto.TenantOrderRecordDto;
-import com.ym.mec.biz.dal.entity.PlatformServe;
-import com.ym.mec.biz.dal.entity.PlatformServeDetail;
-import com.ym.mec.biz.dal.entity.TenantOrderRecord;
-import com.ym.mec.biz.dal.entity.TenantProductInfo;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
 import com.ym.mec.biz.dal.enums.TenantOrderRecordEnum;
-import com.ym.mec.biz.service.PlatformServeDetailService;
-import com.ym.mec.biz.service.PlatformServeService;
-import com.ym.mec.biz.service.TenantOrderRecordService;
-import com.ym.mec.biz.service.TenantProductInfoService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.thirdparty.adapay.Payment;
+import org.apache.commons.lang3.StringUtils;
+import org.joda.time.LocalDateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 机构付款记录表(TenantOrderRecord)表服务实现类
@@ -41,6 +42,8 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
     private PlatformServeService platformServeService;
     @Autowired
     private PlatformServeDetailService platformServeDetailService;
+    @Autowired
+    private TenantInfoService tenantInfoService;
 
     @Override
     public PageInfo<TenantOrderRecord> queryPage(TenantOrderRecordDto dto) {
@@ -51,10 +54,43 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         return PageUtil.pageInfo(baseMapper.queryPage(pageInfo, dto));
     }
 
+    public static final String PAYMENT_ID_NOT_EXISTS = "payment_id_not_exists";
+
     @Override
     public Map<String, Object> checkTenantOrder(String orderNo) {
         TenantOrderRecord orderRecord = this.getOne(new WrapperUtil<TenantOrderRecord>()
                 .hasEq("order_no_", orderNo).queryWrapper());
+        if (StringUtils.equals(orderRecord.getPaymentChannel(), PaymentChannelEnum.ADAPAY.getCode())) {
+            Map<String, Object> payment;
+            try {
+                payment = Payment.queryPayment(orderRecord.getTransNo());
+                log.info("checkTenantOrder  payment >>>>> {}", payment);
+                boolean flag = false;
+                if (Objects.nonNull(payment.get("error_code"))) {
+                    if (!PAYMENT_ID_NOT_EXISTS.equals(payment.get("error_code"))) {
+                        //确保订单已经创建
+                        flag = true;
+                    }
+                } else {
+                    //没有异常
+                    flag = true;
+                }
+                log.info("checkTenantOrder  payment >>>>> {} flag {}", payment, flag);
+                //确保订单已经创建 再 判断状态是成功还是失败
+                if (flag && Objects.nonNull(payment.get("status"))) {
+                    String status = (String) payment.get("status");
+                    if (status.equals("succeeded")) {
+                        orderRecord.setOrderState(1);
+                    } else if (status.equals("failed")) {
+                        orderRecord.setOrderState(2);
+                    }
+                }
+                log.info("checkTenantOrder  orderRecord >>>>> {}", JSON.toJSONString(orderRecord));
+            } catch (Exception e) {
+                log.error("checkTenantOrder  payment error>>>>> {}", JSON.toJSONString(orderRecord));
+            }
+        }
+
         //返回
         Map<String, Object> result = new HashMap<>();
         result.put("groupType", orderRecord.getOrderType());
@@ -68,7 +104,9 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         Map<String, Object> detail = new HashMap<>();
         result.put("detail", detail);
 
+        log.info("checkTenantOrder  getOrderState>>>>> {}", JSON.toJSONString(orderRecord));
         getOrderState(orderRecord, result);
+        log.info("checkTenantOrder  result >>>>> {}", result);
         return result;
     }
 
@@ -83,9 +121,16 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
                     tenantOrderSuccess(orderRecord, detail);
                 }
                 code = DealStatusEnum.SUCCESS.getCode();
+                LocalDateTime now = LocalDateTime.now();
+                orderRecord.setPayDate(now.toLocalDate().toDate());
+                orderRecord.setPayTime(now.toDate());
+                //修改流水
+                baseMapper.updateById(orderRecord);
                 break;
             case 2:
                 code = DealStatusEnum.FAILED.getCode();
+                //修改流水
+                baseMapper.updateById(orderRecord);
                 break;
             default:
                 code = DealStatusEnum.ING.getCode();
@@ -105,7 +150,16 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
                 .hasEq("id_", productInfo.getServeDetailId()).queryWrapper());
         detail.put("platformServeName", platformServe.getName());
         detail.put("mode", serveDetail.getMode());
-        detail.put("num",productInfo.getExpiryCount());
+        detail.put("num", productInfo.getExpiryCount());
+
+        TenantInfo tenantInfo = new TenantInfo();
+        tenantInfo.setId(orderRecord.getTenantId());
+        tenantInfo.setPayState(1);
+        tenantInfoService.updateById(tenantInfo);
+
+        productInfo.setPayDate(new Date());
+        productInfo.setTenantId(orderRecord.getTenantId());
+        tenantProductInfoService.updateById(productInfo);
     }
 
 }

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

@@ -72,7 +72,7 @@
         FROM (SELECT * FROM charge_type WHERE del_flag_ = 0 <include refid="global.limit"/>) ct
         LEFT JOIN charge_type_subject_mapper ctsm ON ct.id_ = ctsm.charge_type_id_
         LEFT JOIN `subject` s ON ctsm.subject_id_ = s.id_
-        where tenant_id_ = #{tenantId}
+        where ct.tenant_id_ = #{tenantId}
         ORDER BY ct.update_time_
     </select>
 

+ 6 - 9
mec-biz/src/main/resources/config/mybatis/HfMemberMapper.xml

@@ -26,6 +26,7 @@
         <result column="route_organ_id_" property="routeOrganId"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+		<result column="tenant_id_" property="tenantId" />
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
@@ -33,7 +34,7 @@
         business_scope_, legal_person_, legal_cert_id_, legal_cert_id_expires_, legal_mp_,
         address_, zip_code_, card_no_,
         bank_code_,settle_account_id_,status_,month_max_receipt_,route_member_id_,route_organ_id_, create_time_,
-        update_time_
+        update_time_,tenant_id_
     </sql>
     <select id="get" parameterType="java.lang.Integer" resultMap="hfMember">
         <!--@mbg.generated-->
@@ -55,13 +56,13 @@
         business_scope_, legal_person_, legal_cert_id_,
         legal_cert_id_expires_, legal_mp_, address_,
         zip_code_, card_no_, bank_code_,status_,
-        create_time_, update_time_)
+        create_time_, update_time_,tenant_id_)
         values (#{name}, #{memberId}, #{provCode},
         #{areaCode}, #{socialCreditCode}, #{socialCreditCodeExpires},
         #{businessScope}, #{legalPerson}, #{legalCertId},
         #{legalCertIdExpires}, #{legalMp}, #{address},
         #{zipCode}, #{cardNo}, #{bankCode},#{status},
-        #{createTime}, #{updateTime})
+        #{createTime}, #{updateTime},#{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.HfMember">
         <!--@mbg.generated-->
@@ -137,7 +138,7 @@
                 update_time_ = #{updateTime},
             </if>
         </set>
-        where id_ = #{id,jdbcType=INTEGER}
+        where id_ = #{id,jdbcType=INTEGER} and tenant_id_ = #{tennatId}
     </update>
 
     <!-- 分页查询 -->
@@ -150,6 +151,7 @@
 
     <sql id="queryPageSql">
         <where>
+        	tenant_id_ = #{tenantId}
             <if test="name != null">
                 AND name_ LIKE CONCAT( '%', #{name}, '%' )
             </if>
@@ -182,9 +184,4 @@
         LIMIT 1
     </select>
 
-    <select id="getNeedRouteMerNos" resultMap="hfMember">
-        SELECT *
-        FROM hf_member
-        WHERE month_max_receipt_ > 0
-    </select>
 </mapper>

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

@@ -12,6 +12,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="del_flag_" property="delFlag" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -21,7 +22,7 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="HotWordsLabel">
-		SELECT * FROM hot_words_label ORDER BY id_
+		SELECT * FROM hot_words_label where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
@@ -31,28 +32,28 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO hot_words_label (id_,name_,create_time_,update_time_,del_flag_) VALUES(#{id},#{name},#{createTime},NOW(),#{delFlag})
+		INSERT INTO hot_words_label (id_,name_,create_time_,update_time_,del_flag_,tenant_id_) VALUES(#{id},#{name},#{createTime},NOW(),#{delFlag},#{tenantId})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.HotWordsLabel">
 		UPDATE hot_words_label <set>
-<if test="delFlag != null">
-del_flag_ = #{delFlag},
-</if>
-<if test="id != null">
-id_ = #{id},
-</if>
-<if test="updateTime != null">
-update_time_ = NOW(),
-</if>
-<if test="name != null">
-name_ = #{name},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-</set> WHERE id_ = #{id} 
+		<if test="delFlag != null">
+		del_flag_ = #{delFlag},
+		</if>
+		<if test="id != null">
+		id_ = #{id},
+		</if>
+		<if test="updateTime != null">
+		update_time_ = NOW(),
+		</if>
+		<if test="name != null">
+		name_ = #{name},
+		</if>
+		<if test="createTime != null">
+		create_time_ = #{createTime},
+		</if>
+		</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 	
 	<!-- 根据主键删除一条记录 -->
@@ -62,11 +63,11 @@ create_time_ = #{createTime},
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="HotWordsLabel" parameterType="map">
-		SELECT * FROM hot_words_label ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM hot_words_label where tenant_id_ = #{tenantId} ORDER BY id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM hot_words_label
+		SELECT COUNT(*) FROM hot_words_label where tenant_id_ = #{tenantId}
 	</select>
 </mapper>

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

@@ -19,6 +19,7 @@
 		<result column="order_type_" property="orderType"/>
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -28,7 +29,7 @@
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="IndexBaseMonthData">
-		SELECT * FROM index_base_month_data ORDER BY id_
+		SELECT * FROM index_base_month_data where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
 
 	<select id="getOrganDataWithDayAndDataType" resultMap="IndexBaseMonthData">
@@ -42,25 +43,25 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_)
-		VALUES(#{month},#{organId},#{totalNum},#{activateNum},#{percent},#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{extendInfo},NOW(),NOW())
+		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_,tenant_id_)
+		VALUES(#{month},#{organId},#{totalNum},#{activateNum},#{percent},#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{extendInfo},NOW(),NOW(),#{tenantId})
 	</insert>
 
 	<insert id="batchInsertWithDataType" parameterType="com.ym.mec.biz.dal.entity.IndexBaseMonthData" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_)
+		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_,tenant_id_)
 		VALUES
 		<foreach collection="datas" item="data" separator=",">
 			(#{data.month},#{data.organId},#{data.totalNum},#{data.activateNum},#{data.percent},
-			#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.extendInfo},NOW(),NOW())
+			#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.extendInfo},NOW(),NOW(),#{tenantId})
 		</foreach>
 	</insert>
 
 	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.IndexBaseMonthData" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_)
+		INSERT INTO index_base_month_data (month_,organ_id_,total_num_,activate_num_,percent_,data_type_,extend_info_,create_time_,update_time_,tenant_id_)
 		VALUES
 		<foreach collection="datas" item="data" separator=",">
 			(#{data.month},#{data.organId},#{data.totalNum},#{data.activateNum},#{data.percent},
-			#{data.dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.extendInfo},NOW(),NOW())
+			#{data.dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.extendInfo},NOW(),NOW(),#{tenantId})
 		</foreach>
 	</insert>
 
@@ -94,7 +95,7 @@
 			</if>
 			update_time_ = NOW()
 		</set>
-		WHERE id_ = #{id}
+		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 
 	<!-- 根据主键删除一条记录 -->
@@ -115,12 +116,12 @@
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="IndexBaseMonthData" parameterType="map">
-		SELECT * FROM index_base_month_data ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM index_base_month_data where tenant_id_ = #{tenantId} ORDER BY id_ <include refid="global.limit"/>
 	</select>
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM index_base_month_data
+		SELECT COUNT(*) FROM index_base_month_data where tenant_id_ = #{tenantId}
 	</select>
 
     <select id="getIndexBaseData" resultMap="IndexBaseMonthData">
@@ -128,6 +129,7 @@
 			month_,data_type_,SUM(total_num_) total_num_,SUM(activate_num_) activate_num_,SUM(percent_) percent_
 		FROM index_base_month_data
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="dataTypes!=null and dataTypes.size()>0">
 				AND data_type_ IN
 				<foreach collection="dataTypes" item="dataType" open="(" close=")" separator=",">
@@ -155,6 +157,7 @@
 			*
 		FROM index_base_month_data
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="dataTypes!=null and dataTypes.size()>0">
 				AND data_type_ IN
 				<foreach collection="dataTypes" item="dataType" open="(" close=")" separator=",">
@@ -185,6 +188,7 @@
 		FROM index_base_month_data
 		FORCE INDEX(data_type_, month_)
 			<where>
+				tenant_id_ = #{tenantId}
 				<if test="dataTypes!=null and dataTypes.size()>0">
 					AND data_type_ IN
 					<foreach collection="dataTypes" item="dataType" open="(" close=")" separator=",">
@@ -211,7 +215,7 @@
 		SELECT
 			*
 		FROM index_base_month_data
-		WHERE 1=1
+		WHERE tenant_id_ = #{tenantId}
 			AND data_type_ = #{dataType}
 			AND month_&gt;=#{day}
 	</select>
@@ -252,7 +256,7 @@
 			)) u
 			LEFT JOIN sys_user su ON u.user_id_ = su.id_
 		WHERE
-			del_flag_=0
+			del_flag_=0 and su.tenant_id_ = #{tenantId}
 		  	AND organ_id_ IS NOT NULL
 			AND user_type_ LIKE '%STUDENT%'
 		GROUP BY organ_id_
@@ -270,7 +274,7 @@
 			student stu
 			LEFT JOIN sys_user su ON stu.user_id_=su.id_
 		WHERE
-			su.del_flag_=0
+			su.del_flag_=0 and su.tenant_id_ = #{tenantId}
 		  AND su.organ_id_ IS NOT NULL
 		  AND su.user_type_ LIKE '%STUDENT%'
 		  AND DATE_FORMAT(stu.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
@@ -289,7 +293,7 @@
 			student stu
 			LEFT JOIN sys_user su ON stu.user_id_=su.id_
 		WHERE
-			su.del_flag_=0
+			su.del_flag_=0 and su.tenant_id_ = #{tenantId}
 		  AND su.organ_id_ IS NOT NULL
 		  AND su.user_type_ LIKE '%STUDENT%'
 		  AND DATE_FORMAT(stu.create_time_, '%Y-%m-%d')=#{dayStr}
@@ -309,7 +313,7 @@
 			LEFT JOIN sys_user su ON stu.user_id_=su.id_
 			LEFT JOIN student_payment_order spo ON stu.user_id_=spo.user_id_ AND status_='SUCCESS' AND actual_amount_>0
 		WHERE
-			su.del_flag_=0
+			su.del_flag_=0 and su.tenant_id_ = #{tenantId}
 			  AND su.organ_id_ IS NOT NULL
 			  AND su.user_type_ LIKE '%STUDENT%'
 			  AND DATE_FORMAT(stu.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
@@ -341,7 +345,7 @@
 		FROM student_extracurricular_exercises_situation_ sees
 		LEFT JOIN sys_user su ON sees.student_id_=su.id_
 		LEFT JOIN teacher tea ON sees.teacher_id_=tea.id_
-		WHERE su.del_flag_=0
+		WHERE su.del_flag_=0 and su.tenant_id_ = #{tenantId}
 		  	AND tea.job_nature_='FULL_TIME'
 			AND su.organ_id_ IS NOT NULL
 			AND DATE_FORMAT(sees.monday_, '%Y-%m-%d')&lt;=#{dayStr}
@@ -360,7 +364,7 @@
 		FROM
 			music_group mg
 		WHERE
-			mg.del_flag_ = 0
+			mg.del_flag_ = 0 and mg.tenant_id_ = #{tenantId}
 			AND mg.organ_id_ IS NOT NULL
 			AND mg.status_ = 'PROGRESS'
 			AND DATE_FORMAT(mg.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
@@ -379,7 +383,7 @@
 		FROM
 			music_group
 		WHERE
-			del_flag_ = 0
+			del_flag_ = 0 and tenant_id_ = #{tenantId}
 			AND status_ = 'PROGRESS'
 			AND organ_id_ IS NOT NULL
 			<if test="dayStr!=null and dayStr!=''">
@@ -400,7 +404,7 @@
 		FROM student_registration sr
 			LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
 		WHERE
-			mg.del_flag_ = 0
+			mg.del_flag_ = 0 and mg.tenant_id_ = #{tenantId}
 		  	AND mg.organ_id_ IS NOT NULL
 			AND mg.status_ = 'PROGRESS'
 			<if test="type==null">
@@ -434,7 +438,7 @@
 			teacher t
 			LEFT JOIN sys_user su ON su.id_ = t.id_
 		WHERE
-			su.del_flag_ = 0
+			su.del_flag_ = 0 and t.tenant_id_ = #{tenantId}
 		  	AND (t.demission_date_ IS NULl OR DATE_FORMAT(t.demission_date_, '%Y-%m-%d') &gt; #{dayStr})
 		  	<if test="isDemission==null">
 				AND su.lock_flag_ = 0
@@ -470,7 +474,7 @@
 		  	AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 			AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
-			AND m.organ_id_ IS NOT NULL AND m.pre_course_flag_ = 0
+			AND m.organ_id_ IS NOT NULL AND m.pre_course_flag_ = 0 and m.tenant_id_ = #{tenantId}
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
@@ -493,7 +497,7 @@
 		FROM
 			course_schedule m
 		WHERE
-			m.del_flag_ = 0
+			m.del_flag_ = 0 and m.tenant_id_ = #{tenantId}
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 			AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
@@ -519,7 +523,7 @@
 		FROM
 		course_schedule m
 		WHERE
-		m.del_flag_ = 0
+		m.del_flag_ = 0 and m.tenant_id_ = #{tenantId}
 		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 		AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
@@ -562,7 +566,7 @@
 		LEFT JOIN vip_group vg ON m.music_group_id_=vg.id_
 		LEFT JOIN vip_group_category vgc ON vg.vip_group_category_id_=vgc.id_
 		WHERE
-		m.del_flag_ = 0
+		m.del_flag_ = 0 and m.tenant_id_ = #{tenantId}
 		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 		AND m.organ_id_ IS NOT NULL
@@ -602,7 +606,7 @@
 			LEFT JOIN course_schedule_student_payment s ON su.id_=s.user_id_
 			LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 		WHERE
-			m.del_flag_ = 0
+			m.del_flag_ = 0 and m.tenant_id_ = #{tenantId}
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 			AND su.organ_id_ IS NOT NULL
 			AND m.group_type_ IN ('VIP', 'PRACTICE')
@@ -629,7 +633,7 @@
 			LEFT JOIN course_schedule_student_payment cssp1 ON s.user_id_=cssp1.user_id_ AND cssp1.create_time_&lt;#{dayStr}
 			LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 		WHERE
-			m.del_flag_ = 0
+			m.del_flag_ = 0 and m.tenant_id_ = #{tenantId}
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 			AND cssp1.id_ IS NULL
 			AND su.organ_id_ IS NOT NULL
@@ -654,7 +658,7 @@
 			LEFT JOIN practice_group pg ON m.music_group_id_=pg.id_ AND m.group_type_='PRACTICE'
 		WHERE
 			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
-			AND cs.organ_id_ IS NOT NULL
+			AND cs.organ_id_ IS NOT NULL and cs.tenant_id_ = #{tenantId}
 			AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 			AND m.group_type_ IN ('VIP', 'PRACTICE')
 			AND (pg.id_ IS NULL OR pg.type_='CHARGE')
@@ -680,7 +684,7 @@
 			student_pre_registration spr
 			LEFT JOIN music_group mg ON spr.music_group_id_ = mg.id_
 		WHERE
-			mg.del_flag_ = 0
+			mg.del_flag_ = 0 and mg.tenant_id_ = #{tenantId}
 			AND mg.organ_id_ IS NOT NULL
 		  	AND mg.status_ = 'PROGRESS'
 			AND DATE_FORMAT( spr.create_time_, '%Y-%m-%d' ) &lt;= #{dayStr}
@@ -702,7 +706,7 @@
 			LEFT JOIN student_pre_registration spr ON sr.user_id_ = spr.user_id_ AND sr.music_group_id_ = spr.music_group_id_
 			LEFT JOIN music_group mg ON spr.music_group_id_ = mg.id_
 		WHERE
-			mg.del_flag_ = 0
+			mg.del_flag_ = 0 and mg.tenant_id_ = #{tenantId}
 			AND mg.organ_id_ IS NOT NULL
 			AND mg.status_ = 'PROGRESS'
 			<if test="paymentStatus==null">
@@ -727,7 +731,7 @@
 			LEFT JOIN student_pre_registration spr ON sr.user_id_ = spr.user_id_ AND sr.music_group_id_ = spr.music_group_id_
 			LEFT JOIN music_group mg ON spr.music_group_id_ = mg.id_
 		WHERE
-			mg.del_flag_ = 0
+			mg.del_flag_ = 0 and mg.tenant_id_ = #{tenantId}
 			AND mg.organ_id_ IS NOT NULL
 			AND mg.status_ = 'PROGRESS'
 			<if test="paymentStatus==null">
@@ -748,7 +752,7 @@
 		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 		LEFT JOIN course_schedule cs ON cs.class_group_id_=cg.id_
 		WHERE
-		cg.type_ IN ('HIGH', 'HIGH_ONLINE')
+		cg.type_ IN ('HIGH', 'HIGH_ONLINE') and cg.tenant_id_ = #{tenantId}
 		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 		AND cs.del_flag_=0
 		AND cs.status_='NOT_START'
@@ -778,7 +782,7 @@
 		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 		LEFT JOIN course_schedule cs ON cs.class_group_id_=cg.id_
 		WHERE
-		cg.type_ IN ('HIGH', 'HIGH_ONLINE') AND cs.pre_course_flag_ = 0
+		cg.type_ IN ('HIGH', 'HIGH_ONLINE') AND cs.pre_course_flag_ = 0 and cg.tenant_id_ = #{tenantId}
 		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 		AND cs.del_flag_=0
 		AND cs.status_='NOT_START'
@@ -804,7 +808,7 @@
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 		WHERE
-		cg.type_ IN ('HIGH_ONLINE')
+		cg.type_ IN ('HIGH_ONLINE') and cg.tenant_id_ = #{tenantId}
 		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 		<if test="organIds!=null and organIds.size()>0">
 			AND mg.organ_id_ IN
@@ -826,7 +830,7 @@
 		LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
 		LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_ AND mgpcd.user_id_ = sr.user_id_
 		WHERE
-		mg.status_ = 'PROGRESS'
+		mg.status_ = 'PROGRESS' and mg.tenant_id_ = #{tenantId}
 		AND ((mgpc.member_rank_setting_id_ IS NOT NULL AND (sr.membership_end_time_ &lt; NOW() OR sr.membership_end_time_ IS NULL)) OR mgpc.member_rank_setting_id_ IS NULL)
 		<if test="noPaymentType==null or noPaymentType==0">
 			AND DATE_FORMAT(NOW(),'%Y-%m-%d') > DATE_FORMAT(mgpc.deadline_payment_date_,'%Y-%m-%d')
@@ -856,7 +860,7 @@
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
 		LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
 		WHERE
-		mg.status_ = 'PROGRESS'
+		mg.status_ = 'PROGRESS' and mg.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(NOW(),'%Y-%m-%d') > mgpc.deadline_payment_date_
 		AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpcd.expect_amount_ > 0 AND mgpc.batch_no_ IS NOT NULL AND mgpc.pay_user_type_ = 'STUDENT'
 		<if test="educationUserId != null">
@@ -879,7 +883,7 @@
 			LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
 			LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
 		WHERE
-			mg.status_ = 'PROGRESS'
+			mg.status_ = 'PROGRESS' and mg.tenant_id_ = #{tenantId}
 			AND DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(mgpc.payment_valid_start_date_,'%Y-%m-%d')
 			AND mgpcd.payment_status_ = 'NON_PAYMENT'
 			<if test="educationUserId != null">
@@ -897,7 +901,7 @@
 		SELECT mgq.id_ FROM music_group_quit mgq
 			LEFT JOIN music_group mg ON mgq.music_group_id_=mg.id_
 		WHERE mg.status_='PROGRESS'
-		  AND mgq.status_='PROCESSING'
+		  AND mgq.status_='PROCESSING' and mgq.tenant_id_ = #{tenantId}
 		<if test="educationUserId != null">
 			AND mg.educational_teacher_id_ = #{educationUserId}
 		</if>
@@ -916,7 +920,7 @@
 		FROM music_group_quit mgq
 		LEFT JOIN music_group mg ON mgq.music_group_id_=mg.id_
 		WHERE mg.status_='PROGRESS'
-		AND mgq.status_='PROCESSING'
+		AND mgq.status_='PROCESSING' mgq.and tenant_id_ = #{tenantId}
 		<if test="educationUserId != null">
 			AND mg.educational_teacher_id_ = #{educationUserId}
 		</if>
@@ -939,7 +943,7 @@
 			LEFT JOIN student_visit sv ON cssp.id_ = sv.object_id_
 		WHERE
 				cs.status_ = 'OVER' AND sv.id_ IS NULL AND cs.del_flag_ = 0 AND cs.class_date_ >= #{startTime} AND cs.class_date_ &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
-				AND cssp.group_type_ IN ('MUSIC','PRACTICE','VIP') AND cs.pre_course_flag_ = 0
+				AND cssp.group_type_ IN ('MUSIC','PRACTICE','VIP') AND cs.pre_course_flag_ = 0 and cssp.tenant_id_ = #{tenantId}
 			<if test="type!=null and type=='LEAVE'">
 				AND sa.status_ = 'LEAVE'
 			</if>
@@ -956,7 +960,7 @@
     <select id="getCourseTimeError" resultType="int">
 		SELECT COUNT(cs.id_) FROM course_schedule cs
 		WHERE cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 AND (cs.start_class_time_ &lt; #{courseStartTimeError} OR cs.end_class_time_ > #{courseEndTimeError})
-		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0
+		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="classGroupIds != null and classGroupIds.size() > 0">
 			AND cs.class_group_id_ IN
 			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
@@ -977,7 +981,7 @@
 		       COUNT(cs.id_) AS 'value'
 		FROM course_schedule cs
 		WHERE cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 AND cs.start_class_time_ &lt; '06:00:00'
-		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0
+		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="classGroupIds != null and classGroupIds.size() > 0">
 			AND cs.class_group_id_ IN
 			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
@@ -998,7 +1002,7 @@
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
 		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
-		WHERE ta.teacher_id_ = cs.actual_teacher_id_ AND cs.pre_course_flag_ = 0
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_ AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 		AND (((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0)))
 		AND ((ta.sign_in_status_ IS NULL AND ta.sign_out_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NULL AND ta.sign_in_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NOT NULL AND ta.sign_in_status_ IS NOT NULL))
@@ -1027,7 +1031,7 @@
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
 		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
-		WHERE ta.teacher_id_ = cs.actual_teacher_id_
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_ and cs.tenant_id_ = #{tenantId}
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01' AND cs.pre_course_flag_ = 0
 		AND (((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0)))
 		AND ((ta.sign_in_status_ IS NULL AND ta.sign_out_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NULL AND ta.sign_in_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NOT NULL AND ta.sign_in_status_ IS NOT NULL))
@@ -1051,7 +1055,7 @@
 	<select id="getNoAttendance" resultType="int">
 		SELECT COUNT(DISTINCT cs.id_) FROM course_schedule cs
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		WHERE ta.teacher_id_ = cs.actual_teacher_id_
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_ and cs.tenant_id_ = #{tenantId}
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01' AND cs.pre_course_flag_ = 0
 		AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
 		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
@@ -1076,7 +1080,7 @@
 		    COUNT(DISTINCT cs.id_) AS 'value'
 		FROM course_schedule cs
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		WHERE ta.teacher_id_ = cs.actual_teacher_id_
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_ and cs.tenant_id_ = #{tenantId}
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01' AND cs.pre_course_flag_ = 0
 		AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
 		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
@@ -1099,7 +1103,7 @@
 	<select id="queryTeacherLeave" resultType="int">
 		SELECT COUNT(DISTINCT tlr.id_) FROM teacher_leave_record tlr
 		LEFT JOIN teacher t ON t.id_ = tlr.user_id_
-		WHERE tlr.status_ = 'ING' AND DATE_FORMAT( tlr.create_time_, '%Y-%m-%d' ) >= #{startTime}
+		WHERE tlr.status_ = 'ING' AND DATE_FORMAT( tlr.create_time_, '%Y-%m-%d' ) >= #{startTime} and tlr.tenant_id_ = #{tenantId}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(t.organ_id_,#{organIdsStr})
 		</if>
@@ -1109,7 +1113,7 @@
 		LEFT JOIN teacher t ON t.id_ = tcs.user_id_
 		LEFT JOIN sys_user su ON su.id_ = tcs.user_id_
 		WHERE su.lock_flag_ = 0 AND su.del_flag_ = 0 AND t.job_nature_ = 'FULL_TIME' AND t.demission_date_ IS NULL
-		  AND t.is_settlement_salary_ = 1
+		  AND t.is_settlement_salary_ = 1 and t.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(tcs.month_,'%Y-%m') = #{monthStr} AND tcs.low_salary = 1
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(tcs.organ_id_,#{organIdsStr})
@@ -1124,7 +1128,7 @@
 		LEFT JOIN teacher t ON t.id_ = tcs.user_id_
 		LEFT JOIN sys_user su ON su.id_ = tcs.user_id_
 		WHERE su.lock_flag_ = 0 AND su.del_flag_ = 0 AND t.job_nature_ = 'FULL_TIME' AND t.demission_date_ IS NULL
-		AND t.is_settlement_salary_ = 1
+		AND t.is_settlement_salary_ = 1 and t.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(tcs.month_,'%Y-%m') = #{monthStr} AND tcs.low_salary = 1
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(tcs.organ_id_,#{organIdsStr})
@@ -1135,7 +1139,7 @@
 	<select id="queryInspectionItem" resultType="int">
 		SELECT COUNT(DISTINCT ii.id_) FROM inspection_item ii
 		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
-		WHERE ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ =''
+		WHERE ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ ='' and ii.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(ii.organ_id_,#{organIdsStr})
@@ -1151,7 +1155,7 @@
 		       COUNT(DISTINCT ii.id_) AS 'value'
 		FROM inspection_item ii
 		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
-		WHERE ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ =''
+		WHERE ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ ='' and ii.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(ii.organ_id_,#{organIdsStr})
@@ -1164,7 +1168,7 @@
 
 	<select id="queryInspectionItemPlan" resultType="int">
 		SELECT COUNT(DISTINCT iip.id_) FROM inspection_item_plan iip
-		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
+		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d') and iip.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') >= #{startTime} AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(iip.organ_id_,#{organIdsStr})
@@ -1176,7 +1180,7 @@
 			iip.organ_id_ AS 'key',
 		    COUNT(DISTINCT iip.id_) AS 'value'
 		FROM inspection_item_plan iip
-		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
+		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d') and iip.tenant_id_ = #{tenantId}
 		AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') >= #{startTime} AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(iip.organ_id_,#{organIdsStr})
@@ -1187,7 +1191,7 @@
 	<select id="queryStudentVisit" resultType="int">
 		SELECT COUNT(DISTINCT ii.id_) FROM inspection_item ii
 		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
-		WHERE ii.item_ = 'VISIT' AND ii.memo_ =''
+		WHERE ii.item_ = 'VISIT' AND ii.memo_ ='' and ii.tenant_id_ = #{tenantId}
 		AND ii.times_ > (SELECT COUNT(DISTINCT sv.id_) FROM student_visit sv
 		WHERE sv.teacher_id_ = ii.user_id_ AND DATE_FORMAT(i.month_,'%Y-%m') = DATE_FORMAT(sv.visit_time_,'%Y-%m'))
 		AND i.month_ >= #{startTime} AND i.month_ &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
@@ -1207,7 +1211,7 @@
 		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
 		WHERE ii.item_ = 'VISIT' AND ii.memo_ =''
 		AND ii.times_ > (SELECT COUNT(DISTINCT sv.id_) FROM student_visit sv
-		WHERE sv.teacher_id_ = ii.user_id_ AND DATE_FORMAT(i.month_,'%Y-%m') = DATE_FORMAT(sv.visit_time_,'%Y-%m'))
+		WHERE sv.teacher_id_ = ii.user_id_ AND DATE_FORMAT(i.month_,'%Y-%m') = DATE_FORMAT(sv.visit_time_,'%Y-%m')) and ii.tenant_id_ = #{tenantId}
 		AND i.month_ >= #{startTime} AND i.month_ &lt;= DATE_FORMAT(NOW(),'%Y-%m-%d')
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(ii.organ_id_,#{organIdsStr})
@@ -1224,7 +1228,7 @@
 		FROM
 			inspection_item_plan
 		WHERE
-			conclusion_status_ = 1 AND memo_ = '' AND DATE_FORMAT(plan_start_,'%Y-%m-%d') >= #{startTime}
+			conclusion_status_ = 1 AND memo_ = '' AND DATE_FORMAT(plan_start_,'%Y-%m-%d') >= #{startTime} and tenant_id_ = #{tenantId}
 		<if test="organIds!=null and organIds.size()>0">
 			AND organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1240,7 +1244,7 @@
 		FROM
 		inspection_item_plan
 		WHERE
-		conclusion_status_ = 1 AND memo_ = '' AND DATE_FORMAT(plan_start_,'%Y-%m-%d') >= #{startTime}
+		conclusion_status_ = 1 AND memo_ = '' AND DATE_FORMAT(plan_start_,'%Y-%m-%d') >= #{startTime} and tenant_id_ = #{tenantId}
 		<if test="organIds!=null and organIds.size()>0">
 			AND organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1261,7 +1265,7 @@
 			LEFT JOIN `subject` sub ON sr.actual_subject_id_=sub.id_
 			LEFT JOIN class_group_student_mapper cgsm ON cgsm.group_type_='MUSIC' AND cgsm.music_group_id_=sr.music_group_id_ AND cgsm.user_id_=sr.user_id_ AND cgsm.status_='NORMAL'
 		WHERE
-			sr.music_group_status_ = 'NORMAL'
+			sr.music_group_status_ = 'NORMAL' and sr.tenant_id_ = #{tenantId}
 			AND mg.status_ = 'PROGRESS'
 			AND cgsm.id_ IS NULL
 			AND sub.parent_subject_id_!=24
@@ -1286,7 +1290,7 @@
 		LEFT JOIN `subject` sub ON sr.actual_subject_id_=sub.id_
 		LEFT JOIN class_group_student_mapper cgsm ON cgsm.group_type_='MUSIC' AND cgsm.music_group_id_=sr.music_group_id_ AND cgsm.user_id_=sr.user_id_ AND cgsm.status_='NORMAL'
 		WHERE
-		sr.music_group_status_ = 'NORMAL'
+		sr.music_group_status_ = 'NORMAL' and sr.tenant_id_ = #{tenantId}
 		AND mg.status_ = 'PROGRESS'
 		AND cgsm.id_ IS NULL
 		AND sub.parent_subject_id_!=24
@@ -1304,7 +1308,7 @@
 
 	<select id="getFinancePayData"  resultMap="IndexBaseMonthData">
 		SELECT SUM(fe.amount_) total_num_,SUM(fe.amount_) activate_num_,SUM(fe.amount_) percent_,fe.organ_id_,#{dayStr} month_ FROM financial_expenditure fe
-		WHERE DATE_FORMAT(fe.create_time_,'%Y-%m-%d') = #{dayStr}
+		WHERE DATE_FORMAT(fe.create_time_,'%Y-%m-%d') = #{dayStr}  and fe.tenant_id_ = #{tenantId}
 		AND del_flag_ = 0 GROUP BY fe.organ_id_
 	</select>
 	<select id="getFinanceBalanceData" resultMap="IndexBaseMonthData">
@@ -1312,7 +1316,7 @@
 			   SUM(spo.balance_payment_amount_) activate_num_,
 			   SUM(spo.balance_payment_amount_) percent_,#{dayStr} month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') = #{dayStr}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') = #{dayStr}  and spo.tenant_id_ = #{tenantId}
 		GROUP BY spo.organ_id_
 	</select>
 	<select id="getFinanceActualData" resultMap="IndexBaseMonthData">
@@ -1320,14 +1324,14 @@
 			   SUM(spo.actual_amount_) activate_num_,
 			   SUM(spo.actual_amount_) percent_,#{dayStr} month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') = #{dayStr}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') = #{dayStr} and spo.tenant_id_ = #{tenantId}
 		GROUP BY spo.organ_id_
 	</select>
 
 	<select id="getFinancePayDataWithTimely"  resultMap="IndexBaseMonthData">
 		SELECT SUM(fe.amount_) total_num_,SUM(fe.amount_) activate_num_,SUM(fe.amount_) percent_,fe.organ_id_,DATE_FORMAT(fe.create_time_,'%Y-%m-%d') month_
 		FROM financial_expenditure fe
-		WHERE DATE_FORMAT(fe.create_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE DATE_FORMAT(fe.create_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and fe.tenant_id_ = #{tenantId}
 		  AND del_flag_ = 0
 			<if test="organIds!=null and organIds.size()>0">
 				AND fe.organ_id_ IN
@@ -1342,7 +1346,7 @@
 			   SUM(CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) activate_num_,
 			   SUM(CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		<if test="organIds!=null and organIds.size()>0">
 			AND spo.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1356,7 +1360,7 @@
 			   SUM(spo.actual_amount_) activate_num_,
 			   SUM(spo.actual_amount_) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		<if test="organIds!=null and organIds.size()>0">
 			AND spo.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1373,7 +1377,7 @@
 			   SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
 		CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		<if test="organIds!=null and organIds.size()>0">
 			AND spo.organ_id_ IN
 			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1390,7 +1394,7 @@
 			   SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
 		CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		<if test="orderType != null">
 			AND FIND_IN_SET(spo.type_,#{orderType})
 		</if>
@@ -1414,7 +1418,7 @@
 		SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
 		FROM student_payment_order spo
 		LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		AND spo.type_ = 'DEGREE' AND spod.type_ IN ('THEORY_COURSE','VIP')
 		<if test="organIds!=null and organIds.size()>0">
 			AND spo.organ_id_ IN
@@ -1446,7 +1450,7 @@
 							   CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_
 		   ,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_,spo.type_
 		FROM student_payment_order spo
-		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
 		AND spo.type_ NOT IN ('APPLY','RENEW','PRACTICE_GROUP_BUY','PRACTICE_GROUP_RENEW','SMALL_CLASS_TO_BUY','DEGREE')
 		<if test="organIds!=null and organIds.size()>0">
 			AND spo.organ_id_ IN
@@ -1473,6 +1477,7 @@
 
 	<sql id="queryTeacherServeInfoCondition">
 		<where>
+			 sees.tenant_id_ = #{tenantId}
 			<if test="organIds!=null and organIds.size()>0">
 				AND tea.organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1532,7 +1537,7 @@
 		SELECT COUNT(DISTINCT c.user_id_) FROM (
 		SELECT sa.user_id_ FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{format} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{format} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="organIdList != null and organIdList.size > 0">
 			AND cs.organ_id_ IN
 			<foreach collection="organIdList" open="(" close=")" item="item" separator=",">
@@ -1552,7 +1557,7 @@
 		SELECT c.organ_id_ 'key',COUNT(c.user_id_) 'value' FROM (
 		SELECT sa.user_id_,cs.organ_id_ FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= '2021-11' AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= '2021-11' AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="classGroupIds != null and classGroupIds.size() > 0">
 			AND cs.class_group_id_ IN
 			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
@@ -1574,7 +1579,7 @@
 		SELECT sa.user_id_ FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="organId != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
@@ -1607,7 +1612,7 @@
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN organization o ON o.id_ = cs.organ_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="organId != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
@@ -1633,7 +1638,7 @@
 	</select>
 	<sql id="queryStudentLeaveCourseListSql">
 		<where>
-			sa.user_id_ = #{userId} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+			sa.user_id_ = #{userId} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 			<if test="search != null and search != ''">
 				AND (cs.id_ = #{search} OR cs.actual_teacher_id_ = #{search} OR su.real_name_ LIKE CONCAT('%',#{search},'%'))
 			</if>
@@ -1675,7 +1680,7 @@
 		FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="organId != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
@@ -1708,7 +1713,7 @@
 				LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
 				LEFT JOIN sys_user su ON sr.user_id_ = su.id_
 			WHERE
-				su.del_flag_ = 0
+				su.del_flag_ = 0 and sr.tenant_id_ = #{tenantId}
 				AND mg.status_='PROGRESS'
 				AND sr.music_group_status_ = 'NORMAL'
 				<if test="dayStr!=null and dayStr!=''">
@@ -1724,7 +1729,7 @@
 				LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
 				LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
 			WHERE
-				cssp.group_type_ IN ( 'VIP', 'PRACTICE' )
+				cssp.group_type_ IN ( 'VIP', 'PRACTICE' ) and cssp.tenant_id_ = #{tenantId}
 				AND cs.status_ = 'NOT_START'
 				AND su.del_flag_ = 0
 				<if test="dayStr!=null and dayStr!=''">
@@ -1743,7 +1748,7 @@
 			COUNT(DISTINCT cto.student_id_) percent_
 		FROM cloud_teacher_order cto
 			LEFT JOIN sys_user su ON cto.student_id_=su.id_
-		WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
+		WHERE su.del_flag_=0 AND cto.status_ IN (1,2) and cto.tenant_id_ = #{tenantId}
 			<if test="dayStr!=null and dayStr!=''">
 				AND DATE(cto.create_time_)&lt;= #{dayStr}
 			</if>
@@ -1759,7 +1764,7 @@
 		COUNT(DISTINCT cto.student_id_) percent_
 		FROM cloud_teacher_order cto
 		LEFT JOIN sys_user su ON cto.student_id_=su.id_
-		WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
+		WHERE su.del_flag_=0 AND cto.status_ IN (1,2) and cto.tenant_id_ = #{tenantId}
 		<if test="dayStr!=null and dayStr!=''">
 			AND DATE(cto.create_time_)= #{dayStr}
 		</if>
@@ -1776,7 +1781,7 @@
 		FROM student stu
 		LEFT JOIN cloud_teacher_order cto ON stu.user_id_=cto.student_id_
 		LEFT JOIN sys_user su ON su.id_=stu.user_id_
-		WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL AND (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2))
+		WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL AND (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2)) and cto.tenant_id_ = #{tenantId}
 		<if test="dayStr!=null and dayStr!=''">
 			AND DATE(stu.experience_membership_start_time_)&lt;= #{dayStr}
 		</if>
@@ -1793,7 +1798,7 @@
 		FROM sys_music_compare_record smcr
 			LEFT JOIN sys_user su ON smcr.user_id_=su.id_
 			LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
-		WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
+		WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL and smcr.tenant_id_ = #{tenantId}
 			<if test="dayStr!=null and dayStr!=''">
 				AND DATE(smcr.create_time_)= #{dayStr}
 			</if>
@@ -1814,7 +1819,7 @@
 			FROM sys_music_compare_record smcr
 			LEFT JOIN sys_user su ON smcr.user_id_=su.id_
 			LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
-			WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
+			WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL and smcr.tenant_id_ = #{tenantId}
 			<if test="dayStr!=null and dayStr!=''">
 				AND DATE(smcr.create_time_) &lt;= #{dayStr}
 			</if>
@@ -1837,7 +1842,7 @@
 		FROM
 			sys_music_compare_record smcr
 			LEFT JOIN sys_user su ON smcr.user_id_ = su.id_
-		WHERE su.del_flag_ = 0
+		WHERE su.del_flag_ = 0 and smcr.tenant_id_ = #{tenantId}
 		GROUP BY user_id_
 		HAVING MIN(DATE( smcr.create_time_ ))= #{dayStr}) t
 		GROUP BY t.organ_id_
@@ -1858,7 +1863,7 @@
 		LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = s.user_id_ AND cto.status_ != 0 AND cto.active_remark_ = '202109'
 		LEFT JOIN sys_user su ON su.id_ = s.user_id_
 		LEFT JOIN organization o ON o.id_ = su.organ_id_
-		WHERE 1=1
+		WHERE  s.tenant_id_ = #{tenantId}
 		<if test="organIdList != null and organIdList.size > 0">
 			AND su.organ_id_ IN
 			<foreach collection="organIdList" open="(" close=")" item="item" separator=",">
@@ -1867,10 +1872,4 @@
 		</if>
 		GROUP BY su.organ_id_
 	</select>
-	<select id="countTotalStudentNum" resultType="java.util.Map">
-		SELECT su.organ_id_ 'key',COUNT(DISTINCT s.user_id_) 'value' FROM student s
-		LEFT JOIN sys_user su ON su.id_ = s.user_id_
-		WHERE s.count_flag_ = 1
-		GROUP BY su.organ_id_
-	</select>
 </mapper>

+ 18 - 11
mec-biz/src/main/resources/config/mybatis/IndexErrDataRecordMapper.xml

@@ -15,6 +15,7 @@
 		<result column="generate_time_" property="generateTime"/>
 		<result column="create_time_" property="createTime" />
 		<result column="deal_time_" property="dealTime" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -24,7 +25,7 @@
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="IndexErrDataRecord">
-		SELECT * FROM index_err_data_record ORDER BY id_
+		SELECT * FROM index_err_data_record where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
 
 	<!-- 向数据库增加一条记录 -->
@@ -34,16 +35,16 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO index_err_data_record (organ_id_,data_id_,data_type_,deal_user_id_,generate_time_,deal_time_,create_time_)
-		VALUES(#{organId},#{dataId},#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{dealUserId},#{generateTime},#{dealTime},NOW())
+		INSERT INTO index_err_data_record (organ_id_,data_id_,data_type_,deal_user_id_,generate_time_,deal_time_,create_time_,tenant_id_)
+		VALUES(#{organId},#{dataId},#{dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{dealUserId},#{generateTime},#{dealTime},NOW(),#{tenantId})
 	</insert>
 
 	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.IndexErrDataRecord" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO index_err_data_record (organ_id_,data_id_,data_type_,deal_user_id_,generate_time_,deal_time_,create_time_)
+		INSERT INTO index_err_data_record (organ_id_,data_id_,data_type_,deal_user_id_,generate_time_,deal_time_,create_time_,tenant_id_)
 		VALUE
 		<foreach collection="datas" item="data" separator=",">
 			(#{data.organId},#{data.dataId},#{data.dataType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.dealUserId},
-			#{data.generateTime},#{data.dealTime},NOW())
+			#{data.generateTime},#{data.dealTime},NOW(),#{data.tenantId})
 		</foreach>
 	</insert>
 
@@ -70,7 +71,7 @@
 				deal_time_ = #{dealTime},
 			</if>
 		</set>
-		WHERE id_ = #{id}
+		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 
 	<update id="batchUpdate" parameterType="com.ym.mec.biz.dal.entity.IndexErrDataRecord">
@@ -96,7 +97,7 @@
 					deal_time_ = #{data.dealTime},
 				</if>
 			</set>
-			WHERE id_ = #{data.id}
+			WHERE id_ = #{data.id} and tenant_id_ = #{data.tenantId}
 		</foreach>
 	</update>
 
@@ -116,21 +117,22 @@
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="IndexErrDataRecord" parameterType="map">
-		SELECT * FROM index_err_data_record ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM index_err_data_record where tenant_id_ = #{tenantId} ORDER BY id_ <include refid="global.limit"/>
 	</select>
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM index_err_data_record
+		SELECT COUNT(*) FROM index_err_data_record where tenant_id_ = #{tenantId}
 	</select>
 
 	<select id="countWithGenerateTime" resultType="int">
-		SELECT COUNT(id_) FROM index_err_data_record WHERE generate_time_=#{generateTime}
+		SELECT COUNT(id_) FROM index_err_data_record WHERE generate_time_=#{generateTime} and tenant_id_ = #{tenantId}
 	</select>
 
 	<select id="getWithGenerateTime" resultMap="IndexErrDataRecord">
 		SELECT * FROM index_err_data_record
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="organIds!=null and organIds.size()>0">
 				AND organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -269,6 +271,7 @@
 
 	<sql id="queryErrStringsCondition">
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="queryOrganIds!=null and queryOrganIds.size()>0">
 				AND organ_id_ IN
 				<foreach collection="queryOrganIds" item="organId" open="(" close=")" separator=",">
@@ -301,7 +304,7 @@
 	</select>
 
 	<select id="getWithOrganMonthUserStr" resultMap="IndexErrDataRecord">
-		SELECT * FROM index_err_data_record WHERE CONCAT(generate_time_, organ_id_, deal_user_id_) IN
+		SELECT * FROM index_err_data_record WHERE tenant_id_ = #{tenantId} and CONCAT(generate_time_, organ_id_, deal_user_id_) IN
 		<foreach collection="omuStrings" item="omuString" open="(" close=")" separator=",">
 			#{omuString}
 		</foreach>
@@ -336,6 +339,7 @@
 
 	<sql id="queryErrInspectionDataCondition">
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="searchType != null and searchType != ''">
 				<if test="searchType == 'MUSIC_PATROL_ITEM'">
 					irdr.data_type_ = 'MUSIC_PATROL_ITEM'
@@ -428,6 +432,7 @@
 
 	<sql id="queryErrStudentVisitCondition">
 		<where>
+			tenant_id_ = #{tenantId} and
 			irdr.data_type_ = 'STUDENT_VISIT'
 			<if test="hasDealTime!=null and hasDealTime">
 				AND irdr.deal_time_ IS NOT NULL
@@ -534,6 +539,7 @@
 	<select id="getAllDealUserIds" resultType="int">
 		SELECT DISTINCT deal_user_id_ FROM index_err_data_record
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="organIds!=null and organIds.size()>0">
 				AND organ_id_ IN
 				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -545,6 +551,7 @@
 
 	<sql id="endFindCourseSchedulesCondition">
 		<where>
+			irdr.tenant_id_ = #{tenantId}
 			<if test="searchType == 'ERR_ATTENDANCE'">
 				AND irdr.data_type_ = 'TEACHER_EXCEPTION_ATTENDANCE'
 			</if>

+ 8 - 6
mec-biz/src/main/resources/config/mybatis/InspectionItemMapper.xml

@@ -19,11 +19,12 @@
         <result column="month" property="month"/>
         <result column="organName" property="organName"/>
         <result column="userName" property="userName"/>
+		<result column="tenant_id_" property="tenantId" />
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
         id_, inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, submitted_times_,
-        memo_, operation_, create_time_, update_time_
+        memo_, operation_, create_time_, update_time_, tenant_id_
     </sql>
     <select id="get" parameterType="java.lang.Long" resultMap="InspectionItem">
         <!--@mbg.generated-->
@@ -41,10 +42,10 @@
             useGeneratedKeys="true">
         <!--@mbg.generated-->
         insert into inspection_item (inspection_id_, organ_id_, user_id_, item_, times_, planned_times_,
-        submitted_times_, memo_, operation_, create_time_, update_time_)
+        submitted_times_, memo_, operation_, create_time_, update_time_,tenant_id_)
         values (#{inspectionId}, #{organId}, #{userId}, #{item,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{times}, #{plannedTimes},
-        #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime})
+        #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime},#{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItem">
         <!--@mbg.generated-->
@@ -84,7 +85,7 @@
                 update_time_ = #{updateTime},
             </if>
         </set>
-        where id_ = #{id}
+        where id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
     <!-- 获取任务项数目及总次数 -->
     <select id="getItemCountAndTimes" resultMap="InspectionItem">
@@ -99,13 +100,13 @@
     <insert id="batchInsert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem"
             useGeneratedKeys="true">
         INSERT INTO inspection_item (inspection_id_, organ_id_, user_id_, item_, times_,operation_, create_time_,
-        update_time_)
+        update_time_,tenant_id_)
         VALUE
         <foreach collection="inspectionItems" item="inspectionItem" separator=",">
             (#{inspectionItem.inspectionId}, #{inspectionItem.organId}, #{inspectionItem.userId},
             #{inspectionItem.item,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{inspectionItem.times},
             #{inspectionItem.operation},
-            #{inspectionItem.createTime}, #{inspectionItem.updateTime})
+            #{inspectionItem.createTime}, #{inspectionItem.updateTime},#{inspectionItem.tenantId})
         </foreach>
     </insert>
 
@@ -166,6 +167,7 @@
 
     <sql id="queryPageSql">
         <where>
+        	ii.tenant_id_ = #{tenantId}
             <if test="searchType != null and searchType != ''">
                 <if test="searchType == 'INSPECTION_ITEM'">
                     AND ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ ='' AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{searchStartTime}

+ 7 - 6
mec-biz/src/main/resources/config/mybatis/InspectionItemPlanConclusionMapper.xml

@@ -13,10 +13,11 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="classInfo" property="classInfo"/>
+		<result column="tenant_id_" property="tenantId" />
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
-        id_, plan_id_,course_schedule_id_, teacher_id_, check_item_, check_conclusion_, create_time_, update_time_
+        id_, plan_id_,course_schedule_id_, teacher_id_, check_item_, check_conclusion_, create_time_, update_time_, tenant_id_
     </sql>
     <select id="get" resultMap="InspectionItemPlanConclusion">
         <!--@mbg.generated-->
@@ -34,9 +35,9 @@
             parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion" useGeneratedKeys="true">
         <!--@mbg.generated-->
         insert into inspection_item_plan_conclusion (plan_id_,course_schedule_id_, teacher_id_,check_item_,
-        check_conclusion_, create_time_,update_time_)
+        check_conclusion_, create_time_,update_time_,tenant_id_)
         values (#{planId}, #{courseScheduleId},#{teacherId}, #{checkItem}, #{checkConclusion},#{createTime},
-        #{updateTime})
+        #{updateTime},#{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion">
         <!--@mbg.generated-->
@@ -64,7 +65,7 @@
                 update_time_ = #{updateTime},
             </if>
         </set>
-        where id_ = #{id}
+        where id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
     <delete id="delByPlanIdAndCheckItem">
         DELETE
@@ -76,14 +77,14 @@
             parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion"
             useGeneratedKeys="true">
         INSERT INTO inspection_item_plan_conclusion (plan_id_,course_schedule_id_, teacher_id_, check_item_,
-        check_conclusion_,create_time_,update_time_)
+        check_conclusion_,create_time_,update_time_,tenant_id_)
         VALUE
         <foreach collection="inspectionItemPlanConclusions" item="inspectionItemPlanConclusion" separator=",">
             (#{inspectionItemPlanConclusion.planId},#{inspectionItemPlanConclusion.courseScheduleId},
             #{inspectionItemPlanConclusion.teacherId},
             #{inspectionItemPlanConclusion.checkItem},
             #{inspectionItemPlanConclusion.checkConclusion}, #{inspectionItemPlanConclusion.createTime},
-            #{inspectionItemPlanConclusion.updateTime})
+            #{inspectionItemPlanConclusion.updateTime},#{inspectionItemPlanConclusion.tenantId})
         </foreach>
     </insert>
 

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

@@ -26,6 +26,7 @@
         <result column="musicGroupName" property="musicGroupName"/>
         <result column="organName" property="organName"/>
         <result column="realName" property="realName"/>
+		<result column="tenant_id_" property="tenantId" />
     </resultMap>
     <select id="get" parameterType="java.lang.Long" resultMap="InspectionItemPlan">
         <!--@mbg.generated-->
@@ -43,10 +44,10 @@
         insert into inspection_item_plan (inspection_id_, item_id_, user_id_,operator_user_id_, plan_start_, plan_end_,
         organ_id_,cooperation_organ_id_,
         music_group_id_, school_gps_, submited_gps_, submited_time_, memo_, conclusion_status_, status_,
-        create_time_, update_time_)
+        create_time_, update_time_,tenant_id_)
         values (#{inspectionId}, #{itemId}, #{userId},#{operatorUserId}, #{planStart}, #{planEnd}, #{organId},#{cooperationOrganId},
         #{musicGroupId}, #{schoolGps}, #{submitedGps}, #{submitedTime}, #{memo},#{conclusionStatus},#{status},
-        #{createTime}, #{updateTime})
+        #{createTime}, #{updateTime},#{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlan">
         <!--@mbg.generated-->
@@ -104,7 +105,7 @@
                 update_time_ = #{updateTime},
             </if>
         </set>
-        where id_ = #{id}
+        where id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
 
     <!-- 分页查询 -->
@@ -129,6 +130,7 @@
 
     <sql id="queryPageSql">
         <where>
+        	tenant_id_ = #{tenantId}
             <if test="itemId != null">
                 AND iip.item_id_ = #{itemId}
             </if>

+ 6 - 4
mec-biz/src/main/resources/config/mybatis/InspectionMapper.xml

@@ -14,12 +14,13 @@
         <result column="update_time_" property="updateTime"/>
         <result column="organName" property="organName"/>
         <result column="userName" property="userName"/>
+		<result column="tenant_id_" property="tenantId" />
         <collection property="inspectionItems" columnPrefix="ie_" ofType="com.ym.mec.biz.dal.entity.InspectionItem"
                     resultMap="com.ym.mec.biz.dal.dao.InspectionItemDao.InspectionItem"/>
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
-        id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
+        id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_,tenant_id_
     </sql>
     <select id="get" parameterType="java.lang.Long" resultMap="Inspection">
         <!--@mbg.generated-->
@@ -35,8 +36,8 @@
     </delete>
     <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.Inspection"
             useGeneratedKeys="true">
-        insert into inspection (organ_id_, user_id_, month_, operation_, create_time_, update_time_)
-        values (#{organId}, #{userId}, #{month}, #{operation}, #{createTime}, #{updateTime})
+        insert into inspection (organ_id_, user_id_, month_, operation_, create_time_, update_time_,tenant_id_)
+        values (#{organId}, #{userId}, #{month}, #{operation}, #{createTime}, #{updateTime}, #{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Inspection">
         <!--@mbg.generated-->
@@ -64,7 +65,7 @@
                 update_time_ = #{updateTime},
             </if>
         </set>
-        where id_ = #{id}
+        where id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
 
     <!-- 分页查询 -->
@@ -85,6 +86,7 @@
 
     <sql id="queryPageSql">
         <where>
+        	tenant_id_ = #{tenantId}
             <if test="organId != null">
                 AND FIND_IN_SET(i.organ_id_,#{organId})
             </if>

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

@@ -8,9 +8,10 @@
     <result column="available_amount_" property="availableAmount" jdbcType="BIGINT" />
     <result column="modify_on_" property="modifyOn" jdbcType="TIMESTAMP" />
     <result column="group_id_" property="groupId"/>
+		<result column="tenant_id_" property="tenantId" />
   </resultMap>
   <sql id="Base_Column_List" >
-    user_id_, used_count_, available_count_, available_amount_, modify_on_,group_id_
+    user_id_, used_count_, available_count_, available_amount_, modify_on_,group_id_,tenant_id_
   </sql>
   
   <select id="get" resultMap="BaseResultMap" parameterType="java.lang.Long" >
@@ -28,7 +29,7 @@
   </select>
   
   <select id="findAll" resultMap="BaseResultMap">
-    select * from luck_draw_count
+    select * from luck_draw_count where tenant_id_ = #{tenantId}
   </select>
   <select id="findByIdAndGroupId" resultMap="BaseResultMap">
     SELECT * FROM luck_draw_count WHERE user_id_ = #{userId} AND group_id_ = #{groupId}
@@ -44,9 +45,9 @@
   
   <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LuckDrawCount" >
     insert into luck_draw_count (user_id_, used_count_, available_count_, available_amount_,
-      modify_on_,group_id_)
+      modify_on_,group_id_,tenant_id_)
     values (#{userId}, #{usedCount}, #{availableCount}, #{availableAmount},
-      NOW(),#{groupId})
+      NOW(),#{groupId},#{tenantId})
   </insert>
   
   <update id="update" parameterType="com.ym.mec.biz.dal.entity.LuckDrawCount" >
@@ -68,6 +69,6 @@
         modify_on_ = #{modifyOn,jdbcType=TIMESTAMP},
       </if>
     </set>
-    where user_id_ = #{userId,jdbcType=BIGINT}
+    where user_id_ = #{userId,jdbcType=BIGINT} and tenant_id_ = #{tenantId}
   </update>
 </mapper>

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

@@ -9,10 +9,11 @@
     <result column="start_time_" property="startTime" jdbcType="TIMESTAMP" />
     <result column="end_time_" property="endTime" jdbcType="TIMESTAMP" />
     <result column="create_on_" property="createOn" jdbcType="TIMESTAMP" />
+		<result column="tenant_id_" property="tenantId" />
   </resultMap>
   
   <sql id="Base_Column_List" >
-    id_, name_, consume_type_, consume_value_, start_time_, end_time_, create_on_
+    id_, name_, consume_type_, consume_value_, start_time_, end_time_, create_on_, tenant_id_
   </sql>
   
   <select id="get" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@@ -23,7 +24,7 @@
   </select>
   
   <select id="findAll" resultMap="BaseResultMap" parameterType="map" >
-    select * from luck_draw_group
+    select * from luck_draw_group where tenant_id_ = #{tenantId}
   </select>
   
   <delete id="delete" parameterType="java.lang.Integer" >
@@ -33,10 +34,10 @@
   
   <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LuckDrawGroup" >
     insert into luck_draw_group (id_, name_, consume_type_, consume_value_,
-      start_time_, end_time_, create_on_
+      start_time_, end_time_, create_on_, tenant_id_
       )
     values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{consumeType,jdbcType=VARCHAR}, #{consumeValue,jdbcType=INTEGER},
-      #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{createOn,jdbcType=TIMESTAMP}
+      #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{createOn,jdbcType=TIMESTAMP}, #{tenantId}
       )
   </insert>
 
@@ -62,12 +63,13 @@
         create_on_ = #{createOn,jdbcType=TIMESTAMP},
       </if>
     </set>
-    where id_ = #{id,jdbcType=INTEGER}
+    where id_ = #{id,jdbcType=INTEGER} and tenant_id_ = #{tenantId}
   </update>
 
 	<select id="queryCount" parameterType="map" resultType="int">
 		select count(*) from luck_draw_group
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="search != null">
 				and name_ like concat('%',#{search},'%')
 			</if>
@@ -77,6 +79,7 @@
 	<select id="queryPage" parameterType="map" resultMap="BaseResultMap">
 		select * from luck_draw_group
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="search != null">
 				and name_ like concat('%',#{search},'%')
 			</if>

+ 6 - 4
mec-biz/src/main/resources/config/mybatis/LuckDrawLogMapper.xml

@@ -9,6 +9,7 @@
 		<result column="create_on_" property="createOn" jdbcType="TIMESTAMP" />
 		<result column="name_" property="luckDrawPrize.name" jdbcType="VARCHAR" />
 		<result column="reward_type_" property="luckDrawPrize.rewardType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 	
 	<resultMap id="BaseResultMapExt" type="com.ym.mec.biz.dal.entity.LuckDrawLog" extends="BaseResultMap">
@@ -18,7 +19,7 @@
 	</resultMap>
 
 	<sql id="Base_Column_List">
-		l.id_,l.group_id_, l.prize_id_,d.name_,d.reward_type_, l.user_id_, l.create_on_
+		l.id_,l.group_id_, l.prize_id_,d.name_,d.reward_type_, l.user_id_, l.create_on_,l.tenant_id_
 	</sql>
 
 	<select id="get" resultMap="BaseResultMap" parameterType="java.lang.Long">
@@ -38,11 +39,11 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LuckDrawLog">
 		insert into
 		luck_draw_log (id_,group_id_, prize_id_, user_id_,
-		create_on_)
+		create_on_,tenant_id_)
 		values
 		(#{id,jdbcType=BIGINT}, #{groupId,jdbcType=INTEGER}, #{prizeId,jdbcType=INTEGER},
 		#{userId,jdbcType=BIGINT},
-		#{createOn,jdbcType=TIMESTAMP})
+		#{createOn,jdbcType=TIMESTAMP},#{tenantId})
 	</insert>
 
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.LuckDrawLog">
@@ -61,7 +62,7 @@
 				create_on_ = #{createOn,jdbcType=TIMESTAMP},
 			</if>
 		</set>
-		where id_ = #{id,jdbcType=BIGINT}
+		where id_ = #{id,jdbcType=BIGINT} and tenant_id_ = #{tenantId}
 	</update>
 
 	<select id="queryCount" parameterType="map" resultType="int">
@@ -91,6 +92,7 @@
 
     <sql id="queryCondition">
 		<where>
+			l.tenant_id_ = #{tenantId}
 			<if test="prizeId != null">
 				AND l.prize_id_ = #{id}
 			</if>

+ 9 - 7
mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml

@@ -13,14 +13,16 @@
 		<result column="is_default_" property="isDefault" />
 		<result column="create_on_" property="createOn" jdbcType="TIMESTAMP" />
 		<result column="modify_on_" property="modifyOn" jdbcType="TIMESTAMP" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<sql id="Base_Column_List">
-		id_, name_, chances_, stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_, modify_on_
+		id_, name_, chances_, stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_, modify_on_, tenant_id_
 	</sql>
 
 	<sql id="queryCondition">
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="enabled != null">
 				and enabled_ = #{enabled}
 			</if>
@@ -68,23 +70,23 @@
             keyProperty="id">
 		insert into luck_draw_prize (id_, name_, chances_,
 		stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_,
-		modify_on_)
+		modify_on_,tenant_id_)
 		values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
 		#{chances,jdbcType=DOUBLE},
 		#{stock,jdbcType=INTEGER}, #{enabled,jdbcType=BIT},#{rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{memo,jdbcType=VARCHAR}, #{groupId,jdbcType=INTEGER}, #(isDefault), #{createOn,jdbcType=TIMESTAMP},
-		#{modifyOn,jdbcType=TIMESTAMP})
+		#{modifyOn,jdbcType=TIMESTAMP},#{tenantId})
 	</insert>
 
 	<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
 		insert into luck_draw_prize (id_, name_, chances_,
 		stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_,
-		modify_on_) values 
+		modify_on_,tenant_id_) values 
 		<foreach collection="list" item="item" separator=",">
 		(#{item.id,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR},
 		#{item.chances,jdbcType=DOUBLE}, #{item.stock,jdbcType=INTEGER}, 
 		#{item.enabled,jdbcType=BIT},#{item.rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{item.memo,jdbcType=VARCHAR}, #{item.groupId,jdbcType=INTEGER}, #{item.isDefault}, now(), now())
+		#{item.memo,jdbcType=VARCHAR}, #{item.groupId,jdbcType=INTEGER}, #{item.isDefault}, now(), now(),#{tenantId})
 		</foreach>
 	</insert>
 
@@ -122,7 +124,7 @@
 				modify_on_ = #{modifyOn,jdbcType=TIMESTAMP},
 			</if>
 		</set>
-		where id_ = #{id,jdbcType=INTEGER}
+		where id_ = #{id,jdbcType=INTEGER} and tenant_id_ = #{tenantId}
 	</update>
 	<update id="batchUpdate">
 		<foreach collection="updateDraw" item="draw" separator=";">
@@ -154,7 +156,7 @@
 				</if>
 				modify_on_ = NOW()
 			</set>
-			WHERE id_ = #{draw.id,jdbcType=INTEGER}
+			WHERE id_ = #{draw.id,jdbcType=INTEGER} and tenant_id_ = #{draw.tenantId}
 		</foreach>
 	</update>
 

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

@@ -12,6 +12,7 @@
         <result column="status_" property="status"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+		<result column="tenant_id_" property="tenantId" />
     </resultMap>
 
     <select id="get" parameterType="java.lang.Integer" resultMap="ManagerDownload">
@@ -28,10 +29,10 @@
             useGeneratedKeys="true">
         <!--@mbg.generated-->
         insert into manager_download (user_id_, name_, file_url_,type_,
-        status_, create_time_, update_time_
+        status_, create_time_, update_time_,tenant_id_
         )
         values (#{userId}, #{name}, #{fileUrl},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{status}, #{createTime}, #{updateTime}
+        #{status}, #{createTime}, #{updateTime},#{tenantId}
         )
     </insert>
 
@@ -54,7 +55,7 @@
             create_time_ = NOW(),
             update_time_ = NOW(),
         </set>
-        where id_ = #{id}
+        where id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
 
     <!-- 分页查询 -->
@@ -73,6 +74,7 @@
 
     <sql id="queryPageSql">
         <where>
+        	tenant_id_ = #{tenantId}
             <if test="userId != null">
                 AND user_id_ = #{userId}
             </if>

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

@@ -12,6 +12,7 @@
 		<result column="activity_ids_" property="activityIds" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -21,13 +22,13 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MarketActivity">
-		SELECT * FROM market_activity ORDER BY id_
+		SELECT * FROM market_activity where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MarketActivity" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO market_activity (name_,activity_ids_,create_time_,update_time_)
-		VALUES(#{name},#{activityIds},#{createTime},#{updateTime})
+		INSERT INTO market_activity (name_,activity_ids_,create_time_,update_time_,tenant_id_)
+		VALUES(#{name},#{activityIds},#{createTime},#{updateTime},#{tenantId})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -40,7 +41,7 @@
 		activity_ids_ = #{activityIds},
 		</if>
 		update_time_ = NOW()
-	</set> WHERE id_ = #{id}
+	</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 	
 	<!-- 根据主键删除一条记录 -->
@@ -49,7 +50,7 @@
 	</delete>
 	<sql id="queryPageSql">
 		<where>
-			1=1
+			tenant_id_ = #{tenantId}
 			<if test="search != null and search != ''">
 				AND (name_ LIKE CONCAT('%',#{search},'%') OR id_ = #{search} OR FIND_IN_SET(#{search},activity_ids_))
 			</if>

+ 7 - 6
mec-biz/src/main/resources/config/mybatis/MemberFeeSettingMapper.xml

@@ -21,6 +21,7 @@
 		<result column="current_year_fee_" property="currentYearFee" />
 		<result column="group_purchase_year_fee_" property="groupPurchaseYearFee" />
 		<result column="original_year_fee_" property="originalYearFee" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -31,7 +32,7 @@
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MemberFeeSetting">
-		SELECT * FROM member_fee_setting
+		SELECT * FROM member_fee_setting where tenant_id_ = #{tenantId}
 		ORDER BY id_
 	</select>
 
@@ -41,8 +42,8 @@
 		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO member_fee_setting
-		(id_,current_day_fee_,group_purchase_day_fee_,original_day_fee_,current_month_fee_,group_purchase_month_fee_,original_month_fee_,current_quarterly_fee_,group_purchase_quarterly_fee_,original_quarterly_fee_,current_half_year_fee_,group_purchase_half_year_fee_,original_half_year_fee_,current_year_fee_,group_purchase_year_fee_,original_year_fee_)
-		VALUES(#{id},#{currentDayFee},#{groupPurchaseDayFee},#{originalDayFee},#{currentMonthFee},#{groupPurchaseMonthFee},#{originalMonthFee},#{currentQuarterlyFee},#{groupPurchaseQuarterlyFee},#{originalQuarterlyFee},#{currentHalfYearFee},#{groupPurchaseHalfYearFee},#{originalHalfYearFee},#{currentYearFee},#{groupPurchaseYearFee},#{originalYearFee})
+		(id_,current_day_fee_,group_purchase_day_fee_,original_day_fee_,current_month_fee_,group_purchase_month_fee_,original_month_fee_,current_quarterly_fee_,group_purchase_quarterly_fee_,original_quarterly_fee_,current_half_year_fee_,group_purchase_half_year_fee_,original_half_year_fee_,current_year_fee_,group_purchase_year_fee_,original_year_fee_,tenant_id_)
+		VALUES(#{id},#{currentDayFee},#{groupPurchaseDayFee},#{originalDayFee},#{currentMonthFee},#{groupPurchaseMonthFee},#{originalMonthFee},#{currentQuarterlyFee},#{groupPurchaseQuarterlyFee},#{originalQuarterlyFee},#{currentHalfYearFee},#{groupPurchaseHalfYearFee},#{originalHalfYearFee},#{currentYearFee},#{groupPurchaseYearFee},#{originalYearFee},#{tenantId})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -68,20 +69,20 @@
 				original_month_fee_ = #{originalMonthFee},
 				original_year_fee_ = #{originalYearFee}
 		</set>
-		WHERE id_ = #{id}
+		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="MemberFeeSetting"
 		parameterType="map">
-		SELECT * FROM member_fee_setting ORDER BY id_
+		SELECT * FROM member_fee_setting where tenant_id_ = #{tenantId} ORDER BY id_
 		<include refid="global.limit" />
 	</select>
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM
-		member_fee_setting
+		member_fee_setting where tenant_id_ = #{tenantId}
 	</select>
 	
 	<select id="findByRankIdAndOrganId" resultMap="MemberFeeSetting">

+ 7 - 4
mec-biz/src/main/resources/config/mybatis/MemberRankOrganizationFeeMapperMapper.xml

@@ -17,6 +17,7 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="rank_name_" property="rankName" />
 		<result column="organ_name_" property="organName" />
+		<result column="tenant_id_" property="tenantId" />
 		<association property="memberFeeSetting" javaType="com.ym.mec.biz.dal.entity.MemberFeeSetting">
 			<result property="id" column="member_fee_setting_id_"/>
 			<result column="current_day_fee_" property="currentDayFee" />
@@ -47,13 +48,13 @@
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MemberRankOrganizationFeeMapper">
-		SELECT mrofm.* FROM member_rank_organization_fee_mapper mrofm
+		SELECT mrofm.* FROM member_rank_organization_fee_mapper mrofm where tenant_id_ = #{tenantId}
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO member_rank_organization_fee_mapper (organ_id_,member_rank_setting_id_,member_fee_setting_id_,operator_id_,create_time_,update_time_)
-		VALUES(#{organId},#{memberRankSettingId},#{memberFeeSettingId},#{operatorId},NOW(),NOW())
+		INSERT INTO member_rank_organization_fee_mapper (organ_id_,member_rank_setting_id_,member_fee_setting_id_,operator_id_,create_time_,update_time_,tenant_id_)
+		VALUES(#{organId},#{memberRankSettingId},#{memberFeeSettingId},#{operatorId},NOW(),NOW(),#{tenantId})
 	</insert>
 
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper">
@@ -71,7 +72,7 @@
 			operator_id_ = #{operatorId},
 		</if>
 		update_time_ = NOW()
-	</set> WHERE id_ = #{id}
+	</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 	
 	<!-- 分页查询 -->
@@ -83,6 +84,7 @@
 		LEFT JOIN organization o ON o.id_ = mrofm.organ_id_
 		LEFT JOIN sys_user su ON su.id_ = mrofm.operator_id_
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="search != null and search != ''">
 				AND mrs.name_ LIKE CONCAT('%',#{search},'%')
 			</if>
@@ -99,6 +101,7 @@
 		SELECT COUNT(mrofm.id_) FROM member_rank_organization_fee_mapper mrofm
 		LEFT JOIN member_rank_setting mrs ON  mrofm.member_rank_setting_id_ = mrs.id_
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="search != null and search != ''">
 				AND mrs.name_ LIKE CONCAT('%',#{search},'%')
 			</if>

+ 6 - 4
mec-biz/src/main/resources/config/mybatis/MusicEnlightenmentQuestionnaireMapper.xml

@@ -23,6 +23,7 @@
 		<result column="remark_" property="remark" />
 		<result column="create_time_" property="createTime"/>
 		<result column="update_time_" property="updateTime"/>
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -32,7 +33,7 @@
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MusicEnlightenmentQuestionnaire">
-		SELECT * FROM music_enlightenment_questionnaire ORDER BY id_
+		SELECT * FROM music_enlightenment_questionnaire where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
 
 	<!-- 向数据库增加一条记录 -->
@@ -42,8 +43,8 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO music_enlightenment_questionnaire (music_group_id_,user_id_,user_name_,phone_,current_grade_,current_grade_num_,current_class_,teacher_recommand_subject_id_,musical_instruments_learning_,musical_instruments_name_,join_parent_meeting_,remark_,create_time_,update_time_)
-		VALUES(#{musicGroupId},#{userId},#{userName},#{phone},#{currentGrade},#{currentGradeNum},#{currentClass},#{teacherRecommandSubjectId},#{musicalInstrumentsLearning},#{musicalInstrumentsName},#{joinParentMeeting},#{remark},NOW(),NOW())
+		INSERT INTO music_enlightenment_questionnaire (music_group_id_,user_id_,user_name_,phone_,current_grade_,current_grade_num_,current_class_,teacher_recommand_subject_id_,musical_instruments_learning_,musical_instruments_name_,join_parent_meeting_,remark_,create_time_,update_time_,tenant_id_)
+		VALUES(#{musicGroupId},#{userId},#{userName},#{phone},#{currentGrade},#{currentGradeNum},#{currentClass},#{teacherRecommandSubjectId},#{musicalInstrumentsLearning},#{musicalInstrumentsName},#{joinParentMeeting},#{remark},NOW(),NOW(),#{tenantId})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -86,7 +87,7 @@
 			</if>
 			update_time_ = NOW()
 		</set>
-		WHERE id_ = #{id}
+		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 
 	<!-- 根据主键删除一条记录 -->
@@ -96,6 +97,7 @@
 
 	<sql id="queryCondition">
 		<where>
+			tenant_id_ = #{tenantId}
 			<if test="musicGroupId!=null and musicGroupId!=''">
 				AND meq.music_group_id_=#{musicGroupId}
 			</if>

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

@@ -27,4 +27,7 @@
   <delete id="delByCalenderId">
     DELETE FROM music_group_payment_calender_activity WHERE calender_id_ = #{calenderId}
   </delete>
+    <select id="findByCalenderId" resultType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderActivity">
+      SELECT <include refid="Base_Column_List"/> FROM music_group_payment_calender_activity WHERE calender_id_ = #{calenderId}
+    </select>
 </mapper>

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

@@ -40,6 +40,8 @@
         <result column="music_repair_num_" property="musicRepairNum"/>
         <result column="music_repair_actual_price_" property="musicRepairActualPrice"/>
         <result column="music_repair_optional_flag_" property="musicRepairOptionalFlag"/>
+        <result column="current_total_amount_" property="currentTotalAmount"/>
+        <result column="original_total_amount_" property="originalTotalAmount"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -60,14 +62,15 @@
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,
         payment_pattern_,payment_type_,payment_amount_,batch_no_,audit_memo_,operator_,attribute1_,
          attribute2_,student_ids_,member_payment_amount_,member_rank_setting_id_,member_valid_date_
-         ,original_member_payment_amount_,member_period_,member_optional_flag_,music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_)
+         ,original_member_payment_amount_,member_period_,member_optional_flag_,
+         music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_,current_total_amount_,original_total_amount_)
         VALUES(#{musicGroupId},#{musicGroupOrganizationCourseSettingId},#{payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{rejectReason},#{startPaymentDate},#{deadlinePaymentDate},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{expectNum},#{actualNum},#{memo},#{isGiveMusicNetwork},now(),now(),
         #{paymentValidStartDate},#{paymentValidEndDate},#{paymentPattern},#{paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{paymentAmount},#{batchNo},#{auditMemo},#{operator},#{attribute1},#{attribute2},#{studentIds},
-               #{memberPaymentAmount},#{memberRankSettingId},#{memberValidDate},#{originalMemberPaymentAmount},#{memberPeriod},
-               #{memberOptionalFlag},#{musicRepairNum},#{musicRepairActualPrice},#{musicRepairOptionalFlag})
+               #{memberPaymentAmount},#{memberRankSettingId},#{memberValidDate},#{originalMemberPaymentAmount},#{memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+               #{memberOptionalFlag},#{musicRepairNum},#{musicRepairActualPrice},#{musicRepairOptionalFlag},#{currentTotalAmount},#{originalTotalAmount})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender" useGeneratedKeys="true"
@@ -77,15 +80,15 @@
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,payment_pattern_,payment_amount_,
         payment_type_,batch_no_,audit_memo_,operator_,attribute1_,attribute2_,student_ids_,
          member_payment_amount_,member_rank_setting_id_,member_valid_date_,original_member_payment_amount_,member_period_
-        ,member_optional_flag_,music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_)
+        ,member_optional_flag_,music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_,current_total_amount_,original_total_amount_)
         VALUES
         <foreach collection="list" item="item" index="index" separator=",">
         (#{item.musicGroupId},#{item.musicGroupOrganizationCourseSettingId},#{item.payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.rejectReason},#{item.startPaymentDate},#{item.deadlinePaymentDate},#{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{item.expectNum},#{item.actualNum},#{item.memo},#{item.isGiveMusicNetwork},now(),now(),
         #{item.paymentValidStartDate},#{item.paymentValidEndDate},#{item.paymentPattern},#{item.paymentAmount},#{item.paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{item.batchNo},#{item.auditMemo},#{item.operator},#{item.attribute1},#{item.attribute2},
-         #{item.studentIds},#{item.memberPaymentAmount},#{item.memberRankSettingId},#{item.memberValidDate},#{item.originalMemberPaymentAmount},#{item.memberPeriod},
-            #{item.memberOptionalFlag},#{item.musicRepairNum},#{item.musicRepairActualPrice},#{item.musicRepairOptionalFlag})
+         #{item.studentIds},#{item.memberPaymentAmount},#{item.memberRankSettingId},#{item.memberValidDate},#{item.originalMemberPaymentAmount},#{item.memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{item.memberOptionalFlag},#{item.musicRepairNum},#{item.musicRepairActualPrice},#{item.musicRepairOptionalFlag},#{item.currentTotalAmount},#{item.originalTotalAmount})
         </foreach>
     </insert>
 
@@ -93,6 +96,12 @@
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender">
         UPDATE music_group_payment_calender
         <set>
+            <if test="currentTotalAmount != null">
+                current_total_amount_ = #{currentTotalAmount},
+            </if>
+            <if test="originalTotalAmount != null">
+                original_total_amount_ = #{originalTotalAmount},
+            </if>
             <if test="memberOptionalFlag != null">
                 member_optional_flag_ = #{memberOptionalFlag},
             </if>
@@ -106,7 +115,7 @@
                 music_repair_optional_flag_ = #{musicRepairOptionalFlag},
             </if>
             <if test="memberPeriod != null">
-                member_period_ = #{memberPeriod},
+                member_period_ = #{memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="originalMemberPaymentAmount != null">
                 original_member_payment_amount_ = #{originalMemberPaymentAmount},
@@ -192,6 +201,12 @@
 	    <foreach collection="list" item="item" index="index" open="" close="" separator=";">
 	        UPDATE music_group_payment_calender
 	        <set>
+                <if test="item.currentTotalAmount != null">
+                    current_total_amount_ = #{item.currentTotalAmount},
+                </if>
+                <if test="item.originalTotalAmount != null">
+                    original_total_amount_ = #{item.originalTotalAmount},
+                </if>
                 <if test="item.originalMemberPaymentAmount != null">
                     original_member_payment_amount_ = #{item.originalMemberPaymentAmount},
                 </if>
@@ -488,6 +503,8 @@
         <result property="addCourseTotalTime" column="course_total_minuties_"/>
         <result property="courseCurrentPrice" column="course_current_price_"/>
         <result property="courseOriginalPrice" column="course_original_price_"/>
+        <result property="currentTotalAMount" column="current_total_amount_"/>
+        <result property="originalTotalAMount" column="original_total_amount_"/>
         <result property="musicGroupPaymentCalenderId" column="id_"/>
         <result property="payUserType" column="pay_user_type_"/>
         <result property="calenderSettingsName" column="calender_settings_name_"/>
@@ -536,7 +553,7 @@
         CASE WHEN MAX(mgpc.payment_type_) = 'SPAN_GROUP_CLASS_ADJUST' THEN MAX(mgpc.payment_amount_) ELSE SUM(mgpccs.course_original_price_) END course_original_price_,
         SUM(mgpccs.course_current_price_) course_current_price_,
         mgpc.member_payment_amount_,
-        mgpc.original_member_payment_amount_,
+        mgpc.original_member_payment_amount_,mgpc.current_total_amount_,mgpc.original_total_amount_,
         MAX(mg.name_) music_group_name_,MAX(mg.organ_id_) organ_id_,MAX(mgpc.payment_pattern_)payment_pattern_
         FROM music_group_payment_calender mgpc
         LEFT JOIN music_group mg ON mg.id_ = mgpc.music_group_id_

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

@@ -35,10 +35,6 @@
 		SELECT * FROM organization WHERE id_ = #{id} 
 	</select>
 
-    <select id="getByName" parameterType="object" resultMap="Organization">
-        SELECT * FROM organization WHERE name_ = #{name} and tenant_id_ = #{tenantId}
-    </select>
-
     <!-- 全查询 -->
     <select id="findAll" resultMap="Organization">
 		SELECT * FROM organization ORDER BY id_

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

@@ -148,8 +148,8 @@
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO sys_user
-        (im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_,password_)
-        VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
+        (tenant_id_,im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_,password_)
+        VALUES(#{tenantId},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName},#{password})
     </insert>
 

+ 28 - 0
mec-biz/src/main/resources/config/mybatis/TenantAssetsInfoMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.TenantAssetsInfoDao">
+    <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.TenantAssetsInfo">
+        <id column="id_" jdbcType="INTEGER" property="id"/>
+        <result column="tenant_id_" jdbcType="INTEGER" property="tenantId"/>
+        <result column="balance_" jdbcType="VARCHAR" property="balance"/>
+        <result column="frozen_amount_" jdbcType="VARCHAR" property="frozenAmount"/>
+        <result column="created_time_" jdbcType="TIMESTAMP" property="createdTime"/>
+        <result column="updated_time_" jdbcType="TIMESTAMP" property="updatedTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id_
+        , tenant_id_, balance_, frozen_amount_, created_time_, updated_time_
+    </sql>
+
+    <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
+            parameterType="com.ym.mec.biz.dal.entity.TenantAssetsInfo">
+        insert into tenant_assets_info(tenant_id_, balance_, frozen_amount_, created_time_, updated_time_)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.tenantId}, #{entity.balance}, #{entity.frozenAmount}, #{entity.createdTime},
+            #{entity.updatedTime})
+        </foreach>
+    </insert>
+
+</mapper>

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

@@ -169,9 +169,10 @@
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="VipGroupActivity" parameterType="map">
 		SELECT
-		vga.*,((NOW() &lt; end_time_ AND NOW() > start_time_) OR end_time_ IS NULL) enable_
+		vga.*,((NOW() &lt; end_time_ AND NOW() > start_time_) OR end_time_ IS NULL) enable_,GROUP_CONCAT(vgc.name_) vip_group_category_names_
 		FROM vip_group_activity vga
 		LEFT JOIN activity_apply_student_type aps ON vga.id_ = aps.activity_id_
+		LEFT JOIN vip_group_category vgc ON FIND_IN_SET(vgc.id_,vga.vip_group_category_id_list_)
 		<include refid="queryCondition"/>
 		GROUP BY vga.id_
 		ORDER BY id_ DESC

+ 16 - 0
mec-biz/src/main/resources/rebel.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
+  Refer to https://manuals.jrebel.com/jrebel/standalone/config.html for more information.
+-->
+<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">
+
+	<id>mec-biz</id>
+
+	<classpath>
+		<dir name="E:/hgw/DYYM/项目/mec/mec-biz/target/classes">
+		</dir>
+	</classpath>
+
+</application>

+ 137 - 106
mec-common/audit-log/src/main/java/com/yonge/log/interceptor/AuditLogInterceptor.java

@@ -1,123 +1,154 @@
 package com.yonge.log.interceptor;
 
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import com.ym.mec.util.json.JsonUtil;
+import com.ym.mec.util.web.WebUtil;
+import com.yonge.log.dal.model.AuditLog;
+import com.yonge.log.model.AuditLogAnnotation;
+import com.yonge.log.service.AuditLogService;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-import com.ym.mec.util.json.JsonUtil;
-import com.ym.mec.util.web.WebUtil;
-import com.yonge.log.dal.model.AuditLog;
-import com.yonge.log.model.AuditLogAnnotation;
-import com.yonge.log.service.AuditLogService;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * 日志审计的拦截器
  */
 public class AuditLogInterceptor extends HandlerInterceptorAdapter {
 
-	@Autowired
-	private AuditLogService auditLogService;
-
-	@Value("${spring.application.name}")
-	private String clientName;
-
-	private String username;
-
-	private Integer userId;
-
-	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-	private static List<String> ignoreLogUrl;
-
-
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
-		return true;
-	}
-
-	@Override
-	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
-		syncSaveLog(request,handler);
-	}
-
-	@Async
-	private void syncSaveLog(HttpServletRequest request, Object handler){
-		try {
-			String servletPath = request.getServletPath();
-			HandlerMethod handlerMethod = (HandlerMethod) handler;
-			AuditLogAnnotation anno = handlerMethod.getMethodAnnotation(AuditLogAnnotation.class);
-			ApiOperation apiOperation = handlerMethod.getMethodAnnotation(ApiOperation.class);
-			String operateName = null;
-			if(StringUtils.isEmpty(operateName) && apiOperation != null){
-				operateName = apiOperation.value();
-			}
-			if(StringUtils.isEmpty(operateName) && anno != null){
-				operateName = anno.operateName();
-			}
-			if(anno != null){
-				saveLog(operateName,servletPath,request);
-				return;
-			}
-			if(servletPath.contains("/task/") || servletPath.contains("/import/") ){
-				return;
-			}
-			String substring = servletPath.substring(servletPath.lastIndexOf("/") + 1).toLowerCase();
-			if(ignoreLogUrl == null){
-				ignoreLogUrl = new ArrayList<>();
-				ignoreLogUrl.add("query");
-				ignoreLogUrl.add("get");
-				ignoreLogUrl.add("find");
-				ignoreLogUrl.add("list");
-				ignoreLogUrl.add("detail");
-				ignoreLogUrl.add("hasindexerrdata");
-				ignoreLogUrl.add("newindex");
-			}
-			for (String e : ignoreLogUrl) {
-				if(substring.contains(e)){
-					return;
-				}
-			}
-			saveLog(operateName,servletPath,request);
-		}catch (Exception e){
-			e.printStackTrace();
-		}
-	}
-
-	private void saveLog(String operateName,String servletPath,HttpServletRequest request) throws IOException {
-		AuditLog auditLog = new AuditLog();
-		auditLog.setOperateName(operateName);
-		auditLog.setInterfaceUrl(servletPath);
-		auditLog.setToken(request.getHeader("Authorization"));
-		auditLog.setService(clientName);
-		auditLog.setUserIp(WebUtil.getRemoteIp(request));
-
-		Map<String, Object> params = WebUtil.getParameterMap(request);
-		if (params == null || params.size() == 0) {
-			auditLog.setInputParams(IOUtils.toString(request.getInputStream(), Charset.defaultCharset()));
-		} else {
-			auditLog.setInputParams(JsonUtil.toJSONString(WebUtil.getParameterMap(request)));
-		}
-		// 操作人
-		auditLog.setUsername(username);
-		auditLog.setUserId(userId);
-		auditLog.setOperateTime(sdf.format(new Date()));
-		auditLogService.insert(auditLog);
-	}
-
-	public void setUsername(String username,Integer userId) {
-		this.username = username;
-		this.userId = userId;
-	}
+    @Autowired
+    private AuditLogService auditLogService;
+
+    @Value("${spring.application.name}")
+    private String clientName;
+
+    private String username;
+
+    private Integer userId;
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    private static List<String> ignoreLogUrl;
+
+    /**
+     * 异步线程池配置
+     */
+    @Bean("syncSaveLog")
+    public Executor asyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        // 设置核心线程数
+        executor.setCorePoolSize(10);
+        // 设置最大线程数
+        executor.setMaxPoolSize(100);
+        // 设置队列容量
+        executor.setQueueCapacity(1000);
+        // 设置线程活跃时间(秒)
+        executor.setKeepAliveSeconds(60);
+        // 设置默认线程名称
+        executor.setThreadNamePrefix("syncSaveLog-");
+        // 设置拒绝策略
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        // 等待所有任务结束后再关闭线程池
+        executor.setWaitForTasksToCompleteOnShutdown(true);
+        executor.initialize();
+        return executor;
+    }
+
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
+        return true;
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
+        syncSaveLog(request, handler);
+    }
+
+    @Async("syncSaveLog")
+    public void syncSaveLog(HttpServletRequest request, Object handler) {
+        try {
+            String servletPath = request.getServletPath();
+            HandlerMethod handlerMethod = (HandlerMethod) handler;
+            AuditLogAnnotation anno = handlerMethod.getMethodAnnotation(AuditLogAnnotation.class);
+            ApiOperation apiOperation = handlerMethod.getMethodAnnotation(ApiOperation.class);
+            String operateName = null;
+            if (StringUtils.isEmpty(operateName) && apiOperation != null) {
+                operateName = apiOperation.value();
+            }
+            if (StringUtils.isEmpty(operateName) && anno != null) {
+                operateName = anno.operateName();
+            }
+            if (anno != null) {
+                saveLog(operateName, servletPath, request);
+                return;
+            }
+            if (servletPath.contains("/task/") || servletPath.contains("/import/")) {
+                return;
+            }
+            String substring = servletPath.substring(servletPath.lastIndexOf("/") + 1).toLowerCase();
+            if (ignoreLogUrl == null) {
+                ignoreLogUrl = new ArrayList<>();
+                ignoreLogUrl.add("query");
+                ignoreLogUrl.add("get");
+                ignoreLogUrl.add("find");
+                ignoreLogUrl.add("list");
+                ignoreLogUrl.add("detail");
+                ignoreLogUrl.add("hasindexerrdata");
+                ignoreLogUrl.add("newindex");
+            }
+            for (String e : ignoreLogUrl) {
+                if (substring.contains(e)) {
+                    return;
+                }
+            }
+            saveLog(operateName, servletPath, request);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void saveLog(String operateName, String servletPath, HttpServletRequest request) throws IOException {
+        AuditLog auditLog = new AuditLog();
+        auditLog.setOperateName(operateName);
+        auditLog.setInterfaceUrl(servletPath);
+        auditLog.setToken(request.getHeader("Authorization"));
+        auditLog.setService(clientName);
+        auditLog.setUserIp(WebUtil.getRemoteIp(request));
+
+        Map<String, Object> params = WebUtil.getParameterMap(request);
+        if (params == null || params.size() == 0) {
+            auditLog.setInputParams(IOUtils.toString(request.getInputStream(), Charset.defaultCharset()));
+        } else {
+            auditLog.setInputParams(JsonUtil.toJSONString(WebUtil.getParameterMap(request)));
+        }
+        // 操作人
+        auditLog.setUsername(username);
+        auditLog.setUserId(userId);
+        auditLog.setOperateTime(sdf.format(new Date()));
+        auditLogService.insert(auditLog);
+    }
+
+    public void setUsername(String username, Integer userId) {
+        this.username = username;
+        this.userId = userId;
+    }
 }

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

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.service.MemberRankPrivilegesService;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderActivityService;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
@@ -48,6 +49,8 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
     @Autowired
     private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
+    @Autowired
+    private MusicGroupPaymentCalenderActivityService musicGroupPaymentCalenderActivityService;
 	@Autowired
 	private MemberRankPrivilegesService memberRankPrivilegesService;
 
@@ -76,14 +79,17 @@ public class MusicGroupPaymentCalenderController extends BaseController {
                 return failed("乐团报名信息不存在");
             }
             ModelMap model = new ModelMap();
+            //课程相关信息
             if(calender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST){
                 model.put("musicGroupPaymentCalenderStudentDetails",musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(calender.getBatchNo(),userId));
             }else {
                 model.put("calenderCourseSettings", musicGroupPaymentStudentCourseDetailDao.findByCalenderAndUserId(calenderId,userId));
             }
+            //活动相关信息
+            model.put("activity",musicGroupPaymentCalenderActivityService.findByCalenderId(calenderId));
             calender.setMemberPaymentAmount(calenderDetail.getExpectMemberAmount());
             model.put("musicGroup",musicGroupDao.get(musicGroupId));
-            model.put("amount", calenderDetail.getExpectAmount().add(calenderDetail.getExpectMemberAmount()));
+            model.put("amount", calender.getCurrentTotalAmount());
             model.put("balance",studentRegistration.getBalance());
             model.put("calender",calender);
             model.put("memberPrivilegesItemList", memberRankPrivilegesService.queryByMemberRankId(calender.getMemberRankSettingId()));

+ 33 - 201
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,109 +1,45 @@
 package com.ym.mec.student.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpStatus;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.util.DigestUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 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.biz.dal.dao.ChildrenDayDegreeDetailDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
-import com.ym.mec.biz.dal.dao.DegreeRegistrationDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.ReplacementInstrumentActivityDao;
-import com.ym.mec.biz.dal.dao.StudentGoodsSellDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.SysCouponCodeDao;
-import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
-import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
-import com.ym.mec.biz.dal.dto.LuckStatisDto;
-import com.ym.mec.biz.dal.dto.OrderStatisDto;
-import com.ym.mec.biz.dal.dto.Practice4OrganDto;
-import com.ym.mec.biz.dal.dto.PracticeGroupStatisDto;
-import com.ym.mec.biz.dal.dto.PracticeGroupsDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
-import com.ym.mec.biz.dal.dto.VipBuyResultDto;
-import com.ym.mec.biz.dal.entity.DegreeRegistration;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.LuckDrawCount;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.SellOrder;
-import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
+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.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
-import com.ym.mec.biz.service.CloudTeacherOrderService;
-import com.ym.mec.biz.service.LuckDrawCountService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.SellOrderService;
-import com.ym.mec.biz.service.SporadicChargeInfoService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.TenantOrderRecordService;
-import com.ym.mec.biz.service.TenantPaymentOrderService;
-import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import com.ym.mec.thirdparty.adapay.ConfigInit;
 import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
@@ -159,6 +95,8 @@ public class StudentOrderController extends BaseController {
     private SellOrderService sellOrderService;
     @Autowired
     private TenantOrderRecordService tenantOrderRecordService;
+    @Autowired
+    private OrderPayOpsService orderPayOpsService;
 
     @Value("${spring.profiles.active:dev}")
     private String profiles;
@@ -214,6 +152,7 @@ public class StudentOrderController extends BaseController {
         }
         StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
         if (Objects.isNull(orderByOrderNo)) {
+            logger.info("checkOrderStatus >>>> tenantOrder {}", orderNo);
             Map<String, Object> tenantOrder = tenantOrderRecordService.checkTenantOrder(orderNo);
             if (Objects.nonNull(tenantOrder)) {
                 return succeed(tenantOrder);
@@ -304,120 +243,13 @@ public class StudentOrderController extends BaseController {
             @ApiImplicitParam(name = "orderNo", value = "订单号", required = true, dataType = "String"),
             @ApiImplicitParam(name = "payChannel", value = "支付方式(alipay-支付宝app支付)", required = true, dataType = "String"),
     })
-    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
-        Map<String, Object> signParams = new LinkedHashMap<>();
-        signParams.put("appId", ConfigInit.appId);
-        signParams.put("amount", amount.setScale(2, BigDecimal.ROUND_HALF_UP));
-        signParams.put("orderNo", orderNo);
-//        signParams.put("notifyUrl", notifyUrl);
-//        signParams.put("returnUrl", returnUrl);
-        signParams.put("orderSubject", orderSubject);
-        signParams.put("orderBody", orderBody);
-        signParams.put("wxAppId", ConfigInit.wxAppId);
-
-        String originalStr = JSONObject.toJSONString(signParams);
-        String mewSign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
-        if (!mewSign.equals(sign)) {
-            return failed("请勿非法请求");
-        }
-
-        String openId = "";
-        if (payChannel.equals("wx_pub")) {
-            if (code == null || code.isEmpty()) {
-                return failed("微信支付请先授权");
-            }
-            String wxMpOAuth2AccessTokenUrl = String.format(ConfigInit.wxMpOAuth2AccessTokenUrl, ConfigInit.wxAppId, ConfigInit.wxAppSecret, code);
-            Map<String, String> weChatRes = JSON.parseObject(HttpUtil.get(wxMpOAuth2AccessTokenUrl, new HashMap<>()), Map.class);
-            if (!weChatRes.containsKey("openid")) {
-                return failed("授权失败,请重新授权");
-            }
-            openId = weChatRes.get("openid");
-        }
-
-        Date createTime = null;
-        TenantPaymentOrder tenantPaymentOrder = null;
-        StudentPaymentOrder studentPaymentOrder = null;
-        if (platform != null && platform.equals("teacher")) {
-            tenantPaymentOrder = tenantPaymentOrderService.queryByOrderNo(orderNo);
-        } else {
-            studentPaymentOrder = studentPaymentOrderService.findOrderByOrderNo(orderNo);
-        }
-
-        if (studentPaymentOrder == null && tenantPaymentOrder == null) {
-            return failed("订单不存在");
-        }
-        if (studentPaymentOrder != null && !studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)) {
-            String msg = studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS) ? "订单已支付,请勿重复支付" : "订单已关闭,不能支付";
-            return failed(msg);
-        }
-        if (tenantPaymentOrder != null && !tenantPaymentOrder.getStatus().equals(DealStatusEnum.ING)) {
-            String msg = tenantPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS) ? "订单已支付,请勿重复支付" : "订单已关闭,不能支付";
-            return failed(msg);
-        }
-
-        if (studentPaymentOrder != null) {
-            createTime = studentPaymentOrder.getCreateTime();
-        } else {
-            createTime = tenantPaymentOrder.getCreateTime();
-        }
-
-        Calendar beforeTime = Calendar.getInstance();
-        beforeTime.add(Calendar.MINUTE, -28);// 28 分钟之前的时间
-        Date beforeDate = beforeTime.getTime();
-        if (createTime.before(beforeDate)) {
-            return failed("订单已超时,请重新下单");
-        }
-
-        Date expireDate = DateUtil.addMinutes(createTime, 30);
-        String timeExpire = new SimpleDateFormat("yyyyMMddHHmmss").format(expireDate);
-
-        Map<String, Object> paymentParams = new HashMap<>();
-        paymentParams.put("app_id", ConfigInit.appId);
-        paymentParams.put("order_no", orderNo);
-        paymentParams.put("pay_channel", payChannel);
-        paymentParams.put("pay_amt", amount.setScale(2, BigDecimal.ROUND_HALF_UP));
-        paymentParams.put("goods_title", orderSubject);
-        paymentParams.put("goods_desc", orderBody);
-        paymentParams.put("time_expire", timeExpire);
-        paymentParams.put("pay_mode", "delay");
-
-        //延时分账时不需要
-//        List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(orderNo);
-//        List<Map<String, Object>> divMembers = new ArrayList<>();
-//        for (StudentPaymentRouteOrder routeOrder : routeOrders) {
-//            Map<String, Object> divMember = new HashMap<>();
-//            divMember.put("member_id", routeOrder.getMerNo());//分佣账户
-//            divMember.put("amount", routeOrder.getRouteAmount().setScale(2, BigDecimal.ROUND_HALF_UP));//分佣金额
-//            divMember.put("fee_flag", routeOrder.getFeeFlag());
-//            if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
-//                divMember.put("member_id", 0);
-//            }
-//            divMembers.add(divMember);
-//        }
-//        if (divMembers.size() > 0) {
-//            paymentParams.put("div_members", JSON.toJSONString(divMembers));
-//        }
-
-        Map<String, Object> expendParams = new HashMap<>(5);
-
-        expendParams.put("open_id", openId);
-        expendParams.put("is_raw", "1");
-        expendParams.put("callback_url", returnUrl);
-        expendParams.put("limit_pay", "1");
-
-        paymentParams.put("expend", expendParams);
-
-        Map<String, Object> payment = Payment.executePayment(paymentParams);
-
-        if (studentPaymentOrder != null) {
-            studentPaymentOrder.setTransNo((String) payment.get("id"));
-            studentPaymentOrderService.update(studentPaymentOrder);
-        } else {
-            tenantPaymentOrder.setTransNo((String) payment.get("id"));
-            tenantPaymentOrderService.update(tenantPaymentOrder);
+    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) {
+        try {
+            Map<String, Object> payment = orderPayOpsService.executePayment(amount, orderNo, payChannel, returnUrl, orderSubject, orderBody, sign, code, platform);
+            return succeed(payment);
+        } catch (Exception e) {
+            return failed(e.getMessage());
         }
-
-        return succeed(payment);
     }
 
     @GetMapping("/authorize")

+ 40 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TenantAssetsInfoController.java

@@ -0,0 +1,40 @@
+package com.ym.mec.web.controller;
+
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.TenantAssetsInfo;
+import com.ym.mec.biz.service.TenantAssetsInfoService;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.*;
+import com.ym.mec.common.controller.BaseController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 机构资产信息(TenantAssetsInfo)表控制层
+ *
+ * @author hgw
+ * @since 2021-12-22 14:27:02
+ */
+@RestController
+@RequestMapping("/tenantAssetsInfo")
+public class TenantAssetsInfoController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private TenantAssetsInfoService tenantAssetsInfoService;
+
+    @ApiOperation("修改机构启用停用状态")
+    @GetMapping(value = "/ops/{id}")
+//    @PreAuthorize("@pcs.hasPermissions('tenantInfo/opsState')")
+    public Object opsState() {
+        tenantAssetsInfoService.courseDeductionRules(null);
+        return succeed();
+    }
+
+
+}
+

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

@@ -77,11 +77,16 @@ public class TenantInfoController extends BaseController {
     @ApiOperation("机构支付")
     @GetMapping(value = "/pay/{id}")
     public Object pay(@ApiParam(value = "机构ID", required = true) @PathVariable("id") Integer id) throws Exception {
-        return succeed(tenantInfoService.pay(id));
+        return succeed(tenantInfoService.tenantOpenPay(id));
     }
 
+    /**
+     * 支付回调-第三方回调地址
+     * @param msg
+     * @return
+     */
     @PostMapping("/notify")
-    public Msg notify(@ModelAttribute Msg msg) throws Exception {
+    public Msg notify(@ModelAttribute Msg msg) {
         return tenantInfoService.orderNotify(msg);
     }
 

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

@@ -2,17 +2,22 @@ package com.ym.mec.web.controller;
 
 
 import com.ym.mec.biz.dal.dto.TenantOrderRecordDto;
-import com.ym.mec.biz.dal.entity.TenantOrderRecord;
+import com.ym.mec.biz.service.OrderPayOpsService;
 import com.ym.mec.biz.service.TenantOrderRecordService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Map;
 
 /**
  * 机构付款记录表(TenantOrderRecord)表控制层
@@ -29,6 +34,8 @@ public class TenantOrderRecordController extends BaseController {
      */
     @Resource
     private TenantOrderRecordService tenantOrderRecordService;
+    @Autowired
+    private OrderPayOpsService orderPayOpsService;
 
     @ApiOperation("分页查询")
     @PostMapping(value = "/queryPage")
@@ -36,5 +43,27 @@ public class TenantOrderRecordController extends BaseController {
         return tenantOrderRecordService.queryPage(dto);
     }
 
+    @ApiOperation(value = "自测用的")
+    @PostMapping("/executePayment")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "amount", value = "支付金额", required = true, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "orderNo", value = "订单号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "payChannel", value = "支付方式(alipay-支付宝app支付)", required = true, dataType = "String"),
+    })
+    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) {
+        try {
+            Map<String, Object> payment = orderPayOpsService.executePayment(amount, orderNo, payChannel, returnUrl, orderSubject, orderBody, sign, code, platform);
+            return succeed(payment);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "自测用的")
+    @PostMapping("/checkTenantOrder")
+    public Object checkTenantOrder(String orderNo) {
+        return succeed(tenantOrderRecordService.checkTenantOrder(orderNo));
+    }
+
 }
 

+ 3 - 3
mec-web/src/main/resources/logback-spring.xml

@@ -43,7 +43,7 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="WARN" />
+	<logger name="com.ym.mec" level="INFO" />
 
 	<logger name="com.ym.mec.thirdparty" level="INFO"
 			additivity="false">
@@ -52,14 +52,14 @@
 
 	<!--开发环境:打印控制台 -->
 	<springProfile name="dev">
-		<root level="WARN">
+		<root level="INFO">
 			<appender-ref ref="stdout" />
 			<appender-ref ref="file" />
 		</root>
 	</springProfile>
 
 	<springProfile name="test">
-		<root level="WARN">
+		<root level="INFO">
 			<appender-ref ref="stdout" />
 			<appender-ref ref="file" />
 		</root>