zouxuan 3 年之前
父节点
当前提交
801760728c

+ 4 - 4
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -81,11 +81,11 @@ public class NewsController extends BaseController {
 			}
 		}
 
-		SysConfig cloudTeacherActiveIds = sysConfigService.findByParamName(SysConfigService.CLOUD_TEACHER_ACTIVE_BANNER_IDS);
+//		SysConfig cloudTeacherActiveIds = sysConfigService.findByParamName(SysConfigService.CLOUD_TEACHER_ACTIVE_BANNER_IDS);
 		List<Integer> excludeIds = new ArrayList<>();
-		if(Objects.nonNull(cloudTeacherActiveIds)&&StringUtils.isNotBlank(cloudTeacherActiveIds.getParanValue())){
-			excludeIds = Arrays.stream(cloudTeacherActiveIds.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
-		}
+//		if(Objects.nonNull(cloudTeacherActiveIds)&&StringUtils.isNotBlank(cloudTeacherActiveIds.getParanValue())){
+//			excludeIds = Arrays.stream(cloudTeacherActiveIds.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
+//		}
 
 		if (user == null || user.getId() == null) {
 			queryInfo.setOrganId(43);

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

@@ -206,7 +206,7 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @date 2020/12/25 0025
      * @return void
      */
-    void salaryMarkNew(Date startDay);
+    void salaryMarkNew(Date startDay,Integer tenantId);
 
     /**
      * @describe 工资奖金标记
@@ -214,7 +214,7 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @date 2020/12/25 0025
      * @return void
      */
-    void salaryMark();
+//    void salaryMark();
 
     /**
      * @describe 组合工资,使其最接近给定的金额

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

@@ -10,5 +10,5 @@ public interface MusicGroupSchoolTermCourseDetailService extends BaseService<Int
 
     HttpResponseResult upset(MusicGroupSchoolTermCourseDetail musicGroupSchoolTermCourseDetail);
 
-    void musicSchoolTermPush();
+    void musicSchoolTermPush(Integer tenantId);
 }

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

@@ -8,6 +8,6 @@ import java.util.List;
 
 public interface OperatingReportService extends BaseService<Integer, OperatingReport> {
 
-    Boolean statistics();
+    Boolean statistics(Integer tenantId);
 
 }

+ 19 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -20,10 +20,6 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     String MUSIC_GROUP_TOPIC_ID = "music_group_topic_id";
     //自动确认收货时间
     String AUTO_AFFIRM_RECEIVE_TIME = "auto_affirm_receive_time";
-    //各声部不购买会员入团资格限制学员数
-    String MEMBER_GROUP_FEE_STUDENT_NUM = "member_group_fee_student_num";
-    //会员团每学期赠送课程分钟数
-    String MEMBER_GROUP_TERM_GIVE_COURSE_TIME = "member_group_term_give_course_time";
     //提醒老师创建新的缴费项目,距离缴费项有效期前{}天
     String PUSH_CREATE_PAYMENT_CALENDER = "push_create_payment_calender";
 
@@ -69,6 +65,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP = "enable_student_attendance_time_range_vip";
     //如果没有签退,{}分钟后自动发送推送信息
     String SIGN_OUT_MESSAGE_PUSH_MINUTE = "sign_out_message_push_minute";
+    //乐团课老师课程结束后可正常签退时间范围为课程结束后{}分钟内
+    String ADVANCE_SIGN_OUT_MINUTES = "advance_sign_out_minutes";
 
     //线上连堂课间隔时间
     String ONLINE_CONTINUE_COURSE_TIME = "online_continue_course_time";
@@ -164,6 +162,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     String COURSE_BEFORE_BUFFER_TIME = "course_before_buffer_time";
     //对外课程课后缓冲时间{}分钟
     String COURSE_AFTER_BUFFER_TIME = "course_after_buffer_time";
+    //全职资源公摊金额
+    String FULL_JOB_FEE = "full_job_fee";
 
     //乐保
     //是否开启乐保
@@ -173,6 +173,21 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     //一年期乐保原价
     String ONE_YEAR_MUSICAL_REPAIR_ORIGINAL_AMOUNT = "one_year_musical_repair_original_amount";
 
+
+    //乐团配置
+    //提醒乐团主管排下学期的课程的时间节点(默认提前14天)
+    String REMIND_COURSE_TIME = "remind_course_time";
+    //会员结束前15天自动创建乐团续费(默认提前15天)
+    String AUTO_CREATE_MEMBER_RENEW = "auto_create_member_renew";
+    //会员团每学期赠送课程分钟数
+    String MEMBER_GROUP_TERM_GIVE_COURSE_TIME = "member_group_term_give_course_time";
+    //各声部不购买会员入团资格限制学员数
+    String MEMBER_GROUP_FEE_STUDENT_NUM = "member_group_fee_student_num";
+    //考级活动开始时间
+    String DEGREE_ACTIVITY_START_TIME = "degree_activity_start_time";
+    //考级活动开始时间
+    String DEGREE_ACTIVITY_END_TIME = "degree_activity_end_time";
+
     public static final String BASE_API_URL = "base_api_url";
 
     /**
@@ -190,8 +205,6 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      */
     String OFFLINE_SIGN_IN_EARLY_FORWARD_TIME = "offline_sign_in_early_forward_time";
 
-    String ADVANCE_SIGN_OUT_MINUTES = "advance_sign_out_minutes";
-
     /**
      * 最早请假提前时间
      */
@@ -213,7 +226,6 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      */
     public static final String HIGH_GRADIENT_SETTLEMENT_RULE = "high_gradient_settlement_rule";
 
-    String USER_DEFAULT_HEAD_URL = "user_default_head_url";
     String STUDENT_APPLY_URL = "student_apply_url";
     String SERVER_PHONE = "server_phone";
 
@@ -322,17 +334,12 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String WARNING_MIN_COURSE_SALARY = "warning_min_course_salary";
 
-    //提醒乐团主管排下学期的课程的时间节点(默认提前14天)
-    String REMIND_COURSE_TIME = "remind_course_time";
-
     //会员结束前15天提醒学员续费(默认提前15天)
     String PUSH_MEMBER_RENEW = "push_member_renew";
 
     //试用会员结束前3天提醒学员续费(默认提前3天)
     String EXPERIENCE_PUSH_MEMBER_RENEW = "experience_push_member_renew";
 
-    //会员结束前15天自动创建乐团续费(默认提前15天)
-    String AUTO_CREATE_MEMBER_RENEW = "auto_create_member_renew";
 
     //会员结束前15天提醒学员续费(默认提前5天)
     String PUSH_MEMBER_RENEW_AGAIN = "push_member_renew_again";

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

@@ -1051,8 +1051,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
         Date now = new Date();
 		String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP, user.getTenantId());
-		SysConfig courseBeforeBufferTime = sysConfigService.findByParamName(SysConfigService.COURSE_BEFORE_BUFFER_TIME);
-		SysConfig courseAfterBufferTime = sysConfigService.findByParamName(SysConfigService.COURSE_AFTER_BUFFER_TIME);
+		String courseBeforeBufferTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_BEFORE_BUFFER_TIME, user.getTenantId());
+		String courseAfterBufferTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_AFTER_BUFFER_TIME, user.getTenantId());
         Map<String, Object> result = new HashMap<>(3);
         result.put("vipAppealDaysRange", sysConfigDao.findConfigValue(SysConfigService.VIP_APPEAL_DAYS_RANGE));
 		String tenantConfigValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS, user.getTenantId());
@@ -1063,8 +1063,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		result.put("advanceLeaveHours", advanceLeaveHours);
         result.put("earliestTimeForLeave", Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.EARLIEST_TIME_FOR_LEAVE)));
         result.put("joinRoomBeforeTime",StringUtils.isEmpty(configValue)?0:Integer.parseInt(configValue));
-		result.put("courseBeforeBufferTime", courseBeforeBufferTime.getParanValue(Integer.class));
-		result.put("courseAfterBufferTime", courseAfterBufferTime.getParanValue(Integer.class));
+		result.put("courseBeforeBufferTime", StringUtils.isEmpty(courseBeforeBufferTime)?5:Integer.parseInt(courseBeforeBufferTime));
+		result.put("courseAfterBufferTime", StringUtils.isEmpty(courseAfterBufferTime)?10:Integer.parseInt(courseAfterBufferTime));
 //		List<Integer> quitClassGroupIds=classGroupStudentMapperDao.findClassGroupIdByUserAndCourseDateAndStatus(user.getId(),classDate, ClassGroupStudentStatusEnum.QUIT.getCode());
         List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue(), null);
         List<Long> courseScheduleIds = studentCourseSchedulesWithDate.stream()

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

@@ -1457,7 +1457,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     }
 
     @Override
-    public void salaryMarkNew(Date startDay) {
+    public void salaryMarkNew(Date startDay,Integer tenantId) {
         Date now = new Date();
         Date date = DateUtil.addMonths(now, -1);
         if(Objects.nonNull(startDay)){
@@ -1471,10 +1471,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         if(CollectionUtils.isEmpty(salaries)){
             return;
         }
-        SysConfig dayaBaseSalaryAmountConfig = sysConfigService.findByParamName(SysConfigService.DAYA_BASE_SALARY_AMOUNT);
+        String dayaBaseSalaryAmountConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.DAYA_BASE_SALARY_AMOUNT,tenantId);
         BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
-        if(Objects.nonNull(dayaBaseSalaryAmountConfig)&&StringUtils.isNotBlank(dayaBaseSalaryAmountConfig.getParanValue())){
-            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig.getParanValue());
+        if(StringUtils.isEmpty(dayaBaseSalaryAmountConfig)){
+            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig);
         }
 
         Map<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMap = salaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getUserId));
@@ -1504,52 +1504,52 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         }
     }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void salaryMark() {
-        Date now = new Date();
-        Date date = DateUtil.addMonths(now, -1);
-        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
-        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
-
-        int isSalaryGroupTypes = redisTemplate.opsForSet().size(CourseScheduleTeacherSalaryService.TASK_KEY).intValue();
-        if(isSalaryGroupTypes<3){
-            return;
-        }
-        redisTemplate.delete(CourseScheduleTeacherSalaryService.TASK_KEY);
-        List<CourseScheduleTeacherSalary> salaries = courseScheduleTeacherSalaryDao.getIsSalaryWithDate(startDate, endDate);
-        if(CollectionUtils.isEmpty(salaries)){
-            return;
-        }
-        SysConfig dayaBaseSalaryAmountConfig = sysConfigService.findByParamName(SysConfigService.DAYA_BASE_SALARY_AMOUNT);
-        BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
-        if(Objects.nonNull(dayaBaseSalaryAmountConfig)&&StringUtils.isNotBlank(dayaBaseSalaryAmountConfig.getParanValue())){
-            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig.getParanValue());
-        }
-
-        Map<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMap = salaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getUserId));
-        List<CourseScheduleTeacherSalary> updateRecords = new ArrayList<>();
-        for (Map.Entry<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMapEntry : teacherSalariesMap.entrySet()) {
-            List<CourseScheduleTeacherSalary> teacherSalaries = teacherSalariesMapEntry.getValue();
-            List<BigDecimal> amounts = teacherSalaries.stream().map(CourseScheduleTeacherSalary::getActualSalary).collect(Collectors.toList());
-            List<BigDecimal> resultAmounts = salaryComposition(amounts, dayaBaseSalaryAmount);
-            for (BigDecimal resultAmount : resultAmounts) {
-                Iterator<CourseScheduleTeacherSalary> iterator = teacherSalaries.iterator();
-                while (iterator.hasNext()){
-                    CourseScheduleTeacherSalary teacherSalary = iterator.next();
-                    if(teacherSalary.getActualSalary().compareTo(resultAmount)==0){
-                        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
-                        courseScheduleTeacherSalary.setId(teacherSalary.getId());
-                        courseScheduleTeacherSalary.setBelongToDaya(true);
-                        updateRecords.add(courseScheduleTeacherSalary);
-                        iterator.remove();
-                        break;
-                    }
-                }
-            }
-        }
-        courseScheduleTeacherSalaryDao.batchUpdate(updateRecords);
-    }
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public void salaryMark() {
+//        Date now = new Date();
+//        Date date = DateUtil.addMonths(now, -1);
+//        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+//        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+//
+//        int isSalaryGroupTypes = redisTemplate.opsForSet().size(CourseScheduleTeacherSalaryService.TASK_KEY).intValue();
+//        if(isSalaryGroupTypes<3){
+//            return;
+//        }
+//        redisTemplate.delete(CourseScheduleTeacherSalaryService.TASK_KEY);
+//        List<CourseScheduleTeacherSalary> salaries = courseScheduleTeacherSalaryDao.getIsSalaryWithDate(startDate, endDate);
+//        if(CollectionUtils.isEmpty(salaries)){
+//            return;
+//        }
+//        String dayaBaseSalaryAmountConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.DAYA_BASE_SALARY_AMOUNT,tenantId);
+//        BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
+//        if(StringUtils.isEmpty(dayaBaseSalaryAmountConfig)){
+//            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig);
+//        }
+//
+//        Map<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMap = salaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getUserId));
+//        List<CourseScheduleTeacherSalary> updateRecords = new ArrayList<>();
+//        for (Map.Entry<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMapEntry : teacherSalariesMap.entrySet()) {
+//            List<CourseScheduleTeacherSalary> teacherSalaries = teacherSalariesMapEntry.getValue();
+//            List<BigDecimal> amounts = teacherSalaries.stream().map(CourseScheduleTeacherSalary::getActualSalary).collect(Collectors.toList());
+//            List<BigDecimal> resultAmounts = salaryComposition(amounts, dayaBaseSalaryAmount);
+//            for (BigDecimal resultAmount : resultAmounts) {
+//                Iterator<CourseScheduleTeacherSalary> iterator = teacherSalaries.iterator();
+//                while (iterator.hasNext()){
+//                    CourseScheduleTeacherSalary teacherSalary = iterator.next();
+//                    if(teacherSalary.getActualSalary().compareTo(resultAmount)==0){
+//                        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+//                        courseScheduleTeacherSalary.setId(teacherSalary.getId());
+//                        courseScheduleTeacherSalary.setBelongToDaya(true);
+//                        updateRecords.add(courseScheduleTeacherSalary);
+//                        iterator.remove();
+//                        break;
+//                    }
+//                }
+//            }
+//        }
+//        courseScheduleTeacherSalaryDao.batchUpdate(updateRecords);
+//    }
 
     @Override
     public List<BigDecimal> salaryComposition(List<BigDecimal> salaries, BigDecimal targetSalary) {
@@ -1967,10 +1967,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         BigDecimal monthActualIncome = teacherSalaries.stream().map(CourseScheduleTeacherSalary::getActualSalary).reduce(BigDecimal.ZERO, BigDecimal::add);
         teacherSalaryOverview.setThisMonthActualIncome(monthActualIncome);
 
-        SysConfig dayaBaseSalaryAmountConfig = sysConfigService.findByParamName(SysConfigService.DAYA_BASE_SALARY_AMOUNT);
+        String dayaBaseSalaryAmountConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.DAYA_BASE_SALARY_AMOUNT,tenantId);
         BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
-        if(Objects.nonNull(dayaBaseSalaryAmountConfig)&&StringUtils.isNotBlank(dayaBaseSalaryAmountConfig.getParanValue())){
-            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig.getParanValue());
+        if(StringUtils.isEmpty(dayaBaseSalaryAmountConfig)){
+            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig);
         }
 
         if(monthActualIncome.compareTo(dayaBaseSalaryAmount)>0){

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

@@ -9,10 +9,11 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.DegreeRegistrationActivityDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,9 +24,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.biz.dal.dto.PageInfoDegree;
 import com.ym.mec.biz.dal.page.DegreeQueryInfo;
-import com.ym.mec.biz.service.DegreeRegistrationService;
-import com.ym.mec.biz.service.PayService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
@@ -53,6 +51,8 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
 
     @Autowired
     private SysConfigDao sysConfigDao;
+    @Autowired
+    private SysTenantConfigService sysTenantConfigService;
 
     @Autowired
     private PayService payService;
@@ -94,13 +94,21 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
 
         degreeRegistration.setActivityTag(ACTIVITY_TAG);
 
+        Integer tenantId = TenantContextHolder.getTenantId();
+
         Date nowDate = new Date();
-        String startTimeStr = sysConfigDao.findConfigValue("degree_activity_start_time");
+        String startTimeStr = sysTenantConfigService.getTenantConfigValue(SysConfigService.DEGREE_ACTIVITY_START_TIME,tenantId);
+        if(StringUtils.isEmpty(startTimeStr)){
+            throw new BizException("活动还未开始,谢谢关注");
+        }
         Date startTime = DateUtil.stringToDate(startTimeStr);
         if (startTime.compareTo(nowDate) > 0) {
             throw new BizException("活动还未开始,谢谢关注");
         }
-        String endTimeStr = sysConfigDao.findConfigValue("degree_activity_end_time");
+        String endTimeStr = sysTenantConfigService.getTenantConfigValue(SysConfigService.DEGREE_ACTIVITY_END_TIME,tenantId);
+        if(StringUtils.isEmpty(endTimeStr)){
+            throw new BizException("活动还未开始,谢谢关注");
+        }
         Date endTime = DateUtil.stringToDate(endTimeStr);
         if (endTime.compareTo(nowDate) <= 0) {
             throw new BizException("活动已结束,谢谢关注");

+ 119 - 164
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -49,6 +49,8 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 	@Autowired
 	private SysConfigDao sysConfigDao;
 	@Autowired
+	private SysTenantConfigService sysTenantConfigService;
+	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
 	private TeacherDao teacherDao;
@@ -166,191 +168,144 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void musicSchoolTermPush() {
-		Object o = redisCache.get("musicSchoolTermPush");
-		if(o != null){
-			return;
-		}
-		String remindCourseTime = sysConfigDao.findConfigValue(SysConfigService.REMIND_COURSE_TIME);
-		if(StringUtils.isEmpty(remindCourseTime)){
-			remindCourseTime = "14";
-		}
-		//获取当前学期截止前14天的乐团,并提醒教务老师排课
-		List<String> musicGroupIds = musicGroupSchoolTermCourseDetailDao.queryPushCourseTermMusicIds(remindCourseTime);
-		if(musicGroupIds.size() > 0){
-			List<MusicGroup> musicGroupList = musicGroupDao.getMusicGroupByIds(musicGroupIds);
-			List<Integer> educationIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toList());
-			Map<Integer, String> educationPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(educationIds,",")));
-			for (MusicGroup musicGroup : musicGroupList) {
-				Map<Integer,String> userMap = new HashMap<>(1);
-				userMap.put(musicGroup.getEducationalTeacherId(),educationPhoneMap.get(musicGroup.getEducationalTeacherId()));
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-						MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
-						userMap,
-						null,
-						0,
-						null,
-						null,
-						musicGroup.getName());
-				Map<Integer,String> userMap1 = new HashMap<>(1);
-				userMap1.put(musicGroup.getEducationalTeacherId(),musicGroup.getEducationalTeacherId().toString());
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-						MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
-						userMap1,
-						null,
-						0,
-						null,
-						"SYSTEM",
-						musicGroup.getName());
+	public void musicSchoolTermPush(Integer tenantId) {
+		String remindCourseTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.REMIND_COURSE_TIME,tenantId);
+		if(StringUtils.isNotEmpty(remindCourseTime)){
+			//获取当前学期截止前14天的乐团,并提醒教务老师排课
+			List<String> musicGroupIds = musicGroupSchoolTermCourseDetailDao.queryPushCourseTermMusicIds(remindCourseTime);
+			if(musicGroupIds.size() > 0){
+				List<MusicGroup> musicGroupList = musicGroupDao.getMusicGroupByIds(musicGroupIds);
+				List<Integer> educationIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toList());
+				Map<Integer, String> educationPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(educationIds,",")));
+				for (MusicGroup musicGroup : musicGroupList) {
+					Map<Integer,String> userMap = new HashMap<>(1);
+					userMap.put(musicGroup.getEducationalTeacherId(),educationPhoneMap.get(musicGroup.getEducationalTeacherId()));
+					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
+							MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
+							userMap,
+							null,
+							0,
+							null,
+							null,
+							musicGroup.getName());
+					Map<Integer,String> userMap1 = new HashMap<>(1);
+					userMap1.put(musicGroup.getEducationalTeacherId(),musicGroup.getEducationalTeacherId().toString());
+					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
+							MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
+							userMap1,
+							null,
+							0,
+							null,
+							"SYSTEM",
+							musicGroup.getName());
+				}
 			}
 		}
+		//提醒会员续费
+		String pushMemberRenewAgain = sysTenantConfigService.getTenantConfigValue(SysConfigService.PUSH_MEMBER_RENEW_AGAIN,tenantId);
 		String memberName = "黄金会员";
 		MemberRankSetting memberRankSetting = memberRankSettingDao.get(1);
 		if(memberRankSetting != null){
 			memberName = memberRankSetting.getName();
 		}
-		Date date = new Date();
-		//试用会员结束3天提醒学员缴费
-//		String experiencePushMemberRenew = sysConfigDao.findConfigValue(SysConfigService.EXPERIENCE_PUSH_MEMBER_RENEW);
-//		if(StringUtils.isEmpty(experiencePushMemberRenew)){
-//			experiencePushMemberRenew = "3";
-//		}
-//		List<Integer> studentIds = studentDao.queryPushMemberRenew(experiencePushMemberRenew);
-		/*if(studentIds.size() > 0){
-			Map<Integer, String> studentPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(studentIds,",")));
-			Map<Integer,String> userMap = new HashMap<>(studentIds.size());
-			Map<Integer,String> userMap1 = new HashMap<>(studentIds.size());
-			for (Integer studentId : studentIds) {
-				userMap.put(studentId,studentPhoneMap.get(studentId));
-				userMap1.put(studentId,studentId.toString());
-			}
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
-					userMap,
-					null,
-					0,
-					null,
-					null,memberName,pushMemberRenew);
-
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
-					userMap1,
-					null,
-					0,
-					null,
-					"STUDENT",memberName,pushMemberRenew);
-		}*/
-		//会员结束前5天提醒学员续费
-		String pushMemberRenewAgain = sysConfigDao.findConfigValue(SysConfigService.PUSH_MEMBER_RENEW_AGAIN);
-		if(StringUtils.isEmpty(pushMemberRenewAgain)){
-			pushMemberRenewAgain = "5";
-		}
-		List<Integer> studentIdList = studentDao.queryPushMemberRenew(pushMemberRenewAgain);
-		if(studentIdList.size() > 0){
-			Map<Integer, String> studentPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(studentIdList,",")));
-			Map<Integer,String> userMap = new HashMap<>(studentIdList.size());
-			Map<Integer,String> userMap1 = new HashMap<>(studentIdList.size());
-			for (Integer studentId : studentIdList) {
-				userMap.put(studentId,studentPhoneMap.get(studentId));
-				userMap1.put(studentId,studentId.toString());
-			}
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
-					userMap,
-					null,
-					0,
-					null,
-					null,memberName,pushMemberRenewAgain);
-
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
-					userMap1,
-					null,
-					0,
-					null,
-					"STUDENT",memberName,pushMemberRenewAgain);
-		}
-
-
-		//会员结束前15天自动创建乐团续费(默认提前15天)
-		String autoCreateMemberRenew = sysConfigDao.findConfigValue(SysConfigService.AUTO_CREATE_MEMBER_RENEW);
-		if(StringUtils.isEmpty(autoCreateMemberRenew)){
-			autoCreateMemberRenew = "15";
-		}
-		Map<String,String> studentMusicMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryAutoCreateStudentMap(autoCreateMemberRenew));
-		if(studentMusicMap.size() > 0){
-			for (String musicGroupId : studentMusicMap.keySet()) {
-				MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-				// 所有缴费项目已完成排课才能创建下一个缴费项目
-//				String orignBatchNo = musicGroupPaymentStudentCourseDetailService.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,null);
-//				if (StringUtils.isNoneBlank(orignBatchNo)) {
-//					logger.error("自动创建缴费项目失败,{} 乐团存在未排课的缴费项目",musicGroup.getName());
-//					continue;
-//				}
-				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) {
+		if(StringUtils.isNotEmpty(pushMemberRenewAgain)){
+			List<Integer> studentIdList = studentDao.queryPushMemberRenew(pushMemberRenewAgain);
+			if(studentIdList.size() > 0){
+				Map<Integer, String> studentPhoneMap = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(studentIdList,",")));
+				Map<Integer,String> userMap = new HashMap<>(studentIdList.size());
+				Map<Integer,String> userMap1 = new HashMap<>(studentIdList.size());
+				for (Integer studentId : studentIdList) {
 					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,
+						MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
 						userMap,
 						null,
 						0,
-						sortUrl,
-						null,memberName,autoCreateMemberRenew,sortUrl);
+						null,
+						null,memberName,pushMemberRenewAgain);
 
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-						MessageTypeEnum.PUSH_AUTO_STUDENT_MEMBER_RENEW_MESSAGE,
+						MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
 						userMap1,
 						null,
 						0,
-						"4?" + pushUrl,
-						"STUDENT",memberName,autoCreateMemberRenew);
+						null,
+						"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));
+			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);
+				}
 			}
 		}
-		redisCache.getRedisTemplate().opsForValue().set("musicSchoolTermPush","musicSchoolTermPush",
-		23,
-		TimeUnit.HOURS);
 	}
 
 	private MusicGroupSchoolTermCourseDetail getCourseDetail(MusicGroupSchoolTermCourseDetail courseDetail){

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

@@ -8,9 +8,13 @@ import com.ym.mec.biz.dal.entity.OperatingReport;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.ExpenditureTypeEnum;
 import com.ym.mec.biz.service.OperatingReportService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysTenantConfigService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -32,6 +36,8 @@ public class OperatingReportServiceImpl extends BaseServiceImpl<Integer, Operati
     @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
+    private SysTenantConfigService sysTenantConfigService;
+    @Autowired
     private OrganizationDao organizationDao;
 
 
@@ -42,7 +48,7 @@ public class OperatingReportServiceImpl extends BaseServiceImpl<Integer, Operati
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean statistics() {
+    public Boolean statistics(Integer tenantId) {
         Date nowDate = new Date();
         Date startTime = DateUtil.getFirstDayOfMonth(DateUtil.addDays1(nowDate, -1));
         Date endTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(startTime));
@@ -51,7 +57,11 @@ public class OperatingReportServiceImpl extends BaseServiceImpl<Integer, Operati
         Map<Integer, OperatingReport> organOperating = new HashMap<>();
 
         //1.1 获取分部的全职资源数的分摊费用
-        BigDecimal fullJobFee = new BigDecimal(sysConfigDao.findConfigValue("full_job_fee"));
+        String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.FULL_JOB_FEE, tenantId);
+        if(StringUtils.isEmpty(configValue)){
+            throw new BizException("请配置全职资源公摊金额");
+        }
+        BigDecimal fullJobFee = new BigDecimal(configValue);
         List<OrganFullJobResourceNumDto> organFullJobResources = cooperationOrganDao.getOrganFullJobResourceNum();
         for (OrganFullJobResourceNumDto organFullJobResource : organFullJobResources) {
             OperatingReport operatingReport = new OperatingReport();

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

@@ -17,6 +17,8 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -73,10 +75,6 @@ import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
 import com.ym.mec.biz.dal.page.OrganCloudStudyStudentDataQueryInfo;
 import com.ym.mec.biz.dal.page.StudentQueryInfo;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.biz.service.StudentService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -107,6 +105,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
+    private SysTenantConfigService sysTenantConfigService;
+    @Autowired
     private SysMessageService sysMessageService;
     @Autowired
     private SysMusicCompareRecordDao sysMusicCompareRecordDao;
@@ -823,27 +823,12 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         if(!CollectionUtils.isEmpty(organsNewCloudStudyNumMapList)){
             organsNewCloudStudyNumMap = MapUtil.convertIntegerMap(organsNewCloudStudyNumMapList);
         }
-//        //获取新增人数占比(已上乐团课小于等于4)
-//        //获取有在读学员的乐团编号
-//        //获取有在读学员的学员编号
-//        List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
-//        List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
-//        List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
-//        //获取有乐团没排课的数据
-//        List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
-//        List<Integer> userIdList = new ArrayList<>();
-//        if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
-//            List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
-//            userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
-//        }
-//        userIdList.addAll(noCourseStudentIdList);
-//        List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
-//        Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
         List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
         Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 
+        Integer tenantId = TenantContextHolder.getTenantId();
         //获取分部目标
-        String cloudTeacherActiveTarget = sysConfigDao.findConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET);
+        String cloudTeacherActiveTarget = sysTenantConfigService.getTenantConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET,tenantId);
         if(StringUtils.isEmpty(cloudTeacherActiveTarget)){
             return null;
         }
@@ -903,8 +888,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         if(StringUtils.isNotBlank(queryInfo.getOrganIds())&&CollectionUtils.isEmpty(organIds)){
             return pageInfo;
         }
+        Integer tenantId = TenantContextHolder.getTenantId();
         //获取分部目标
-        String cloudTeacherActiveTarget = sysConfigDao.findConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET);
+        String cloudTeacherActiveTarget = sysTenantConfigService.getTenantConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET,tenantId);
         if(StringUtils.isEmpty(cloudTeacherActiveTarget)){
             return null;
         }
@@ -1125,8 +1111,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     public Map<String,Object> countCloudTeacherActive(List<Integer> organIdList, CloudTeacherActiveQueryInfo queryInfo) {
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
+        Integer tenantId = TenantContextHolder.getTenantId();
         //获取分部目标
-        String cloudTeacherActiveTarget = sysConfigDao.findConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET);
+        String cloudTeacherActiveTarget = sysTenantConfigService.getTenantConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET,tenantId);
         if(StringUtils.isEmpty(cloudTeacherActiveTarget)){
             return null;
         }

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

@@ -14,14 +14,12 @@ import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.biz.dal.enums.IndexDataType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.biz.service.SysMusicCompareRecordService;
-import com.ym.mec.biz.service.SysMusicCompareWeekDataService;
+import com.ym.mec.biz.service.*;
 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 com.ym.mec.util.date.DateUtil;
@@ -62,6 +60,8 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
 	@Autowired
 	private SysConfigDao sysConfigDao;
+	@Autowired
+	private SysTenantConfigService sysTenantConfigService;
 
 	@Autowired
 	private MusicGroupDao musicGroupDao;
@@ -369,6 +369,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		if(StringUtils.isNotEmpty(sort)){
 			queryInfo.setSort(sort.equals("trainNum")?"train_num_":sort.equals("totalPlayTime")?"total_play_time_":sort.equals("recordNum")?"record_num_":"train_day_");
 		}
+		Integer tenantId = TenantContextHolder.getTenantId();
 		MapUtil.populateMap(params, queryInfo);
 		Integer visitFlag = 0;
 		if(queryInfo.getVisitFlag() != null && queryInfo.getVisitFlag()){
@@ -394,12 +395,12 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 			}
 			params.put("having",1);
 		}
-		String totalTime = sysConfigDao.findConfigValue(SysConfigService.STUDENT_CLOUD_TEACHER_TOTAL_PLAY_TIME);
+		String totalTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.STUDENT_CLOUD_TEACHER_TOTAL_PLAY_TIME,tenantId);
 		if(StringUtils.isEmpty(totalTime)){
 			totalTime = "80";
 		}
 		params.put("totalTime",Integer.parseInt(totalTime));
-		String trainNum = sysConfigDao.findConfigValue(SysConfigService.STUDENT_CLOUD_TEACHER_TRAIN_NUM);
+		String trainNum = sysTenantConfigService.getTenantConfigValue(SysConfigService.STUDENT_CLOUD_TEACHER_TRAIN_NUM,tenantId);
 		if(StringUtils.isEmpty(trainNum)){
 			trainNum = "4";
 		}

+ 31 - 30
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -78,36 +78,37 @@ public class MemberRankController extends BaseController {
 	@ApiOperation(value = "2021-09活动购买会员")
 	@PostMapping("/activeBuy")
 	public HttpResponseResult ActiveBuy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
-		Date nowTime = new Date();
-		String startTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_start_time");
-		Date startTime = DateUtil.stringToDate(startTimeStr);
-		if (startTime.compareTo(nowTime) > 0) {
-			throw new BizException("活动还未开始,谢谢关注");
-		}
-		String endTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_end_time");
-		Date endTime = DateUtil.stringToDate(endTimeStr);
-		if (endTime.compareTo(nowTime) <= 0) {
-			throw new BizException("活动已结束,谢谢关注");
-		}
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		if(sysUser.getOrganId() == 43){
-			throw new BizException("活动仅对乐团老生学员开放");
-		}
-		//买2赠1、买3赠2
-		Integer buyNum = memberPayParamDto.getBuyNum();
-		int giveNum = buyNum == 2?1:buyNum == 3?2:0;
-		String remark = buyNum == 2?"2赠1":buyNum == 3?"3赠2":buyNum == 1?"单月":"其他";
-		return memberRankSettingService.ActiveBuy(sysUser.getId(),
-				memberPayParamDto.getMemberRankId(),
-				PeriodEnum.MONTH,
-				memberPayParamDto.getAmount(),
-				memberPayParamDto.isUseBalance(),
-				buyNum,
-				giveNum,
-				202109,remark,memberPayParamDto.isRepay());
+		throw new BizException("活动已结束,谢谢关注");
+//		Date nowTime = new Date();
+//		String startTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_start_time");
+//		Date startTime = DateUtil.stringToDate(startTimeStr);
+//		if (startTime.compareTo(nowTime) > 0) {
+//			throw new BizException("活动还未开始,谢谢关注");
+//		}
+//		String endTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_end_time");
+//		Date endTime = DateUtil.stringToDate(endTimeStr);
+//		if (endTime.compareTo(nowTime) <= 0) {
+//			throw new BizException("活动已结束,谢谢关注");
+//		}
+//		SysUser sysUser = sysUserFeignService.queryUserInfo();
+//		if (sysUser == null) {
+//			return failed(HttpStatus.FORBIDDEN, "请登录");
+//		}
+//		if(sysUser.getOrganId() == 43){
+//			throw new BizException("活动仅对乐团老生学员开放");
+//		}
+//		//买2赠1、买3赠2
+//		Integer buyNum = memberPayParamDto.getBuyNum();
+//		int giveNum = buyNum == 2?1:buyNum == 3?2:0;
+//		String remark = buyNum == 2?"2赠1":buyNum == 3?"3赠2":buyNum == 1?"单月":"其他";
+//		return memberRankSettingService.ActiveBuy(sysUser.getId(),
+//				memberPayParamDto.getMemberRankId(),
+//				PeriodEnum.MONTH,
+//				memberPayParamDto.getAmount(),
+//				memberPayParamDto.isUseBalance(),
+//				buyNum,
+//				giveNum,
+//				202109,remark,memberPayParamDto.isRepay());
 	}
 	
     @ApiOperation(value = "查询订单列表")

+ 4 - 4
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -91,8 +91,8 @@ public class TeacherCourseScheduleController extends BaseController {
         SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
         SysConfig offlineSignInEarlyForwardTime = sysConfigService.findByParamName(SysConfigService.OFFLINE_SIGN_IN_EARLY_FORWARD_TIME);
         String configValue1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP, user.getTenantId());
-        SysConfig courseBeforeBufferTime = sysConfigService.findByParamName(SysConfigService.COURSE_BEFORE_BUFFER_TIME);
-        SysConfig courseAfterBufferTime = sysConfigService.findByParamName(SysConfigService.COURSE_AFTER_BUFFER_TIME);
+        String courseBeforeBufferTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_BEFORE_BUFFER_TIME, user.getTenantId());
+        String courseAfterBufferTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_AFTER_BUFFER_TIME, user.getTenantId());
         String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP, user.getTenantId());
         List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date,type,user.getTenantId());
         Map<String,Object> result = new HashMap<>();
@@ -102,8 +102,8 @@ public class TeacherCourseScheduleController extends BaseController {
         result.put("enableStudentAttendanceTimeRange",sysConfig.getParanValue(Integer.class));
         result.put("enableStudentAttendanceTimeRangeVip",StringUtils.isEmpty(configValue1)?0:Integer.parseInt(configValue1));
         result.put("joinRoomBeforeTime",StringUtils.isEmpty(configValue)?0:Integer.parseInt(configValue));
-        result.put("courseBeforeBufferTime", courseBeforeBufferTime.getParanValue(Integer.class));
-        result.put("courseAfterBufferTime", courseAfterBufferTime.getParanValue(Integer.class));
+        result.put("courseBeforeBufferTime", StringUtils.isEmpty(courseBeforeBufferTime)?10:Integer.parseInt(courseBeforeBufferTime));
+        result.put("courseAfterBufferTime", StringUtils.isEmpty(courseAfterBufferTime)?10:Integer.parseInt(courseAfterBufferTime));
         return succeed(result);
     }
 

+ 26 - 9
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -384,7 +384,12 @@ public class TaskController extends BaseController {
 	//经营报表
 	@GetMapping("/operatingReport")
 	public void operatingReport(){
-		operatingReportService.statistics();
+		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
+		if(tenantInfos != null && tenantInfos.size() > 0){
+			for (TenantInfo tenantInfo : tenantInfos) {
+				operatingReportService.statistics(tenantInfo.getId());
+			}
+		}
 	}
 
 	@GetMapping("/updateCourseActualPrice")
@@ -440,7 +445,12 @@ public class TaskController extends BaseController {
 	//大雅基本工资标记
 	@GetMapping("/salaryMarkNew")
 	public void salaryMarkNew(Date startDay){
-		courseScheduleTeacherSalaryService.salaryMarkNew(startDay);
+		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
+		if(tenantInfos != null && tenantInfos.size() > 0){
+			for (TenantInfo tenantInfo : tenantInfos) {
+				courseScheduleTeacherSalaryService.salaryMarkNew(startDay,tenantInfo.getId());
+			}
+		}
 	}
 
 	//处理未生效的乐团云教练订单
@@ -470,12 +480,19 @@ public class TaskController extends BaseController {
 	@ApiOperation("每天10点推送排课、续费提醒")
 	@GetMapping(value = "/musicSchoolTermPush")
 	public void musicSchoolTermPush() {
-//		Boolean success = redisCache.getRedisTemplate().opsForValue().setIfAbsent("musicSchoolTermPush","musicSchoolTermPush",
-//				23,
-//				TimeUnit.HOURS);
-//		if(success){
-			musicGroupSchoolTermCourseDetailService.musicSchoolTermPush();
-//		}
+		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) {
+				musicGroupSchoolTermCourseDetailService.musicSchoolTermPush(tenantInfo.getId());
+			}
+		}
+		redisCache.getRedisTemplate().opsForValue().set("musicSchoolTermPush","musicSchoolTermPush",
+				23,
+				TimeUnit.HOURS);
 	}
 
 	@ApiOperation("会员到期后清空会员信息")
@@ -499,6 +516,6 @@ public class TaskController extends BaseController {
 	@ApiOperation("标记进行中乐团在读学员+VIP、网管有课学员总数(除弦乐声部、去重,去除在云教练的乐团的学员")
 	@GetMapping(value = "/remarkCountFlag")
 	public void remarkCountFlag(){
-		studentService.remarkCountFlag();
+//		studentService.remarkCountFlag();
 	}
 }