2026-06-25 a26b31cc9f3ee9b21b1a754e80fa7359e8a7a8f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package cn.iocoder.yudao.module.mp.framework.mp.core;
 
import cn.hutool.core.lang.Assert;
import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO;
import me.chanjar.weixin.mp.api.WxMpMessageRouter;
import me.chanjar.weixin.mp.api.WxMpService;
 
import java.util.List;
 
/**
 * {@link WxMpService} 工厂接口
 *
 * @author 芋道源码
 */
public interface MpServiceFactory {
 
    /**
     * 基于微信公众号的账号,初始化对应的 WxMpService 与 WxMpMessageRouter 实例
     *
     * @param list 公众号的账号列表
     */
    void init(List<MpAccountDO> list);
 
    /**
     * 获得 id 对应的 WxMpService 实例
     *
     * @param id 微信公众号的编号
     * @return WxMpService 实例
     */
    WxMpService getMpService(Long id);
 
    default WxMpService getRequiredMpService(Long id) {
        WxMpService wxMpService = getMpService(id);
        Assert.notNull(wxMpService, "找到对应 id({}) 的 WxMpService,请核实!", id);
        return wxMpService;
    }
 
    /**
     * 获得 appId 对应的 WxMpService 实例
     *
     * @param appId 微信公众号 appId
     * @return WxMpService 实例
     */
    WxMpService getMpService(String appId);
 
    default WxMpService getRequiredMpService(String appId) {
        WxMpService wxMpService = getMpService(appId);
        Assert.notNull(wxMpService, "找到对应 appId({}) 的 WxMpService,请核实!", appId);
        return wxMpService;
    }
 
    /**
     * 获得 appId 对应的 WxMpMessageRouter 实例
     *
     * @param appId 微信公众号 appId
     * @return WxMpMessageRouter 实例
     */
    WxMpMessageRouter getMpMessageRouter(String appId);
 
    default WxMpMessageRouter getRequiredMpMessageRouter(String appId) {
        WxMpMessageRouter wxMpMessageRouter = getMpMessageRouter(appId);
        Assert.notNull(wxMpMessageRouter, "找到对应 appId({}) 的 WxMpMessageRouter,请核实!", appId);
        return wxMpMessageRouter;
    }
 
}