|  | @ -2,11 +2,14 @@ package com.yihu.jw.base.service.order;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | import com.alibaba.fastjson.JSONObject;
 |  | import com.alibaba.fastjson.JSONObject;
 | 
												
													
														
															|  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.entity.care.common.WxPayHttpLogDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.order.BusinessOrderDO;
 |  | import com.yihu.jw.entity.order.BusinessOrderDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.order.BusinessOrderRefundDO;
 |  | import com.yihu.jw.entity.order.BusinessOrderRefundDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.order.BusinessOrderService;
 | 
												
													
														
															|  | import com.yihu.jw.order.dao.BusinessOrderDao;
 |  | import com.yihu.jw.order.dao.BusinessOrderDao;
 | 
												
													
														
															|  | import com.yihu.jw.order.dao.BusinessOrderRefundDao;
 |  | import com.yihu.jw.order.dao.BusinessOrderRefundDao;
 | 
												
													
														
															|  | import com.yihu.jw.patient.dao.BasePatientDao;
 |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.pay.dao.WxPayHttpLogDao;
 | 
												
													
														
															|  | import com.yihu.jw.pay.service.CloudCarePayService;
 |  | import com.yihu.jw.pay.service.CloudCarePayService;
 | 
												
													
														
															|  | import com.yihu.jw.restmodel.ResponseContant;
 |  | import com.yihu.jw.restmodel.ResponseContant;
 | 
												
													
														
															|  | import com.yihu.jw.restmodel.web.PageEnvelop;
 |  | import com.yihu.jw.restmodel.web.PageEnvelop;
 | 
												
											
												
													
														
															|  | @ -14,10 +17,12 @@ import org.apache.commons.lang3.StringUtils;
 | 
												
													
														
															|  | import org.slf4j.Logger;
 |  | import org.slf4j.Logger;
 | 
												
													
														
															|  | import org.slf4j.LoggerFactory;
 |  | import org.slf4j.LoggerFactory;
 | 
												
													
														
															|  | import org.springframework.beans.factory.annotation.Autowired;
 |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
												
													
														
															|  | 
 |  | import org.springframework.beans.factory.annotation.Value;
 | 
												
													
														
															|  | import org.springframework.jdbc.core.JdbcTemplate;
 |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
												
													
														
															|  | import org.springframework.stereotype.Service;
 |  | import org.springframework.stereotype.Service;
 | 
												
													
														
															|  | import org.springframework.transaction.annotation.Transactional;
 |  | import org.springframework.transaction.annotation.Transactional;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import java.math.BigDecimal;
 | 
												
													
														
															|  | import java.util.List;
 |  | import java.util.List;
 | 
												
													
														
															|  | import java.util.Map;
 |  | import java.util.Map;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
											
												
													
														
															|  | @ -38,6 +43,12 @@ public class PayService {
 | 
												
													
														
															|  |     private BasePatientDao patientDao;
 |  |     private BasePatientDao patientDao;
 | 
												
													
														
															|  |     @Autowired
 |  |     @Autowired
 | 
												
													
														
															|  |     private CloudCarePayService payService;
 |  |     private CloudCarePayService payService;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BusinessOrderService businessOrderService;
 | 
												
													
														
															|  | 
 |  |     @Value("${wechat.id}")
 | 
												
													
														
															|  | 
 |  |     public String wechatId;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private WxPayHttpLogDao wxPayHttpLogDao;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     /**
 |  |     /**
 | 
												
													
														
															|  |      * 订单列表
 |  |      * 订单列表
 | 
												
											
												
													
														
															|  | @ -205,16 +216,37 @@ public class PayService {
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |         businessOrderDO.setStatus(4);
 |  |         businessOrderDO.setStatus(4);
 | 
												
													
														
															|  |         businessOrderRefundDO.setStatus(3);
 |  |         businessOrderRefundDO.setStatus(3);
 | 
												
													
														
															|  |         //退款流程
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         payService.orderRefund(orderNo);
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         businessOrderRefundDO.setStatus(2);
 |  | 
 | 
												
													
														
															|  |         businessOrderDao.save(businessOrderDO);
 |  |         businessOrderDao.save(businessOrderDO);
 | 
												
													
														
															|  |         businessOrderRefundDao.save(businessOrderRefundDO);
 |  |         businessOrderRefundDao.save(businessOrderRefundDO);
 | 
												
													
														
															|  | 
 |  |         //退款流程
 | 
												
													
														
															|  | 
 |  |         Integer orderPrice = new BigDecimal(businessOrderRefundDO.getOrderPrice()*100).intValue();
 | 
												
													
														
															|  | 
 |  |         Integer refundPrice1 = new BigDecimal(businessOrderRefundDO.getRefundPrice()*100).intValue();
 | 
												
													
														
															|  | 
 |  |         Map<String,Object> map = businessOrderService.refund(wechatId,businessOrderRefundDO.getOrderNo(),businessOrderRefundDO.getOutRefundNo(),orderPrice.toString(),refundPrice1.toString(),businessOrderRefundDO.getRefundDesc());
 | 
												
													
														
															|  | 
 |  |         log.info("map"+map);
 | 
												
													
														
															|  | 
 |  |         addHttpLog("1",businessOrderDO.getOrderNo(),null,map.toString());
 | 
												
													
														
															|  | 
 |  |         if (!map.get("return_code").toString().equalsIgnoreCase("SUCCESS")){
 | 
												
													
														
															|  | 
 |  |             //退款申请提交成功
 | 
												
													
														
															|  | 
 |  |             throw new Exception(map.get("return_msg").toString());
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  |         result.put(ResponseContant.resultFlag, ResponseContant.fail);
 |  |         result.put(ResponseContant.resultFlag, ResponseContant.fail);
 | 
												
													
														
															|  |         result.put(ResponseContant.resultMsg, "success");
 |  |         result.put(ResponseContant.resultMsg, "success");
 | 
												
													
														
															|  |         return result;
 |  |         return result;
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 添加支付日志
 | 
												
													
														
															|  | 
 |  |      * @param type
 | 
												
													
														
															|  | 
 |  |      * @param orderNo
 | 
												
													
														
															|  | 
 |  |      * @param res
 | 
												
													
														
															|  | 
 |  |      * @param req
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public void addHttpLog(String type,String orderNo,String res,String req){
 | 
												
													
														
															|  | 
 |  |         WxPayHttpLogDO logDO = new WxPayHttpLogDO();
 | 
												
													
														
															|  | 
 |  |         logDO.setType(type);
 | 
												
													
														
															|  | 
 |  |         logDO.setOrderNo(orderNo);
 | 
												
													
														
															|  | 
 |  |         logDO.setOrderReq(req);
 | 
												
													
														
															|  | 
 |  |         logDO.setOrderRes(res);
 | 
												
													
														
															|  | 
 |  |         wxPayHttpLogDao.save(logDO);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | }
 |  | }
 |