优惠券购买

This commit is contained in:
2025-08-01 11:38:13 +08:00
parent 6f4c7f605a
commit ac99ede4b1
2 changed files with 21 additions and 8 deletions

View File

@@ -246,8 +246,9 @@ public class OrderBiz {
} }
}); });
orderRepository.clearOrderCache(orderId); // 更新完了,清理下 orderRepository.clearOrderCache(orderId); // 更新完了,清理下
if (order.getCouponRecordId() != null) { Integer couponRecordId = order.getCouponRecordId();
couponBiz.userUseCoupon(order.getMemberId(), order.getFaceId(), order.getCouponRecordId(), orderId); if (couponRecordId != null) {
couponBiz.userUseCoupon(order.getMemberId(), order.getFaceId(), couponRecordId, orderId);
} }
//支付时间 //支付时间

View File

@@ -160,13 +160,20 @@ public class OrderServiceImpl implements OrderService {
public ApiResponse<PageInfo<OrderRespVO>> pageQueryDetail(OrderReqQuery query) { public ApiResponse<PageInfo<OrderRespVO>> pageQueryDetail(OrderReqQuery query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize()); PageHelper.startPage(query.getPageNum(), query.getPageSize());
List<OrderRespVO> list = orderMapper.listDetail(query); List<OrderRespVO> list = orderMapper.listDetail(query);
for (OrderRespVO item : list) {
item.setPrice(item.getPayPrice());
}
PageInfo<OrderRespVO> pageInfo = new PageInfo<>(list); PageInfo<OrderRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo); return ApiResponse.success(pageInfo);
} }
@Override @Override
public ApiResponse<List<OrderRespVO>> list(OrderReqQuery query) { public ApiResponse<List<OrderRespVO>> list(OrderReqQuery query) {
return ApiResponse.success(orderMapper.list(query)); List<OrderRespVO> list = orderMapper.list(query);
for (OrderRespVO item : list) {
item.setPrice(item.getPayPrice());
}
return ApiResponse.success(list);
} }
@Override @Override
@@ -521,11 +528,6 @@ public class OrderServiceImpl implements OrderService {
} }
// promo code // promo code
order.setPayPrice(priceObj.getPrice()); order.setPayPrice(priceObj.getPrice());
order.setPayPrice(order.getPayPrice().subtract(order.getCouponPrice()));
if (order.getPayPrice().compareTo(BigDecimal.ZERO) < NumberConstant.ZERO) {
// 至少需要支付0.01
order.setPayPrice(BigDecimal.valueOf(0.01));
}
order.setFaceId(priceObj.getFaceId()); order.setFaceId(priceObj.getFaceId());
if (order.getPayPrice().equals(BigDecimal.ZERO)) { if (order.getPayPrice().equals(BigDecimal.ZERO)) {
order.setStatus(OrderStateEnum.PAID.getState()); order.setStatus(OrderStateEnum.PAID.getState());
@@ -558,6 +560,16 @@ public class OrderServiceImpl implements OrderService {
order.setCouponId(couponRecord.getCouponId()); order.setCouponId(couponRecord.getCouponId());
order.setCouponRecordId(couponRecord.getId()); order.setCouponRecordId(couponRecord.getId());
order.setCouponPrice(couponRecord.getCoupon().calculateDiscountPrice(order.getPrice())); order.setCouponPrice(couponRecord.getCoupon().calculateDiscountPrice(order.getPrice()));
order.setPayPrice(order.getPayPrice().subtract(order.getCouponPrice()));
if (order.getPayPrice().compareTo(BigDecimal.ZERO) < NumberConstant.ZERO) {
// 至少需要支付0.01
order.setPayPrice(BigDecimal.valueOf(0.01));
}
} else {
log.info("优惠券不可用,优惠券记录ID:{},优惠券ID:{}", couponRecord.getId(), couponRecord.getCouponId());
order.setCouponId(null);
order.setCouponRecordId(null);
order.setCouponPrice(BigDecimal.ZERO);
} }
} }
List<OrderItemEntity> orderItems = new ArrayList<>(); List<OrderItemEntity> orderItems = new ArrayList<>();