|  | @@ -1,18 +1,29 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.CourseScheduleModifyLogDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.MusicGroupDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.CourseSchedule;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.CourseScheduleModifyLog;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.MusicGroup;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.GroupType;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.CourseScheduleModifyLogService;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.service.SchoolStaffService;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.SysMessageService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
	
		
			
				|  |  | +import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  | +import org.apache.commons.collections.CollectionUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.Objects;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
	
		
			
				|  | @@ -26,6 +37,8 @@ public class CourseScheduleModifyLogServiceImpl extends BaseServiceImpl<Integer,
 | 
	
		
			
				|  |  |  	private MusicGroupDao musicGroupDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SysMessageService sysMessageService;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private SchoolStaffService schoolStaffService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public BaseDAO<Integer, CourseScheduleModifyLog> getDAO() {
 | 
	
	
		
			
				|  | @@ -33,6 +46,11 @@ public class CourseScheduleModifyLogServiceImpl extends BaseServiceImpl<Integer,
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | +	public CourseScheduleModifyLogDao getDao() {
 | 
	
		
			
				|  |  | +		return courseScheduleModifyLogDao;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  |  	public void pushSchoolCourseChange(long courseId) {
 | 
	
		
			
				|  |  |  		CourseSchedule courseSchedule = courseScheduleDao.get(courseId);
 | 
	
		
			
				|  |  |  		if(Objects.isNull(courseSchedule)){
 | 
	
	
		
			
				|  | @@ -41,8 +59,73 @@ public class CourseScheduleModifyLogServiceImpl extends BaseServiceImpl<Integer,
 | 
	
		
			
				|  |  |  		if(courseSchedule.getGroupType() != GroupType.MUSIC){
 | 
	
		
			
				|  |  |  			return;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +		this.pushSchoolCourseChange(courseSchedule,musicGroup);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void pushSchoolCourseChange(CourseSchedule courseSchedule, MusicGroup musicGroup) {
 | 
	
		
			
				|  |  | +		if(musicGroup.getCooperationOrganId() != null){
 | 
	
		
			
				|  |  | +			IPage<SchoolStaffWrapper.SchoolStaff> page = schoolStaffService.selectPage(new Page<>(1, -1),
 | 
	
		
			
				|  |  | +					SchoolStaffWrapper.SchoolStaffQuery.builder().schoolId(musicGroup.getCooperationOrganId().longValue()).build());
 | 
	
		
			
				|  |  | +			List<SchoolStaffWrapper.SchoolStaff> records = page.getRecords();
 | 
	
		
			
				|  |  | +			if (CollectionUtils.isNotEmpty(records)) {
 | 
	
		
			
				|  |  | +				Map<Integer, String> usersMap = new HashMap<>(records.size());
 | 
	
		
			
				|  |  | +				records.stream().forEach(o -> usersMap.put(o.getUserId().intValue(), o.getUserId().toString()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_SCHOOL_COURSE_CHANGE,
 | 
	
		
			
				|  |  | +						usersMap, null, 0, null,
 | 
	
		
			
				|  |  | +						"SCHOOL",musicGroup.getName(),courseSchedule.getType().getMsg());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void pushSchoolCourseChange(CourseSchedule courseSchedule) {
 | 
	
		
			
				|  |  | +		if(courseSchedule.getGroupType() != GroupType.MUSIC){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +		this.pushSchoolCourseChange(courseSchedule,musicGroup);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void pushSchoolCourseCreate(long courseId) {
 | 
	
		
			
				|  |  | +		CourseSchedule courseSchedule = courseScheduleDao.get(courseId);
 | 
	
		
			
				|  |  | +		if(Objects.isNull(courseSchedule)){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if(courseSchedule.getGroupType() != GroupType.MUSIC){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		String musicGroupId = courseSchedule.getMusicGroupId();
 | 
	
		
			
				|  |  | -		musicGroupDao.get(musicGroupId);
 | 
	
		
			
				|  |  | -		//TODO
 | 
	
		
			
				|  |  | +		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 | 
	
		
			
				|  |  | +		this.pushSchoolCourseChange(courseSchedule,musicGroup);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void pushSchoolCourseCreate(CourseSchedule courseSchedule, MusicGroup musicGroup) {
 | 
	
		
			
				|  |  | +		if(musicGroup.getCooperationOrganId() != null){
 | 
	
		
			
				|  |  | +			IPage<SchoolStaffWrapper.SchoolStaff> page = schoolStaffService.selectPage(new Page<>(1, -1),
 | 
	
		
			
				|  |  | +					SchoolStaffWrapper.SchoolStaffQuery.builder().schoolId(musicGroup.getCooperationOrganId().longValue()).build());
 | 
	
		
			
				|  |  | +			List<SchoolStaffWrapper.SchoolStaff> records = page.getRecords();
 | 
	
		
			
				|  |  | +			if (CollectionUtils.isNotEmpty(records)) {
 | 
	
		
			
				|  |  | +				Map<Integer, String> usersMap = new HashMap<>(records.size());
 | 
	
		
			
				|  |  | +				records.stream().forEach(o -> usersMap.put(o.getUserId().intValue(), o.getUserId().toString()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_SCHOOL_COURSE_CREATE,
 | 
	
		
			
				|  |  | +						usersMap, null, 0, null,
 | 
	
		
			
				|  |  | +						"SCHOOL",musicGroup.getName(),courseSchedule.getType().getMsg());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void pushSchoolCourseCreate(CourseSchedule courseSchedule) {
 | 
	
		
			
				|  |  | +		if(courseSchedule.getGroupType() != GroupType.MUSIC){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +		this.pushSchoolCourseChange(courseSchedule,musicGroup);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 |