feat: 增加公田移动Rabchaser短信发送功能

dev
huangfeng 11 months ago
parent 465e6389d3
commit 0eb041966b

@ -2,10 +2,12 @@ package com.shxy.xymanager_common.sms;
import com.shxy.xymanager_common.constant.Constants;
import com.shxy.xymanager_common.sms.dahan.DahanApi;
import com.shxy.xymanager_common.sms.rabchaser.RabchaserApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
@Slf4j
@ -13,12 +15,14 @@ public class SmsAdapter {
@Resource
DahanApi dahanApi;
@Resource
RabchaserApi rabchaserApi;
public void sendSms(Integer type, String iccid, String content) {
public void sendSms(Integer type, List<String> iccidList, String content) {
if (Constants.NetType_Dahan.equals(type)) {
dahanApi.sendSms(iccid, content);
dahanApi.sendSms(iccidList, content);
} else if (Constants.NetType_Rabchaser.equals(type)) {
rabchaserApi.sendSms(iccidList, content);
}
}
}

@ -8,7 +8,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -29,16 +31,17 @@ public class DahanApi {
return map;
}
public void sendSms(String iccids, String content) {
public void sendSms(List<String> iccidList, String content) {
String url = "/api/v1/card/operate/sms/send";
try {
String iccids = iccidList.stream().collect(Collectors.joining(","));
Map<String, String> headMap = this.signHead(url);
Map<String, String> dataMap = new HashMap<>();
dataMap.put("numbers", iccids);
dataMap.put("content", content);
String json = HttpClient.post(baseUrl + url, dataMap, headMap);
log.info("DahanApi发送短信完成:" + json);
log.info("发送短信完成:" + json);
HashMap<String, Object> result = JSONUtil.json2Object(json, HashMap.class);
if (!"0".equals(result.get("code"))) {
String error = String.valueOf(result.get("message"));
@ -47,8 +50,8 @@ public class DahanApi {
} catch (ApiException e) {
throw e;
} catch (Exception e) {
log.error("DahanApi发送短信异常.", e);
throw new ApiException("DahanApi发送短信异常," + e.getMessage());
log.error("发送短信异常.", e);
throw new ApiException("发送短信异常," + e.getMessage());
}
}
@ -58,7 +61,7 @@ public class DahanApi {
Map<String, String> headMap = this.signHead(url);
String json = HttpClient.post(baseUrl + url, null, headMap);
log.info("DahanApi查询短信记录完成:" + json);
log.info("查询短信记录完成:" + json);
HashMap<String, Object> result = JSONUtil.json2Object(json, HashMap.class);
if (!"0".equals(result.get("code"))) {
String error = String.valueOf(result.get("message"));
@ -69,8 +72,8 @@ public class DahanApi {
} catch (ApiException e) {
throw e;
} catch (Exception e) {
log.error("DahanApi查询短信记录异常.", e);
throw new ApiException("DahanApi查询短信记录异常," + e.getMessage());
log.error("查询短信记录异常.", e);
throw new ApiException("查询短信记录异常," + e.getMessage());
}
}
}

@ -0,0 +1,53 @@
package com.shxy.xymanager_common.sms.rabchaser;
import com.shxy.xymanager_common.exception.ApiException;
import com.shxy.xymanager_common.util.DigestUtils;
import com.shxy.xymanager_common.util.HttpClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class RabchaserApi {
private String baseUrl = "http://www.rabchaser.com/iotapi/v1";
private String appId = "h74tbgvq7YgstDF";
private String appKey = "Jx1!9Np*fD95xl5n1S1!oo&15eWl9W";
private Map<String, String> signHead(String url) throws Exception {
String nonceStr = "ibuaiVcKdpRxkhJA";
Map<String, String> map = new HashMap<>();
String timestamp = String.valueOf(System.currentTimeMillis());
map.put("appId", appId);
map.put("timestamp", timestamp);
map.put("nonceStr", nonceStr);
String sign = "appId=" + appId + "&nonceStr=" + nonceStr + "&timestamp=" + timestamp
+ "&key=" + appKey;
String md5 = DigestUtils.md5(sign).toUpperCase();
map.put("sign", md5);
return map;
}
public void sendSms(List<String> iccidList, String content) {
String url = "/simCards/sendSms";
try {
Map<String, String> headMap = this.signHead(url);
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("iccid", iccidList);
dataMap.put("message", content);
String json = HttpClient.post(baseUrl + url, dataMap, headMap);
log.info("发送短信完成:" + json);
} catch (ApiException e) {
throw e;
} catch (Exception e) {
log.error("发送短信异常.", e);
throw new ApiException("发送短信异常," + e.getMessage());
}
}
}

@ -12,6 +12,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
@ -33,9 +35,11 @@ public class SmsServiceImpl implements SmsService {
if (StringUtils.isBlank(term.getIccid())) {
throw new ApiException("该装置缺少iccid");
}
List<String> iccidList = new ArrayList<>();
iccidList.add(term.getIccid());
if (Constants.NetType_Dahan.equals(term.getNetType()) ||
Constants.NetType_Rabchaser.equals(term.getNetType())) {
smsAdapter.sendSms(term.getNetType(), term.getIccid(), model.getContent());
smsAdapter.sendSms(term.getNetType(), iccidList, model.getContent());
} else {
throw new ApiException("该装置的网络运营商类型不正确");
}

Loading…
Cancel
Save