|
@@ -1,6 +1,22 @@
|
|
|
package com.keao.edu.auth.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.Random;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+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 com.keao.edu.auth.api.client.SysUserFeignService;
|
|
|
import com.keao.edu.auth.api.entity.SysUser;
|
|
|
import com.keao.edu.auth.service.SysMessageConfigService;
|
|
@@ -19,18 +35,10 @@ import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
|
import com.keao.edu.im.api.client.ImFeignService;
|
|
|
import com.keao.edu.im.api.entity.ImPrivateMessage;
|
|
|
import com.keao.edu.im.api.entity.ImTxtMessage;
|
|
|
+import com.keao.edu.thirdparty.message.MessageSenderPlugin;
|
|
|
import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
|
|
|
-import com.keao.edu.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
|
+import com.keao.edu.thirdparty.message.provider.YimeiSmsPlugin;
|
|
|
import com.keao.edu.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 {
|
|
@@ -232,7 +240,7 @@ 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,
|
|
|
+ public boolean batchSendMessage(MessageSenderPlugin senderPlugin, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
|
|
|
Integer readStatus, String memo, String group, String jpushType) {
|
|
|
|
|
|
if (receivers == null || receivers.size() == 0) {
|
|
@@ -251,7 +259,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,jpushType)) {
|
|
|
+ if (debugMode == true || messageSenderPluginContext.batchSend(YimeiSmsPlugin.PLUGIN_NAME, subject, content, tos, memo,jpushType)) {
|
|
|
status = SendStatusEnum.SUCCESSED;
|
|
|
} else {
|
|
|
status = SendStatusEnum.FAILED;
|
|
@@ -263,9 +271,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
LOGGER.warn("消息发送失败", e);
|
|
|
}
|
|
|
MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
+ if (senderPlugin.getSendMode().equals("PUSH")) {
|
|
|
mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
+ } else if (senderPlugin.getSendMode().equals("EMAIL")) {
|
|
|
mode = MessageSendMode.EMAIL;
|
|
|
}
|
|
|
return addMessage(receivers, subject, content, triggerTime, mode, status, errorMsg, readStatus, memo, null) > 0;
|
|
@@ -276,7 +284,7 @@ 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(MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
|
|
|
String url, String jpushType, Object... args) {
|
|
|
|
|
|
if (receivers == null || receivers.size() == 0) {
|
|
@@ -292,12 +300,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
Date date = new Date();
|
|
|
SendStatusEnum status = SendStatusEnum.WAIT;
|
|
|
String errorMsg = null;
|
|
|
+ String pluginName = YimeiSmsPlugin.PLUGIN_NAME;
|
|
|
// 立即发送
|
|
|
if (triggerTime == null || date.after(triggerTime)) {
|
|
|
status = SendStatusEnum.SENDING;
|
|
|
try {
|
|
|
if (debugMode == true
|
|
|
- || messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
|
|
|
+ || messageSenderPluginContext.batchSend(pluginName, messageConfig.getDescription(),
|
|
|
MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType)) {
|
|
|
status = SendStatusEnum.SUCCESSED;
|
|
|
} else {
|
|
@@ -309,10 +318,11 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
LOGGER.warn("消息发送失败", e);
|
|
|
}
|
|
|
}
|
|
|
+ MessageSenderPlugin senderPlugin = messageSenderPluginContext.getMessageSenderPlugin(pluginName);
|
|
|
MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
+ if (senderPlugin.getSendMode().equals("PUSH")) {
|
|
|
mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
+ } else if (senderPlugin.getSendMode().equals("EMAIL")) {
|
|
|
mode = MessageSendMode.EMAIL;
|
|
|
}
|
|
|
addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
|
|
@@ -321,7 +331,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,
|
|
|
+ public void sendMessage(MessageSenderPlugin senderPlugin, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
|
|
|
String url, String group,String jpushType) {
|
|
|
if (StringUtils.isBlank(receiver)) {
|
|
|
throw new BizException("接收地址不能为空");
|
|
@@ -333,7 +343,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
if (triggerTime == null || date.after(triggerTime)) {
|
|
|
status = SendStatusEnum.SENDING;
|
|
|
try {
|
|
|
- if (debugMode == true || messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType)) {
|
|
|
+ if (debugMode == true || messageSenderPluginContext.send(YimeiSmsPlugin.PLUGIN_NAME, receiver, title, content, url,jpushType)) {
|
|
|
status = SendStatusEnum.SUCCESSED;
|
|
|
} else {
|
|
|
status = SendStatusEnum.FAILED;
|
|
@@ -345,9 +355,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
}
|
|
|
}
|
|
|
MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
+ if (senderPlugin.getSendMode().equals("PUSH")) {
|
|
|
mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
+ } else if (senderPlugin.getSendMode().equals("EMAIL")) {
|
|
|
mode = MessageSendMode.EMAIL;
|
|
|
}
|
|
|
Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
@@ -356,7 +366,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageTypeEnum messageType, String receiver) {
|
|
|
+ public boolean sendSecurityCode(Integer userId, MessageTypeEnum messageType, String receiver) {
|
|
|
String key1 = getVerificationCode1CacheKey(messageType, receiver);
|
|
|
if (redisCache.get(key1) != null) {
|
|
|
throw new BizException("请勿频繁操作,获取验证码间隔时间为60秒");
|
|
@@ -369,7 +379,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
}
|
|
|
Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
receivers.put(userId, receiver);
|
|
|
- batchSendMessage(messageSender, messageType, receivers, null, 1, "","", code);
|
|
|
+ batchSendMessage(messageType, receivers, null, 1, "","", code);
|
|
|
redisCache.put(key, code + "", CODE_EXPIRE);
|
|
|
redisCache.put(key1, code + "", CODE_INTERVAL_TIME);
|
|
|
return true;
|