Browse Source

add 短信通知

18339543638 3 years ago
parent
commit
00328a4834

+ 9 - 0
nb-admin/src/test/java/com/nb/admin/BusClinicTest.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.nb.app.assistant.sms.SmsHelper;
 import com.nb.core.result.R;
 import com.nb.web.api.enums.ClinicManageEnum;
 import com.nb.web.service.bus.controller.BusDeviceHistoryController;
@@ -59,6 +60,14 @@ public class BusClinicTest {
     private LocalBusPatientService patientService;
     @Autowired
     private BusDeviceHistoryController historyController;
+
+    @Autowired
+    private SmsHelper smsHelper;
+
+    @Test
+    public void sendSms(){
+        smsHelper.sendVerifyCode("18339543638","456789");
+    }
     @Test
     public void lost(){
         R<BigDecimal> bigDecimalR = historyController.lossRate("1575009329758154754");

+ 5 - 0
nb-service/app-assistant/pom.xml

@@ -57,6 +57,11 @@
             <groupId>com.tuoren</groupId>
             <artifactId>delay-queue-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>dysmsapi20170525</artifactId>
+            <version>2.0.16</version>
+        </dependency>
     </dependencies>
 
 

+ 6 - 1
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/CaptchaController.java

@@ -4,6 +4,7 @@ import com.nb.app.assistant.controller.vo.CaptureVo;
 import com.nb.app.assistant.controller.vo.ResetCaptchaVo;
 import com.nb.app.assistant.controller.vo.ResetPswVo;
 import com.nb.app.assistant.enums.CaptchaEnum;
+import com.nb.app.assistant.sms.SmsHelper;
 import com.nb.app.assistant.utils.CaptchaUtil;
 import com.nb.app.assistant.utils.ResetPswUtil;
 import com.nb.core.result.R;
@@ -31,10 +32,14 @@ public class CaptchaController {
     private final CaptchaUtil captchaUtil;
 
     private final ResetPswUtil resetPswUtil;
+
+    private final SmsHelper smsHelper;
     @PostMapping("/create")
     @ApiOperation("获取短信验证码")
     public R<String> capture(@RequestBody @Validated CaptureVo vo){
-        return R.success(captchaUtil.getCode(vo.getType(),vo.getPhone()));
+        String code = captchaUtil.getCode(vo.getType(), vo.getPhone());
+        smsHelper.sendVerifyCode(vo.getPhone(),code);
+        return R.success();
     }
 
     @PostMapping("/reset/validate")

+ 43 - 19
nb-service/app-assistant/src/main/java/com/nb/app/assistant/sms/AliSmsClientConfig.java

@@ -1,19 +1,43 @@
-//package com.nb.app.assistant.sms;
-//
-//import org.springframework.context.annotation.Configuration;
-//
-///**
-// * @author lifang
-// * @version 1.0.0
-// * @ClassName AliSmsClientConfig.java
-// * @Description TODO
-// * @createTime 2022年10月12日 10:52:00
-// */
-//@Configuration
-//public class AliSmsClientConfig {
-//    public static IAcsClient createClient(String accessKeyId, String accessKeySecret) throws Exception {
-//        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<your-access-key-id>", "<your-access-key-secret>");
-//        IAcsClient client = new DefaultAcsClient(profile);
-//        return client;
-//    }
-//}
+package com.nb.app.assistant.sms;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import com.aliyun.dysmsapi20170525.*;
+import com.aliyun.teaopenapi.models.*;
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AliSmsClientConfig.java
+ * @Description TODO
+ * @createTime 2022年10月12日 10:52:00
+ */
+@Configuration
+public class AliSmsClientConfig {
+    @Bean
+    public Client creatClient() throws Exception {
+        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+                // 您的 AccessKey ID
+                .setAccessKeyId("LTAI4G7FA9ytMc76oNkJ45YJ")
+                // 您的 AccessKey Secret
+                .setAccessKeySecret("R7hOvMfiHb0PYroDqUDXAYgB9htQss");
+        config.endpoint = "dysmsapi.aliyuncs.com";
+        return new Client(config);
+    }
+    /**
+     * 使用AK&SK初始化账号Client
+     * @param accessKeyId
+     * @param accessKeySecret
+     * @return Client
+     * @throws Exception
+     */
+    public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
+        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+                // 您的 AccessKey ID
+                .setAccessKeyId(accessKeyId)
+                // 您的 AccessKey Secret
+                .setAccessKeySecret(accessKeySecret);
+        // 访问的域名
+        config.endpoint = "dysmsapi.aliyuncs.com";
+        return new com.aliyun.dysmsapi20170525.Client(config);
+    }
+}

+ 47 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/sms/SmsHelper.java

@@ -0,0 +1,47 @@
+package com.nb.app.assistant.sms;
+
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.json.JSONUtil;
+import com.aliyun.dysmsapi20170525.*;
+import com.aliyun.tea.TeaException;
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName SmsHelper.java
+ * @Description TODO
+ * @createTime 2022年10月13日 09:28:00
+ */
+@Configuration
+@AllArgsConstructor
+public class SmsHelper {
+
+    private final Client client;
+
+    public void sendVerifyCode(String phone,String code){
+        Map<String, String> map = MapUtil.of("code", code);
+        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                .setPhoneNumbers(phone)
+                .setSignName("驼人医疗")
+                .setTemplateCode("SMS_247815102")
+                .setTemplateParam(JSONUtil.toJsonStr(map));;
+        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            client.sendSmsWithOptions(sendSmsRequest, runtime);
+        } catch (TeaException error) {
+            // 如有需要,请打印 error
+            com.aliyun.teautil.Common.assertAsString(error.message);
+        } catch (Exception _error) {
+            TeaException error = new TeaException(_error.getMessage(), _error);
+            // 如有需要,请打印 error
+            com.aliyun.teautil.Common.assertAsString(error.message);
+        }
+    }
+
+}