houzhongjian
2024-10-16 7da8f196dee8e3c526c009a4bc7f5983ece6bb97
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.sms;
H 2
3 import com.iailab.module.system.mq.message.sms.SmsSendMessage;
4
5 import java.util.List;
6 import java.util.Map;
7
8 /**
9  * 短信发送 Service 接口
10  *
11  * @author iailab
12  */
13 public interface SmsSendService {
14
15     /**
16      * 发送单条短信给管理后台的用户
17      *
18      * 在 mobile 为空时,使用 userId 加载对应管理员的手机号
19      *
20      * @param mobile 手机号
21      * @param userId 用户编号
22      * @param templateCode 短信模板编号
23      * @param templateParams 短信模板参数
24      * @return 发送日志编号
25      */
26     Long sendSingleSmsToAdmin(String mobile, Long userId,
27                               String templateCode, Map<String, Object> templateParams);
28
29     /**
30      * 发送单条短信给用户 APP 的用户
31      *
32      * 在 mobile 为空时,使用 userId 加载对应会员的手机号
33      *
34      * @param mobile 手机号
35      * @param userId 用户编号
36      * @param templateCode 短信模板编号
37      * @param templateParams 短信模板参数
38      * @return 发送日志编号
39      */
40     Long sendSingleSmsToMember(String mobile, Long userId,
41                                String templateCode, Map<String, Object> templateParams);
42
43     /**
44      * 发送单条短信给用户
45      *
46      * @param mobile 手机号
47      * @param userId 用户编号
48      * @param userType 用户类型
49      * @param templateCode 短信模板编号
50      * @param templateParams 短信模板参数
51      * @return 发送日志编号
52      */
53     Long sendSingleSms(String mobile, Long userId, Integer userType,
54                        String templateCode, Map<String, Object> templateParams);
55
56     default void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,
57                               String templateCode, Map<String, Object> templateParams) {
58         throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!");
59     }
60
61     /**
62      * 执行真正的短信发送
63      * 注意,该方法仅仅提供给 MQ Consumer 使用
64      *
65      * @param message 短信
66      */
67     void doSendSms(SmsSendMessage message);
68
69     /**
70      * 接收短信的接收结果
71      *
72      * @param channelCode 渠道编码
73      * @param text 结果内容
74      * @throws Throwable 处理失败时,抛出异常
75      */
76     void receiveSmsStatus(String channelCode, String text) throws Throwable;
77
78 }