package com.example.smssend.service.impl; import com.example.smssend.domain.SendMagParam; import com.example.smssend.service.SendService; import com.example.smssend.utils.HttpUtils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 发送服务工具类 */ @Service public class SendServiceImpl implements SendService { @Value("${xhsmsPath}") private String xhsmsPath; // 帐号 @Value("${xhsmsAccount}") private String xhsmsAccount; // 接口密码 @Value("${xhsmsPwd}") private String xhsmsPwd; // 虚拟接入码 @Value("${xhsmsjrm}") private String xhsmsjrm; @Override public Boolean sendMsg(SendMagParam sendMagParam) throws JsonProcessingException, UnsupportedEncodingException { //短信 Map map2 = new HashMap(); map2.put("action", "send"); map2.put("account", xhsmsAccount); map2.put("password", xhsmsPwd); map2.put("mobile", sendMagParam.getPhone()); map2.put("content", sendMagParam.getContent()); map2.put("extno", xhsmsjrm); map2.put("rt", "json"); StringBuilder encodedParams = new StringBuilder(); for (Map.Entry entry : map2.entrySet()) { if (encodedParams.length() > 0) { encodedParams.append("&"); } // 对键和值进行URL编码 String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8"); String encodedValue = URLEncoder.encode(entry.getValue(), "UTF-8"); encodedParams.append(encodedKey).append("=").append(encodedValue); } String result = HttpUtils.sendPost(xhsmsPath, encodedParams.toString()); ObjectMapper objectMapper2 = new ObjectMapper(); Map map3 = objectMapper2.readValue(result, new TypeReference>() { }); if (!ObjectUtils.isEmpty(map3)) { // String status = map3.get("status").toString(); // if (status.equals("0")) { // return true; // } Object ob = map3.get("list"); if (!ObjectUtils.isEmpty(ob)) { List> list = (List) ob; Map map = list.get(0); Integer result1 = (Integer) map.get("result"); if (result1 != null && result1 == 0) return true; } } return false; } }