diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/SmsAdapter.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/SmsAdapter.java index 6d8c9ce..8b2e75e 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/SmsAdapter.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/SmsAdapter.java @@ -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 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); } } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/dahan/DahanApi.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/dahan/DahanApi.java index ea2f86b..ab85155 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/dahan/DahanApi.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/dahan/DahanApi.java @@ -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 iccidList, String content) { String url = "/api/v1/card/operate/sms/send"; try { + String iccids = iccidList.stream().collect(Collectors.joining(",")); Map headMap = this.signHead(url); Map 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 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 headMap = this.signHead(url); String json = HttpClient.post(baseUrl + url, null, headMap); - log.info("DahanApi查询短信记录完成:" + json); + log.info("查询短信记录完成:" + json); HashMap 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()); } } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/rabchaser/RabchaserApi.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/rabchaser/RabchaserApi.java new file mode 100644 index 0000000..930d25f --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/sms/rabchaser/RabchaserApi.java @@ -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 signHead(String url) throws Exception { + String nonceStr = "ibuaiVcKdpRxkhJA"; + Map 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 + "×tamp=" + timestamp + + "&key=" + appKey; + String md5 = DigestUtils.md5(sign).toUpperCase(); + map.put("sign", md5); + return map; + } + + public void sendSms(List iccidList, String content) { + String url = "/simCards/sendSms"; + try { + Map headMap = this.signHead(url); + Map 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()); + } + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SmsServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SmsServiceImpl.java index ccf6bc7..752bf44 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SmsServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/SmsServiceImpl.java @@ -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 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("该装置的网络运营商类型不正确"); }