|  | @ -1,10 +1,13 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.base.service.order;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.order.BusinessOrderDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.order.BusinessOrderRefundDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.dao.BusinessOrderDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.dao.BusinessOrderRefundDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.pay.service.CloudCarePayService;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.ResponseContant;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.PageEnvelop;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
	
		
			
				|  | @ -13,6 +16,7 @@ import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
	
		
			
				|  | @ -30,6 +34,10 @@ public class PayService {
 | 
	
		
			
				|  |  |     private BusinessOrderDao businessOrderDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BusinessOrderRefundDao businessOrderRefundDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BasePatientDao patientDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private CloudCarePayService payService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 订单列表
 | 
	
	
		
			
				|  | @ -133,8 +141,14 @@ public class PayService {
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
 | 
	
		
			
				|  |  |         if ( null== businessOrderDO){
 | 
	
		
			
				|  |  |              result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |              result.put(ResponseContant.resultMsg, "订单不存在");
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "订单不存在");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BasePatientDO patientDO = patientDao.findById(businessOrderDO.getPatient());
 | 
	
		
			
				|  |  |         if (patientDO==null){
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "患者不存在");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if ( 3 != businessOrderDO.getStatus()){
 | 
	
	
		
			
				|  | @ -158,7 +172,8 @@ public class PayService {
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONObject agreeRefund(String orderNo){
 | 
	
		
			
				|  |  |     @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     public JSONObject agreeRefund(String orderNo) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
 | 
	
		
			
				|  |  |         if ( null== businessOrderDO){
 | 
	
	
		
			
				|  | @ -171,18 +186,34 @@ public class PayService {
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "订单未申请退款或已退款,无法操作");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BasePatientDO patientDO = patientDao.findById(businessOrderDO.getPatient());
 | 
	
		
			
				|  |  |         if (patientDO==null){
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "患者不存在");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BusinessOrderRefundDO businessOrderRefundDO = businessOrderRefundDao.selectByOrderNo(orderNo);
 | 
	
		
			
				|  |  |         if (null == businessOrderRefundDO){
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "订单不存在");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (businessOrderRefundDO.getStatus()!=1){
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |             result.put(ResponseContant.resultMsg, "订单已处理");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         businessOrderDO.setStatus(4);
 | 
	
		
			
				|  |  |         businessOrderRefundDO.setStatus(3);
 | 
	
		
			
				|  |  |         //退款流程
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         payService.orderRefund(orderNo);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         businessOrderRefundDO.setStatus(2);
 | 
	
		
			
				|  |  |         businessOrderDao.save(businessOrderDO);
 | 
	
		
			
				|  |  |         businessOrderRefundDao.save(businessOrderRefundDO);
 | 
	
		
			
				|  |  |         result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
	
		
			
				|  |  |         result.put(ResponseContant.resultMsg, "success");
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 |