zouxuan 5 年之前
父节点
当前提交
0845bfcd31

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -2,7 +2,6 @@ package com.ym.mec.biz.service;
 
 
 import java.util.Date;
 import java.util.Date;
 import java.util.Map;
 import java.util.Map;
-import java.util.Set;
 
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -27,7 +26,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param triggerTime 触发时间
 	 * @param triggerTime 触发时间
 	 * @return
 	 * @return
 	 */
 	 */
-	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Set<String> receivers, Date triggerTime,
+	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 									Integer readStatus, String memo);
 									Integer readStatus, String memo);
 
 
 	/**
 	/**
@@ -41,8 +40,8 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @param args 参数
 	 * @return
 	 * @return
 	 */
 	 */
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Set<String> receivers, Date triggerTime,
-			Integer readStatus, String url, Object... args);
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+								 Integer readStatus, String url, Object... args);
 
 
 	/**
 	/**
 	 * 发送消息
 	 * 发送消息
@@ -58,7 +57,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @return
 	 * @return
 	 */
 	 */
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
-			String url);
+							String url);
 
 
 	/**
 	/**
 	 * 发送验证码
 	 * 发送验证码

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

@@ -731,9 +731,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 
 		List<CourseSchedule> list = courseScheduleDao.queryNoSignInListByBeforeMinutes(minutes);
 		List<CourseSchedule> list = courseScheduleDao.queryNoSignInListByBeforeMinutes(minutes);
 
 
-		Set<String> receivers = new HashSet<>();
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		for (CourseSchedule sf : list) {
 		for (CourseSchedule sf : list) {
-			receivers.add(sf.getTeacherId() + "");
+			receivers.put(sf.getTeacherId(), sf.getTeacherId() + "");
 		}
 		}
 
 
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_IN_MESSAGE, receivers, null, 0, "");
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_IN_MESSAGE, receivers, null, 0, "");

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

@@ -531,8 +531,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupStudentFeeDao.update(musicGroupStudentFee);
         musicGroupStudentFeeDao.update(musicGroupStudentFee);
         
         
 		SysUser user = sysUserFeignService.queryUserById(userId);
 		SysUser user = sysUserFeignService.queryUserById(userId);
-		Set<String> receivers = new HashSet<>();
-		receivers.add(userId + "");
+        Map<Integer, String> receivers = new HashMap<Integer, String>();
+        receivers.put(user.getId(), userId + "");
 
 
 		// 发送续费结果通知
 		// 发送续费结果通知
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT, receivers, null, 0, "",
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT, receivers, null, 0, "",

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

@@ -57,9 +57,9 @@ public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, Music
 		if (updateList.size() > 0) {
 		if (updateList.size() > 0) {
 			musicGroupStudentFeeDao.batchUpdate(updateList);
 			musicGroupStudentFeeDao.batchUpdate(updateList);
 
 
-			Set<String> receivers = new HashSet<>();
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			for (MusicGroupStudentFee sf : updateList) {
 			for (MusicGroupStudentFee sf : updateList) {
-				receivers.add(sf.getUserId() + "");
+				receivers.put(sf.getUserId(), sf.getUserId() + "");
 			}
 			}
 
 
 			// 发送续费通知
 			// 发送续费通知

+ 42 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,5 +1,21 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
@@ -17,15 +33,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.string.MessageFormatter;
 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 java.util.*;
 
 
 @Service
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
@@ -78,25 +85,31 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @param group 消息组
 	 * @param group 消息组
 	 * @return
 	 * @return
 	 */
 	 */
-	private int addMessage(Set<String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
-			String errorMsg, Integer readStatus, String memo, String group) {
+	private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
+						   String errorMsg, Integer readStatus, String memo, String group) {
 		SysMessage message = null;
 		SysMessage message = null;
 		Date date = new Date();
 		Date date = new Date();
 
 
 		List<SysMessage> messages = new ArrayList<SysMessage>();
 		List<SysMessage> messages = new ArrayList<SysMessage>();
 
 
 		Integer userId = null;
 		Integer userId = null;
-		for (String phone : receivers) {
+		String receiver;
+		for (Entry<Integer, String> entry : receivers.entrySet()) {
+			userId = entry.getKey();
+			receiver = entry.getValue();
+
 			message = new SysMessage();
 			message = new SysMessage();
-			SysUser user = sysUserFeignService.queryUserByMobile(phone);
-			if (user != null) {
-				userId = user.getId();
+			if (userId == null) {
+				SysUser user = sysUserFeignService.queryUserByMobile(receiver);
+				if (user != null) {
+					userId = user.getId();
+				}
 			}
 			}
 			message.setUserId(userId);
 			message.setUserId(userId);
 			message.setContent(content);
 			message.setContent(content);
 			message.setCreateOn(date);
 			message.setCreateOn(date);
 			message.setModifyOn(date);
 			message.setModifyOn(date);
-			message.setReceiver(phone);
+			message.setReceiver(receiver);
 			if (triggerTime == null) {
 			if (triggerTime == null) {
 				triggerTime = date;
 				triggerTime = date;
 			}
 			}
@@ -122,7 +135,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 
 	@Override
 	@Override
 	@Async
 	@Async
-	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Set<String> receivers, Date triggerTime,
+	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 									Integer readStatus, String memo) {
 									Integer readStatus, String memo) {
 
 
 		if (receivers == null || receivers.size() == 0) {
 		if (receivers == null || receivers.size() == 0) {
@@ -131,7 +144,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (StringUtils.isBlank(content)) {
 		if (StringUtils.isBlank(content)) {
 			throw new BizException("消息内容不能为空");
 			throw new BizException("消息内容不能为空");
 		}
 		}
-		if (receivers != null && receivers.size() > 0) {
+		String[] tos = receivers.values().toArray(new String[receivers.size()]);
+		if (tos != null && tos.length > 0) {
 			Date date = new Date();
 			Date date = new Date();
 			SendStatusEnum status = SendStatusEnum.WAIT;
 			SendStatusEnum status = SendStatusEnum.WAIT;
 
 
@@ -140,7 +154,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 				// 立即发送
 				// 立即发送
 				if (triggerTime == null || date.after(triggerTime)) {
 				if (triggerTime == null || date.after(triggerTime)) {
 					status = SendStatusEnum.SENDING;
 					status = SendStatusEnum.SENDING;
-					if (debugMode == true || messageSenderPluginContext.batchSend(messageSender, subject, content, receivers.toArray(new String[receivers.size()]), memo)) {
+					if (debugMode == true || messageSenderPluginContext.batchSend(messageSender, subject, content, tos, memo)) {
 						status = SendStatusEnum.SUCCESSED;
 						status = SendStatusEnum.SUCCESSED;
 					} else {
 					} else {
 						status = SendStatusEnum.FAILED;
 						status = SendStatusEnum.FAILED;
@@ -165,13 +179,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 
 	@Override
 	@Override
 	@Async
 	@Async
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Set<String> receivers, Date triggerTime, Integer readStatus,
-			String url, Object... args) {
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+								 String url, Object... args) {
 
 
 		if (receivers == null || receivers.size() == 0) {
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("接收地址不能为空");
 			throw new BizException("接收地址不能为空");
 		}
 		}
-//		String[] tos = receivers.values().toArray(new String[receivers.size()]);
+		String[] tos = receivers.values().toArray(new String[receivers.size()]);
 		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
 		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
 		if (messageConfig == null) {
 		if (messageConfig == null) {
 			throw new BizException("消息类型错误");
 			throw new BizException("消息类型错误");
@@ -185,7 +199,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			try {
 			try {
 				if (debugMode == true
 				if (debugMode == true
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
-								MessageFormatter.arrayFormat(messageConfig.getContent(), args),receivers.toArray(new String[receivers.size()]) , url)) {
+						MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url)) {
 					status = SendStatusEnum.SUCCESSED;
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 				} else {
 					status = SendStatusEnum.FAILED;
 					status = SendStatusEnum.FAILED;
@@ -209,7 +223,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Override
 	@Async
 	@Async
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
-			String url) {
+							String url) {
 		if (StringUtils.isBlank(receiver)) {
 		if (StringUtils.isBlank(receiver)) {
 			throw new BizException("接收地址不能为空");
 			throw new BizException("接收地址不能为空");
 		}
 		}
@@ -237,8 +251,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		} else if (messageSender.getSendMode().equals("EMAIL")) {
 		} else if (messageSender.getSendMode().equals("EMAIL")) {
 			mode = MessageSendMode.EMAIL;
 			mode = MessageSendMode.EMAIL;
 		}
 		}
-		Set<String> receivers = new HashSet<>();
-		receivers.add(receiver);
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
+		receivers.put(userId, receiver);
 		addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null);
 		addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null);
 	}
 	}
 
 
@@ -254,8 +268,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (debugMode == false) {
 		if (debugMode == false) {
 			code = getRandomCode(messageType, receiver);
 			code = getRandomCode(messageType, receiver);
 		}
 		}
-		Set<String> receivers = new HashSet<>();
-		receivers.add(receiver);
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
+		receivers.put(userId, receiver);
 		batchSendMessage(messageSender, messageType, receivers, null, 1, "", code);
 		batchSendMessage(messageSender, messageType, receivers, null, 1, "", code);
 		redisCache.put(key, code, CODE_EXPIRE);
 		redisCache.put(key, code, CODE_EXPIRE);
 		redisCache.put(key1, code, CODE_INTERVAL_TIME);
 		redisCache.put(key1, code, CODE_INTERVAL_TIME);

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

@@ -185,9 +185,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 
 		List<TeacherAttendance> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
 		List<TeacherAttendance> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
 
 
-		Set<String> receivers = new HashSet<>();
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		for (TeacherAttendance sf : list) {
 		for (TeacherAttendance sf : list) {
-			receivers.add(sf.getTeacherId() + "");
+			receivers.put(sf.getTeacherId(), sf.getTeacherId() + "");
 		}
 		}
 
 
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0, "");
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0, "");