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; } }