新增刷数据接口

This commit is contained in:
2023-05-25 15:58:07 +08:00
parent c812443176
commit f626a88d5e

View File

@@ -167,66 +167,64 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return orderListVOS; return orderListVOS;
} }
private void tempUpdateVirtualAmount(List<OrderListVO> orderListVOS) { private void tempUpdateVirtualAmount(OrderListVO orderListVO) {
for (OrderListVO orderListVO : orderListVOS) { if (orderListVO.getVirtualAmount() != null) {
if (orderListVO.getVirtualAmount() != null) { return;
continue; }
} // 订单总消费金额
// 订单总消费金额 BigDecimal orderAmount = new BigDecimal(orderListVO.getOrderAmount());
BigDecimal orderAmount = new BigDecimal(orderListVO.getOrderAmount()); // 支付金额
// 支付金额 BigDecimal payAmount = new BigDecimal(orderListVO.getPayAmount());
BigDecimal payAmount = new BigDecimal(orderListVO.getPayAmount());
if (orderAmount.compareTo(payAmount) > 0) { if (orderAmount.compareTo(payAmount) > 0) {
orderAmount = payAmount; orderAmount = payAmount;
} }
// 使用虚拟金额消费 金额 // 使用虚拟金额消费 金额
BigDecimal virtualAmount = BigDecimal.ZERO; BigDecimal virtualAmount = BigDecimal.ZERO;
// 结算金额 // 结算金额
BigDecimal settleAmount = BigDecimal.ZERO; BigDecimal settleAmount = BigDecimal.ZERO;
if (orderAmount.compareTo(BigDecimal.ZERO) > 0) { if (orderAmount.compareTo(BigDecimal.ZERO) > 0) {
if (StringUtils.equals(orderListVO.getPayMode(), OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) { if (StringUtils.equals(orderListVO.getPayMode(), OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
/* /*
余额支付 查询支付记录如全部用本金支付则虚拟金额为0结算金额为订单消费金额 余额支付 查询支付记录如全部用本金支付则虚拟金额为0结算金额为订单消费金额
如果使用了赠送金额,虚拟金额为赠送金额支付部分,结算金额=订单消费金额-虚拟金额消费部分 如果使用了赠送金额,虚拟金额为赠送金额支付部分,结算金额=订单消费金额-虚拟金额消费部分
*/ */
// 查询支付记录 // 查询支付记录
List<OrderPayRecord> orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderListVO.getOrderCode()); List<OrderPayRecord> orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderListVO.getOrderCode());
for (OrderPayRecord orderPayRecord : orderPayRecordList) { for (OrderPayRecord orderPayRecord : orderPayRecordList) {
if (StringUtils.equals(orderPayRecord.getPayMode(), OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) { if (StringUtils.equals(orderPayRecord.getPayMode(), OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) {
BigDecimal refundAmount = orderPayRecord.getRefundAmount(); BigDecimal refundAmount = orderPayRecord.getRefundAmount();
if (refundAmount == null) { if (refundAmount == null) {
// 退款金额为null, 需要退款的金额 = 支付金额 - 订单金额 // 退款金额为null, 需要退款的金额 = 支付金额 - 订单金额
refundAmount = orderPayRecord.getPayAmount().subtract(orderAmount); refundAmount = orderPayRecord.getPayAmount().subtract(orderAmount);
}
// 赠送金额消费部分 = 支付金额 - 需要退款金额
virtualAmount = orderPayRecord.getPayAmount().subtract(refundAmount);
// 结算金额 = 订单金额 - 赠送金额消费部分
settleAmount = orderAmount.subtract(virtualAmount);
} else {
// 没有使用赠送金额支付那么虚拟金额就是0结算金额就等于订单金额
settleAmount = orderAmount;
} }
// 赠送金额消费部分 = 支付金额 - 需要退款金额
virtualAmount = orderPayRecord.getPayAmount().subtract(refundAmount);
// 结算金额 = 订单金额 - 赠送金额消费部分
settleAmount = orderAmount.subtract(virtualAmount);
} else {
// 没有使用赠送金额支付那么虚拟金额就是0结算金额就等于订单金额
settleAmount = orderAmount;
} }
} else { }
} else {
/* /*
微信支付 虚拟金额为0 结算金额等于订单消费金额 微信支付 虚拟金额为0 结算金额等于订单消费金额
*/ */
settleAmount = orderAmount; settleAmount = orderAmount;
}
} }
OrderBasicInfo build = OrderBasicInfo.builder()
.id(Long.parseLong(orderListVO.getId()))
.orderCode(orderListVO.getOrderCode())
.orderAmount(orderAmount)
.virtualAmount(virtualAmount)
.settleAmount(settleAmount)
.build();
updateOrderBasicInfo(build);
} }
OrderBasicInfo build = OrderBasicInfo.builder()
.id(Long.parseLong(orderListVO.getId()))
.orderCode(orderListVO.getOrderCode())
.orderAmount(orderAmount)
.virtualAmount(virtualAmount)
.settleAmount(settleAmount)
.build();
updateOrderBasicInfo(build);
} }
/** /**
@@ -1713,8 +1711,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (CollectionUtils.isEmpty(orderListVOS)) { if (CollectionUtils.isEmpty(orderListVOS)) {
return "没有订单需要修改"; return "没有订单需要修改";
} }
int i = 0;
tempUpdateVirtualAmount(orderListVOS); for (OrderListVO orderListVO : orderListVOS) {
return "共修改" + orderListVOS.size() + "条订单数据"; try {
tempUpdateVirtualAmount(orderListVO);
i += 1;
} catch (Exception e) {
logger.error("修改虚拟金额字段失败", e);
}
}
return "共查询到" + i + "条订单,修改成功" + i + "条订单数据";
} }
} }