package com.qianwen.core.notify.provider.wechat.mini;
|
|
import com.alibaba.fastjson.JSON;
|
import javax.annotation.Nonnull;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.core.notify.DefaultNotifyType;
|
import com.qianwen.core.notify.NotifyType;
|
import com.qianwen.core.notify.Provider;
|
import com.qianwen.core.notify.notifier.NotifierProperties;
|
import com.qianwen.core.notify.notifier.NotifierProvider;
|
import com.qianwen.core.notify.provider.wechat.WechatMiniProvider;
|
import com.qianwen.core.notify.template.TemplateManager;
|
import com.qianwen.core.notify.template.TemplateProperties;
|
import com.qianwen.core.notify.template.TemplateProvider;
|
import com.qianwen.core.tool.metadata.ConfigMetadata;
|
import com.qianwen.core.tool.metadata.ConfigMetadataConstants;
|
import com.qianwen.core.tool.metadata.DataType;
|
import com.qianwen.core.tool.metadata.DefaultConfigMetadata;
|
import com.qianwen.core.tool.metadata.SimplePropertyMetadata;
|
import com.qianwen.core.tool.metadata.config.ConfigKeyValue;
|
import com.qianwen.core.tool.metadata.types.ArrayType;
|
import com.qianwen.core.tool.metadata.types.ObjectType;
|
import com.qianwen.core.tool.metadata.types.StringType;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.stereotype.Component;
|
|
@ConditionalOnBean({TemplateManager.class})
|
@Component
|
/* loaded from: blade-starter-notify-9.3.0.0-SNAPSHOT.jar:org/springblade/core/notify/provider/wechat/mini/WechatMiniNotifierProvider.class */
|
public class WechatMiniNotifierProvider implements NotifierProvider, TemplateProvider {
|
private final TemplateManager templateManager;
|
public static final DefaultConfigMetadata templateConfig;
|
private static final Logger log = LoggerFactory.getLogger(WechatMiniNotifierProvider.class);
|
public static final DefaultConfigMetadata notifierConfig = new DefaultConfigMetadata("小程序配置", "").add("name", "name", "小程序名称", (DataType) new StringType().expand(new ConfigKeyValue[]{ConfigMetadataConstants.maxLength.value(255L)})).add("appid", "appid", "appid", (DataType) new StringType().expand(new ConfigKeyValue[]{ConfigMetadataConstants.maxLength.value(255L)})).add("secret", "secret", "secret", new StringType());
|
|
static {
|
SimplePropertyMetadata name = new SimplePropertyMetadata();
|
name.setId("name");
|
name.setName("微信模板关键字");
|
name.setValueType(new StringType());
|
SimplePropertyMetadata value = new SimplePropertyMetadata();
|
value.setId("value");
|
value.setName("业务字段名称");
|
value.setValueType(new StringType());
|
SimplePropertyMetadata description = new SimplePropertyMetadata();
|
description.setId("description");
|
description.setName("说明");
|
description.setValueType(new StringType());
|
templateConfig = new DefaultConfigMetadata("消息模版", "").add("templateId", "模板ID", "模板ID.", (DataType) ((StringType) new StringType().expand(new ConfigKeyValue[]{ConfigMetadataConstants.maxLength.value(255L)})).expand(new ConfigKeyValue[]{ConfigMetadataConstants.required.value(true)})).add("page", "模板跳转链接.", "点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转", new StringType()).add("miniprogramState", "跳转小程序类型", "developer为开发版;trial为体验版;formal为正式版;默认为正式版", (DataType) new StringType().expand(new ConfigKeyValue[]{ConfigMetadataConstants.maxLength.value(255L)})).add("properties", "小程序模板关键字映射", "匹配业务字段和小程序关键字映射关系", new ArrayType().elementType(new ObjectType().addPropertyMetadata(name).addPropertyMetadata(value).addPropertyMetadata(description)));
|
}
|
|
public WechatMiniNotifierProvider(TemplateManager templateManager) {
|
this.templateManager = templateManager;
|
}
|
|
@Override // com.qianwen.core.notify.notifier.NotifierProvider, com.qianwen.core.notify.template.TemplateProvider
|
public NotifyType getType() {
|
return DefaultNotifyType.weiXinMini;
|
}
|
|
@Override // com.qianwen.core.notify.notifier.NotifierProvider, com.qianwen.core.notify.template.TemplateProvider
|
public Provider getProvider() {
|
return WechatMiniProvider.miniSubMessage;
|
}
|
|
@Override // com.qianwen.core.notify.template.TemplateProvider
|
public WechatMiniMessageTemplate createTemplate(TemplateProperties properties) {
|
return (WechatMiniMessageTemplate) JSON.parseObject(properties.getTemplate(), WechatMiniMessageTemplate.class);
|
}
|
|
@Override // com.qianwen.core.notify.notifier.NotifierProvider
|
public WeixinMiniNotifier createNotifier(@Nonnull NotifierProperties properties) {
|
return new WeixinMiniNotifier(properties, this.templateManager);
|
}
|
|
@Override // com.qianwen.core.notify.notifier.NotifierProvider
|
public ConfigMetadata getNotifierConfigMetadata() {
|
return notifierConfig;
|
}
|
|
@Override // com.qianwen.core.notify.template.TemplateProvider
|
public ConfigMetadata getTemplateConfigMetadata() {
|
return templateConfig;
|
}
|
}
|