|
@ -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;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 订单列表
|
|
* 订单列表
|
|
@ -99,8 +110,8 @@ public class PayService {
|
|
Integer page,Integer pageSize){
|
|
Integer page,Integer pageSize){
|
|
page = page>0?page-1:0;
|
|
page = page>0?page-1:0;
|
|
String sql = " select pay.patient,pay.patient_name,pay.order_no,pay.order_type,pay.order_category,pay.relation_code, " +
|
|
String sql = " select pay.patient,pay.patient_name,pay.order_no,pay.order_type,pay.order_category,pay.relation_code, " +
|
|
" pay.relation_name,pay.description,pay.pay_type,pay.pay_price,pay.yk_order_id,DATE_FORMAT(re.create_time,'%Y-%m-%d %H:%i:%S') create_time, " +
|
|
|
|
" re.enclosure,re.refund_desc,re.`status` from base_business_order_pay pay inner JOIN base_business_order_refund re on " +
|
|
|
|
|
|
" pay.relation_name,pay.description payDescription,pay.pay_type,pay.pay_price,pay.yk_order_id,DATE_FORMAT(re.create_time,'%Y-%m-%d %H:%i:%S') create_time, " +
|
|
|
|
" re.enclosure,re.refund_desc description,re.refuse_desc,re.`status` from base_business_order_pay pay inner JOIN base_business_order_refund re on " +
|
|
" pay.order_no = re.order_no where pay.status>=3 ";
|
|
" pay.order_no = re.order_no where pay.status>=3 ";
|
|
String sqlCount = "select count(re.id) from base_business_order_pay pay inner JOIN " +
|
|
String sqlCount = "select count(re.id) from base_business_order_pay pay inner JOIN " +
|
|
" base_business_order_refund re on pay.order_no = re.order_no where pay.status>=3 ";
|
|
" base_business_order_refund re on pay.order_no = re.order_no where pay.status>=3 ";
|
|
@ -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);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|