zouxuan 5 anni fa
parent
commit
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.Map;
-import java.util.Set;
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -27,7 +26,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param triggerTime 触发时间
 	 * @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);
 
 	/**
@@ -41,8 +40,8 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @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
 	 */
 	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);
 
-		Set<String> receivers = new HashSet<>();
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		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, "");

+ 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);
         
 		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, "",

+ 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) {
 			musicGroupStudentFeeDao.batchUpdate(updateList);
 
-			Set<String> receivers = new HashSet<>();
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			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;
 
+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.entity.SysUser;
 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.MessageSender;
 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
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
@@ -78,25 +85,31 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @param group 消息组
 	 * @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;
 		Date date = new Date();
 
 		List<SysMessage> messages = new ArrayList<SysMessage>();
 
 		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();
-			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.setContent(content);
 			message.setCreateOn(date);
 			message.setModifyOn(date);
-			message.setReceiver(phone);
+			message.setReceiver(receiver);
 			if (triggerTime == null) {
 				triggerTime = date;
 			}
@@ -122,7 +135,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@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) {
 
 		if (receivers == null || receivers.size() == 0) {
@@ -131,7 +144,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (StringUtils.isBlank(content)) {
 			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();
 			SendStatusEnum status = SendStatusEnum.WAIT;
 
@@ -140,7 +154,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 				// 立即发送
 				if (triggerTime == null || date.after(triggerTime)) {
 					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;
 					} else {
 						status = SendStatusEnum.FAILED;
@@ -165,13 +179,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@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) {
 			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);
 		if (messageConfig == null) {
 			throw new BizException("消息类型错误");
@@ -185,7 +199,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			try {
 				if (debugMode == true
 						|| 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;
 				} else {
 					status = SendStatusEnum.FAILED;
@@ -209,7 +223,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Async
 	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)) {
 			throw new BizException("接收地址不能为空");
 		}
@@ -237,8 +251,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		} else if (messageSender.getSendMode().equals("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);
 	}
 
@@ -254,8 +268,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (debugMode == false) {
 			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);
 		redisCache.put(key, code, CODE_EXPIRE);
 		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);
 
-		Set<String> receivers = new HashSet<>();
+		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		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, "");