Browse Source

修改core-sms,增加使用机构鉴权调用发送接口的支持,默认调用云端solar服务

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 6 months ago
parent
commit
8c8dedcba8

+ 12 - 0
core-sms/src/main/java/com/qmth/boot/core/sms/api/SmsApiClient.java

@@ -1,12 +1,14 @@
 package com.qmth.boot.core.sms.api;
 
 import com.qmth.boot.core.retrofit.annotatioin.RetrofitClient;
+import com.qmth.boot.core.retrofit.utils.SignatureInfo;
 import com.qmth.boot.core.sms.config.SmsApiConfiguration;
 import com.qmth.boot.core.sms.model.SmsConstants;
 import com.qmth.boot.core.sms.model.SmsSendRequest;
 import com.qmth.boot.core.sms.model.SmsSendResponse;
 import retrofit2.http.Body;
 import retrofit2.http.POST;
+import retrofit2.http.Tag;
 import retrofit2.http.Url;
 
 @RetrofitClient(configuration = SmsApiConfiguration.class)
@@ -20,6 +22,16 @@ public interface SmsApiClient {
     @POST(SmsConstants.API_PATH_SEND_SMS)
     SmsSendResponse sendSms(@Body SmsSendRequest request);
 
+    /**
+     * 使用机构鉴权发送普通短信
+     *
+     * @param signature 使用机构AK构造Secret类型签名
+     * @param request   请求体
+     * @return
+     */
+    @POST(SmsConstants.API_PATH_SEND_SMS)
+    SmsSendResponse sendSms(@Tag SignatureInfo signature, @Body SmsSendRequest request);
+
     /**
      * 往指定接口地址发送普通短信
      * url必须是完整路径,带http或https前缀

+ 12 - 0
core-sms/src/main/java/com/qmth/boot/core/sms/service/SmsService.java

@@ -1,5 +1,6 @@
 package com.qmth.boot.core.sms.service;
 
+import com.qmth.boot.core.retrofit.utils.SignatureInfo;
 import com.qmth.boot.core.sms.api.SmsApiClient;
 import com.qmth.boot.core.sms.model.SmsConstants;
 import com.qmth.boot.core.sms.model.SmsSendRequest;
@@ -8,6 +9,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 @Service
 public class SmsService {
@@ -28,6 +30,16 @@ public class SmsService {
         return smsApiClient.sendSms(request);
     }
 
+    /**
+     * 使用机构鉴权发送普通短信
+     *
+     * @param request
+     * @return
+     */
+    public SmsSendResponse sendSms(@NotNull SignatureInfo signature, @Validated SmsSendRequest request) {
+        return smsApiClient.sendSms(signature, request);
+    }
+
     /**
      * 往指定服务地址发送普通短信
      *