|  | @ -5,6 +5,7 @@ import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.wx.WxWechatDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.ApiException;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.code.ExceptionCode;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.TnyyEntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.WechatRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.wechat.dao.JsapiTicketDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.wechat.dao.WechatDao;
 | 
	
	
		
			
				|  | @ -38,6 +39,8 @@ public class WxAccessTokenService extends BaseJpaService<WxAccessTokenDO, WxAcce
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JsapiTicketDao jsapiTicketDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private TnyyEntranceService tnyyEntranceService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public WxWechatDO getWxInfo(String wxId){
 | 
	
	
		
			
				|  | @ -183,6 +186,9 @@ public class WxAccessTokenService extends BaseJpaService<WxAccessTokenDO, WxAcce
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (wechatId.equalsIgnoreCase("sd_tnzyy_wx")){
 | 
	
		
			
				|  |  |                 return  getAccessTokenById(wechatId);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String token_url = "https://api.weixin.qq.com/cgi-bin/token";
 | 
	
		
			
				|  |  |             String appId="";
 | 
	
		
			
				|  |  |             String appSecret="";
 | 
	
	
		
			
				|  | @ -222,6 +228,51 @@ public class WxAccessTokenService extends BaseJpaService<WxAccessTokenDO, WxAcce
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 泰安获取token
 | 
	
		
			
				|  |  |      * @param wechatId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public WxAccessTokenDO getAccessTokenById(String wechatId) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //根据wechatCode查找出appid和appSecret
 | 
	
		
			
				|  |  |             WxWechatDO wxWechat = wechatDao.findById(wechatId);
 | 
	
		
			
				|  |  |             List<WxAccessTokenDO> wxAccessTokens =  wxAccessTokenDao.getWxAccessTokenById(wechatId);
 | 
	
		
			
				|  |  |             if(wxWechat==null){
 | 
	
		
			
				|  |  |                 throw new ApiException(WechatRequestMapping.WxConfig.message_fail_wxWechat_is_no_exist, ExceptionCode.common_error_params_code);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(wxAccessTokens!=null&&wxAccessTokens.size()>0){
 | 
	
		
			
				|  |  |                 for (WxAccessTokenDO accessToken : wxAccessTokens) {
 | 
	
		
			
				|  |  |                     if ((System.currentTimeMillis() - accessToken.getAddTimestamp()) < (accessToken.getExpiresIn() * 500)) {
 | 
	
		
			
				|  |  |                         return accessToken;
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         wxAccessTokenDao.delete(accessToken);
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             com.alibaba.fastjson.JSONObject json = tnyyEntranceService.getAccessToken();
 | 
	
		
			
				|  |  |             if (json.containsKey("AccessToken")) {
 | 
	
		
			
				|  |  |                 String token = json.get("AccessToken").toString();
 | 
	
		
			
				|  |  |                 WxAccessTokenDO newaccessToken = new WxAccessTokenDO();
 | 
	
		
			
				|  |  |                 newaccessToken.setAccessToken(token);
 | 
	
		
			
				|  |  |                 newaccessToken.setExpiresIn(7200);
 | 
	
		
			
				|  |  |                 newaccessToken.setAddTimestamp(System.currentTimeMillis());
 | 
	
		
			
				|  |  |                 newaccessToken.setCzrq(new Date());
 | 
	
		
			
				|  |  |                 newaccessToken.setCode(UUID.randomUUID().toString().replace("-",""));
 | 
	
		
			
				|  |  |                 newaccessToken.setWechatId(wechatId);
 | 
	
		
			
				|  |  |                 wxAccessTokenDao.save(newaccessToken);
 | 
	
		
			
				|  |  |                 return newaccessToken;
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 return null;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取凭证
 | 
	
		
			
				|  |  |      * @param accId 微信原始id
 |