maku-module-message 为消息服务组件,目前提供短信发送服务,支持阿里云、腾讯云、七牛云、华为云等短信平台。如果新增多家短信平台,则会按多家短信平台轮询发送短信。
引入
在
maku-cloud/maku-cloud-system/pom.xml
里面引入组件依赖,如下所示:
<dependency>
<groupId>net.maku</groupId>
<artifactId>maku-module-message</artifactId>
<version>${revision}</version>
</dependency>
SQL语句
执行对应的SQL文件(如:MySQL),初始化表结构和菜单等,如下所示
maku-cloud/db/mysql/module/maku-module-message.sql
启动项目
完成上面步骤后,再重启maku-cloud-system服务,则可看到maku-module-message对应的功能,如下所示:
API接口
引入组件后,我们就可以在程序里面调用,下面是短信API接口,如下所示:
/**
* 短信服务API
*
* @author 阿沐 babamu@126.com
*/
@FeignClient(name = ServerNames.MESSAGE_SERVER_NAME)
public interface SmsApi {
/**
* 发送短信
*
* @param mobile 手机号
* @param params 参数
* @return 是否发送成功
*/
@PostMapping(value = "api/message/sms/send")
Result<Boolean> send(@RequestParam("mobile") String mobile, @RequestParam("params") Map<String, String> params);
/**
* 发送短信
*
* @param mobile 手机号
* @param key 参数KEY
* @param value 参数Value
* @return 是否发送成功
*/
@PostMapping(value = "api/message/sms/sendCode")
Result<Boolean> sendCode(@RequestParam("mobile") String mobile, @RequestParam("key") String key, @RequestParam("value") String value);
/**
* 效验短信验证码
*
* @param mobile 手机号
* @param code 验证码
* @return 是否效验成功
*/
@PostMapping(value = "api/message/sms/verifyCode")
Result<Boolean> verifyCode(@RequestParam("mobile") String mobile, @RequestParam("code") String code);
}
API接口调用
下面提供了调用Feign接口的DEMO,如下所示:
@Service
@AllArgsConstructor
public class SendCodeService {
private final SmsApi smsApi;
public void sendCode(String mobile) {
// 生成6位验证码
String code = RandomUtil.randomNumbers(6);
// 发送短信
smsApi.sendCode(mobile, "code", code);
}
}