实现短信通知功能

This commit is contained in:
TinyAnts
2022-09-06 15:36:13 +08:00
parent 7c666c7bd6
commit a437c1564f
12 changed files with 108 additions and 44 deletions

View File

@@ -23,6 +23,9 @@ public class GlobalConfig {
// Redis键前缀
public static String redisPrefix = "Like:";
// 短信验证码
public static String redisSmsCode = "smsCode:";
// 资源访问前缀
public static String publicPrefix = "api/uploads";

View File

@@ -25,7 +25,6 @@ public class NoticeSetting implements Serializable {
private String smsNotice; // 短信的通知设置
private String oaNotice; // 公众号通知设置
private String mnpNotice; // 小程序通知设置
private String support; // 支持的发送类型
private Integer isDelete; // 是否删除: [0=否, 1=是]
private Long createTime; // 创建时间
private Long updateTime; // 更新时间

View File

@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mdd.common.entity.notice.NoticeSetting;
import com.mdd.common.exception.OperateException;
import com.mdd.common.mapper.notice.NoticeSettingMapper;
import com.mdd.common.plugin.notice.engine.MpNotice;
import com.mdd.common.plugin.notice.engine.OaNotice;
import com.mdd.common.plugin.notice.engine.SmsNotice;
import com.mdd.common.utils.SpringUtil;
import com.mdd.common.utils.StringUtil;
@@ -36,16 +34,16 @@ public class NoticeDriver {
// 短信通知
Map<String, String> smsTemplate = ToolsUtil.jsonToMap(noticeSetting.getSmsNotice());
if (StringUtil.isNotEmpty(smsTemplate.get("status")) && Integer.parseInt(smsTemplate.get("status")) == 1) {
(new SmsNotice()).send(config, params, smsTemplate);
(new SmsNotice()).send(config, params, smsTemplate, noticeSetting);
}
// 小程序订阅通知
Map<String, String> mnpTemplate = ToolsUtil.jsonToMap(noticeSetting.getMnpNotice());
if (StringUtil.isNotEmpty(mnpTemplate.get("status")) && Integer.parseInt(mnpTemplate.get("status")) == 1) {
(new MpNotice()).send(config, params, mnpTemplate);
}
// 小程序订阅通知 todo
// Map<String, String> mnpTemplate = ToolsUtil.jsonToMap(noticeSetting.getMnpNotice());
// if (StringUtil.isNotEmpty(mnpTemplate.get("status")) && Integer.parseInt(mnpTemplate.get("status")) == 1) {
// (new MpNotice()).send(config, params, mnpTemplate);
// }
// 公众号订阅通知
// 公众号订阅通知 todo
// Map<String, String> oaTemplate = ToolsUtil.jsonToMap(noticeSetting.getOaNotice());
// if (StringUtil.isNotEmpty(oaTemplate.get("status")) && Integer.parseInt(oaTemplate.get("status")) == 1) {
// (new OaNotice()).send(config, params, oaTemplate);

View File

@@ -1,7 +1,10 @@
package com.mdd.common.plugin.notice.engine;
import com.mdd.common.config.GlobalConfig;
import com.mdd.common.entity.notice.NoticeSetting;
import com.mdd.common.plugin.sms.SmsDriver;
import com.mdd.common.utils.ConfigUtil;
import com.mdd.common.utils.RedisUtil;
import com.mdd.common.utils.StringUtil;
import java.util.*;
@@ -15,10 +18,12 @@ public class SmsNotice {
* @param config 基础配置
* @param params 短信参数
* @param smsTemplate 短信模板
* @param noticeSetting 通知设置
*/
public void send(Map<String, String> config, Map<String, String> params, Map<String, String> smsTemplate) {
public void send(Map<String, String> config, Map<String, String> params, Map<String, String> smsTemplate, NoticeSetting noticeSetting) {
String mobile = config.getOrDefault("mobile", "");
String scene = config.getOrDefault("scene", "");
if (StringUtil.isNotEmpty(mobile) && StringUtil.isNotEmpty(scene)) {
(new SmsDriver())
.setMobile(mobile)
@@ -26,6 +31,12 @@ public class SmsNotice {
.setTemplateParam(this.getSmsParams(params, smsTemplate))
.setSmsContent(this.getContent(params, smsTemplate))
.sendSms();
// 1=业务通知, 2=验证码
if (noticeSetting.getType() == 2 && StringUtil.isNotNull(params.get("code"))) {
String code = params.get("code").toLowerCase();
RedisUtil.set(GlobalConfig.redisSmsCode+mobile, code);
}
}
}