package com.ruoyi.business.appuser.config;
|
|
import lombok.AllArgsConstructor;
|
import me.chanjar.weixin.mp.api.WxMpMessageRouter;
|
import me.chanjar.weixin.mp.api.WxMpService;
|
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
|
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* wechat mp configuration
|
*
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
*/
|
@AllArgsConstructor
|
@Configuration
|
@EnableConfigurationProperties(WxMpProperties.class)
|
public class WxMpConfiguration {
|
|
private final WxMpProperties properties;
|
|
@Bean
|
public WxMpService wxMpService() {
|
// 代码里 getConfigs()处报错的同学,请注意仔细阅读项目说明,你的IDE需要引入lombok插件!!!!
|
final List<WxMpProperties.MpConfig> configs = this.properties.getConfigs();
|
if (configs == null) {
|
throw new RuntimeException("大哥,拜托先看下项目首页的说明(readme文件),添加下相关配置,注意别配错了!");
|
}
|
|
WxMpService service = new WxMpServiceImpl();
|
service.setMultiConfigStorages(configs
|
.stream().map(a -> {
|
WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();
|
configStorage.setAppId(a.getAppId());
|
configStorage.setSecret(a.getSecret());
|
configStorage.setToken(a.getToken());
|
configStorage.setAesKey(a.getAesKey());
|
return configStorage;
|
}).collect(Collectors.toMap(WxMpDefaultConfigImpl::getAppId, a -> a, (o, n) -> o)));
|
return service;
|
}
|
|
@Bean
|
public WxMpMessageRouter messageRouter(WxMpService wxMpService) {
|
final WxMpMessageRouter newRouter = new WxMpMessageRouter(wxMpService);
|
return newRouter;
|
}
|
|
}
|