Bladeren bron

互联网医院

Trick 5 jaren geleden
bovenliggende
commit
f75636fffb

+ 14 - 14
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -957,7 +957,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            String serialNo = (String)rs.get("serial_no");
            outpatientDO.setRegisterNo(serialNo);
            String conNo = (String)rs.get("@times");
            outpatientDO.setCardNo(conNo);
            outpatientDO.setConNo(conNo);
        }
        //保存日志
        WlyyHttpLogDO log = new WlyyHttpLogDO();
@ -2237,26 +2237,26 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return rs;
    }
//    @Autowired
//    private HttpClientUtil httpClientUtil;
    @Autowired
    private HttpClientUtil httpClientUtil;
    public String test() {
//        List<NameValuePair> params = new ArrayList<>();
////        params.add(new BasicNameValuePair("clientId", "ihealth_pa8DIRJasL"));
////        params.add(new BasicNameValuePair("clientSecret", "jkzl1h7aj39dnasyi23fnkv92"));
////        params.add(new BasicNameValuePair("code", "b60bab0617c04b23b7fa0a059cc83eb6"));
        List<NameValuePair> params = new ArrayList<>();
//        params.add(new BasicNameValuePair("clientId", "ihealth_pa8DIRJasL"));
//        params.add(new BasicNameValuePair("clientSecret", "jkzl1h7aj39dnasyi23fnkv92"));
//        params.add(new BasicNameValuePair("code", "b60bab0617c04b23b7fa0a059cc83eb6"));
//        params.add(new BasicNameValuePair("openid","o0hubt3byGmNYLyC-UvmSVyUuZkI"));
//        //String res = httpClientUtil.post("http://www.xmtyw.cn/wlyy/iHealth/userInfo", params, "UTF-8");
//        //https://wx.xmzsh.com
//        String res = httpClientUtil.post("https://wx.xmzsh.com/interface/getUserInfoByOpenId.htm", params, "UTF-8");
//        return res;
//
//        com.alibaba.fastjson.JSONObject jsonObject=new com.alibaba.fastjson.JSONObject();
//        jsonObject.put("openId","o0hubt3byGmNYLyC-UvmSVyUuZkI");
//        String responseMsg =httpClientUtil.sendPost("https://wx.xmzsh.com/interface/getUserInfoByOpenId.htm",jsonObject.toString());
//        com.alibaba.fastjson.JSONObject object1 = com.alibaba.fastjson.JSONObject.parseObject(responseMsg);
//        return object1.toString();
        return null;
        com.alibaba.fastjson.JSONObject jsonObject=new com.alibaba.fastjson.JSONObject();
        jsonObject.put("openId","o0hubt3byGmNYLyC-UvmSVyUuZkI");
        String responseMsg =httpClientUtil.sendPost("https://wx.xmzsh.com/interface/getUserInfoByOpenId.htm",jsonObject.toString());
        com.alibaba.fastjson.JSONObject object1 = com.alibaba.fastjson.JSONObject.parseObject(responseMsg);
        return object1.toString();
//        return null;
    }
    
    

+ 16 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -597,4 +597,20 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        return buffer.toString();
    }
    public JSONObject getHLWyyUser(String openid){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("openid",openid);
        try {
            String res = httpClientUtil.sendPost(getSynPath("xm_zsyy_wx"), jsonObject.toString());
            JSONObject object1 = JSONObject.parseObject(res);
            if (null != object1&&null!=object1.get("status") && "200".equals(object1.get("status").toString())) {
                JSONObject patient = object1.getJSONObject("userinfo");
                return patient;
            }
        }catch (Exception e){
            logger.error(e);
        }
        return null;
    }
}

+ 23 - 12
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -625,29 +625,40 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    }
    @RequestMapping(value = "/oauth/getHwlyyDecrypt", method = RequestMethod.POST)
    public ObjEnvelop getHwlyyDecrypt(String openid,String idcard,String wechatId){
    public ObjEnvelop getHwlyyDecrypt(String openid,String idcard,String wechatId,HttpSession httpSession){
        Map<String,Object> rs = new HashedMap();
        try{
            OauthKeypairDO keypairDO = oauthKeypairDao.findByCode("hwlyyKey");
            KeyPair keyPair = (KeyPair)SerializeUtil.unSerialize(keypairDO.getKeyPair());
            //解密openid
            if(org.apache.commons.lang3.StringUtils.isNotBlank(openid)){
                rs.put("openid",com.yihu.jw.security.utils.RSAUtils.decryptBase64(openid, keyPair));
            //解密wechatId
            if(org.apache.commons.lang3.StringUtils.isNotBlank(wechatId)){
                String wxid =com.yihu.jw.security.utils.RSAUtils.decryptBase64(wechatId, keyPair);
                rs.put("wechatId",wxid);
                //解密openid
                if(org.apache.commons.lang3.StringUtils.isNotBlank(openid)){
                    String opid = com.yihu.jw.security.utils.RSAUtils.decryptBase64(openid, keyPair);
                    rs.put("openid",opid);
                    if("xm_zsyy_wx".equals(wxid)){
                        JSONObject patient =  userDetailsService.getHLWyyUser(opid);
                        rs.put("idcard",patient.getString("idcard"));
                        rs.put("mobile",patient.getString("mobile"));
                    }
                }else {
                    rs.put("openid",openid);
                }
            }else {
                rs.put("openid",openid);
                rs.put("wechatId",wechatId);
            }
            //解密idcard
            //解密idcard,中山医院id通过openid获取,i健康通过直接加密传输
            if(org.apache.commons.lang3.StringUtils.isNotBlank(idcard)){
                rs.put("idcard",com.yihu.jw.security.utils.RSAUtils.decryptBase64(idcard, keyPair));
            }else {
                rs.put("idcard",idcard);
            }
            //解密wechatId
            if(org.apache.commons.lang3.StringUtils.isNotBlank(wechatId)){
                rs.put("wechatId",com.yihu.jw.security.utils.RSAUtils.decryptBase64(wechatId, keyPair));
            }else {
                rs.put("wechatId",wechatId);
            }
        }catch (Exception e){
            logger.error(e);
        }