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