退款成功
This commit is contained in:
parent
afdaa2a491
commit
ff2c4e92be
|
|
@ -1,15 +1,34 @@
|
||||||
package com.ghy.order.service.impl;
|
package com.ghy.order.service.impl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
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.DateUtils;
|
||||||
|
import com.ghy.common.utils.ObjectUtils;
|
||||||
import com.ghy.order.domain.AfterServiceImgs;
|
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.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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ghy.order.mapper.AfterServiceRecordMapper;
|
import com.ghy.order.mapper.AfterServiceRecordMapper;
|
||||||
import com.ghy.order.domain.AfterServiceRecord;
|
import com.ghy.order.domain.AfterServiceRecord;
|
||||||
import com.ghy.order.service.IAfterServiceRecordService;
|
import com.ghy.order.service.IAfterServiceRecordService;
|
||||||
import com.ghy.common.core.text.Convert;
|
import com.ghy.common.core.text.Convert;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后记录Service业务层处理
|
* 售后记录Service业务层处理
|
||||||
|
|
@ -26,6 +45,21 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
@Autowired
|
@Autowired
|
||||||
private IAfterServiceImgsService afterServiceImgsService;
|
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 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@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());
|
afterServiceRecord.setUpdateTime(DateUtils.getNowDate());
|
||||||
return afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
return afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue