Prechádzať zdrojové kódy

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

yanite 3 rokov pred
rodič
commit
da71567e3a
48 zmenil súbory, kde vykonal 265 pridanie a 423 odobranie
  1. 3 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MusicScoreQueryInfo.java
  2. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java
  3. 0 27
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherCourseStatisticsDao.java
  5. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantInfoDao.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupPayInfoDto.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CooperationOrgan.java
  8. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysSuggestion.java
  9. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/StudentPaymentOrderVo.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TenantInfoInfoPageVo.java
  11. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  12. 0 47
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoSendMsgService.java
  14. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoService.java
  15. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  16. 0 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java
  17. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicEnlightenmentQuestionnaireServiceImpl.java
  18. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  19. 0 71
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java
  20. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  21. 15 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  22. 1 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  23. 34 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  24. 6 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  25. 12 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponCodeServiceImpl.java
  26. 41 27
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  27. 0 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  28. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java
  29. 1 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java
  30. 25 51
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoSendMsgServiceImpl.java
  31. 12 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  32. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  33. 2 4
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  34. 0 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml
  35. 5 3
      mec-biz/src/main/resources/config/mybatis/IndexErrDataRecordMapper.xml
  36. 1 35
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  37. 1 1
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  38. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentInstrumentMapper.xml
  39. 2 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  40. 2 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  41. 6 6
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreCategoriesMapper.xml
  42. 6 5
      mec-biz/src/main/resources/config/mybatis/SysSuggestionMapper.xml
  43. 2 1
      mec-biz/src/main/resources/config/mybatis/SysTenantConfigMapper.xml
  44. 3 2
      mec-biz/src/main/resources/config/mybatis/TeacherCourseStatisticsMapper.xml
  45. 9 1
      mec-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml
  46. 0 2
      mec-web/src/main/java/com/ym/mec/web/controller/CooperationOrganController.java
  47. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/SysMusicScoreCategoriesController.java
  48. 16 6
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

+ 3 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MusicScoreQueryInfo.java

@@ -1,8 +1,10 @@
 package com.ym.mec.auth.api.dto;
 
+import com.ym.mec.common.page.QueryInfo;
+
 import io.swagger.annotations.ApiModelProperty;
 
-public class MusicScoreQueryInfo {
+public class MusicScoreQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "父节点编号,默认0",required = false)
     private Integer parentId = 0;
 

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

@@ -36,7 +36,7 @@ public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleE
      * @author Joburgess
      * @date 2020/2/28
      */
-    List<CourseScheduleEvaluate> findExpiredDateBeforeReport(@Param("expiredDate") Date expiredDate,@Param("tenantId") Integer tenantId);
+    List<CourseScheduleEvaluate> findExpiredDateBeforeReport(@Param("expiredDate") Date expiredDate);
 
     /**
      * 根据课程组id获取报告列表

+ 0 - 27
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -83,23 +83,6 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
     int queryIntersectionByDate(@Param("musicGroupId") String musicGroupId, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     /**
-     * @param musicGroupId:
-     * @param payUserType:
-     * @param paymentValidStartDate:
-     * @param paymentValidEndDate:
-     * @return int
-     * @describe 根据指定乐团的有效日期查询交集
-     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
-     * @author zouxuan
-     * @date 2020/9/21
-     * @time 10:46
-     */
-    int queryIntersectionByValidDate(@Param("musicGroupId") String musicGroupId, @Param("payUserType") PayUserType payUserType,
-                                     @Param("paymentValidStartDate") Date paymentValidStartDate,
-                                     @Param("paymentValidEndDate") Date paymentValidEndDate,
-                                     @Param("calenderId") Long calenderId);
-
-    /**
      * @param configValue:
      * @return void
      * @describe 获取指定时间后的缴费信息
@@ -119,16 +102,6 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
     List<CalenderPushDto> getMusicCalenderPushDto(@Param("configValue") String configValue, @Param("format") String format);
 
     /**
-     * @param musicGroupId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
-     * @describe 获取乐团下未使用的最早的缴费记录
-     * @author Joburgess
-     * @date 2020.10.27
-     */
-    MusicGroupPaymentCalender getMusicGroupUnusedFirstPaymentCalender(@Param("musicGroupId") String musicGroupId,
-                                                                      @Param("studentIds") List<Integer> studentIds);
-
-    /**
      * @param calenderIds:
      * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
      * @describe 获取指定缴费日历中下未使用的最早的缴费记录

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

@@ -13,7 +13,7 @@ public interface TeacherCourseStatisticsDao extends BaseDAO<Long, TeacherCourseS
     int deleteByMonth(@Param("date") Date date);
 
     List<TeacherCourseStatistics> findUserByWarringSalary(@Param("startDate") Date startDate,
-                                                          @Param("endDate") Date endDate,@Param("tenantId") Integer tenantId);
+                                                          @Param("endDate") Date endDate);
 
     List<TeacherCourseStatistics> findUserCourseSalaryByUserIds(@Param("userIds") List<Integer> userIds,
                                                                 @Param("startDate") Date startDate,

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

@@ -24,4 +24,6 @@ public interface TenantInfoDao extends BaseMapper<TenantInfo> {
     void updatePhone(@Param("newPhone")String newPhone, @Param("oldPhone")String oldPhone);
 
     List<TenantInfo> queryExpiryTenant(@Param("expiryDate") Date expiryDate);
+
+    Integer queryUserByTenantId(@Param("tenantId") Integer tenantId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupPayInfoDto.java

@@ -16,6 +16,16 @@ public class VipGroupPayInfoDto {
 
     private BigDecimal balance;
 
+    private Integer tenantId;
+
+    public Integer getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId) {
+        this.tenantId = tenantId;
+    }
+
     public Integer getVipGroupId() {
         return vipGroupId;
     }

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

@@ -83,7 +83,7 @@ public class CooperationOrgan extends BaseEntity {
 	private java.util.Date updateTime;
 
 	@ApiModelProperty(value = "是否全职资源",required = false)
-	private Integer fullJobResource;
+	private Integer fullJobResource = 1;
 	
 	private List<CooperationOrganLinkman> cooperationOrganLinkmanList = new ArrayList<CooperationOrganLinkman>();
 

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

@@ -1,13 +1,16 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.SuggestionType;
+import com.ym.mec.common.entity.BaseEntity;
+
 import io.swagger.annotations.ApiModelProperty;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
  * 对应数据库表(sys_suggestion):
  */
-public class SysSuggestion {
+public class SysSuggestion extends BaseEntity {
 
 	/** 编号 */
 	private Long id;

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/StudentPaymentOrderVo.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -80,7 +81,7 @@ public class StudentPaymentOrderVo {
         }
 
         public void setGoodsName(String goodsName) {
-            this.goodsName = OrderDetailTypeEnum.valueOf(goodsName).getMsg();
+            this.goodsName = StringUtils.isBlank(goodsName) ? null : OrderDetailTypeEnum.valueOf(goodsName).getMsg();
         }
 
         public BigDecimal getPrice() {

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TenantInfoInfoPageVo.java

@@ -38,6 +38,9 @@ public class TenantInfoInfoPageVo implements Serializable {
     @ApiModelProperty(value = "创建人名称")
     private String createdName;
 
+    @ApiModelProperty(value = "学员人数")
+    private Integer studentCount;
+
     //机构产品信息
     @ApiModelProperty(value = "服务名称")
     private String serveName;
@@ -136,4 +139,12 @@ public class TenantInfoInfoPageVo implements Serializable {
     public void setCreatedName(String createdName) {
         this.createdName = createdName;
     }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
 }

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -51,6 +51,21 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 
 	/**
 	 * 发送消息
+	 * @param senderTenantId 消息发送者所在的机构编号
+	 * @param messageSender 消息发送者
+	 * @param messageType 消息类型
+	 * @param receivers 消息接收者(Key:用户编号  value:消息接收对象)
+	 * @param triggerTime 触发时间
+	 * @param readStatus 阅读状态(0-未读  1-已读)
+	 * @param url 超链接地址
+	 * @param args 参数
+	 * @return
+	 */
+	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+			Integer readStatus, String url,String jpushType, Object... args);
+
+	/**
+	 * 发送消息
 	 * @param messageSender 消息发送者
 	 * @param messageType 消息类型
 	 * @param receivers 消息接收者(Key:用户编号  value:消息接收对象)

+ 0 - 47
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java

@@ -1,20 +1,15 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDetailDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
-import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.UpdateAttendanceEnum;
 import com.ym.mec.biz.dal.page.TeacherAttendanceComplaintsQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 public interface TeacherAttendanceService extends BaseService<Long, TeacherAttendance> {
@@ -40,8 +35,6 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 									Integer userId,
 									 String deviceNum);
 
-
-
 	/**
 	 * @describe 教师线上课签到
 	 * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
@@ -73,37 +66,6 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	boolean pushNoSignOutMessage(Integer tenantId);
 
 	/**
-	 * @describe 根据日期获取部门下异常签到的课程记录
-	 * @author Joburgess
-	 * @date 2019/10/25
-	 * @param organId: 部门编号
-	 * @param date: 日期
-	 * @param signInStatus: 签到状态:0异常,1正常,null未签到
-	 * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto>
-	 */
-	List<TeacherAbnormalAttendanceInfoDto> findTeacherAbnormalSignInCourseScheduleRecord(Integer organId,Date date,Integer signInStatus);
-
-	/**
-	 * @describe 根据月份获取部门下异常签到的日期
-	 * @author Joburgess
-	 * @date 2019/10/25
-	 * @param organId: 部门编号
-	 * @param date: 日期
-	 * @return java.util.List<java.util.Date>
-	 */
-	List<Date> findTeacherAbnormalSignInDates(Integer organId, Date date);
-
-	/**
-	 * @describe 根据日期获取对应签到状态的课程数量
-	 * @author Joburgess
-	 * @date 2019/10/25
-	 * @param organId: 部门编号
-	 * @param date: 日期
-	 * @return int
-	 */
-	Map countTeacherAbnormalSignInClassTimes(Integer organId, Date date);
-
-	/**
 	 * @describe 获取签到详情
 	 * @author Joburgess
 	 * @date 2019/12/25
@@ -129,15 +91,6 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 */
 	void updateTeacherAttendance(TeacherAttendance teacherAttendance);
 
-
-	/**
-	 * 获取教师签到信息
-	 * @param courseId
-	 * @param teacherId
-	 * @return
-	 */
-	TeacherAttendance findByTeacherAttendanceInfo(Long courseId, Integer teacherId);
-
 	/**
 	 * 获取教师签到详情
 	 * @param courseScheduleId

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

@@ -2,5 +2,5 @@ package com.ym.mec.biz.service;
 
 public interface TenantInfoSendMsgService {
 
-    void sendToAll(String type, Integer userId, String email,String phone, Object[] objs);
+    void platformSendToAll(String email, String phone, Object[] objs);
 }

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

@@ -37,8 +37,6 @@ public interface TenantInfoService extends IService<TenantInfo> {
 
     Map<String, Object> tenantRenewPay(Integer tenantId, Integer val) throws Exception;
 
-    RBucket<Map<String, Object>> cacheOrder(String key);
-
     RBucket<Integer> opsRenewInfo(Integer tenantId);
 
     void renewSuccess(Integer val, TenantProductInfo productInfo, BigDecimal amount);

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

@@ -106,6 +106,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				employeeDao.insert(employee);
 				//新增用户角色
 				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds(), tenantId);
+				//新增用户职位
+				employeePositionService.batchAddPosition(employee.getId(),employee.getPositionIds(), tenantId);
 				employee.setUserType(user.getUserType() + ",SYSTEM");
 				teacherDao.updateUser(employee);
 				return;

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

@@ -108,16 +108,6 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 				indexErrDataRecordDao.batchInsert(errInspectionItemPlans);
 			}
 
-			//回访任务未完成
-//			List<IndexErrDataRecord> errStudentVisits = indexErrDataRecordDao.queryStudentVisit(date, null);
-//			if(!CollectionUtils.isEmpty(errStudentVisits)) {
-//				errStudentVisits.forEach(e -> {
-//					e.setDataType(IndexErrorType.STUDENT_VISIT);
-//					e.setGenerateTime(dt);
-//				});
-//				indexErrDataRecordDao.batchInsert(errStudentVisits);
-//			}
-
 			//课程考勤异常
 			List<IndexErrDataRecord> errStudentAttendances = indexErrDataRecordDao.getAttendanceError(date, null);
 			if(!CollectionUtils.isEmpty(errStudentAttendances)) {

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

@@ -15,6 +15,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,13 +54,14 @@ public class MusicEnlightenmentQuestionnaireServiceImpl extends BaseServiceImpl<
 			throw new BizException("问卷信息错误");
 		}
 		// 查询乐团状态
-		MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
+		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 		if (musicGroup == null) {
 			throw new BizException("乐团信息错误");
 		}
 		if (musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY) {
 			throw new BizException("乐团当前状态不能预报名");
 		}
+		TenantContextHolder.setTenantId(musicGroup.getTenantId());
 		enlightenmentQuestionnaire.setTenantId(musicGroup.getTenantId());
 		enlightenmentQuestionnaire.setOrganId(musicGroup.getOrganId());
 		// 根据手机号检测学员是否存在,存在就更新,不存在插入
@@ -72,6 +74,7 @@ public class MusicEnlightenmentQuestionnaireServiceImpl extends BaseServiceImpl<
 			enlightenmentQuestionnaire.setId(musicEnlightenmentQuestionnaire.getId());
 			musicEnlightenmentQuestionnaireDao.update(enlightenmentQuestionnaire);
 		}
+		TenantContextHolder.clearTenantId();
 	}
 
 	@Override

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

@@ -62,8 +62,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	@Autowired
 	private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
 	@Autowired
-	private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
-	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
 	private SysConfigDao sysConfigDao;

+ 0 - 71
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -237,77 +237,6 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 						"STUDENT",memberName,pushMemberRenewAgain);
 			}
 		}
-
-		/*Date date = new Date();
-		//会员结束前15天自动创建乐团续费(默认提前15天)
-		String autoCreateMemberRenew = sysTenantConfigService.getTenantConfigValue(SysConfigService.AUTO_CREATE_MEMBER_RENEW,tenantId);
-		if(StringUtils.isNotEmpty(autoCreateMemberRenew)){
-			Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryAutoCreateStudentMap(autoCreateMemberRenew, tenantId));
-			if(studentMusicMap.size() > 0){
-				for (String musicGroupId : studentMusicMap.keySet()) {
-					MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-					MemberFeeSetting memberFee = memberFeeSettingDao.findByRankIdAndOrganId(musicGroup.getOrganId(), memberRankSetting.getId());
-					if(memberFee == null){
-						Organization organization = organizationDao.get(musicGroup.getOrganId());
-						logger.error("自动创建缴费项目失败,{} 分部会员收费标准未配置",organization.getName());
-						continue;
-					}
-					//创建缴费项目
-					MusicGroupPaymentCalenderDto musicGroupPaymentCalenderDto = new MusicGroupPaymentCalenderDto();
-					musicGroupPaymentCalenderDto.setMusicGroupId(musicGroupId);
-					musicGroupPaymentCalenderDto.setMemberValidDate(6);
-					musicGroupPaymentCalenderDto.setMemo("系统自动创建缴费项目");
-					musicGroupPaymentCalenderDto.setMemberRankSettingId(memberRankSetting.getId());
-					musicGroupPaymentCalenderDto.setPayUserType(MusicGroupPaymentCalender.PayUserType.STUDENT);
-					musicGroupPaymentCalenderDto.setPaymentType(MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW);
-					musicGroupPaymentCalenderDto.setPaymentPattern(1);
-					musicGroupPaymentCalenderDto.setMemberPaymentAmount(memberFee.getGroupPurchaseHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP));
-					musicGroupPaymentCalenderDto.setAutoCreate(true);
-					musicGroupPaymentCalenderDto.setIsGiveMusicNetwork(false);
-					List<MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList = new ArrayList<>();
-					MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange range = new MusicGroupPaymentCalenderDto().new MusicGroupPaymentDateRange();
-					range.setStartPaymentDate(date);
-					range.setDeadlinePaymentDate(DateUtil.addMonths(date,1));
-					musicGroupPaymentDateRangeList.add(range);
-					musicGroupPaymentCalenderDto.setMusicGroupPaymentDateRangeList(musicGroupPaymentDateRangeList);
-					String batchNo = "";
-					try {
-						batchNo = musicGroupPaymentCalenderService.create(musicGroupPaymentCalenderDto);
-					}catch (Exception e){
-						logger.error("{} 乐团自动创建缴费项目失败,失败原因:{}",musicGroup.getName(),e.getMessage());
-						continue;
-					}
-					MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.findByBatchNo(batchNo).get(0);
-					Set<Integer> userIdList = Arrays.stream(studentMusicMap.get(musicGroupId).split(",")).map(Integer::new).collect(Collectors.toSet());
-					musicGroupPaymentCalenderDetailService.batchAdd(calender.getId(),userIdList,musicGroup,true);
-					Map<Integer, String> studentPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(studentMusicMap.get(musicGroupId)));
-					Map<Integer,String> userMap = new HashMap<>(userIdList.size());
-					Map<Integer,String> userMap1 = new HashMap<>(userIdList.size());
-					for (Integer studentId : userIdList) {
-						userMap.put(studentId,studentPhoneMap.get(studentId));
-						userMap1.put(studentId,studentId.toString());
-					}
-					String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
-					String pushUrl = baseApiUrl + "/#/musicGroupRenew?calenderId=" + calender.getId() + "&id=" + musicGroupId;
-					String sortUrl = HttpUtil.getSortUrl(pushUrl);
-					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-							MessageTypeEnum.SMS_AUTO_STUDENT_MEMBER_RENEW_MESSAGE,
-							userMap,
-							null,
-							0,
-							sortUrl,
-							null,memberName,autoCreateMemberRenew,sortUrl);
-
-					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-							MessageTypeEnum.PUSH_AUTO_STUDENT_MEMBER_RENEW_MESSAGE,
-							userMap1,
-							null,
-							0,
-							"4?" + pushUrl,
-							"STUDENT",memberName,autoCreateMemberRenew);
-				}
-			}
-		}*/
 	}
 
 	private MusicGroupSchoolTermCourseDetail getCourseDetail(MusicGroupSchoolTermCourseDetail courseDetail){

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

@@ -332,7 +332,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (originRegistration != null) {
             throw new BizException("您已预报名成功,请勿重复提交资料");
         }
-
+        TenantContextHolder.setTenantId(musicGroup.getTenantId());
         studentPreRegistration.setTenantId(musicGroup.getTenantId());
         studentPreRegistration.setOrganId(musicGroup.getOrganId());
         //保存学员信息
@@ -365,6 +365,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPreRegistrationDao.insert(studentPreRegistration);
         // 添加成员
         imGroupMemberService.join(Long.parseLong(musicGroupId), user.getId(), null, false);
+        TenantContextHolder.clearTenantId();
         return true;
     }
 
@@ -784,7 +785,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     public HttpResponseResult pay(RegisterPayDto registerPayDto) throws Exception {
         //判断用户是否已存在订单
         List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(registerPayDto.getUserId(), registerPayDto.getMusicGroupId(), DealStatusEnum.ING);
-
         if (CollectionUtils.isNotEmpty(applyOrderList)) {
             HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(applyOrderList.get(0), registerPayDto.getRepeatPay());
             if (result.getCode() != 200) {

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

@@ -4017,6 +4017,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         return BaseController.succeed();
     }
 
+    public static void main(String[] args) {
+
+    }
+
     @Override
     public void pushStudyReport(Date expiredDate, String pushType) {
         if (Objects.isNull(expiredDate)) {
@@ -4026,9 +4030,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (StringUtils.isBlank(pushType)) {
             throw new BizException("请指定推送类型:JIGUANG、SMS、ALL");
         }
-        Integer tenantId = TenantContextHolder.getTenantId();
-
-        List<CourseScheduleEvaluate> reports = courseScheduleEvaluateDao.findExpiredDateBeforeReport(expiredDate, tenantId);
+        List<CourseScheduleEvaluate> reports = courseScheduleEvaluateDao.findExpiredDateBeforeReport(expiredDate);
 
         if (CollectionUtils.isEmpty(reports)) {
             return;
@@ -4041,36 +4043,28 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             if (Objects.isNull(userFreePracticeGroup)) {
                 continue;
             }
-//            ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(userFreePracticeGroup.getId().toString(), GroupType.PRACTICE.getCode());
-//
-//            CourseScheduleEvaluate courseScheduleEvaluate = courseScheduleEvaluateDao.findByClassGroupId(classGroup.getId());
-//            if(Objects.isNull(courseScheduleEvaluate)){
-//                continue;
-//            }
-
-            String pushUrl = baseApiUrl + "/#/reportDetail?classGroupId=" + report.getClassGroupId();
-            String smsUrl = baseApiUrl + "/#/transfer?url=" + baseApiUrl + "&hash=reportDetail&classGroupId=" + report.getClassGroupId();
-
+            StringBuffer pushUrl = new StringBuffer(baseApiUrl);
+            StringBuffer smsUrl = new StringBuffer(baseApiUrl);
             if (report.getVersion().equals(2)) {
-                pushUrl = baseApiUrl + "/#/reportDetailNew?id=" + report.getId() + "&classGroupId=" + report.getClassGroupId();
-                smsUrl = baseApiUrl + "/#/transfer?url=" + baseApiUrl + "&hash=reportDetailNew&id=" + report.getId() + "&classGroupId=" + report.getClassGroupId();
+                pushUrl.append("/#/reportDetailNew?id=").append(report.getId()).append("&classGroupId=").append(report.getClassGroupId());
+                smsUrl.append("/#/transfer?url=").append(baseApiUrl).append("&hash=reportDetailNew&id=").append(report.getId()).append("&classGroupId=").append(report.getClassGroupId());
+            }else {
+                pushUrl.append("/#/reportDetail?classGroupId=").append(report.getClassGroupId());
+                smsUrl.append("/#/transfer?url=").append(baseApiUrl).append("&hash=reportDetail&classGroupId=").append(report.getClassGroupId());
             }
-
-//            SysUser student = sysUserFeignService.queryUserById(userFreePracticeGroup.getStudentId());
             SysUser student = teacherDao.getUser(userFreePracticeGroup.getStudentId());
-
             if (pushType.equals("ALL") || pushType.equals("JIGUANG")) {
                 Map<Integer, String> userMap = new HashMap<>();
                 userMap.put(userFreePracticeGroup.getStudentId(), userFreePracticeGroup.getStudentId().toString());
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_PUSH_PRACTICE_COMPLETED_STUDY_REPORT,
-                        userMap, null, 0, "5?" + pushUrl, "STUDENT", pushUrl);
+                        userMap, null, 0, pushUrl.insert(0,"5?").toString(), "STUDENT", pushUrl.toString());
             }
 
             if (pushType.equals("ALL") || pushType.equals("SMS")) {
                 Map<Integer, String> userPhoneMap = new HashMap<>();
                 userPhoneMap.put(userFreePracticeGroup.getStudentId(), student.getPhone());
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_PUSH_PRACTICE_COMPLETED_STUDY_REPORT,
-                        userPhoneMap, null, 0, null, "STUDENT", HttpUtil.getSortUrl(smsUrl));
+                        userPhoneMap, null, 0, null, "STUDENT", HttpUtil.getSortUrl(smsUrl.toString()));
             }
             report.setIsPushed(1);
             courseScheduleEvaluateDao.update(report);
@@ -5083,6 +5077,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             throw new BizException("未找到此课程");
         }
         VipGroupPayInfoDto vipGroupPayInfo = new VipGroupPayInfoDto();
+        vipGroupPayInfo.setTenantId(practiceGroup.getTenantId());
         vipGroupPayInfo.setVipGroupId(practiceGroupId.intValue());
         vipGroupPayInfo.setViipGroupName(practiceGroup.getName());
         vipGroupPayInfo.setPrice(practiceGroup.getTotalPrice());

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

@@ -15,6 +15,7 @@ import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.SysTenantConfigService;
 import com.ym.mec.common.tenant.TenantContextHolder;
+import com.ym.mec.util.encode.AES;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -214,16 +215,6 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         if(students.size() > 0){
             studentDao.batchUpdate(students);
         }
-        //获取正常签到的学生信息
-//        List<StudentAttendance> normal = studentAttendances.stream().filter(studentAttendance -> studentAttendance.getStatus() == StudentAttendanceStatusEnum.NORMAL).collect(Collectors.toList());
-//        if (normal != null && normal.size() > 0) {
-//            Map<Integer, String> receivers = new HashMap<>();
-//            normal.forEach(e -> {
-//                receivers.put(e.getUserId(), e.getUserId().toString());
-//            });
-//            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE,
-//                    receivers, null, 0, "2", "STUDENT", DateUtil.format(new Date(), DateUtil.DATE_FORMAT_MIN));
-//        }
 
         Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
         Integer studentNum = studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL) == null ? 0 : studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();

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

@@ -30,6 +30,7 @@ import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.yqpay.*;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -103,7 +104,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private ActivityUserMapperDao activityUserMapperDao;
     @Autowired
-    private StudentService studentService;
+    private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
@@ -775,6 +776,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult checkRepeatPay(StudentPaymentOrder order, Boolean repeatPay) throws Exception {
         // 查询订单状态
         PayStatus payStatus = this.queryPayStatus(order.getPaymentChannel(), order.getOrderNo(), order.getTransNo());
@@ -787,6 +789,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         //处理关闭订单
         order.setStatus(DealStatusEnum.CLOSE);
         order.setMemo("关闭订单");
+        //如果是报名订单,订单关闭时需要更改已缴费学员数
+        cutSubjectPlan(order);
         if (order.getBalancePaymentAmount() != null && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
             sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(),
                     PlatformCashAccountDetailTypeEnum.REFUNDS, "订单主动关闭退费");
@@ -796,6 +800,23 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         return BaseController.succeed();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public void cutSubjectPlan(StudentPaymentOrder order){
+        if(order.getType() == OrderTypeEnum.APPLY){
+            //如果是报名订单,订单关闭时需要更改已缴费学员数
+            // 判断之前是否已有订单
+            String musicGroupId = order.getMusicGroupId();
+            Integer userId = order.getUserId();
+            List<StudentPaymentOrder> oldStudentPaymentOrderList = this.queryByCondition(GroupType.MUSIC,musicGroupId, userId, DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
+            if(oldStudentPaymentOrderList != null && oldStudentPaymentOrderList.size() > 0){
+                StudentRegistration studentRegistration = studentRegistrationService.getStudentRegister(musicGroupId, userId);
+                MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
+                musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() == null?0:musicOneSubjectClassPlan.getPaidStudentNum() - 1);
+                musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
+            }
+        }
+    }
+
     /**
      * 只查询成功的订单
      *
@@ -826,7 +847,18 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         Optional.ofNullable(orderNo)
                 .map(this::findOrderByOrderNo)
                 .orElseThrow(() -> new BizException("未查询到该订单数据!"));
-        return studentPaymentOrderDao.queryOrderDetail(orderNo);
+        StudentPaymentOrderVo voList = studentPaymentOrderDao.queryOrderDetail(orderNo);
+        if (Objects.nonNull(voList) && CollectionUtils.isNotEmpty(voList.getList())) {
+            List<StudentPaymentOrderVo.StudentPaymentDetailVo> collect = voList.getList().stream()
+                    .filter(d -> Objects.nonNull(d.getGoodsName()))
+                    .collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect)) {
+                voList.setList(null);
+            } else {
+                voList.setList(collect);
+            }
+        }
+        return voList;
     }
 
 

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

@@ -136,11 +136,10 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     @Transactional(rollbackFor = Exception.class)
 	public boolean register(StudentPreRegistration studentPreRegistration) {
-    	
-    	Date date = new Date();
+        TenantContextHolder.setTenantId(studentPreRegistration.getTenantId());
+        Date date = new Date();
     	// 判断用户是否存在
-        SysUser user = sysUserFeignService.queryUserByMobile(studentPreRegistration.getPhone());
-        
+        SysUser user = teacherDao.getUserWithPhone(studentPreRegistration.getPhone());
         Integer userId = null;
         
         if(user != null && user.getId() != null){
@@ -160,11 +159,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             user.setCreateTime(date);
             user.setUpdateTime(date);
             // 注册账户信息
-            HttpResponseResult<Integer> result = sysUserFeignService.addUser(user);
-
-            userId = result.getData();
-            user.setId(userId);
-            
+            teacherDao.addSysUser(user);
+            userId = user.getId();
             sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
         }
         
@@ -177,13 +173,12 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         student.setSchoolName(studentPreRegistration.getSchool());
         student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
         student.setCurrentClass(studentPreRegistration.getCurrentClass());
-        student.setTenantId(studentPreRegistration.getTeacherRecommandSubjectId());
         student.setOrganId(studentPreRegistration.getOrganId());
         student.setParentName(studentPreRegistration.getParentName());
         student.setRemake(studentPreRegistration.getRemake());
         student.setUnitName(studentPreRegistration.getUnitName());
         studentDao.insert(student);
-        
+        TenantContextHolder.clearTenantId();
         return true;
 	}
 

+ 12 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponCodeServiceImpl.java

@@ -113,19 +113,21 @@ public class SysCouponCodeServiceImpl extends BaseServiceImpl<Long, SysCouponCod
 
         Date now = new Date();
         //如果优惠券不存在,或者已停用,或者不在领取有效期内,或者已消耗完,则此优惠券无效
-        boolean invalid = Objects.isNull(sysCoupon) || 0 == sysCoupon.getStatus() || now.compareTo(sysCoupon.getStartDate()) < 0 || now.compareTo(sysCoupon.getEndDate()) > 0;
-        invalid = invalid || sysCoupon.getStockCount() != -1 && sysCoupon.getConsumeNum() >= sysCoupon.getStockCount() && (sysCoupon.getStockCount() - sysCoupon.getConsumeNum() < exchangeNum);
-        if (invalid) {
-            throw new BizException("无效优惠券");
-        }
+        Optional<SysCoupon> optional = Optional.ofNullable(sysCoupon);
+        optional.orElseThrow(() -> new BizException("未查询到优惠券信息!"));
+        optional.filter(c -> 1 == c.getStatus()).orElseThrow(() -> new BizException("优惠券已被停用,请刷新!"));
+        optional.filter(c -> now.compareTo(c.getStartDate()) > -1).orElseThrow(() -> new BizException("未到领取时间!"));
+        optional.filter(c -> now.compareTo(c.getEndDate()) < 0).orElseThrow(() -> new BizException("优惠券已过期!"));
+        optional.filter(c -> c.getStockCount() == -1
+                        || (c.getStockCount() > -1 && c.getStockCount() >= c.getConsumeNum() + exchangeNum))
+                .orElseThrow(() -> new BizException("优惠券库存不足!"));
         //校验兑换的最大次数
         if (sysCoupon.getLimitExchangeNum() != -1) {
             int userUserNum = sysCouponCodeDao.countWithUserAndCoupon(userId, couponId);
-            invalid = (userUserNum + exchangeNum) > sysCoupon.getLimitExchangeNum();
-        }
-        //如果用户使用数量超过优惠券限制则领取无效
-        if (invalid) {
-            throw new BizException("当前优惠券最多可领取{}次", sysCoupon.getLimitExchangeNum());
+            //如果用户使用数量超过优惠券限制则领取无效
+            if (userUserNum + exchangeNum > sysCoupon.getLimitExchangeNum()) {
+                throw new BizException("当前优惠券最多可领取{}次", sysCoupon.getLimitExchangeNum());
+            }
         }
         return sysCoupon;
     }

+ 41 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,5 +1,26 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Random;
+import java.util.Set;
+
+import org.apache.commons.lang3.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.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -21,7 +42,6 @@ import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMessage;
-import com.ym.mec.common.entity.ImPlayMidiMessage;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
@@ -38,21 +58,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
 
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
-
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
 
@@ -127,7 +132,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @param group 消息组
 	 * @return
 	 */
-	private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
+	private int addMessage(Integer receiverTenantId, Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
 			String errorMsg, Integer readStatus, String memo, String group,String jpushType) {
 		SysMessage message = null;
 		Date date = new Date();
@@ -147,6 +152,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 					userId = user.getId();
 				}
 			}
+			message.setTenantId(receiverTenantId);
 			message.setUserId(userId);
 			message.setContent(content);
 			message.setCreateOn(date);
@@ -301,7 +307,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
 			String url,String jpushType, Object... args) {
 		LOGGER.info("batchSendMessage {}, type {}, receivers {} ", messageSender, type, receivers);
 		if (receivers == null || receivers.size() == 0) {
@@ -309,12 +315,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			return;
 		}
 		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(receivers.keySet().iterator().next());
-		TenantContextHolder.setTenantId(simpleUserDto.getTenantId());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
 
 		// email data from database load, 使用接收者 tenantId, 假设发送者和接收者为同一机构
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
 			LOGGER.info("batch 发送邮件 {} ", simpleUserDto.getTenantId());
-			loadEmailInfo(simpleUserDto.getTenantId());
+			loadEmailInfo(senderTenantId);
 			debugMode = false;
 		}
 		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
@@ -377,10 +383,15 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		} else if (messageSender.getSendMode().equals("EMAIL")) {
 			mode = MessageSendMode.EMAIL;
 		}
-		LOGGER.info("batch 添加消息");
-		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
+		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
 				url, messageConfig.getGroup(),jpushType);
-		TenantContextHolder.clearTenantId();
+	}
+
+	@Override
+	@Async
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+			String url,String jpushType, Object... args) {
+		batchSendMessage(TenantContextHolder.getTenantId(), messageSender, type, receivers, triggerTime, readStatus, url, jpushType, args);
 	}
 
 
@@ -391,6 +402,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("接收地址不能为空");
 		}
+		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(receivers.keySet().iterator().next());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
+		
 		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
 			//如果不是缴费信息
 			if(type != STUDENT_PUSH_VIP_BUY){
@@ -443,7 +457,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 				LOGGER.warn("消息发送失败", e);
 			}
 		}
-		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
+		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
 				url, messageConfig.getGroup(),jpushType);
 	}
 
@@ -455,7 +469,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			throw new BizException("接收地址不能为空");
 		}
 		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(userId);
-		TenantContextHolder.setTenantId(simpleUserDto.getTenantId());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
+		
 		// email data from database load
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
 			loadEmailInfo(simpleUserDto.getTenantId());
@@ -489,8 +504,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		}
 		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		receivers.put(userId, receiver);
-		LOGGER.info("添加消息 {} ", title);
-		addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
+		addMessage(receiverTenantId, receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
 	}
 
 	private void loadEmailInfo(Integer tenantId) {

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

@@ -632,24 +632,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	}
 
 	@Override
-	public List<TeacherAbnormalAttendanceInfoDto> findTeacherAbnormalSignInCourseScheduleRecord(Integer organId, Date date, Integer signInStatus) {
-		return teacherAttendanceDao.findTeacherAbnormalSignInCourseScheduleRecord(organId,date,signInStatus);
-	}
-
-	@Override
-	public List<Date> findTeacherAbnormalSignInDates(Integer organId, Date date) {
-		return teacherAttendanceDao.findTeacherAbnormalSignInDates(organId,date);
-	}
-
-	@Override
-	public Map countTeacherAbnormalSignInClassTimes(Integer organId, Date date) {
-		Map<String,Integer> result=new HashMap<>();
-		result.put("abnormalSignInNum",teacherAttendanceDao.countTeacherAbnormalSignInClassTimes(organId,date,YesOrNoEnum.NO.getCode()));
-		result.put("noSignInNum",teacherAttendanceDao.countTeacherAbnormalSignInClassTimes(organId,date,null));
-		return result;
-	}
-
-	@Override
 	public TeacherSignOutDto getTeacherSignDetail(Integer courseScheduleId, Integer userId) {
 		if(Objects.isNull(courseScheduleId)){
 			throw new BizException("请指定课程");
@@ -739,11 +721,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	}
 
 	@Override
-	public TeacherAttendance findByTeacherAttendanceInfo(Long courseId, Integer teacherId) {
-		return teacherAttendanceDao.findByTeacherAttendanceInfo(teacherId.longValue(),courseId);
-	}
-
-	@Override
 	public TeacherAttendanceDetailDto getTeacherPersonalAttendanceDetail(Integer courseScheduleId) {
 		TeacherAttendance teacherAttendance = teacherAttendanceDao.getMainTeacherAttendance(courseScheduleId);
 		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());

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

@@ -59,7 +59,7 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
         Date nextMonthDate = new Date();
         Date startDate = DateUtil.getFirstDayOfMonth(nextMonthDate);
         Date endDate = DateUtil.getLastDayOfMonth(nextMonthDate);
-        List<TeacherCourseStatistics> teacherCourseStatisticsList = teacherCourseStatisticsDao.findUserByWarringSalary(startDate, endDate, TenantContextHolder.getTenantId());
+        List<TeacherCourseStatistics> teacherCourseStatisticsList = teacherCourseStatisticsDao.findUserByWarringSalary(startDate, endDate);
         if (teacherCourseStatisticsList.size() == 0) {
             return;
         }

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

@@ -26,8 +26,6 @@ import java.util.*;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
-import static com.ym.mec.biz.service.impl.TenantInfoSendMsgServiceImpl.INSUFFICIENT;
-
 /**
  * 机构资产信息(TenantAssetsInfo)表服务实现类
  *
@@ -155,7 +153,7 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
                 //当前余额大于300 并且 本次扣除后剩余额度小于300 就发信息提醒
                 if (balance.compareTo(new BigDecimal(300)) > -1 && balance.compareTo(after) < 0) {
                     TenantInfo t = tenantInfoService.getById(course.getTenantId());
-                    tenantInfoSendMsgService.sendToAll(INSUFFICIENT, t.getUserId(), t.getEmail(), t.getPhone(), new Object[]{t.getName()});
+                    tenantInfoSendMsgService.platformSendToAll(t.getEmail(), t.getPhone(), new Object[]{t.getName()});
                 }
             }
         });

+ 25 - 51
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoSendMsgServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.TenantInfoDao;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.TenantInfoSendMsgService;
@@ -14,7 +15,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.*;
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.EMAIL_TENANT_ACTIVATION_SUCCESSFUL;
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.SMS_TENANT_ACTIVATION_SUCCESSFUL;
 
 @Service
 public class TenantInfoSendMsgServiceImpl implements TenantInfoSendMsgService {
@@ -22,78 +24,50 @@ public class TenantInfoSendMsgServiceImpl implements TenantInfoSendMsgService {
 
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private TenantInfoDao tenantInfoDao;
 
-    //开通
-    public static final String OPEN = "open";
-    //续费
-    public static final String RENEW = "renew";
-    //即将到期提醒
-    public static final String EXPIRATION = "expiration";
-    //云教室余额不足
-    public static final String INSUFFICIENT = "insufficient";
-
-    //开通
-    private static final Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum> openMsgEnum = new HashMap<>();
-    //续费
-    private static final Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum> renewMsgEnum = new HashMap<>();
-    //即将到期提醒
-    private static final Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum> expirationMsgEnum = new HashMap<>();
-    //云教室余额不足
-    private static final Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum> insufficientMsgEnum = new HashMap<>();
-    //init
-    private static final Map<String, Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum>> sendMsgTypeEn = new HashMap<>();
+    //平台向机构发送信息,目前有 机构开通、机构续费、机构即将到期提醒、云教室余额不足
+    public static final String PLATFORM_SEND = "PLATFORM_SEND";
+    //平台向机构发送信息 开通、续费、即将到期提醒、云教室余额不足
+    private static final Map<MessageSenderPluginContext.MessageSender, MessageTypeEnum> PLATFORM_ALL_MSG_ENUM = new HashMap<>();
 
     static {
-        //开通
-        openMsgEnum.put(MessageSenderPluginContext.MessageSender.EMAIL, EMAIL_TENANT_ACTIVATION_SUCCESSFUL);
-        openMsgEnum.put(MessageSenderPluginContext.MessageSender.AWSMS, SMS_TENANT_ACTIVATION_SUCCESSFUL);
-        //续费
-        renewMsgEnum.put(MessageSenderPluginContext.MessageSender.EMAIL, EMAIL_TENANT_RENEWAL_SUCCESSFUL);
-        renewMsgEnum.put(MessageSenderPluginContext.MessageSender.AWSMS, SMS_TENANT_RENEWAL_SUCCESSFUL);
-        //即将到期提醒
-        expirationMsgEnum.put(MessageSenderPluginContext.MessageSender.EMAIL, EMAIL_TENANT_EXPIRATION_REMINDERS);
-        expirationMsgEnum.put(MessageSenderPluginContext.MessageSender.AWSMS, SMS_TENANT_EXPIRATION_REMINDERS);
-        //云教室余额不足
-        insufficientMsgEnum.put(MessageSenderPluginContext.MessageSender.EMAIL, EMAIL_TENANT_INSUFFICIENT_BALANCE);
-        insufficientMsgEnum.put(MessageSenderPluginContext.MessageSender.AWSMS, SMS_TENANT_INSUFFICIENT_BALANCE);
-
-        //init
-        sendMsgTypeEn.put(OPEN, openMsgEnum);
-        sendMsgTypeEn.put(RENEW, renewMsgEnum);
-        sendMsgTypeEn.put(EXPIRATION, expirationMsgEnum);
-        sendMsgTypeEn.put(INSUFFICIENT, insufficientMsgEnum);
+        //开通、续费、即将到期提醒、云教室余额不足 以上都是平台向机构发信息
+        PLATFORM_ALL_MSG_ENUM.put(MessageSenderPluginContext.MessageSender.EMAIL, EMAIL_TENANT_ACTIVATION_SUCCESSFUL);
+        PLATFORM_ALL_MSG_ENUM.put(MessageSenderPluginContext.MessageSender.AWSMS, SMS_TENANT_ACTIVATION_SUCCESSFUL);
     }
 
     /**
-     * 发送邮件及短信提醒
+     * 以平台的名义发送邮件及短信
      *
-     * @param type   OPEN/RENEW/EXPIRATION之类的
-     * @param userId 机构用户id
-     * @param email  发送的地址 电话或者邮件
-     * @param objs   发送的信息
+     * @param email 发送的地址 电话或者邮件
+     * @param objs  发送的信息
      */
     @Override
-    public void sendToAll(String type, Integer userId, String email, String phone, Object[] objs) {
+    public void platformSendToAll(String email, String phone, Object[] objs) {
         Map<Integer, String> sendPar = new HashMap<>();
+        Integer userId = tenantInfoDao.queryUserByTenantId(-1);
         if (Objects.isNull(userId)) {
             return;
         }
+        log.info("platformSendToAll>>> email {} phone {} objs {} sendPar {}", email, phone, objs, sendPar);
+
         if (StringUtils.isNotBlank(email)) {
             sendPar.put(userId, email);
-            MessageSenderPluginContext.MessageSender emailEn = MessageSenderPluginContext.MessageSender.EMAIL;
-            sysMessageService.batchSendMessage(emailEn,
-                    sendMsgTypeEn.get(type).get(emailEn), sendPar, null, 0, null,
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.EMAIL,
+                    PLATFORM_ALL_MSG_ENUM.get(MessageSenderPluginContext.MessageSender.EMAIL),
+                    sendPar, null, 0, null,
                     "SYSTEM", objs);
         }
 
         if (StringUtils.isNotBlank(phone)) {
-            MessageSenderPluginContext.MessageSender smsEn = MessageSenderPluginContext.MessageSender.AWSMS;
             sendPar.put(userId, phone);
-            sysMessageService.batchSendMessage(smsEn,
-                    sendMsgTypeEn.get(type).get(smsEn), sendPar, null, 0, null,
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
+                    PLATFORM_ALL_MSG_ENUM.get(MessageSenderPluginContext.MessageSender.AWSMS),
+                    sendPar, null, 0, null,
                     "SYSTEM", objs);
         }
-
     }
 
 }

+ 12 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -48,8 +48,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
-import static com.ym.mec.biz.service.impl.TenantInfoSendMsgServiceImpl.*;
-
 @Service
 public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo> implements TenantInfoService {
     private static final Logger log = LoggerFactory.getLogger(TenantInfoServiceImpl.class);
@@ -345,7 +343,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         tenantProductInfoService.updateById(productInfo);
         //发送邮件及短信提醒
         Object[] msg = {tenantInfo.getName(), tenantInfo.getPhone(), "123456", "https://online.dayaedu.com"};
-        tenantInfoSendMsgService.sendToAll(OPEN, tenantInfo.getUserId(), tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
+        tenantInfoSendMsgService.platformSendToAll(tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
         //释放锁
         bucket.delete();
     }
@@ -443,7 +441,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      */
     public Map<String, Object> tenantOpenPay(Integer tenantId) throws Exception {
         SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
-        if(Objects.isNull(config)){
+        if (Objects.isNull(config)) {
             throw new BizException("未查询到机构收款分部信息!");
         }
 
@@ -489,7 +487,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      */
     public Map<String, Object> tenantRenewPay(Integer tenantId, Integer val) throws Exception {
         SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
-        if(Objects.isNull(config)){
+        if (Objects.isNull(config)) {
             throw new BizException("未查询到机构收款分部信息!");
         }
 
@@ -528,15 +526,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         return result;
     }
 
-    /**
-     * 缓存订单数据
-     *
-     * @param key TenantOrderRecordEnum+机构id+其他
-     */
-    public RBucket<Map<String, Object>> cacheOrder(String key) {
-        return redissonClient.getBucket(key);
-    }
-
     //操作续费信息
     public RBucket<Integer> opsRenewInfo(Integer key) {
         return redissonClient.getBucket(TenantOrderRecordEnum.TENANT_RENEW.getCode() + ":" + key);
@@ -574,7 +563,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         TenantInfo tenantInfo = this.getById(tenantId);
         //发送邮件及短信提醒
         Object[] msg = {tenantInfo.getName()};
-        tenantInfoSendMsgService.sendToAll(RENEW, tenantInfo.getUserId(), tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
+        tenantInfoSendMsgService.platformSendToAll(tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
         //释放锁
         bucket.delete();
     }
@@ -707,7 +696,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     @Override
     public Map<String, Object> recharge(Integer tenantId, BigDecimal amount) throws Exception {
         SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
-        if(Objects.isNull(config)){
+        if (Objects.isNull(config)) {
             throw new BizException("未查询到机构收款分部信息!");
         }
         log.error("机构 " + tenantId.toString() + "充值");
@@ -777,14 +766,14 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
 
     @Override
     public void saveTenantContextHolder(HttpServletRequest request) {
-    	
-    	final String TENANT_ID = "tenantId";
+
+        final String TENANT_ID = "tenantId";
         String tenantId = request.getParameter(TENANT_ID);
-        
-        if(StringUtils.isBlank(tenantId)){
-        	tenantId = request.getHeader(TENANT_ID);
+
+        if (StringUtils.isBlank(tenantId)) {
+            tenantId = request.getHeader(TENANT_ID);
         }
-        
+
         if (StringUtils.isBlank(tenantId)) {
             SysUser sysUser = sysUserFeignService.queryUserInfo();
             if (sysUser != null && sysUser.getTenantId() != null) {
@@ -842,7 +831,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private void send(List<TenantInfo> infoList, String dateStr) {
         infoList.forEach(t -> {
             Object[] objects = {t.getName(), dateStr};
-            tenantInfoSendMsgService.sendToAll(EXPIRATION, t.getUserId(), t.getEmail(), t.getPhone(), objects);
+            tenantInfoSendMsgService.platformSendToAll(t.getEmail(), t.getPhone(), objects);
         });
     }
 

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

@@ -4627,6 +4627,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("未找到此课程");
         }
         VipGroupPayInfoDto vipGroupPayInfo = new VipGroupPayInfoDto();
+        vipGroupPayInfo.setTenantId(vipGroup.getTenantId());
         vipGroupPayInfo.setVipGroupId(vipGroup.getId().intValue());
         vipGroupPayInfo.setViipGroupName(vipGroup.getName());
         vipGroupPayInfo.setPrice(vipGroup.getTotalPrice());

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

@@ -1029,15 +1029,13 @@
         WHERE cg.group_type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds})
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
-        SELECT mg.id_ music_id_,mg.name_ music_group_name_,mgsf.payment_status_,
+        SELECT mg.id_ music_id_,mg.name_ music_group_name_,
         SUM(cg.current_class_times_) current_class_times_,
         SUM(cg.total_class_times_) total_class_times_,mg.school_id_ teacher_school_id_
         FROM music_group mg
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
-        LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cg.id_
-        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.group_type_ = 'MUSIC' AND mgsf.user_id_ =
-        #{userId} AND cgsm.user_id_ = #{userId}
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.group_type_ = 'MUSIC' AND mgsf.user_id_ = #{userId} AND cgsm.user_id_ = #{userId}
         GROUP BY mg.id_,mgsf.payment_status_
     </select>
 

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

@@ -194,7 +194,6 @@
         SELECT *
         FROM course_schedule_evaluate
         WHERE status_ = 1
-          and tenant_id_ = #{tenantId}
           AND create_time_ &lt;= #{expiredDate}
           AND (is_pushed_ = 0 OR is_pushed_ IS NULL)
     </select>

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

@@ -156,7 +156,7 @@
 		SELECT
 			id_ data_id_,
 		    organ_id_,
-		    user_id_ deal_user_id_
+		    user_id_ deal_user_id_,tenant_id_
 		FROM
 			inspection_item_plan
 		WHERE
@@ -176,7 +176,7 @@
 		SELECT
 			iip.id_ data_id_,
 			iip.organ_id_,
-			iip.user_id_ deal_user_id_
+			iip.user_id_ deal_user_id_,iip.tenant_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')
@@ -217,6 +217,7 @@
 	<select id="getAttendanceError" resultMap="IndexErrDataRecord">
 		SELECT
 			DISTINCT cs.id_ data_id_,
+			cs.tenant_id_,
 			cs.organ_id_,
 			CASE cs.group_type_ WHEN 'MUSIC' THEN mg.educational_teacher_id_ WHEN 'VIP' THEN vg.educational_teacher_id_ WHEN 'PRACTICE' THEN pg.educational_teacher_id_ END deal_user_id_
 		FROM course_schedule cs
@@ -247,6 +248,7 @@
 		SELECT
 			cs.id_ data_id_,
 			cs.organ_id_,
+			cs.tenant_id_,
 			CASE cs.group_type_ WHEN 'MUSIC' THEN mg.educational_teacher_id_ WHEN 'VIP' THEN vg.educational_teacher_id_ WHEN 'PRACTICE' THEN pg.educational_teacher_id_ END deal_user_id_
 		FROM course_schedule cs
 			LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
@@ -339,7 +341,7 @@
 
 	<sql id="queryErrInspectionDataCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			irdr.tenant_id_ = #{tenantId}
 			<if test="searchType != null and searchType != ''">
 				<if test="searchType == 'MUSIC_PATROL_ITEM'">
 					and irdr.data_type_ = 'MUSIC_PATROL_ITEM'

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

@@ -317,7 +317,7 @@
         SELECT mgpc.*
         FROM music_group_payment_calender mgpc
         <include refid="queryPageSql"/>
-        ORDER BY mgpc.payment_valid_start_date_,mgpc.id_ DESC
+        ORDER BY mgpc.id_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -396,19 +396,6 @@
         AND (DATE_FORMAT(mgpcd.start_payment_date_,'%Y-%m-%d') between #{startTime} AND #{endTime}
         OR DATE_FORMAT(mgpcd.deadline_payment_date_,'%Y-%m-%d') between #{startTime} AND #{endTime})
     </select>
-    <select id="queryIntersectionByValidDate" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM music_group_payment_calender mgpc
-        WHERE music_group_id_ = #{musicGroupId}
-        AND (payment_valid_end_date_ IS NULL OR payment_valid_start_date_ BETWEEN #{paymentValidStartDate} AND #{paymentValidEndDate}
-        OR payment_valid_end_date_ BETWEEN #{paymentValidStartDate} AND #{paymentValidEndDate}) AND payment_valid_start_date_ IS NOT NULL
-        AND mgpc.payment_type_ NOT IN ('SPAN_GROUP_CLASS_ADJUST','ADD_STUDENT','ADD_COURSE') AND mgpc.batch_no_ IS NOT NULL
-        <if test="payUserType != null">
-        	and pay_user_type_ = #{payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
-        </if>
-        <if test="calenderId != null">
-            AND mgpc.id_ != #{calenderId}
-        </if>
-    </select>
     <select id="queryCalenderByDay" resultType="java.util.Map">
         SELECT mgpcd.music_group_payment_calender_id_ 'key',COUNT(mgpcd.payment_status_) 'value'
         FROM music_group_payment_calender_detail mgpcd
@@ -461,25 +448,6 @@
         WHERE mg.payment_valid_end_date_ IS NOT NULL AND
         DATEDIFF(mg.payment_valid_end_date_,#{format}) = #{configValue}
     </select>
-    <select id="getMusicGroupUnusedFirstPaymentCalender" resultMap="MusicGroupPaymentCalender">
-        SELECT
-            mgpc.*
-        FROM
-            music_group_payment_calender_detail mgpcd
-            LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-            LEFT JOIN music_group_payment_calender_course_settings mgpccs ON mgpc.id_ = mgpccs.music_group_payment_calender_id_
-        WHERE
-            mgpcd.music_group_payment_calender_id_ = mgpccs.music_group_payment_calender_id_
-            AND mgpc.music_group_id_ = #{musicGroupId}
-            AND mgpcd.use_in_course_ = 0
-            AND mgpcd.user_id_ IN
-            <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
-                #{studentId}
-            </foreach>
-        ORDER BY
-            mgpc.payment_valid_start_date_
-            LIMIT 1;
-    </select>
     <select id="getUnusedFirstPaymentCalenderWithCalenders" resultMap="MusicGroupPaymentCalender">
         SELECT * FROM music_group_payment_calender mgpc
         WHERE id_ IN
@@ -616,7 +584,6 @@
         FROM music_group mg
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.music_group_id_ = mg.id_
         AND mgpc.status_ IN ('NO','OPEN','OVER')
-        AND DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(mgpc.payment_valid_start_date_,'%Y-%m-%d')
         LEFT JOIN music_group_payment_calender_detail mgpcd ON mgpc.id_ = mgpcd.music_group_payment_calender_id_ AND mgpcd.user_id_ = #{userId}
         WHERE FIND_IN_SET(mg.id_,#{musicGroupId}) AND mgpc.batch_no_ IS NOT NULL AND mgpc.pay_user_type_ = 'STUDENT'
         GROUP BY mg.id_
@@ -627,7 +594,6 @@
         FROM music_group mg
         LEFT JOIN music_group_payment_calender mgpc ON mgpc.music_group_id_ = mg.id_
         AND mgpc.status_ IN ('NO','OPEN','OVER')
-        AND DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(mgpc.payment_valid_start_date_,'%Y-%m-%d')
         LEFT JOIN music_group_payment_calender_detail mgpcd ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
         WHERE mg.id_ = #{musicGroupId} AND mgpcd.expect_amount_ > 0 AND mgpc.batch_no_ IS NOT NULL AND mgpc.pay_user_type_ = 'STUDENT' AND mgpcd.user_id_ IN
         <foreach collection="studentId" item="item" separator="," open="(" close=")">

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

@@ -435,7 +435,7 @@
                pg.user_id_              teacher_id_,
                cg.id_                   class_group_id_,
                pg.single_class_minutes_ total_minutes_,
-               pg.subject_id_
+               pg.subject_id_,pg.tenant_id_
         FROM practice_group pg
                  LEFT JOIN class_group cg on pg.id_ = cg.music_group_id_ AND cg.group_type_ = 'PRACTICE'
          WHERE pg.group_status_ IN ('NORMAL','FINISH') AND cg.group_type_ = 'PRACTICE'

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

@@ -267,7 +267,7 @@
         g.image_ goods_img_,
         spo.create_time_ start_time_,
         DATE_ADD(spo.create_time_, INTERVAL 1 YEAR) end_time_,
-        spo.id_ order_id_
+        spo.id_ order_id_,spod.tenant_id_
         FROM student_payment_order_detail spod
         LEFT JOIN student_payment_order spo ON spo.id_ = spod.payment_order_id_
         LEFT JOIN student_payment_order_detail spod2 ON spod2.payment_order_id_ = spo.id_

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

@@ -140,7 +140,7 @@
           AND spo.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
           AND spo.type_ = 'APPLY'
           AND sr.music_group_id_ = #{musicGroupId}
-          AND sr.music_group_status_ != 'QUIT'
+          AND sr.music_group_status_ != 'QUIT' AND spod.id_ IS NOT NULL
     </select>
 
     <!-- 查询订单详情 -->
@@ -346,6 +346,6 @@
         SELECT c.id_ FROM (SELECT payment_order_id_ id_ FROM music_group_payment_calender_detail
         WHERE music_group_payment_calender_id_ = #{calenderId} AND payment_order_id_ IS NOT NULL
         UNION
-        SELECT id_ FROM student_payment_order WHERE calender_id_ = #{calenderId} AND status_ = 'SUCCESS')c)
+        SELECT id_ FROM student_payment_order WHERE calender_id_ = #{calenderId} AND status_ = 'SUCCESS')c) AND spod.id_ IS NOT NULL
     </select>
 </mapper>

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

@@ -1034,7 +1034,7 @@
         where  status_ = 'SUCCESS'
           and create_time_ >= #{param.startDate}
           and create_time_   <![CDATA[ < ]]> #{param.endDate}
-          and user_id_ = #{userId}
+          and user_id_ = #{param.userId}
     </select>
 
     <select id="queryOrderDetail" resultMap="QueryOrderDetail">
@@ -1054,7 +1054,7 @@
         from student_payment_order as a
                  left join
              student_payment_order_detail as b on a.id_ = b.payment_order_id_
-        where order_no_ = #{orderNo};
+        where order_no_ = #{orderNo}
     </select>
 
 

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

@@ -128,9 +128,9 @@
 		SELECT sm.*, GROUP_CONCAT(o.name_) AS organ_name_ FROM sys_music_score_categories sm
 		LEFT JOIN organization o ON FIND_IN_SET(o.id_,sm.organ_id_)
 		<where>
-			<if test="organId != null and organId != ''">
+			<!-- <if test="organId != null and organId != ''">
 				AND INTE_ARRAY(sm.organ_id_,#{organId})
-			</if>
+			</if> -->
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
@@ -149,9 +149,9 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(sm.id_) FROM sys_music_score_categories sm
 		<where>
-			<if test="organId != null and organId != ''">
+			<!-- <if test="organId != null and organId != ''">
 				AND INTE_ARRAY(sm.organ_id_,#{organId})
-			</if>
+			</if> -->
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
@@ -191,9 +191,9 @@
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
-			<if test="organId != null">
+			<!-- <if test="organId != null">
 				AND INTE_ARRAY(#{organId},sm.organ_id_)
-			</if>
+			</if> -->
 		</where>
 	</sql>
 	

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

@@ -17,11 +17,12 @@
         <result column="create_time_" property="createTime"/>
         <result column="client_type_" property="clientType"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="tenant_id_" property="tenantId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="SysSuggestion">
-		SELECT * FROM sys_suggestion WHERE id_ = #{id} and tenant_id_ = #{tenantId}
+		SELECT * FROM sys_suggestion WHERE id_ = #{id}
 	</select>
 
     <!-- 全查询 -->
@@ -32,8 +33,8 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysSuggestion" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO sys_suggestion (mobile_no_,title_,content_,user_id_,create_time_,client_type_,type_,url_)
-        VALUES(#{mobileNo},#{title},#{content},#{userId},now(),#{clientType},#{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{url})
+        INSERT INTO sys_suggestion (mobile_no_,title_,content_,user_id_,create_time_,client_type_,type_,url_,tenant_id_)
+        VALUES(#{mobileNo},#{title},#{content},#{userId},now(),#{clientType},#{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{url},#{tenantId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -62,7 +63,7 @@
                 type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
         </set>
-        WHERE id_ = #{id}
+        WHERE id_ = #{id} ans tenant_id_ = #{tenantId}
     </update>
 
     <!-- 根据主键删除一条记录 -->
@@ -72,7 +73,7 @@
 
     <sql id="queryCondition">
         <where>
-            ss.tenant_id_ = #{tenantId}
+        	ss.tenant_id_ = #{tenantId}
             <if test="type!=null">
                 AND ss.type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>

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

@@ -79,7 +79,8 @@
     SELECT * FROM sys_config
   </select>
   <select id="queryALl" resultMap="com.ym.mec.biz.dal.dao.SysConfigDao.SysConfig">
-    SELECT sc.id_,sc.param_name_,sc.group_,CASE WHEN stc.id_ IS NULL THEN sc.paran_value_ ELSE stc.param_value_ END paran_value_ FROM sys_config sc
+    SELECT sc.id_,sc.param_name_,sc.group_,CASE WHEN stc.id_ IS NULL THEN sc.paran_value_ ELSE stc.param_value_ END paran_value_,stc.create_time_ create_on_
+    FROM sys_config sc
     LEFT JOIN sys_tenant_config stc ON sc.id_ = stc.sys_config_id_ AND stc.tenant_id_ = #{tenantId}
     <where>
       <if test="group != null">

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

@@ -49,6 +49,7 @@
         <result column="phone_" jdbcType="VARCHAR" property="phone"/>
         <result column="organ_name_" jdbcType="VARCHAR" property="organName"/>
         <result column="month_str_" jdbcType="VARCHAR" property="monthStr"/>
+        <result column="tenant_id_" jdbcType="INTEGER" property="tenantId"/>
     </resultMap>
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseStatistics" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
@@ -86,7 +87,7 @@
     <!-- 查找下月排课小于基准课酬的老师-->
     <select id="findUserByWarringSalary" resultMap="TeacherCourseStatistics1"><![CDATA[
         SELECT ctt.expect_total_salary_, t.id_ user_id_,t.organ_id_,t.subject_id_ subject_id_list_,
-               ctt.average_class_minutes_
+               ctt.average_class_minutes_,t.tenant_id_
         FROM teacher t
          LEFT JOIN sys_user su ON t.id_=su.id_
          LEFT JOIN (
@@ -102,7 +103,7 @@
             GROUP BY
                 csts.user_id_
         ) ctt ON ctt.user_id_=t.id_
-        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1 and t.tenant_id_ = #{tenantId}
+        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1
           AND t.demission_date_ IS NULL
           AND t.organ_id_ IS NOT NULL
         ]]>

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

@@ -46,6 +46,7 @@
         <result column="state_" jdbcType="INTEGER" property="state"/>
         <result column="logo_" jdbcType="VARCHAR" property="logo"/>
         <result column="real_name_" jdbcType="VARCHAR" property="createdName"/>
+        <result column="studentCount" jdbcType="INTEGER" property="studentCount"/>
         <!-- 机构产品信息-->
         <result column="serve_name_" jdbcType="VARCHAR" property="serveName"/>
         <result column="student_up_limit_" jdbcType="INTEGER" property="studentUpLimit"/>
@@ -63,12 +64,15 @@
         u.`real_name_`,
         c.`name_` AS serve_name_,
         d.`student_up_limit_`,
-        b.`expiry_date_`
+        b.`expiry_date_`,
+        ifnull(st.studentCount, 0) as studentCount
         FROM tenant_info AS a
         LEFT JOIN tenant_product_info AS b ON a.`id_` = b.`tenant_id_` and b.using_ = 0
         LEFT JOIN platform_serve AS c ON b.`serve_id_` = c.`id_`
         LEFT JOIN platform_serve_detail AS d ON b.`serve_detail_id_` = d.`id_` AND c.`id_` = d.`serve_id_`
         LEFT JOIN sys_user AS u ON a.`created_by_` = u.`id_`
+        LEFT JOIN (select tenant_id_, count(tenant_id_) as studentCount from student group by tenant_id_) as st
+        on a.id_ = st.tenant_id_
         <where>
             <if test="param.search != null ">
                 AND (
@@ -152,4 +156,8 @@
           AND b.`expiry_date_` = #{expiryDate}
     </select>
 
+    <select id="queryUserByTenantId" resultType="integer">
+        select id_ from sys_user where tenant_id_ = #{tenantId} limit 1
+    </select>
+
 </mapper>

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

@@ -28,8 +28,6 @@ public class CooperationOrganController extends BaseController {
     private CooperationOrganService cooperationOrganService;
     @Autowired
     private OrganizationService organizationService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "新增合作单位(教学点)")
     @PostMapping("/add")

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

@@ -76,7 +76,7 @@ public class SysMusicScoreCategoriesController extends BaseController {
     @GetMapping("/queryTree")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScoreCategories/queryTree')")
     public Object queryTree(MusicScoreQueryInfo queryInfo) {
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
+        //queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
         return succeed(sysMusicScoreCategoriesService.queryTree(queryInfo));
     }
 

+ 16 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.common.redis.service.RedisCache;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.date.DateUtil;
 import com.yonge.log.service.HistoryMessageService;
@@ -177,7 +178,8 @@ public class TaskController extends BaseController {
 	@GetMapping("/vipGroupAwardedMonthlyRewards")
 	// vip课月度奖励
 	public void vipGroupAwardedMonthlyRewards() {
-		vipGroupService.awardedMonthlyRewards();
+		//问过测试了,这个功能没有用过
+//		vipGroupService.awardedMonthlyRewards();
 	}
 
 	@GetMapping("/vipGroupTeacherSalarySettlement")
@@ -345,7 +347,9 @@ public class TaskController extends BaseController {
 	//学生服务信息统计
 	@GetMapping("/exercisesSituationStatistics")
 	public void exercisesSituationStatistics(String monday){
+		TenantContextHolder.setTenantId(1);
 		studentServeService.exercisesSituationStatistics2(monday,null,1);
+		TenantContextHolder.clearTenantId();
 //		studentServeService.exercisesSituationStatistics2(null,new ArrayList<>(Arrays.asList(1095257)));
 //		studentServeService.exercisesSituationStatistics(null);
 	}
@@ -365,7 +369,7 @@ public class TaskController extends BaseController {
 	// 更新乐团学员缴费状态
 	@GetMapping("/updateMusicGroupStudentFeeStatus")
 	public void updateMusicGroupStudentFeeStatus() {
-		musicGroupPaymentCalenderService.autoUpdateMusicGroupStudentFeeStatus();
+//		musicGroupPaymentCalenderService.autoUpdateMusicGroupStudentFeeStatus();
 	}
 
 	// 推送教师异常考勤
@@ -386,7 +390,9 @@ public class TaskController extends BaseController {
 		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
 		if(tenantInfos != null && tenantInfos.size() > 0){
 			for (TenantInfo tenantInfo : tenantInfos) {
+				TenantContextHolder.setTenantId(tenantInfo.getId());
 				operatingReportService.statistics(tenantInfo.getId());
+				TenantContextHolder.clearTenantId();
 			}
 		}
 	}
@@ -406,7 +412,9 @@ public class TaskController extends BaseController {
 		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
 		if(tenantInfos != null && tenantInfos.size() > 0){
 			for (TenantInfo tenantInfo : tenantInfos) {
+				TenantContextHolder.setTenantId(tenantInfo.getId());
 				indexBaseMonthDataService.indexBaseDataTask(tenantInfo.getId(), month, dataTypeSet);
+				TenantContextHolder.clearTenantId();
 			}
 		}
 	}
@@ -453,7 +461,9 @@ public class TaskController extends BaseController {
 		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
 		if(tenantInfos != null && tenantInfos.size() > 0){
 			for (TenantInfo tenantInfo : tenantInfos) {
+				TenantContextHolder.setTenantId(tenantInfo.getId());
 				courseScheduleTeacherSalaryService.salaryMarkNew(startDay,tenantInfo.getId());
+				TenantContextHolder.clearTenantId();
 			}
 		}
 	}
@@ -479,10 +489,10 @@ public class TaskController extends BaseController {
 	@ApiOperation("每天10点推送排课、续费提醒")
 	@GetMapping(value = "/musicSchoolTermPush")
 	public void musicSchoolTermPush() {
-//		Object o = redisCache.get("musicSchoolTermPush");
-//		if(o != null){
-//			return;
-//		}
+		Object o = redisCache.get("musicSchoolTermPush");
+		if(o != null){
+			return;
+		}
 		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
 		if(tenantInfos != null && tenantInfos.size() > 0){
 			for (TenantInfo tenantInfo : tenantInfos) {