You've already forked FrameTour-BE
refactor(order): 重构订单创建和价格计算逻辑
- 修改订单服务中的券码使用逻辑,增加人脸 ID 参数 - 优化价格计算控制器和服务中的预览模式 - 更新券码使用记录,支持人脸 ID 记录 - 修复零金额订单的处理逻辑 - 优化日志输出级别和内容
This commit is contained in:
@@ -876,13 +876,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
MemberRespVO member = memberMapper.getById(userId);
|
||||
order.setOpenId(member.getOpenId());
|
||||
order.setScenicId(face.getScenicId());
|
||||
|
||||
order.setSlashPrice(cachedResult.getOriginalAmount());
|
||||
order.setPrice(cachedResult.getFinalAmount());
|
||||
// promo code
|
||||
order.setPayPrice(cachedResult.getFinalAmount());
|
||||
}
|
||||
if (order.getPayPrice().equals(BigDecimal.ZERO)) {
|
||||
order.setSlashPrice(cachedResult.getOriginalAmount());
|
||||
order.setPrice(cachedResult.getFinalAmount());
|
||||
// promo code
|
||||
order.setPayPrice(cachedResult.getFinalAmount());
|
||||
if (order.getPayPrice().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
order.setStatus(OrderStateEnum.PAID.getState());
|
||||
order.setPayAt(new Date());
|
||||
} else {
|
||||
@@ -909,7 +908,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
if (cachedResult.getUsedVoucher() != null) {
|
||||
order.setBrokerId(cachedResult.getUsedVoucher().getBrokerId());
|
||||
order.setPromoCode(cachedResult.getUsedVoucher().getVoucherCode());
|
||||
iVoucherService.markVoucherAsUsed(cachedResult.getUsedVoucher().getVoucherCode(), order.getId().toString());
|
||||
iVoucherService.markVoucherAsUsed(cachedResult.getUsedVoucher().getVoucherCode(), "用户下单", order.getId().toString(), cachedResult.getUsedVoucher().getDiscountValue(), face.getId());
|
||||
}
|
||||
List<OrderItemEntity> orderItems = new ArrayList<>();
|
||||
OrderItemEntity orderItem = new OrderItemEntity();
|
||||
@@ -932,7 +931,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
OrderEntity order = orderMapper.get(orderId);
|
||||
|
||||
// 检查订单金额是否为0
|
||||
if (order.getPayPrice() == null || order.getPayPrice().compareTo(BigDecimal.ZERO) == 0) {
|
||||
if (order.getPayPrice() == null || order.getPayPrice().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
// 零金额订单:设置needPay为false,直接标记为已支付
|
||||
order.setStatus(1); // 1表示已支付
|
||||
order.setPayAt(new Date());
|
||||
|
Reference in New Issue
Block a user