maku-module-message 为消息服务组件,目前提供短信发送服务,支持阿里云、腾讯云、七牛云、华为云等短信平台。如果新增多家短信平台,则会按多家短信平台轮询发送短信。

引入

maku-boot/maku-server/pom.xml里面引入组件依赖,如下所示:

<dependency>
    <groupId>net.maku</groupId>
    <artifactId>maku-module-message</artifactId>
    <version>${revision}</version>
</dependency>

IDEA开发工具生效

完成上面的引入后,idea开发工具,默认是不会加载这个依赖的,我们就会错误的感觉引入依赖失败。要让idea开发工具生效也很简单,只需要reload一下,就可以了,如下所示:


完成上面这2步后,依赖就会生效。

SQL语句

执行对应的SQL文件(如:MySQL),初始化表结构和菜单等,如下所示

maku-boot/db/mysql/module/maku-module-message.sql

启动项目

完成上面2步骤后,再启动项目,则可看到maku-boot-message对应的功能,如下所示:

API接口

引入组件后,我们就可以在程序里面调用,下面是短信API接口,如下所示:

/**
 * 短信服务API
 *
 * @author 阿沐 babamu@126.com
 */
public interface SmsApi {

    /**
     * 发送短信
     *
     * @param mobile 手机号
     * @param params 参数
     * @return 是否发送成功
     */
    boolean send(String mobile, Map<String, String> params);

    /**
     * 发送短信
     *
     * @param mobile 手机号
     * @param key    参数KEY
     * @param value  参数Value
     * @return 是否发送成功
     */
    boolean sendCode(String mobile, String key, String value);

    /**
     * 效验短信验证码
     *
     * @param mobile 手机号
     * @param code   验证码
     * @return 是否效验成功
     */
    boolean verifyCode(String mobile, String code);
}

API接口调用

下面提供了调用API接口的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);
    }
}