From 9570df8b1458685334076f3a1fcf05b254951ffc Mon Sep 17 00:00:00 2001 From: xueye Date: Fri, 16 Jul 2021 10:36:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B8=B2=E6=9F=93=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cicdi/notify/template/TemplateProvider.java | 2 ++ .../notify/sms/telecom/TelecomSmsNotifier.java | 14 +++++++++++++- .../java/com/cicdi/notify/sms/TelecomSmsTest.java | 6 ++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/notify-core/src/main/java/com/cicdi/notify/template/TemplateProvider.java b/notify-core/src/main/java/com/cicdi/notify/template/TemplateProvider.java index 3f82c0b..a586520 100644 --- a/notify-core/src/main/java/com/cicdi/notify/template/TemplateProvider.java +++ b/notify-core/src/main/java/com/cicdi/notify/template/TemplateProvider.java @@ -14,6 +14,8 @@ import com.cicdi.notify.Provider; public interface TemplateProvider { /** + * 获取通知类型 + * * @return 通知类型 * @see NotifyType * @see DefaultNotifyType diff --git a/notify-sms/src/main/java/com/cicdi/notify/sms/telecom/TelecomSmsNotifier.java b/notify-sms/src/main/java/com/cicdi/notify/sms/telecom/TelecomSmsNotifier.java index 6820a06..49ee3fe 100644 --- a/notify-sms/src/main/java/com/cicdi/notify/sms/telecom/TelecomSmsNotifier.java +++ b/notify-sms/src/main/java/com/cicdi/notify/sms/telecom/TelecomSmsNotifier.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.cicdi.notify.*; import com.cicdi.notify.sms.SmsProvider; import com.cicdi.notify.template.TemplateManager; +import com.cicdi.notify.util.ExpressionUtils; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; @@ -57,7 +58,7 @@ public class TelecomSmsNotifier implements Notifier { try { URI sendMsgURI = new URIBuilder(notifyApi).addParameter("userId", configuration.getUserId()) .addParameter("password", configuration.getPassword()) - .addParameter("content", template.getContent()) + .addParameter("content", render(template.getContent(), context)) .addParameter("mobile", template.getMobile()) .build(); HttpPost httpPost = new HttpPost(sendMsgURI); @@ -84,6 +85,17 @@ public class TelecomSmsNotifier implements Notifier { } } + /** + * 使用变量替和SpEL表达式渲染模板 + * + * @param expression 带有变量或者表达式的模板 + * @param context 用于替换的上下文 + * @return 渲染后的模板 + */ + private String render(String expression, Map context) { + return ExpressionUtils.analytical(expression, context); + } + /** * 处理HTTP请求响应信息 *

将URL参数转换成键值对

diff --git a/notify-sms/src/test/java/com/cicdi/notify/sms/TelecomSmsTest.java b/notify-sms/src/test/java/com/cicdi/notify/sms/TelecomSmsTest.java index a20c0c9..0e534ae 100644 --- a/notify-sms/src/test/java/com/cicdi/notify/sms/TelecomSmsTest.java +++ b/notify-sms/src/test/java/com/cicdi/notify/sms/TelecomSmsTest.java @@ -44,7 +44,7 @@ public class TelecomSmsTest { templateProperties.setProvider(SmsProvider.js139.getId()); TelecomSmsTemplate template = new TelecomSmsTemplate(); - template.setContent("Hello World!"); + template.setContent("${code},有效期为5分钟。"); template.setMobile("13047689449,18605120786"); templateProperties.setTemplate(JSON.toJSONString(template)); @@ -62,6 +62,8 @@ public class TelecomSmsTest { templateManager.register(telecomSmsNotifierProvider); Notifier