|  | @ -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);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |