|  | @ -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());
 | 
	
		
			
				|  |  | 
 |