| 
					
				 | 
			
			
				@ -193,14 +193,21 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("id",id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BusinessOrderDO businessOrderDO = businessOrderDao.findOne(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String type = businessOrderDO.getOrderCategory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer status = businessOrderDO.getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("orderCategory",type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("orderNo",businessOrderDO.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("payPrice",businessOrderDO.getPayPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("payTime", DateUtil.dateToStrLong(businessOrderDO.getPayTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("createTime",DateUtil.dateToStrLong(businessOrderDO.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("status",businessOrderDO.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("updateTime",DateUtil.dateToStrLong(businessOrderDO.getUpdateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(time<0&&status==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            cancleOrder(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            status = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("status",status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resJson.put("time",time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("3".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDoorCoachFeeDetailDO> feeDetailDOList = doorCoachFeeDetailDao.findByOrderId(businessOrderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resJson.put("fees",feeDetailDOList); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -208,12 +215,60 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<LifeCareFeeDetailDO> feeDetailDOList = lifeCareFeeDetailDao.findByOrderId(businessOrderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resJson.put("fees",feeDetailDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //退款信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(status>2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BusinessOrderRefundDO refundDO = orderRefundDao.selectByOrderNo(businessOrderDO.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resJson.put("refundDO",refundDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resJson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void applyRefund(Integer id,String content,String imgs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 申请退款 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String applyRefund(Integer id,String description,String enclosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BusinessOrderDO businessOrderDO = businessOrderDao.findOne(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String type = businessOrderDO.getOrderCategory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String orderId = businessOrderDO.getRelationCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(businessOrderDO.getStatus()!=1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "订单为已支付状态时,才可申请退款"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("3".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoorCoachOrderDO orderDO = baseDoorCoachOrderDao.findOne(orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!"6".equals(orderDO.getStatus())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "工单为已完成状态时,才可申请退款"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if("4".equals(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            LifeCareOrderDO orderDO = lifeCareOrderDao.findOne(orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!"2".equals(orderDO.getStatus())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "工单为已完成状态时,才可申请退款"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BusinessOrderRefundDO orderRefundDO = orderRefundDao.selectByOrderNo(businessOrderDO.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderRefundDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "请勿重复申请退款"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO = new BusinessOrderRefundDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setOrderNo(businessOrderDO.getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setOrderPrice(businessOrderDO.getPayPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setRefundPrice(businessOrderDO.getPayPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setOutRefundNo("CARE"+businessOrderDO.getOrderType()+System.currentTimeMillis()+(int)(Math.random()*900)+100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setPatient(businessOrderDO.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setPatientName(businessOrderDO.getPatientName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setRefundDesc(description); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDO.setEnclosure(enclosure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderRefundDao.save(orderRefundDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDO.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDao.save(businessOrderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -239,6 +294,7 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    lifeCareOrderDao.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            businessOrderDO.setStatus(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            businessOrderDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            businessOrderDao.save(businessOrderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -407,10 +463,14 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDao.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 退款成功处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void wxRefundNotify(BusinessOrderDO orderDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void refundNotify(BusinessOrderRefundDO orderDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        log.error("【支付通知】请求,payWater:{}", orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String type = orderDO.getOrderCategory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String type = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //防止重复支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orderDO.getStatus()!=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -424,20 +484,20 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case "3": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //desc = "上门辅导"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doorCoachOrderService.refundOrderAfter(orderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               // doorCoachOrderService.payOrderAfter(orderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case "4": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //desc = "生活照料服务"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                lifeCareOrderService.refundOrderAfter(orderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               // lifeCareOrderService.payOrderAfter(orderDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderDO.setStatus(4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDao.save(orderDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 微信navite统一下单接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -456,6 +516,11 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (businessOrderDO.getStatus()!=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("待支付订单才能支付",-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(time<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            cancleOrder(businessOrderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("支付超时,订单已关闭",-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDO.setOrderNo(getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String noceStr = WxpayUtil.getNonceStr(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 组装统一下单信息 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -526,6 +591,11 @@ public class PayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (businessOrderDO.getStatus()!=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("待支付订单才能支付",-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long time = (businessOrderDO.getCreateTime().getTime() - System.currentTimeMillis())/1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(time<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            cancleOrder(businessOrderDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("支付超时,订单已关闭",-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO patientDO = patientDao.findById(businessOrderDO.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessOrderDO.setOrderNo(getOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |