|
@@ -1,21 +1,5 @@
|
|
|
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;
|
|
@@ -33,6 +17,15 @@ 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.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 java.util.*;
|
|
|
|
|
|
@Service
|
|
|
public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
|
|
@@ -85,7 +78,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
* @param group 消息组
|
|
|
* @return
|
|
|
*/
|
|
|
- private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
|
|
|
+ private int addMessage(Set<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();
|
|
@@ -93,23 +86,17 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
List<SysMessage> messages = new ArrayList<SysMessage>();
|
|
|
|
|
|
Integer userId = null;
|
|
|
- String receiver;
|
|
|
- for (Entry<Integer, String> entry : receivers.entrySet()) {
|
|
|
- userId = entry.getKey();
|
|
|
- receiver = entry.getValue();
|
|
|
-
|
|
|
+ for (String phone : receivers) {
|
|
|
message = new SysMessage();
|
|
|
- if (userId == null) {
|
|
|
- SysUser user = sysUserFeignService.queryUserByMobile(receiver);
|
|
|
- if (user != null) {
|
|
|
- userId = user.getId();
|
|
|
- }
|
|
|
+ SysUser user = sysUserFeignService.queryUserByMobile(phone);
|
|
|
+ if (user != null) {
|
|
|
+ userId = user.getId();
|
|
|
}
|
|
|
message.setUserId(userId);
|
|
|
message.setContent(content);
|
|
|
message.setCreateOn(date);
|
|
|
message.setModifyOn(date);
|
|
|
- message.setReceiver(receiver);
|
|
|
+ message.setReceiver(phone);
|
|
|
if (triggerTime == null) {
|
|
|
triggerTime = date;
|
|
|
}
|
|
@@ -135,8 +122,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
|
|
|
@Override
|
|
|
@Async
|
|
|
- public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
|
|
|
- Integer readStatus, String memo) {
|
|
|
+ public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Set<String> receivers, Date triggerTime,
|
|
|
+ Integer readStatus, String memo) {
|
|
|
|
|
|
if (receivers == null || receivers.size() == 0) {
|
|
|
throw new BizException("消息接收人不能为空");
|
|
@@ -144,8 +131,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
if (StringUtils.isBlank(content)) {
|
|
|
throw new BizException("消息内容不能为空");
|
|
|
}
|
|
|
- String[] tos = receivers.values().toArray(new String[receivers.size()]);
|
|
|
- if (tos != null && tos.length > 0) {
|
|
|
+ if (receivers != null && receivers.size() > 0) {
|
|
|
Date date = new Date();
|
|
|
SendStatusEnum status = SendStatusEnum.WAIT;
|
|
|
|
|
@@ -154,7 +140,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, tos, memo)) {
|
|
|
+ if (debugMode == true || messageSenderPluginContext.batchSend(messageSender, subject, content, receivers.toArray(new String[receivers.size()]), memo)) {
|
|
|
status = SendStatusEnum.SUCCESSED;
|
|
|
} else {
|
|
|
status = SendStatusEnum.FAILED;
|
|
@@ -179,13 +165,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
|
|
|
@Override
|
|
|
@Async
|
|
|
- public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
|
|
|
+ public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Set<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("消息类型错误");
|
|
@@ -199,7 +185,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
try {
|
|
|
if (debugMode == true
|
|
|
|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
|
|
|
- MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url)) {
|
|
|
+ MessageFormatter.arrayFormat(messageConfig.getContent(), args),receivers.toArray(new String[receivers.size()]) , url)) {
|
|
|
status = SendStatusEnum.SUCCESSED;
|
|
|
} else {
|
|
|
status = SendStatusEnum.FAILED;
|
|
@@ -251,8 +237,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
} else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
mode = MessageSendMode.EMAIL;
|
|
|
}
|
|
|
- Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
|
- receivers.put(userId, receiver);
|
|
|
+ Set<String> receivers = new HashSet<>();
|
|
|
+ receivers.add(receiver);
|
|
|
addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null);
|
|
|
}
|
|
|
|
|
@@ -268,8 +254,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
if (debugMode == false) {
|
|
|
code = getRandomCode(messageType, receiver);
|
|
|
}
|
|
|
- Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
|
- receivers.put(userId, receiver);
|
|
|
+ Set<String> receivers = new HashSet<>();
|
|
|
+ receivers.add(receiver);
|
|
|
batchSendMessage(messageSender, messageType, receivers, null, 1, "", code);
|
|
|
redisCache.put(key, code, CODE_EXPIRE);
|
|
|
redisCache.put(key1, code, CODE_INTERVAL_TIME);
|