|
|
@@ -6193,7 +6193,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- List<Long> goodsIds = new ArrayList<>();
|
|
|
if ("XS".equals(order.getBsType()) || "TKXS".equals(order.getBsType()) || "GX".equals(order.getBsType())) {
|
|
|
PjCorpsDesc corpsDesc = corpsDescMapper.selectById(order.getCustomerId());
|
|
|
if (corpsDesc == null) {
|
|
|
@@ -6205,7 +6204,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
.in("pid", orderList)
|
|
|
.eq("is_deleted", 0)
|
|
|
.eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
- goodsIds = list.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> goodsIds = list.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
@@ -6388,7 +6387,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
orderItemsService.updateBatchById(list);
|
|
|
}
|
|
|
if ("额度支付".equals(order.getBusinessSource())) {
|
|
|
- corpsDesc.setLimitAmount(corpsDesc.getLimitAmount().add(order.getTotalMoney()));
|
|
|
+ BigDecimal realTotalMoney = Objects.isNull(order.getPaymentRecoveredBalance()) ? BigDecimal.ZERO : order.getPaymentRecoveredBalance();
|
|
|
+ corpsDesc.setLimitAmount(corpsDesc.getLimitAmount().add(order.getTotalMoney().subtract(realTotalMoney)));
|
|
|
corpsDescMapper.updateById(corpsDesc);
|
|
|
}
|
|
|
if (ObjectUtils.isNull(order.getOldTrxId())) {
|
|
|
@@ -6407,7 +6407,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setXcxStatus("待确认");
|
|
|
} else {
|
|
|
BigDecimal amount = orderListNew.stream().map(PjOrder::getPaymentAmountTl).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- R<Map<String, String>> r = payService.refund(order.getId(), amount, order.getOrdNo(), order.getSrcOrdNo(), order.getOldTrxId());
|
|
|
+ // 减去订单内使用的余额
|
|
|
+ BigDecimal recoveredBalanceAmount = orderListNew.stream().map(PjOrder::getPaymentRecoveredBalance).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal realAmount = amount.subtract(recoveredBalanceAmount);
|
|
|
+ if (realAmount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ corpsDesc.setRecoveredBalance(corpsDesc.getRecoveredBalance().add(recoveredBalanceAmount));
|
|
|
+ corpsDescMapper.updateById(corpsDesc);
|
|
|
+ }
|
|
|
+ R<Map<String, String>> r = payService.refund(order.getId(), realAmount, order.getOrdNo(), order.getSrcOrdNo(), order.getOldTrxId());
|
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
Map<String, String> map = r.getData();
|
|
|
String returnCode = map.get("retcode");
|