فهرست منبع

同安医院接口开发

wangjun 3 سال پیش
والد
کامیت
04ad2c9e41

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

@ -11718,10 +11718,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                //先进行核算检测预约
                String realOrder="";
                String result = tasyNatService.initNatParams(preNo,name,cardNo);
                Boolean flag = false;
                if (StringUtils.isNoneBlank(result)){
                    com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
                    logger.info("核酸检测预约结束"+result);
                    Boolean flag = false;
                    if (object!=null){
                        String returnCode = object.getString("returnCode");
                        if ("0".equalsIgnoreCase(returnCode)){
@ -11786,13 +11786,41 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    businessDO.setDescription("核酸检测订单");
                    businessDO.setPayType(1);
                    businessDO.setUpdateTime(new Date());
                    businessOrderDao.save(businessDO);
                    businessDO=businessOrderDao.save(businessDO);
                    String openId="";
                    List<BasePatientWechatDo> basePatientWechatDo = basePatientWechatDao.findByWechatIdAndPatientId(wechatId,patientId);
                    if (basePatientWechatDo!=null&&basePatientWechatDo.size()>0){
                        openId=basePatientWechatDo.get(0).getOpenid();
                    }
                    //亿同支付创建订单
                    com.alibaba.fastjson.JSONObject orderObj= new com.alibaba.fastjson.JSONObject();
                    orderObj.put("payType",1);
                    orderObj.put("tradeNo",businessDO.getOrderNo());
                    orderObj.put("openId",openId);
                    orderObj.put("name",name);
                    orderObj.put("idNo",cardNo);
                    orderObj.put("amount",chargeAmount);
                    String orderRes=tasyNatService.placeOrder(orderObj);
                    if (StringUtils.isNoneBlank(orderRes)){
                        com.alibaba.fastjson.JSONObject jsonObject= JSON.parseObject(orderRes);
                        if (jsonObject!=null){
                            if("0".equalsIgnoreCase(jsonObject.getString("code"))){
                                com.alibaba.fastjson.JSONObject dataObj= com.alibaba.fastjson.JSONObject.parseObject(jsonObject.getString("data"));
                                businessDO.setTraceNo(dataObj.getString("orderNo"));
                                businessDO=businessOrderDao.save(businessDO);
                            }
                        }
                    }
                    logger.info("开单结束");
                    logger.info("saveNatAppointment params:"+jsondate.toString());
                    returnMap.put("msg","预约成功");
                    returnMap.put("status","200");
                    returnMap.put("id",baseNatAppointmentDO.getId());
                    returnMap.put("realOrder",baseNatAppointmentDO.getRealOrder());
                }else {
                    returnMap.put("msg","核酸开方失败");
                    returnMap.put("status","-1");
                    return returnMap;
                }
            }
            return returnMap;

+ 31 - 12
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/TasyNatService.java

@ -1,6 +1,7 @@
package com.yihu.jw.hospital.prescription.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -29,7 +30,8 @@ import java.util.Map;
@Transactional
public class TasyNatService {
    private static Logger logger = LoggerFactory.getLogger(TasyNatService.class);
    private static String key="bvvsf3JA0mUXMU+mVnMaOQ==";
    private static String operator="健康之路";
    private static String key="1";
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
@ -63,13 +65,13 @@ public class TasyNatService {
     */
    public String registerPatient(JSONObject jsonObject)throws Exception{
        String api = "SickNocardRegister";
        /*String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
        String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
                "<root> " +
                "   <serverName>"+api+"</serverName>  " +
                "   <format>xml</format>" +
                "   <callOperator></callOperator> " +
                "   <callOperator>"+operator+"</callOperator> " +
                "   <certificate>"+key+"</certificate> " +
                "</root>";*/
                "</root>";
        String condition ="";
        if (StringUtils.isNoneBlank(jsonObject.getString("IdType"))){
            condition += "<IdType>"+jsonObject.getString("IdType")+"</IdType>";
@ -139,7 +141,7 @@ public class TasyNatService {
                "<root>"+condition+"</root>";
        Map<String,String> params = new HashedMap();
        //params.put("msgHeader",msgHeader);
        params.put("msgHeader",msgHeader);
        params.put("msgBody",msgBody);
        logger.info("registerPatient params:"+params.toString());
        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl());
@ -158,7 +160,7 @@ public class TasyNatService {
                "<root> " +
                "   <serverName>"+api+"</serverName>  " +
                "   <format>xml</format>" +
                "   <callOperator></callOperator> " +
                "   <callOperator>"+operator+"</callOperator> " +
                "   <certificate>"+key+"</certificate> " +
                "</root>";
        String condition ="";
@ -195,7 +197,7 @@ public class TasyNatService {
            if (StringUtils.isNoneBlank(itemObject.getString("itemPrice"))){
                itemCoditon += "<itemPrice>"+itemCoditon+"</itemPrice>";
            }
            condition += "<itemList><item>"+jsonObject.getString("clinicFee")+"</item></itemList>";
            condition += "<itemList><item>"+itemCoditon+"</item></itemList>";
        }
        String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<root>"+condition+"</root>";
@ -220,7 +222,7 @@ public class TasyNatService {
                "<root> " +
                "   <serverName>"+api+"</serverName>  " +
                "   <format>xml</format>" +
                "   <callOperator></callOperator> " +
                "   <callOperator>"+operator+"</callOperator> " +
                "   <certificate>"+key+"</certificate> " +
                "</root>";
        String condition ="";
@ -257,7 +259,7 @@ public class TasyNatService {
                "<root> " +
                "   <serverName>"+api+"</serverName>  " +
                "   <format>xml</format>" +
                "   <callOperator></callOperator> " +
                "   <callOperator>"+operator+"</callOperator> " +
                "   <certificate>"+key+"</certificate> " +
                "</root>";
        String condition ="";
@ -391,9 +393,17 @@ public class TasyNatService {
        if (wlyyHospitalSysDictDO!=null){
            url=wlyyHospitalSysDictDO.getDictValue();
        }
        System.out.println(url);
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("placeOrder", jsonObject.toJSONString()));
        params.add(new BasicNameValuePair("payType", jsonObject.getString("payType")));
        params.add(new BasicNameValuePair("tradeNo", jsonObject.getString("tradeNo")));
        params.add(new BasicNameValuePair("openId", jsonObject.getString("openId")));
        params.add(new BasicNameValuePair("name", jsonObject.getString("name")));
        params.add(new BasicNameValuePair("idNo", jsonObject.getString("idNo")));
        params.add(new BasicNameValuePair("amount", jsonObject.getString("amount")));
        System.out.println(params.toString());
        String response = httpClientUtil.post(url,params ,"UTF-8");
        System.out.println("res"+response);
        return response;
    }
@ -403,9 +413,12 @@ public class TasyNatService {
        if (wlyyHospitalSysDictDO!=null){
            url=wlyyHospitalSysDictDO.getDictValue();
        }
        System.out.println(url);
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("orderStatus", jsonObject.toJSONString()));
        params.add(new BasicNameValuePair("orderNo", jsonObject.getString("orderNo")));
        System.out.println(params.toString());
        String response = httpClientUtil.post(url,params ,"UTF-8");
        System.out.println("res"+response);
        return response;
    }
@ -415,9 +428,15 @@ public class TasyNatService {
        if (wlyyHospitalSysDictDO!=null){
            url=wlyyHospitalSysDictDO.getDictValue();
        }
        System.out.println(url);
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("orderStatus", jsonObject.toJSONString()));
        params.add(new BasicNameValuePair("tempateId", jsonObject.getString("tempateId")));
        params.add(new BasicNameValuePair("url", jsonObject.getString("url")));
        params.add(new BasicNameValuePair("openId", jsonObject.getString("openId")));
        params.add(new BasicNameValuePair("data", jsonObject.getJSONObject("data").toString()));
        System.out.println(params.toString());
        String response = httpClientUtil.post(url,params ,"UTF-8");
        System.out.println("res"+response);
        return response;
    }

+ 2 - 1
business/base-service/src/main/java/com/yihu/jw/order/dao/BusinessOrderDao.java

@ -13,7 +13,8 @@ import java.util.List;
public interface BusinessOrderDao extends PagingAndSortingRepository<BusinessOrderDO, Integer>, JpaSpecificationExecutor<BusinessOrderDO>  {
    @Query("from BusinessOrderDO w where w.traceNo = ?1 and w.orderNo=?2")
    BusinessOrderDO selectByTraceNoAndorderNo(String traceNo,String orderNo);
    @Query("from BusinessOrderDO w where w.orderNo = ?1 ")
    BusinessOrderDO selectByOrderNo(String orderNo);

+ 50 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -14,6 +14,7 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.im.ConsultDo;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
@ -65,6 +66,7 @@ import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.dao.WechatDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.service.WechatInfoService;
import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
import com.ylzinfo.onepay.sdk.OnepayClient;
@ -223,6 +225,8 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private TasyNatService tasyNatService;
    @Autowired
    private WxTemplateConfigDao wxTemplateConfigDao;
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findDoctorByHospitalAndDiseaseAndDept)
    @ApiOperation(value = "根据疾病名称,热门部门查询医生", notes = "根据疾病名称,热门部门查询医生")
@ -2277,4 +2281,50 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            return  failedException(e);
        }
    }
    /**
     * 亿同支付回调接口
     * @return
     * @throws IOException
     */
    @ResponseBody
    @ApiOperation("亿同支付回调接口")
    @RequestMapping(value = "/ytzfNotify", method = {RequestMethod.GET, RequestMethod.POST})
    public String ytzfNotify(@ApiParam(name = "code", value = "code", required = true)
                                 @RequestParam(value = "code", required = true) String code,
                             @ApiParam(name = "orderNo", value = "支付系统订单号(亿同系统订单号,用于查询订单号状态)", required = true)
                             @RequestParam(value = "orderNo", required = false) String orderNo,
                             @ApiParam(name = "traceNo", value = "互联网医院系统订单号", required = false)
                                 @RequestParam(value = "traceNo", required = false) String traceNo,
                             @ApiParam(name = "msg", value = "msg", required = false)
                                 @RequestParam(value = "msg", required = false) String msg) throws Exception {
        if ("0".equalsIgnoreCase(code)){
            BusinessOrderDO businessOrderDO = businessOrderDao.selectByTraceNoAndorderNo(orderNo,traceNo);
            if (businessOrderDO!=null){
                businessOrderDO.setStatus(1);
                businessOrderDao.save(businessOrderDO);
                BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findOne(Integer.valueOf(businessOrderDO.getRelationCode()));
                if (baseNatAppointmentDO!=null){
                    if (baseNatAppointmentDO.getPayStatus().equalsIgnoreCase("0")){
                        //开始发送模板消息
                        List<WxTemplateConfigDO> wxTemplateConfigDO = wxTemplateConfigDao.findByWechatIdAndScene("xm_tasy_wx","hsjc");
                        WxTemplateConfigDO wxTemplateConfigDO1 = new WxTemplateConfigDO();
                        if (wxTemplateConfigDO!=null&&wxTemplateConfigDO.size()>0){
                            wxTemplateConfigDO1 = wxTemplateConfigDO.get(0);
                        }
                        JSONObject jsonObject = new JSONObject();
                        jsonObject.put("tempateId",wxTemplateConfigDO1.getId());//todo  患者信息参数待补全
                        tasyNatService.tmpPush(jsonObject);
                    }
                    baseNatAppointmentDO.setPayStatus("1");
                    baseNatAppointmentDao.save(baseNatAppointmentDO);
                    return "SUCCESS";
                }
            }
        }
        return  "failed";
    }
}