Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

Joburgess 5 lat temu
rodzic
commit
7b5983dea7

+ 37 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -27,6 +27,7 @@ import java.util.stream.Collectors;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType.ONLINE;
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
+import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.OPEN;
 
 @Service
 public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalenderDetail>  implements MusicGroupPaymentCalenderDetailService {
@@ -61,17 +62,27 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			throw new BizException("缴费记录不存在");
 		}
 		Date date = new Date();
-		calenderDetails.forEach(e->{
+		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(calenderDetails.get(0).getMusicGroupPaymentCalenderId());
+		Set<Integer> studentIds = new HashSet<>();
+				calenderDetails.forEach(e->{
 			if(e.getPaymentStatus() == null || e.getPaymentStatus() != NON_PAYMENT){
 				throw new BizException("修改失败,缴费状态不匹配");
 			}
-			if(expectAmount.doubleValue() == 0){
-				e.setPaymentStatus(PAID_COMPLETED);
+			if(expectAmount.doubleValue() != 0){
+
 			}
+			/*if(expectAmount.doubleValue() == 0){
+				e.setPaymentStatus(PAID_COMPLETED);
+			}*/
 			e.setUpdateTime(date);
 			e.setExpectAmount(expectAmount);
+			if(expectAmount.doubleValue() > 0){
+				if((e.getOpen() != null && e.getOpen() == 1) || calender.getPaymentStatus() == OPEN){
+					studentIds.add(e.getUserId());
+				}
+			}
 		});
-		if(expectAmount.doubleValue() == 0){
+		/*if(expectAmount.doubleValue() == 0){
 			//如果是设置为0元
 			MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(calenderDetails.get(0).getMusicGroupPaymentCalenderId());
 			if(calender.getType() == ONLINE){
@@ -80,8 +91,24 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			}
 			//缴费完成
 			musicGroupStudentFeeDao.setPaidCompleted(calenderDetails);
-		}
+		}*/
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
+//		if(expectAmount.doubleValue() > 0){
+//			Set<Integer> studentIds = calenderDetails.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+			//推送消息
+			if (studentIds.size() > 0) {
+				String musicGroupId = calenderDetails.get(0).getMusicGroupId();
+				Map<Integer, String> push = new HashMap<>();
+				for (Integer userId : studentIds) {
+					push.put(userId, userId + "");
+				}
+				MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + musicGroupId;
+				// 发送续费通知
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
+			}
+//		}
 	}
 
 	@Override
@@ -115,7 +142,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			e.setOpen(1);
 //			e.setPaymentStatus(PROCESSING);
 			e.setStartPaymentDate(date);
-			e.setDeadlinePaymentDate(DateUtil.addDays(date,3));
+			e.setDeadlinePaymentDate(date);
 		});
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
 		//修改学员缴费状态为未缴费
@@ -171,7 +198,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		musicGroupPaymentCalenderDetail.setCreateTime(date);
 		musicGroupPaymentCalenderDetail.setExpectAmount(studentFee.getCourseFee());
 		studentFee.setUpdateTime(date);
-		if (studentFee.getCourseFee().doubleValue() == 0) {
+		/*if (studentFee.getCourseFee().doubleValue() == 0) {
 			studentFee.setPaymentStatus(PAID_COMPLETED);
 			musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 			if(calender.getType() == ONLINE){
@@ -181,7 +208,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		} else {
 			studentFee.setPaymentStatus(NON_PAYMENT);
 			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
-		}
+		}*/
+		studentFee.setPaymentStatus(NON_PAYMENT);
+		musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
 		musicGroupPaymentCalenderDetail.setUpdateTime(date);
 		musicGroupPaymentCalenderDetail.setUserId(userId);
 		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);

+ 90 - 78
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1,11 +1,33 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.*;
+import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.NO;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
@@ -21,17 +43,6 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.NO;
-
 @Service
 public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
 
@@ -67,7 +78,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 		musicGroupPaymentCalender.setCreateTime(date);
 		musicGroupPaymentCalender.setUpdateTime(date);
-		musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
+		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null) {
+			musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
+		}
 		// 判断缴费开始时间、结束时间是否被其他缴费记录占用
 		int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(musicGroupId, musicGroupPaymentCalender.getStartPaymentDate(),
 				musicGroupPaymentCalender.getDeadlinePaymentDate());
@@ -103,10 +116,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 					musicGroupPaymentCalenderDetail.setCreateTime(date);
 					musicGroupPaymentCalenderDetail.setExpectAmount(mgsf.getCourseFee());
-					if (mgsf.getCourseFee().doubleValue() == 0) {
-						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-					} else {
-						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+					if (mgsf.getCourseFee().doubleValue() != 0) {
 						studentIds.add(mgsf.getUserId());
 					}
 					musicGroupPaymentCalenderDetail.setUpdateTime(date);
@@ -117,14 +128,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 				// 更新学员缴费状态
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
-					if (mgsf.getCourseFee().doubleValue() == 0) {
-						mgsf.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-						if (musicGroupPaymentCalender.getType() != FeeType.OFFLINE) {
-							mgsf.setRemainNetworkClassTimes(mgsf.getRemainNetworkClassTimes() + 1);
-						}
-					} else {
-						mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
-					}
+					mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
 					mgsf.setUpdateTime(date);
 					updateMusicGroupStudentFeeList.add(mgsf);
 				}
@@ -157,36 +161,24 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean autoUpdateMusicGroupPaymentCalenderStatus() {
-		//获取当天创建且未缴费的数据,并推送
+		// 获取当天创建且未缴费的数据,并推送
 		List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryNoPaymentCanPushList();
-		if(details != null && details.size() > 0){
+		if (details != null && details.size() > 0) {
 			Set<String> musicGroupIds = details.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
 			Map<String, String> musicGroupNameMap = MapUtil.convertMybatisMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
-			for (MusicGroupPaymentCalenderDetail detail:details) {
+			for (MusicGroupPaymentCalenderDetail detail : details) {
+				if (detail.getExpectAmount().doubleValue() == 0) {
+					continue;
+				}
 				Map<Integer, String> push = new HashMap<>(1);
 				push.put(detail.getUserId(), detail.getUserId() + "");
-//				MusicGroup musicGroup = musicGroupDao.get(detail.getMusicGroupId());
+				// MusicGroup musicGroup = musicGroupDao.get(detail.getMusicGroupId());
 				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
 				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + detail.getMusicGroupId();
 				// 发送续费通知
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
 						null, 0, memo, "STUDENT", musicGroupNameMap.get(detail.getMusicGroupId()));
 			}
-			/*Map<Integer,String> listMap = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryPaymentPushMap());
-			Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-			String musicGroupId = details.get(0).getMusicGroupId();
-			if (studentIds.size() > 0) {
-				Map<Integer, String> push = new HashMap<>();
-				for (Integer userId : studentIds) {
-					push.put(userId, userId + "");
-				}
-				MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
-				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + musicGroup.getId();
-				// 发送续费通知
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
-						null, 0, memo, "STUDENT", musicGroup.getName());
-			}*/
 		}
 
 		Date date = new Date();
@@ -198,18 +190,42 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		List<MusicGroupPaymentCalender> updateMusicGroupPaymentCalenderList = new ArrayList<MusicGroupPaymentCalender>();
 
 		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
+		MusicGroupStudentFee musicGroupStudentFee = null;
 		List<MusicGroupStudentFee> updateMusicGroupStudentFeeList = new ArrayList<MusicGroupStudentFee>();
 		List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
+		List<MusicGroupPaymentCalenderDetail> updateMusicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
 
 		for (MusicGroupPaymentCalender mgpc : musicGroupPaymentCalenderList) {
 
+			List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(mgpc.getMusicGroupId());
+			Map<Integer, MusicGroupStudentFee> feeMap = musicGroupStudentFeeList.stream()
+					.collect(Collectors.toMap(MusicGroupStudentFee::getUserId, fee -> fee));
+
 			if (mgpc.getDeadlinePaymentDate() != null && date.after(mgpc.getDeadlinePaymentDate()) && mgpc.getPaymentStatus() == PaymentStatusEnum.OPEN) {
 				// “进行中”更新至“已结束”
 				mgpc.setUpdateTime(date);
 				mgpc.setPaymentStatus(PaymentStatusEnum.YES);
 				updateMusicGroupPaymentCalenderList.add(mgpc);
 
-				// 学生状态更新已结束
+				// 0元学生改成“已缴费”
+				List<MusicGroupPaymentCalenderDetail> list = musicGroupPaymentCalenderDetailDao.queryByCalenderId(mgpc.getId());
+				for (MusicGroupPaymentCalenderDetail mgpcd : list) {
+					if (mgpcd.getExpectAmount().doubleValue() == 0) {
+						mgpcd.setActualAmount(BigDecimal.ZERO);
+						mgpcd.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+						mgpcd.setUpdateTime(date);
+						updateMusicGroupPaymentCalenderDetailList.add(mgpcd);
+
+						// 更新fee表,且加1
+						musicGroupStudentFee = feeMap.get(mgpcd.getUserId());
+						if (musicGroupStudentFee != null) {
+							musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+							musicGroupStudentFee.setUpdateTime(date);
+							musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getContinuousAbsenteeismTimes() + 1);
+							updateMusicGroupStudentFeeList.add(musicGroupStudentFee);
+						}
+					}
+				}
 
 			} else if (mgpc.getStartPaymentDate() != null && date.after(mgpc.getStartPaymentDate()) && mgpc.getPaymentStatus() == PaymentStatusEnum.NO) {
 				// “未开始”更新至“进行中”
@@ -218,7 +234,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				updateMusicGroupPaymentCalenderList.add(mgpc);
 
 				// 学生状态更新进行中
-				List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(mgpc.getMusicGroupId());
 				Set<Integer> studentIds = new HashSet<Integer>();
 				// 创建缴费明细
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
@@ -226,10 +241,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(mgpc.getId());
 					musicGroupPaymentCalenderDetail.setCreateTime(date);
 					musicGroupPaymentCalenderDetail.setExpectAmount(mgsf.getCourseFee());
-					if (mgsf.getCourseFee().doubleValue() == 0) {
-						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-					} else {
-						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+					musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+					if (mgsf.getCourseFee().doubleValue() != 0) {
 						studentIds.add(mgsf.getUserId());
 					}
 					musicGroupPaymentCalenderDetail.setUpdateTime(date);
@@ -240,14 +253,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 				// 更新学员缴费状态
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
-					if (mgsf.getCourseFee().doubleValue() == 0) {
-						mgsf.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-						if (mgpc.getType() != FeeType.OFFLINE) {
-							mgsf.setRemainNetworkClassTimes(mgsf.getRemainNetworkClassTimes() + 1);
-						}
-					} else {
-						mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
-					}
+					mgsf.setPaymentStatus(PaymentStatus.NON_PAYMENT);
 					mgsf.setUpdateTime(date);
 					updateMusicGroupStudentFeeList.add(mgsf);
 				}
@@ -278,6 +284,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			musicGroupStudentFeeDao.batchUpdate(updateMusicGroupStudentFeeList);
 		}
 
+		if (updateMusicGroupPaymentCalenderDetailList.size() > 0) {
+			musicGroupPaymentCalenderDetailDao.batchUpdate(updateMusicGroupPaymentCalenderDetailList);
+		}
+
 		return true;
 	}
 
@@ -377,10 +387,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
 		Set<Long> set = new HashSet<>();
 		set.add(id);
-		Map<Long,Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(set));
-		Map<Long,Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(set));
-		calender.setActualNum(actualNumMap.get(id)==null?0:actualNumMap.get(id).intValue());
-		calender.setExpectNum(expectNumMap.get(id)==null?0:expectNumMap.get(id).intValue());
+		Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(set));
+		Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(set));
+		calender.setActualNum(actualNumMap.get(id) == null ? 0 : actualNumMap.get(id).intValue());
+		calender.setExpectNum(expectNumMap.get(id) == null ? 0 : expectNumMap.get(id).intValue());
 		BigDecimal sumActualAmount = musicGroupPaymentCalenderDetailDao.sumActualAmount(id);
 		Map<String, Object> result = new HashMap<>(2);
 		result.put("calender", calender);
@@ -392,30 +402,30 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	public Object queryDetailPage(MusicCalenderQueryInfo queryInfo) {
 		PageInfo<MusicGroupPaymentCalender> pageInfo = queryPage(queryInfo);
 		List<MusicGroupPaymentCalender> rows = pageInfo.getRows();
-		if(rows.size() == 0){
+		if (rows.size() == 0) {
 			return pageInfo;
 		}
 		Set<Long> collect = rows.stream().map(e -> e.getId()).collect(Collectors.toSet());
-		Map<Long,Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(collect));
-		Map<Long,Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(collect));
-		rows.forEach(e->{
-			e.setActualNum(actualNumMap.get(e.getId())==null?0:actualNumMap.get(e.getId()).intValue());
-			e.setExpectNum(expectNumMap.get(e.getId())==null?0:expectNumMap.get(e.getId()).intValue());
+		Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(collect));
+		Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(collect));
+		rows.forEach(e -> {
+			e.setActualNum(actualNumMap.get(e.getId()) == null ? 0 : actualNumMap.get(e.getId()).intValue());
+			e.setExpectNum(expectNumMap.get(e.getId()) == null ? 0 : expectNumMap.get(e.getId()).intValue());
 		});
 		return pageInfo;
 	}
 
 	@Override
 	public void paymentPush(Long id, String userIds) {
-		//推送所有
-		if(StringUtils.isEmpty(userIds)){
+		// 推送所有
+		if (StringUtils.isEmpty(userIds)) {
 			List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryCanPushList(id);
-			if(details == null || details.size() == 0){
+			if (details == null || details.size() == 0) {
 				return;
 			}
 			String musicGroupId = details.get(0).getMusicGroupId();
 			Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-			//推送消息
+			// 推送消息
 			if (studentIds.size() > 0) {
 				Map<Integer, String> push = new HashMap<>();
 				for (Integer userId : studentIds) {
@@ -425,11 +435,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
 				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + musicGroupId;
 				// 发送续费通知
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+						null, 0, memo, "STUDENT", musicGroup.getName());
 			}
-		}else {
-			//获取课推送列表
-			//批量推送
+		} else {
+			// 获取课推送列表
+			// 批量推送
 			MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
 			Set<String> studentIds = new HashSet<>(Arrays.asList(userIds.split(",")));
 			if (studentIds.size() > 0) {
@@ -441,7 +452,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
 				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + calender.getMusicGroupId();
 				// 发送续费通知
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+						null, 0, memo, "STUDENT", musicGroup.getName());
 			}
 		}
 	}

+ 1 - 12
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -53,18 +53,7 @@ public class RoomController{
 
     @RequestMapping(value = "/sendImPlayMidiMessage", method = RequestMethod.POST)
     public Object sendImPlayMidiMessage(@RequestBody PlayMidiMessageData playMidiMessageData) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            throw new BizException("用户信息获取失败");
-        }
-//        roomService.sendImPlayMidiMessage(playMidiMessageData);
-        GroupMessage groupMessage = new GroupMessage();
-        CustomMessage customMessage = JSONObject.parseObject(playMidiMessageData.getContent(),CustomMessage.class);
-        groupMessage.setContent(customMessage);
-        groupMessage.setTargetId(playMidiMessageData.getRoomId().split(","));
-        groupMessage.setSenderId(sysUser.getId().toString());
-        groupMessage.setObjectName("DY:PlayMidiMessage");
-        messageService.groupSend(groupMessage);
+        roomService.sendImPlayMidiMessage(playMidiMessageData);
         return new BaseResponse<>();
     }
 

+ 20 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.service.Impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.common.ApiException;
 import com.ym.common.DisplayEnum;
 import com.ym.common.ErrorEnum;
@@ -25,19 +26,20 @@ import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.message.*;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.pojo.*;
+import com.ym.service.MessageService;
 import com.ym.service.RoomService;
 import com.ym.utils.CheckUtils;
 import com.ym.utils.CodeUtil;
 import com.ym.utils.DateTimeUtils;
 import com.ym.utils.IdentifierUtils;
 import com.ym.whiteboard.WhiteBoardHelper;
+import io.rong.models.message.GroupMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -81,7 +83,7 @@ public class RoomServiceImpl implements RoomService {
     private UserDao userDao;
 
     @Autowired
-    private SysMessageService sysMessageService;
+    private MessageService messageService;
 
     @Autowired
     private TeacherDao teacherDao;
@@ -1378,6 +1380,22 @@ public class RoomServiceImpl implements RoomService {
         return true;
     }
 
+    @Override
+    public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
+//        roomService.sendImPlayMidiMessage(playMidiMessageData);
+        GroupMessage groupMessage = new GroupMessage();
+        CustomMessage customMessage = JSONObject.parseObject(playMidiMessageData.getContent(),CustomMessage.class);
+        groupMessage.setContent(customMessage);
+        groupMessage.setTargetId(playMidiMessageData.getRoomId().split(","));
+        groupMessage.setSenderId(sysUser.getId().toString());
+        groupMessage.setObjectName("DY:PlayMidiMessage");
+        messageService.groupSend(groupMessage);
+    }
+
     /*@Override
     public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 6 - 0
mec-im/src/main/java/com/ym/service/RoomService.java

@@ -68,6 +68,12 @@ public interface RoomService {
     boolean statusSync(String roomId,String userId) throws Exception;
 
     /**
+     * 发送节拍器消息
+     * @param playMidiMessageData
+     */
+    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) throws Exception;
+
+    /**
      * 发送节拍器自定义消息
      */
 //    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData);