Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

Trick 5 years ago
parent
commit
ad4a27175c

+ 47 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/ykyy/service/YkyyService.java

@ -149,4 +149,51 @@ public class YkyyService {
        return response;
    }
    /**
     * 眼科通新增订单接口
     *
     * @param orderNo
     * @param patientId
     * @param orderAmout
     * @param description
     * @param state
     * @param orderType
     * @param doctorId
     * @param payType
     * @param payAccount
     * @param patientTel
     * @return
     */
    public String addYktOrder(String orderNo,String patientId,String orderAmout,String description,String state,String orderType,String doctorId,String payType,String payAccount,String patientTel,String orderCategory,String pcCallbackUrl,String appCallbackUrl){
        String response="";
        String url = yktUrl+"doc_jkzl/add_inquiry_order?order_no="+orderNo+"&patient_id="+patientId+"&order_amout="+orderAmout+"&description="+description+
                "&state="+state+"&order_type="+orderType+"&doctor_id="+doctorId+"&pay_type="+payType+"&patient_tel="+patientTel+"&order_category="+orderCategory;
        if (StringUtils.isNoneBlank(payAccount)){
            url+="&pay_accout="+payAccount;
        }
        if (StringUtils.isNoneBlank(pcCallbackUrl)){
            url+="&pc_callback_url="+pcCallbackUrl;
        }
        if (StringUtils.isNoneBlank(appCallbackUrl)){
            url+="&app_callback_url="+appCallbackUrl;
        }
        response = httpClientUtil.get(url,"GBK");
        return response;
    }
    /**
     * 更新订单支付状态
     *
     * @param orderNo
     * @param state
     * @return
     */
    public String updateYktOrderStatus(String orderNo,String state){
        String response="";
        String url = yktUrl+"doc_jkzl/update_order_state?order_no="+orderNo+"&state="+state;
        response = httpClientUtil.get(url,"GBK");
        return response;
    }
}

+ 76 - 5
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -6,8 +6,11 @@ import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.base.wx.WxPayLogDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.entity.order.BusinessOrderRefundDO;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.order.dao.BusinessOrderRefundDao;
import com.yihu.jw.order.pay.wx.WeChatConfig;
@ -54,14 +57,38 @@ public class BusinessOrderService {
    private BasePatientDao patientDao;
    @Autowired
    private BusinessOrderRefundDao orderRefundDao;
    @Autowired
    private YkyyService ykyyService;
    @Autowired
    private DoctorMappingDao doctorMappingDao;
    /**
     * @param businessOrderDO
     * @return
     * @throws Exception
     */
    public BusinessOrderDO saveOrder(BusinessOrderDO businessOrderDO) throws Exception {
        businessOrderDO.setStatus(0);
        businessOrderDO.setCreateTime(new Date());
        businessOrderDO.setUpdateTime(new Date());
        businessOrderDO.setOrderNo(getGuid());
        businessOrderDO.setStatus(0);
        businessOrderDO.setOrderNo("VAS"+businessOrderDO.getOrderType()+System.currentTimeMillis());
        businessOrderDO = businessOrderDao.save(businessOrderDO);
        String patient = businessOrderDO.getPatient();
        BasePatientDO basePatientDO = patientDao.findById(patient);
        String orderNo = businessOrderDO.getOrderNo();
        String patientId = basePatientDO.getUserId();
        String orderAmout = businessOrderDO.getPayPrice().toString();
        String description = businessOrderDO.getDescription();
        String state = businessOrderDO.getStatus().toString();
        String orderType =businessOrderDO.getOrderType().toString();
        String payType="2";
        String patientTel = basePatientDO.getMobile();
        DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(businessOrderDO.getDoctor());
        String orderCatagrate = businessOrderDO.getOrderCategory();
        String pcCallBack=businessOrderDO.getPcCallbackUrl();
        String appCallBack = businessOrderDO.getAppCallbackUrl();
        ykyyService.addYktOrder(orderNo,patientId,orderAmout,description,state,orderType,doctorMappingDO.getMappingCode(),payType,null,patientTel,orderCatagrate,pcCallBack,appCallBack);
        return businessOrderDO;
    }
@ -76,7 +103,7 @@ public class BusinessOrderService {
        businessOrderDO.setStatus(0);
        businessOrderDO.setCreateTime(new Date());
        businessOrderDO.setUpdateTime(new Date());
        businessOrderDO.setOrderNo(getGuid());
        businessOrderDO.setOrderNo("VAS"+businessOrderDO.getOrderType()+System.currentTimeMillis());
        businessOrderDO = businessOrderDao.save(businessOrderDO);
        List<BasePatientWechatDo> patientWechatDos = patientWechatDao.findByWechatIdAndPatientId(wechatId,businessOrderDO.getPatient());
        String openId = "";
@ -89,7 +116,23 @@ public class BusinessOrderService {
        }
        String url = wxWechatDO.getBaseUrl();
        String notifyUrl =url+"/ykyy"+BaseHospitalRequestMapping.WxPay.Notify;
        return unifiedorder(wechatId,businessOrderDO.getDescription(),businessOrderDO.getPayPrice().toString(),WeChatConfig.TRADE_TYPE_JSAPI,openId,businessOrderDO.getOrderNo(),notifyUrl);
        Map<String,Object> map = unifiedorder(wechatId,businessOrderDO.getDescription(),businessOrderDO.getPayPrice().toString(),WeChatConfig.TRADE_TYPE_JSAPI,openId,businessOrderDO.getOrderNo(),notifyUrl);
        String patient = businessOrderDO.getPatient();
        BasePatientDO basePatientDO = patientDao.findById(patient);
        String orderNo = businessOrderDO.getOrderNo();
        String patientId = basePatientDO.getUserId();
        String orderAmout = businessOrderDO.getPayPrice().toString();
        String description = businessOrderDO.getDescription();
        String state = businessOrderDO.getStatus().toString();
        String orderType =businessOrderDO.getOrderType().toString();
        String payType="2";
        String patientTel = basePatientDO.getMobile();
        DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(businessOrderDO.getDoctor());
        String orderCatagrate = businessOrderDO.getOrderCategory();
        String pcCallBack=businessOrderDO.getPcCallbackUrl();
        String appCallBack = businessOrderDO.getAppCallbackUrl();
        ykyyService.addYktOrder(orderNo,patientId,orderAmout,description,state,orderType,doctorMappingDO.getMappingCode(),payType,null,patientTel,orderCatagrate,pcCallBack,appCallBack);
        return map;
    }
    /**
@ -218,7 +261,7 @@ public class BusinessOrderService {
        orderRefundDO.setRefundPrice(refundPrice);
        orderRefundDO.setAppId(wxWechatDO.getAppId());
        orderRefundDO.setMchId(wxWechatDO.getMchId());
        orderRefundDO.setOutRefundNo(getGuid());
        orderRefundDO.setOutRefundNo("VAS"+businessOrderDO.getOrderType()+System.currentTimeMillis());
        orderRefundDO.setPatient(patient);
        orderRefundDO.setPatientName(patientDO.getName());
        orderRefundDO.setRefundDesc(description);
@ -339,6 +382,7 @@ public class BusinessOrderService {
            BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(seqNo);
            businessOrderDO.setPayTime(DateUtil.strToDate(timeEnd,DateUtil.YYYY_MM_DD_HH_MM_SS));
            businessOrderDO.setStatus(1);
            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),businessOrderDO.getStatus().toString());
            //操作微信日志表记录
            List<WxPayLogDO> wxPayLogDOs = wxPayLogDao.findBySeqNo(seqNo);
            WxPayLogDO wxPayLogDO = wxPayLogDOs.get(0);
@ -356,4 +400,31 @@ public class BusinessOrderService {
        return rs;
    }
    public String sendDataToYkt(String orderNo){
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        String patient = businessOrderDO.getPatient();
        BasePatientDO basePatientDO = patientDao.findById(patient);
        String patientId = basePatientDO.getUserId();
        String orderAmout = businessOrderDO.getPayPrice().toString();
        String description = businessOrderDO.getDescription();
        String state = businessOrderDO.getStatus().toString();
        String orderType =businessOrderDO.getOrderType().toString();
        String payType="2";
        String patientTel = basePatientDO.getMobile();
        DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(businessOrderDO.getDoctor());
        String orderCatagrate = businessOrderDO.getOrderCategory();
        String pcCallBack=businessOrderDO.getPcCallbackUrl();
        String appCallBack = businessOrderDO.getAppCallbackUrl();
        String response = ykyyService.addYktOrder(orderNo,patientId,orderAmout,description,state,orderType,doctorMappingDO.getMappingCode(),payType,null,patientTel,orderCatagrate,pcCallBack,appCallBack);
        return response;
    }
    public String updateStatusToYk(String orderNo){
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        String response = ykyyService.updateYktOrderStatus(orderNo,businessOrderDO.getStatus().toString());
        return response;
    }
}

+ 40 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/order/BusinessOrderDO.java

@ -22,14 +22,17 @@ public class BusinessOrderDO extends IntegerIdentityEntity {
    private String patientName;//居民名字
    private String orderNo;//订单号
    private Integer orderType;//订单类型
    private String orderCategory;//1:专家咨询|2:图文诊室|3:视频诊室|)
    private String relationCode;//业务关联code
    private String relationName;//业务关联名称
    private String description;//支付备注
    private Integer payType;//支付类型1微信2支付宝
    private Double payPrice;//支付金额
    private Date payTime;//支付时间
    private String doctor;//医生code
    private Integer status;//0待支付1支付成功2支付失败3取消
    private String pcCallbackUrl;//Pc端查看当前订单的会话信息
    private String appCallbackUrl;//App端查看当前订单的会话信息
    private Date createTime;
    private String createUser;
    private String createUserName;
@ -195,4 +198,40 @@ public class BusinessOrderDO extends IntegerIdentityEntity {
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "order_category")
    public String getOrderCategory() {
        return orderCategory;
    }
    public void setOrderCategory(String orderCategory) {
        this.orderCategory = orderCategory;
    }
    @Column(name = "pc_callback_url")
    public String getPcCallbackUrl() {
        return pcCallbackUrl;
    }
    public void setPcCallbackUrl(String pcCallbackUrl) {
        this.pcCallbackUrl = pcCallbackUrl;
    }
    @Column(name = "app_callback_url")
    public String getAppCallbackUrl() {
        return appCallbackUrl;
    }
    public void setAppCallbackUrl(String appCallbackUrl) {
        this.appCallbackUrl = appCallbackUrl;
    }
}

+ 1 - 1
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/XzzxCotroller.java

@ -150,7 +150,7 @@ public class XzzxCotroller extends EnvelopRestEndpoint {
                                      @RequestParam(value = "realOrder",required = false)String realOrder,
                                      @ApiParam(name = "status", value = "处方状态:3结算完成", required = false)
                                      @RequestParam(value = "status",required = false)String status)throws Exception{
        return ObjEnvelop.getSuccess("ok",xzzxEntranceService.updatePreStatus(admNo,realOrder,status));
        return ObjEnvelop.getSuccess("ok",xzzxEntranceService.updatePrescriptionStatus(admNo,realOrder,status));
    }

+ 29 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/ykyy/YkyyController.java

@ -197,5 +197,34 @@ public class YkyyController extends EnvelopRestEndpoint {
    @RequestMapping(value = "sendDataToYkt", method = RequestMethod.POST)
    @ApiOperation("手动同步订单到眼科通")
    public ObjEnvelop sendDataToYkt(
            @ApiParam(name = "orderNo", value = "orderNo", required = true)
            @RequestParam(required = true)String orderNo) throws Exception {
        try {
            return ObjEnvelop.getSuccess("ok",businessOrderService.sendDataToYkt(orderNo));
        } catch (Exception e) {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
    @RequestMapping(value = "updateStatusToYk", method = RequestMethod.POST)
    @ApiOperation("手动同步订单状态到眼科通")
    public ObjEnvelop updateStatusToYk(
            @ApiParam(name = "orderNo", value = "orderNo", required = true)
            @RequestParam(required = true)String orderNo) throws Exception {
        try {
            return ObjEnvelop.getSuccess("ok",businessOrderService.updateStatusToYk(orderNo));
        } catch (Exception e) {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
}

+ 2 - 1
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/util/ISqlUtils.java

@ -84,6 +84,7 @@ public class ISqlUtils {
        }else if (StringUtils.isNoneBlank(endTime)&&!StringUtils.isNoneBlank(startTime)){
            sb.append(" and end_time <= '"+endTime+"'");
        }
        sb.append(" and type<>'健康计划'");
        if(isFlag.equalsIgnoreCase("*")){
            sb.append(" ORDER BY create_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
        }
@ -98,7 +99,7 @@ public class ISqlUtils {
        Class c =object.getClass();
        Table table = (Table)c.getAnnotation(Table.class);
        String tableName = table.name();
        sb.append("select * from ").append(tableName).append(" where 1=1 ");
        sb.append("select * from ").append(tableName).append(" where 1=1 and type<>'健康计划' ");
        Field[] fArray= c.getDeclaredFields();
        for(Field f:fArray){
            //拿到字段后与实体类中的属性匹配,并得到其get方法,用来获取他的属性值