Procházet zdrojové kódy

手机号报到功能修改

baiyun před 1 rokem
rodič
revize
7e1d7d1c52

+ 25 - 21
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/SmsUtils.java

@@ -2,8 +2,11 @@ package org.dromara.common.core.utils;
 
 import cn.hutool.http.HttpRequest;
 import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Hz
@@ -11,27 +14,24 @@ import org.springframework.beans.factory.annotation.Value;
  * @description 短信平台工具类
  */
 @Slf4j
+@Data
 public class SmsUtils {
 
     public static final String PHONE_CODE_PREFIX = "PhoneCode_";
 
-    @Value("sms.swdx.url")
-    private static String url = "http://172.16.137.85:9023";
-    @Value("sms.swdx.user")
-    private static String user = "jw";
-    @Value("sms.swdx.pwd")
-    private static String pwd = "jw@Swdx20220414";
-
-    public static Boolean send(String phones, String content) {
+    public static Boolean send(String phones, String content, String url, String user, String pwd) {
         boolean flag = false;
-        String sendUrl = url + "/sms/api/v1/send";
-        String token = getToken();
+        String sendUrl = String.format("%s/sms/api/v1/send", url);
+        String token = getToken(url, user, pwd);
+
+        if (StringUtils.isNotBlank(token)) {
+            JSONObject body = new JSONObject();
+            body.put("mobile", phones);
+            body.put("message", content);
 
-        if(StringUtils.isNotBlank(token)){
-            String body = "{\"mobile\":\"" + phones + "\",\"message\":\"" + content + "\"}";
             String res = HttpRequest.post(sendUrl)
                 .header("token", token)
-                .body(body)
+                .body(body.toJSONString())
                 .execute().body();
             JSONObject resJson = JSONObject.parseObject(res);
             flag = resJson.getBoolean("success");
@@ -40,19 +40,23 @@ public class SmsUtils {
     }
 
     /** 获取短信平台token*/
-    private static String getToken() {
+    private static String getToken(String url, String user, String pwd) {
         String token = "";
         try {
-            String loginUrl = url + "/sms/api/v1/login";
+            String loginUrl = String.format("%s/sms/api/v1/login", url);
+            JSONObject body = new JSONObject();
+            body.put("name", user);
+            body.put("pwd", pwd);
+
             String res = HttpRequest.post(loginUrl)
-                .body("{\"name\":\"" + user + "\",\"pwd\":\"" + pwd + "\"}")
+                .body(body.toJSONString())
                 .execute().body();
-            JSONObject body = JSONObject.parseObject(res);
-            if(body.getBoolean("success")){
-                token = body.getString("data");
+            JSONObject resJson = JSONObject.parseObject(res);
+            if (resJson.getBoolean("success")) {
+                token = resJson.getString("data");
             }
-        }catch (Exception e) {
-            log.error("获取token异常!", e);
+        } catch (Exception e) {
+            log.error("获取token异常! URL: {}, User: {}, Pwd: {}", url, user, pwd, e);
         }
 
         return token;

+ 9 - 1
ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/controller/SysSmsController.java

@@ -15,6 +15,7 @@ import org.dromara.common.web.core.BaseController;
 import org.dromara.sms4j.api.SmsBlend;
 import org.dromara.sms4j.api.entity.SmsResponse;
 import org.dromara.sms4j.core.factory.SmsFactory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -35,6 +36,13 @@ import java.util.LinkedHashMap;
 @RequestMapping("/sms")
 public class SysSmsController extends BaseController {
 
+
+    @Value("${sms.swdx.url}")
+    private String url;
+    @Value("${sms.swdx.user}")
+    private  String user;
+    @Value("${sms.swdx.pwd}")
+    private  String pwd;
     /**
      * 短信验证码
      *
@@ -67,7 +75,7 @@ public class SysSmsController extends BaseController {
         String code = RandomUtil.randomNumbers(4);
         RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
         String content = "您的验证码为:" + code + ",有效性为" + Constants.CAPTCHA_EXPIRATION + "分钟,请尽快填写。";
-        boolean flag = SmsUtils.send(phone, content);
+        boolean flag = SmsUtils.send(phone, content, url, user, pwd);
         if (!flag) {
             return R.fail("验证码短信发送异常,请稍后重试!");
         }

+ 9 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSmsController.java

@@ -7,6 +7,7 @@ import org.dromara.common.core.domain.R;
 import org.dromara.common.core.utils.SmsUtils;
 import org.dromara.common.ratelimiter.annotation.RateLimiter;
 import org.dromara.common.redis.utils.RedisUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +26,13 @@ import java.time.Duration;
 @RequestMapping("/sms")
 public class SysSmsController {
 
+    @Value("${sms.swdx.url}")
+    private String url;
+    @Value("${sms.swdx.user}")
+    private  String user;
+    @Value("${sms.swdx.pwd}")
+    private  String pwd;
+
     /** 调用省委党校短信平台发送短信验证码*/
     @RateLimiter(key = "#phone", time = 60, count = 1)
     @GetMapping("/sendPhoneCode")
@@ -33,7 +41,7 @@ public class SysSmsController {
         String code = RandomUtil.randomNumbers(4);
         RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
         String content = "您的验证码为:" + code + ",有效性为" + Constants.CAPTCHA_EXPIRATION + "分钟,请尽快填写。";
-        boolean flag = SmsUtils.send(phone, content);
+        boolean flag = SmsUtils.send(phone, content, url, user, pwd);
         if (!flag) {
             return R.fail("验证码短信发送异常,请稍后重试!");
         }