package com.iailab.module.system.service.sms; import com.iailab.module.system.mq.message.sms.SmsSendMessage; import java.util.List; import java.util.Map; /** * çŸä¿¡å‘é€ Service æŽ¥å£ * * @author iailab */ public interface SmsSendService { /** * å‘é€å•æ¡çŸä¿¡ç»™ç®¡ç†åŽå°çš„用户 * * 在 mobile 为空时,使用 userId åŠ è½½å¯¹åº”ç®¡ç†å‘˜çš„æ‰‹æœºå· * * @param mobile æ‰‹æœºå· * @param userId ç”¨æˆ·ç¼–å· * @param templateCode çŸä¿¡æ¨¡æ¿ç¼–å· * @param templateParams çŸä¿¡æ¨¡æ¿å‚æ•° * @return å‘逿—¥å¿—ç¼–å· */ Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map<String, Object> templateParams); /** * å‘é€å•æ¡çŸä¿¡ç»™ç”¨æˆ· APP 的用户 * * 在 mobile 为空时,使用 userId åŠ è½½å¯¹åº”ä¼šå‘˜çš„æ‰‹æœºå· * * @param mobile æ‰‹æœºå· * @param userId ç”¨æˆ·ç¼–å· * @param templateCode çŸä¿¡æ¨¡æ¿ç¼–å· * @param templateParams çŸä¿¡æ¨¡æ¿å‚æ•° * @return å‘逿—¥å¿—ç¼–å· */ Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map<String, Object> templateParams); /** * å‘é€å•æ¡çŸä¿¡ç»™ç”¨æˆ· * * @param mobile æ‰‹æœºå· * @param userId ç”¨æˆ·ç¼–å· * @param userType 用户类型 * @param templateCode çŸä¿¡æ¨¡æ¿ç¼–å· * @param templateParams çŸä¿¡æ¨¡æ¿å‚æ•° * @return å‘逿—¥å¿—ç¼–å· */ Long sendSingleSms(String mobile, Long userId, Integer userType, String templateCode, Map<String, Object> templateParams); default void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType, String templateCode, Map<String, Object> templateParams) { throw new UnsupportedOperationException("æš‚æ—¶ä¸æ”¯æŒè¯¥æ“作,感兴趣å¯ä»¥å®žçŽ°è¯¥åŠŸèƒ½å“Ÿï¼"); } /** * 执行真æ£çš„çŸä¿¡å‘é€ * 注æ„,该方法仅仅æä¾›ç»™ MQ Consumer 使用 * * @param message çŸä¿¡ */ void doSendSms(SmsSendMessage message); /** * 接收çŸä¿¡çš„æŽ¥æ”¶ç»“æžœ * * @param channelCode æ¸ é“ç¼–ç * @param text 结果内容 * @throws Throwable 处ç†å¤±è´¥æ—¶ï¼ŒæŠ›å‡ºå¼‚常 */ void receiveSmsStatus(String channelCode, String text) throws Throwable; }