|
@ -2,11 +2,14 @@ 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.care.common.WxPayHttpLogDO;
|
|
|
import com.yihu.jw.entity.order.BusinessOrderDO;
|
|
|
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.BusinessOrderRefundDao;
|
|
|
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.restmodel.ResponseContant;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
@ -14,10 +17,12 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@ -38,6 +43,12 @@ public class PayService {
|
|
|
private BasePatientDao patientDao;
|
|
|
@Autowired
|
|
|
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);
|
|
|
businessOrderRefundDO.setStatus(3);
|
|
|
//退款流程
|
|
|
|
|
|
payService.orderRefund(orderNo);
|
|
|
|
|
|
businessOrderRefundDO.setStatus(2);
|
|
|
businessOrderDao.save(businessOrderDO);
|
|
|
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.resultMsg, "success");
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
}
|