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<String, String> map2 = new HashMap<String, String>();
|
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<String, String> 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<String, Object> map3 = objectMapper2.readValue(result, new TypeReference<Map<String, Object>>() {
|
});
|
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<Map<String, Object>> list = (List) ob;
|
Map<String, Object> map = list.get(0);
|
Integer result1 = (Integer) map.get("result");
|
if (result1 != null && result1 == 0) return true;
|
}
|
|
}
|
return false;
|
}
|
|
}
|