mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-07-04 14:08:01 +08:00
退款金额小于等于0, 不执行退款
This commit is contained in:
@@ -769,9 +769,9 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
@Override
|
@Override
|
||||||
public void refundOrder(OrderBasicInfo orderBasicInfo) {
|
public void refundOrder(OrderBasicInfo orderBasicInfo) {
|
||||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||||
// 如果退款金额小于0, 不执行退款
|
// 如果退款金额小于等于0, 不执行退款
|
||||||
if (refundAmount.compareTo(BigDecimal.ZERO) < 0) {
|
if (refundAmount == null || refundAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
logger.info("执行订单退款-退款金额小于0,orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount);
|
logger.info("执行订单退款-退款金额小于等于0,orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 查询该笔订单的退款记录
|
// 查询该笔订单的退款记录
|
||||||
@@ -987,23 +987,38 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
|
public void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
|
||||||
logger.info("【{}】-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
|
logger.info("【{}】-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
|
||||||
|
// 需要退款的金额
|
||||||
|
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||||
|
|
||||||
|
// 如果退款金额小于等于0, 不执行退款
|
||||||
|
if (refundAmount == null || refundAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
logger.info("balancePaymentOrderRefund-退款金额小于等于0,orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 订单编号
|
// 订单编号
|
||||||
String orderCode = orderBasicInfo.getOrderCode();
|
String orderCode = orderBasicInfo.getOrderCode();
|
||||||
|
|
||||||
// 运营商id
|
// 运营商id
|
||||||
String merchantId = orderBasicInfo.getMerchantId();
|
String merchantId = orderBasicInfo.getMerchantId();
|
||||||
|
|
||||||
// 订单消费金额
|
// 订单消费金额
|
||||||
BigDecimal orderAmount = orderBasicInfo.getOrderAmount();
|
BigDecimal orderAmount = orderBasicInfo.getOrderAmount();
|
||||||
|
|
||||||
// 查支付记录
|
// 查支付记录
|
||||||
List<OrderPayRecord> payRecordList = orderPayRecordService.getOrderPayRecordList(orderCode);
|
List<OrderPayRecord> payRecordList = orderPayRecordService.getOrderPayRecordList(orderCode);
|
||||||
|
|
||||||
// 根据payMode分组
|
// 根据payMode分组
|
||||||
Map<String, List<OrderPayRecord>> payRecordMap = payRecordList.stream()
|
Map<String, List<OrderPayRecord>> payRecordMap = payRecordList.stream()
|
||||||
.collect(Collectors.groupingBy(OrderPayRecord::getPayMode));
|
.collect(Collectors.groupingBy(OrderPayRecord::getPayMode));
|
||||||
|
|
||||||
// 获取本金支付的记录
|
// 获取本金支付的记录
|
||||||
List<OrderPayRecord> principalPayRecordList = payRecordMap.get(OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue());
|
List<OrderPayRecord> principalPayRecordList = payRecordMap.get(OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue());
|
||||||
BigDecimal principalPay = null;
|
BigDecimal principalPay = null;
|
||||||
if (CollectionUtils.isNotEmpty(principalPayRecordList)) {
|
if (CollectionUtils.isNotEmpty(principalPayRecordList)) {
|
||||||
principalPay = principalPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
principalPay = principalPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取赠送金支付的记录
|
// 获取赠送金支付的记录
|
||||||
List<OrderPayRecord> giftPayRecordList = payRecordMap.get(OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue());
|
List<OrderPayRecord> giftPayRecordList = payRecordMap.get(OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue());
|
||||||
BigDecimal giftPay = null;
|
BigDecimal giftPay = null;
|
||||||
@@ -1020,6 +1035,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
|
|
||||||
// 需要退回本金的金额
|
// 需要退回本金的金额
|
||||||
BigDecimal returnPrincipal = returnAmountMap.get("returnPrincipal");
|
BigDecimal returnPrincipal = returnAmountMap.get("returnPrincipal");
|
||||||
|
|
||||||
// 需要退回赠送金的金额
|
// 需要退回赠送金的金额
|
||||||
BigDecimal returnGift = returnAmountMap.get("returnGift");
|
BigDecimal returnGift = returnAmountMap.get("returnGift");
|
||||||
|
|
||||||
@@ -1049,15 +1065,19 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
|||||||
*/
|
*/
|
||||||
private void onlinePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
|
private void onlinePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
|
||||||
logger.info("【{}】-在线支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
|
logger.info("【{}】-在线支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
|
||||||
// 订单编号
|
|
||||||
String orderCode = orderBasicInfo.getOrderCode();
|
|
||||||
|
|
||||||
// 需要退款的金额
|
// 需要退款的金额
|
||||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||||
|
|
||||||
|
// 如果退款金额小于等于0, 不执行退款
|
||||||
|
if (refundAmount == null || refundAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
logger.info("onlinePaymentOrderRefund-退款金额小于等于0,orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 微信退款逻辑
|
// 微信退款逻辑
|
||||||
ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO();
|
ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO();
|
||||||
applyRefundDTO.setOrderCode(orderCode);
|
applyRefundDTO.setOrderCode(orderBasicInfo.getOrderCode());
|
||||||
applyRefundDTO.setRefundType(Constants.ONE);
|
applyRefundDTO.setRefundType(Constants.ONE);
|
||||||
applyRefundDTO.setRefundAmount(refundAmount);
|
applyRefundDTO.setRefundAmount(refundAmount);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user