package com.qianwen.core.notify.provider.sms.yunpian;
|
|
import com.yunpian.sdk.YunpianClient;
|
import com.yunpian.sdk.model.Result;
|
import com.yunpian.sdk.model.SmsBatchSend;
|
import java.util.List;
|
import java.util.Map;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.core.log.exception.BizServiceException;
|
import com.qianwen.core.notify.DefaultNotifyType;
|
import com.qianwen.core.notify.NotifyType;
|
import com.qianwen.core.notify.Provider;
|
import com.qianwen.core.notify.notifier.AbstractNotifier;
|
import com.qianwen.core.notify.notifier.NotifierProperties;
|
import com.qianwen.core.notify.provider.sms.SmsProvider;
|
import com.qianwen.core.notify.template.Template;
|
import com.qianwen.core.notify.template.TemplateManager;
|
import com.qianwen.core.tool.api.BizMessage;
|
import com.qianwen.core.tool.metadata.Values;
|
import com.qianwen.core.tool.support.Kv;
|
import com.qianwen.core.tool.utils.PlaceholderUtil;
|
import com.qianwen.core.tool.utils.StringUtil;
|
|
/* loaded from: blade-starter-notify-9.3.0.0-SNAPSHOT.jar:org/springblade/core/notify/provider/sms/yunpian/YunpianSmsNotifier.class */
|
public class YunpianSmsNotifier extends AbstractNotifier<YunpianSmsTemplate> {
|
private static final Logger log = LoggerFactory.getLogger(YunpianSmsNotifier.class);
|
private final YunpianClient client;
|
private NotifierProperties notifierProperties;
|
private String notifierId;
|
|
|
@Override // com.qianwen.core.notify.notifier.Notifier
|
public NotifierProperties getNotifierProperties() {
|
return this.notifierProperties;
|
}
|
|
@Override // com.qianwen.core.notify.notifier.Notifier
|
public String getNotifierId() {
|
return this.notifierId;
|
}
|
|
public YunpianSmsNotifier(NotifierProperties profile, TemplateManager templateManager) {
|
super(templateManager);
|
Map<String, Object> config = profile.getConfiguration();
|
String appKey = (String) config.getOrDefault("apikey", "");
|
this.client = new YunpianClient(appKey).init();
|
this.notifierId = profile.getId();
|
this.notifierProperties = profile;
|
}
|
|
@Override // com.qianwen.core.notify.notifier.Notifier
|
public NotifyType getType() {
|
return DefaultNotifyType.sms;
|
}
|
|
@Override // com.qianwen.core.notify.notifier.Notifier
|
public Provider getProvider() {
|
return SmsProvider.yunpianSms;
|
}
|
|
public void send(YunpianSmsTemplate template, String traceId, Values context, List<String> notifiedParty) {
|
String templateText = PlaceholderUtil.getResolver("#", "#").resolveByMap(template.getText(), Kv.create().setAll(context.getAllValues()));
|
Map<String, String> param = this.client.newParam(2);
|
param.put("mobile", StringUtil.join(notifiedParty));
|
param.put("text", templateText);
|
Result<SmsBatchSend> result = this.client.sms().batch_send(param);
|
if (result.getCode().intValue() != 0) {
|
BizMessage bizMessage = new BizMessage();
|
bizMessage.setMessage(result.getMsg());
|
bizMessage.setDetail(result.getMsg());
|
throw new BizServiceException(bizMessage);
|
}
|
}
|
|
@Override // com.qianwen.core.notify.notifier.Notifier
|
public void close() {
|
this.client.close();
|
}
|
}
|