|  | @ -0,0 +1,162 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.security.service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.ca.OauthCaConfigDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.security.dao.OauthCaConfigDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.security.dao.doctor.BaseDoctorDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.security.dao.doctor.BaseDoctorHospitalDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.http.HttpClientUtil;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * 心脏中心医院
 | 
	
		
			
				|  |  |  * Created by wangzhinan on 2020/10/20.
 | 
	
		
			
				|  |  |  *
 | 
	
		
			
				|  |  |  * @author yeshijie.
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Service
 | 
	
		
			
				|  |  | public class XzzxService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private Logger logger = LoggerFactory.getLogger(XzzxService.class);
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private HttpClientUtil httpClientUtil;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private OauthCaConfigDao oauthCaConfigDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorDao doctorDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorHospitalDao doctorHospitalDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * OAuth登陆-认证请求接口
 | 
	
		
			
				|  |  |      * @param sys
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String getQRCode(String sys) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             logger.info("生成二维码 getQRCode :"+sys);
 | 
	
		
			
				|  |  |             OauthCaConfigDO oauthCaConfigDO = oauthCaConfigDao.findOne("oauth_ca_config");
 | 
	
		
			
				|  |  |             String url = "";
 | 
	
		
			
				|  |  |             if (oauthCaConfigDO!=null){
 | 
	
		
			
				|  |  |                 url=oauthCaConfigDO.getUrl()+"/gateway/oauth/authorize?responseType=code&clientId="+sys;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String response = httpClientUtil.get(url,"utf-8");
 | 
	
		
			
				|  |  |             JSONObject rs = new JSONObject();
 | 
	
		
			
				|  |  |             JSONObject data = new JSONObject();
 | 
	
		
			
				|  |  |             String res = "";
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(response)){
 | 
	
		
			
				|  |  |                 JSONObject object = JSONObject.parseObject(response);
 | 
	
		
			
				|  |  |                 String status = object.getString("status");
 | 
	
		
			
				|  |  |                 if (status.equalsIgnoreCase("0")){
 | 
	
		
			
				|  |  |                     JSONObject jsonObject = object.getJSONObject("data");
 | 
	
		
			
				|  |  |                     String imgBase64 = jsonObject.getString("imgBase64");
 | 
	
		
			
				|  |  |                     data.put("resultCode",0);
 | 
	
		
			
				|  |  |                     data.put("resultMsg","Success");
 | 
	
		
			
				|  |  |                     data.put("qrCodeImg",imgBase64);
 | 
	
		
			
				|  |  |                     data.put("qrCode",jsonObject.getString("requestId"));
 | 
	
		
			
				|  |  |                     rs.put("code",1000);
 | 
	
		
			
				|  |  |                     rs.put("msg","成功");
 | 
	
		
			
				|  |  |                     rs.put("data",data);
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     rs.put("code",-1);
 | 
	
		
			
				|  |  |                     rs.put("msg",object.getString("message"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             return rs.toJSONString();
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * OAuth登陆-获取用户信息
 | 
	
		
			
				|  |  |      * @param clientId
 | 
	
		
			
				|  |  |      * @param requestId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getTokeninfo(String clientId,String requestId){
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             OauthCaConfigDO oauthCaConfigDO = oauthCaConfigDao.findOne("oauth_ca_config");
 | 
	
		
			
				|  |  |             String url = "";
 | 
	
		
			
				|  |  |             if (oauthCaConfigDO!=null){
 | 
	
		
			
				|  |  |                 url=oauthCaConfigDO.getUrl()+"/gateway/oauth/tokeninfo?clientId="+clientId+"&requestId="+requestId+"";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String response = httpClientUtil.get(url,"utf-8");
 | 
	
		
			
				|  |  |             logger.info("验证二维码 getQueryQRCode :"+response);
 | 
	
		
			
				|  |  |             return JSONObject.parseObject(response);
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String synDoctorToCa(String clientId,String requestId,String doctorId){
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             OauthCaConfigDO oauthCaConfigDO = oauthCaConfigDao.findOne("oauth_ca_config");
 | 
	
		
			
				|  |  |             String url = "";
 | 
	
		
			
				|  |  |             if (oauthCaConfigDO!=null){
 | 
	
		
			
				|  |  |                 url=oauthCaConfigDO.getUrl()+"/gateway/doctor/synDoctor";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(doctorId)){
 | 
	
		
			
				|  |  |                 BaseDoctorDO doctorDO = doctorDao.findById(doctorId);
 | 
	
		
			
				|  |  |                 List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(doctorId);
 | 
	
		
			
				|  |  |                 JSONObject body = new JSONObject();
 | 
	
		
			
				|  |  |                 JSONObject head = new JSONObject();
 | 
	
		
			
				|  |  |                 head.put("clientId","2017070411003376");
 | 
	
		
			
				|  |  |                 head.put("clientSecret","2017070411003360");
 | 
	
		
			
				|  |  |                 body.put("head",head);
 | 
	
		
			
				|  |  |                 JSONObject by= new JSONObject();
 | 
	
		
			
				|  |  |                 by.put("uid",doctorDO.getIdcard());
 | 
	
		
			
				|  |  |                 by.put("uidCardType","SF");
 | 
	
		
			
				|  |  |                 by.put("doctorName",doctorDO.getName());
 | 
	
		
			
				|  |  |                 by.put("phone",doctorDO.getMobile());
 | 
	
		
			
				|  |  |                 if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                     by.put("department",doctorHospitalDOS.get(0).getOrgName());
 | 
	
		
			
				|  |  |                     by.put("department",doctorHospitalDOS.get(0).getDeptName());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 body.put("body",by);
 | 
	
		
			
				|  |  |                 String response = httpClientUtil.sendPost(url,body.toJSONString());
 | 
	
		
			
				|  |  |                 logger.info("同步医生信息"+response);
 | 
	
		
			
				|  |  |                 return  response;
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 List<BaseDoctorDO> doctorDOList = doctorDao.findByDel();
 | 
	
		
			
				|  |  |                 for (BaseDoctorDO doctorDO:doctorDOList){
 | 
	
		
			
				|  |  |                     List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(doctorDO.getId());
 | 
	
		
			
				|  |  |                     JSONObject body = new JSONObject();
 | 
	
		
			
				|  |  |                     JSONObject head = new JSONObject();
 | 
	
		
			
				|  |  |                     head.put("clientId","2017070411003376");
 | 
	
		
			
				|  |  |                     head.put("clientSecret","2017070411003360");
 | 
	
		
			
				|  |  |                     body.put("head",head);
 | 
	
		
			
				|  |  |                     JSONObject by= new JSONObject();
 | 
	
		
			
				|  |  |                     by.put("uid",doctorDO.getIdcard());
 | 
	
		
			
				|  |  |                     by.put("uidCardType","SF");
 | 
	
		
			
				|  |  |                     by.put("doctorName",doctorDO.getName());
 | 
	
		
			
				|  |  |                     by.put("phone",doctorDO.getMobile());
 | 
	
		
			
				|  |  |                     if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                         by.put("orgName",doctorHospitalDOS.get(0).getOrgName());
 | 
	
		
			
				|  |  |                         by.put("department",doctorHospitalDOS.get(0).getDeptName());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     body.put("body",by);
 | 
	
		
			
				|  |  |                     String response = httpClientUtil.sendPost(url,body.toJSONString());
 | 
	
		
			
				|  |  |                     logger.info("同步医生信息"+response);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |