退款成功
This commit is contained in:
parent
afdaa2a491
commit
ff2c4e92be
|
|
@ -1,15 +1,34 @@
|
|||
package com.ghy.order.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||
import com.ghy.common.adapay.model.PaymentDTO;
|
||||
import com.ghy.common.core.domain.AjaxResult;
|
||||
import com.ghy.common.exception.base.BaseException;
|
||||
import com.ghy.common.utils.DateUtils;
|
||||
import com.ghy.common.utils.ObjectUtils;
|
||||
import com.ghy.order.domain.AfterServiceImgs;
|
||||
import com.ghy.order.domain.OrderDetail;
|
||||
import com.ghy.order.domain.OrderMaster;
|
||||
import com.ghy.order.service.IAfterServiceImgsService;
|
||||
import com.ghy.order.service.OrderDetailService;
|
||||
import com.ghy.order.service.OrderMasterService;
|
||||
import com.ghy.payment.domain.FinancialDetail;
|
||||
import com.ghy.payment.domain.FinancialMaster;
|
||||
import com.ghy.payment.service.AdapayService;
|
||||
import com.ghy.payment.service.FinancialDetailService;
|
||||
import com.ghy.payment.service.FinancialMasterService;
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ghy.order.mapper.AfterServiceRecordMapper;
|
||||
import com.ghy.order.domain.AfterServiceRecord;
|
||||
import com.ghy.order.service.IAfterServiceRecordService;
|
||||
import com.ghy.common.core.text.Convert;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* 售后记录Service业务层处理
|
||||
|
|
@ -26,6 +45,21 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
@Autowired
|
||||
private IAfterServiceImgsService afterServiceImgsService;
|
||||
|
||||
@Autowired
|
||||
private FinancialDetailService financialDetailService;
|
||||
|
||||
@Autowired
|
||||
private OrderMasterService orderMasterService;
|
||||
|
||||
@Autowired
|
||||
private FinancialMasterService financialMasterService;
|
||||
|
||||
@Autowired
|
||||
private AdapayService adapayService;
|
||||
|
||||
@Autowired
|
||||
private OrderDetailService orderDetailService;
|
||||
|
||||
/**
|
||||
* 查询售后记录
|
||||
*
|
||||
|
|
@ -80,12 +114,51 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
/**
|
||||
* 修改售后记录
|
||||
*
|
||||
* @param afterServiceRecord 售后记录
|
||||
* @param param 售后记录
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord)
|
||||
{
|
||||
public int updateAfterServiceRecord(AfterServiceRecord param) {
|
||||
AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId());
|
||||
Assert.notNull(afterServiceRecord, "售后记录不存在!");
|
||||
// 实际同意,需要发起退款,减少原单分账金额-调用退款接口
|
||||
if(param.getCustomerFinalCheck() == 1){
|
||||
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
|
||||
Assert.notNull(orderDetail, "子单不存在!");
|
||||
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId());
|
||||
Assert.notNull(financialDetail, "财务子单不存在!");
|
||||
BigDecimal refundMoney = BigDecimal.ZERO;
|
||||
if(ObjectUtils.isNotEmpty(afterServiceRecord.getAgreedRefund())){
|
||||
refundMoney = afterServiceRecord.getAgreedRefund();
|
||||
}else {
|
||||
refundMoney = afterServiceRecord.getRefund();
|
||||
}
|
||||
if(refundMoney.compareTo(financialDetail.getPayMoney()) < 0){
|
||||
financialDetail.setPayMoney(financialDetail.getPayMoney().subtract(afterServiceRecord.getAgreedRefund()));
|
||||
}else {
|
||||
refundMoney = financialDetail.getPayMoney();
|
||||
financialDetail.setPayMoney(BigDecimal.ZERO);
|
||||
}
|
||||
// 发起支付撤销
|
||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||
Assert.notNull(orderMaster, "找不到对应的订单");
|
||||
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
||||
Assert.notNull(financialMaster, "找不到订单");
|
||||
Assert.isTrue(financialMaster.getPayStatus() == 1, "订单未支付");
|
||||
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
|
||||
JSONObject response = null;
|
||||
try {
|
||||
response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), String.valueOf(refundMoney));
|
||||
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) {
|
||||
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) {
|
||||
afterServiceRecord.setCustomerFinalCheck(1L);
|
||||
financialDetailService.updateFinancialDetail(financialDetail);
|
||||
}
|
||||
}
|
||||
} catch (BaseAdaPayException e) {
|
||||
throw new BaseException("发起退款异常!");
|
||||
}
|
||||
}
|
||||
afterServiceRecord.setUpdateTime(DateUtils.getNowDate());
|
||||
return afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue