|
@ -0,0 +1,119 @@
|
|
|
package com.yihu.jw.care.service.device;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.care.config.NetworkCardConfig;
|
|
|
import com.yihu.jw.care.config.YsConfig;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.jw.util.http.HttpClientUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.http.NameValuePair;
|
|
|
import org.apache.http.message.BasicNameValuePair;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpMethod;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.LinkedMultiValueMap;
|
|
|
import org.springframework.util.MultiValueMap;
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* Created by Bing on 2021/8/6.
|
|
|
*/
|
|
|
@Service
|
|
|
public class NetworkCardService {
|
|
|
|
|
|
@Autowired
|
|
|
private StringRedisTemplate redisTemplate;
|
|
|
@Autowired
|
|
|
private HttpClientUtil httpClientUtil;
|
|
|
|
|
|
/**
|
|
|
* 获取电信物联网卡assesToken
|
|
|
*/
|
|
|
public String getAccessToken() throws Exception {
|
|
|
if(redisTemplate.hasKey(NetworkCardConfig.redisKey)){
|
|
|
return redisTemplate.opsForValue().get(NetworkCardConfig.redisKey);
|
|
|
}
|
|
|
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("appid", NetworkCardConfig.appid));
|
|
|
params.add(new BasicNameValuePair("password",NetworkCardConfig.password));
|
|
|
params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
|
|
|
|
|
|
String response = httpClientUtil.get(NetworkCardConfig.getToken,params,"UTF-8");
|
|
|
JSONObject responseBody = JSONObject.parseObject(response);
|
|
|
String assToken = null;
|
|
|
if (responseBody.getInteger("status")==0){
|
|
|
JSONObject tmp = responseBody.getJSONArray("result").getJSONObject(0);
|
|
|
assToken = tmp.getString("token");
|
|
|
Long expireTime =Long.parseLong(tmp.getString("ttl"));//token有效期
|
|
|
redisTemplate.opsForValue().set(NetworkCardConfig.redisKey,assToken,expireTime, TimeUnit.SECONDS);
|
|
|
}else {
|
|
|
throw new Exception(response);
|
|
|
}
|
|
|
return assToken;
|
|
|
}
|
|
|
|
|
|
public JSONArray getPatientContacts(String msisdn, String iccid, String imsi, String groupId) throws Exception {
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
|
|
|
boolean flag = false;
|
|
|
if (!flag&&StringUtils.isNotBlank(msisdn)){
|
|
|
params.add(new BasicNameValuePair("msisdn", msisdn));
|
|
|
flag=true;
|
|
|
}
|
|
|
if (!flag&&StringUtils.isNotBlank(iccid)){
|
|
|
params.add(new BasicNameValuePair("iccid", iccid));
|
|
|
}
|
|
|
if (!flag&&StringUtils.isNotBlank(imsi)){
|
|
|
params.add(new BasicNameValuePair("imsi", imsi));
|
|
|
}
|
|
|
params.add(new BasicNameValuePair("groupId", groupId));
|
|
|
params.add(new BasicNameValuePair("token", getAccessToken()));
|
|
|
|
|
|
String response = httpClientUtil.get(NetworkCardConfig.getPatientContacts,params,"UTF-8");
|
|
|
JSONObject responseBody = JSONObject.parseObject(response);
|
|
|
if (responseBody.getInteger("status")==0){
|
|
|
JSONArray tmp = responseBody.getJSONArray("result");
|
|
|
return tmp;
|
|
|
}else {
|
|
|
throw new Exception(response);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public String setPatientContacts(String msisdn, String iccid, String imsi,String operType,String whiteNumber,String groupId) throws Exception {
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("transid", NetworkCardConfig.getTransid()));
|
|
|
boolean flag = false;
|
|
|
if (!flag&&StringUtils.isNotBlank(msisdn)){
|
|
|
params.add(new BasicNameValuePair("msisdn", msisdn));
|
|
|
flag=true;
|
|
|
}
|
|
|
if (!flag&&StringUtils.isNotBlank(iccid)){
|
|
|
params.add(new BasicNameValuePair("iccid", iccid));
|
|
|
}
|
|
|
if (!flag&&StringUtils.isNotBlank(imsi)){
|
|
|
params.add(new BasicNameValuePair("imsi", imsi));
|
|
|
}
|
|
|
params.add(new BasicNameValuePair("groupId", groupId));
|
|
|
params.add(new BasicNameValuePair("token", getAccessToken()));
|
|
|
params.add(new BasicNameValuePair("operType", operType));
|
|
|
params.add(new BasicNameValuePair("whiteNumber", whiteNumber));
|
|
|
|
|
|
String response = httpClientUtil.get(NetworkCardConfig.setPatientContacts,params,"UTF-8");
|
|
|
JSONObject responseBody = JSONObject.parseObject(response);
|
|
|
if (responseBody.getInteger("status")==0){
|
|
|
JSONObject tmp = responseBody.getJSONArray("result").getJSONObject(0);
|
|
|
return tmp.getString("orderNum");
|
|
|
}else {
|
|
|
throw new Exception(response);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|