feat: 渲染短信模板
This commit is contained in:
parent
cb3529ce4c
commit
9570df8b14
@ -14,6 +14,8 @@ import com.cicdi.notify.Provider;
|
||||
public interface TemplateProvider {
|
||||
|
||||
/**
|
||||
* 获取通知类型
|
||||
*
|
||||
* @return 通知类型
|
||||
* @see NotifyType
|
||||
* @see DefaultNotifyType
|
||||
|
@ -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<TelecomSmsTemplate> {
|
||||
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<TelecomSmsTemplate> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用变量替和SpEL表达式渲染模板
|
||||
*
|
||||
* @param expression 带有变量或者表达式的模板
|
||||
* @param context 用于替换的上下文
|
||||
* @return 渲染后的模板
|
||||
*/
|
||||
private String render(String expression, Map<String, Object> context) {
|
||||
return ExpressionUtils.analytical(expression, context);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理HTTP请求响应信息
|
||||
* <p>将URL参数转换成键值对</p>
|
||||
|
@ -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<Template> notifier = notifierManager.getNotifier(DefaultNotifyType.sms, "123");
|
||||
notifier.send(templateManager.getTemplate(DefaultNotifyType.sms, "124"), new HashMap<>());
|
||||
Map<String, Object> context = new HashMap<>();
|
||||
context.put("code", "54876812");
|
||||
notifier.send(templateManager.getTemplate(DefaultNotifyType.sms, "124"), context);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user