From 6ae372817543fc46f6afa00de44daa557036978b Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Wed, 04 Jun 2025 21:41:48 +0800
Subject: [PATCH] 发送短信

---
 oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java |   58 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 42 insertions(+), 16 deletions(-)

diff --git a/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java b/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java
index a6ab18b..6fbc7b3 100644
--- a/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java
+++ b/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java
@@ -1,35 +1,61 @@
 package com.oying.utils;
 
+import com.oying.exception.BadRequestException;
 import lombok.Data;
-import org.springframework.beans.factory.annotation.Value;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpMethod;
 
 import java.util.HashMap;
+
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.util.ObjectUtils;
+
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author xin
  * @description
  * @date 2025/6/4 01:10
  */
+@Slf4j
 @Data
 public class SendMessageUtils {
-    @Value("${winner-look.url}")
-    private String url;
-    @Value("${winner-look.user-code}")
-    private String userCode;
-    @Value("${winner-look.user-pass}")
-    private String userPass;
 
-    public static void main(String[] args)  {
-        String url = "https://118.178.116.15:8443/winnerrxd/api/trigger/SendMsg";
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("userCode", "CQLYSXYJ");
-        paramMap.put("userPass", "lych1205!");
-        paramMap.put("DesNo", "15213186640");
-        paramMap.put("Msg", "短信内容【立研】");
-        paramMap.put("smsType", "101");
-        System.out.println(HttpRequest.exchangeString(HttpMethod.POST, url, paramMap));
+    public static void sendMsg(String phone, String message, WinnerLookProperties properties) {
+        Map<String, String> params = new HashMap<>();
+        params.put("userCode", properties.getUserCode());
+        params.put("userPass", properties.getUserPass());
+        params.put("DesNo", phone);
+        params.put("Msg", message + "【立研】");
+        params.put("smsType", "101");
+        String str = HttpRequest.exchangeMsg(HttpMethod.POST, properties.getUrlSendMsg(), convert(params));
+        if (ObjectUtils.isEmpty(extractWithRegex(str))) {
+            log.error("短信调用异常 {}", str);
+            throw new BadRequestException("短信调用异常");
+        }
+        int i = Integer.parseInt(str);
+        if (i < 0) {
+            throw new BadRequestException(WinnerLookEnum.find(i));
+        }
     }
 
+    public static String extractWithRegex(String xml) {
+        Pattern pattern = Pattern.compile(
+                "<string[^>]*>([^<]*)</string>"
+        );
+        Matcher matcher = pattern.matcher(xml);
+        return matcher.find() ? matcher.group(1) : null;
+    }
+
+    /**
+     * Map转MultiValueMap
+     */
+    public static <K, V> MultiValueMap<K, V> convert(Map<K, V> map) {
+        MultiValueMap<K, V> multiValueMap = new LinkedMultiValueMap<>();
+        map.forEach(multiValueMap::add);
+        return multiValueMap;
+    }
 }

--
Gitblit v1.9.3