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