diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderPayController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderPayController.java index c810a72..cd0fcb2 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/OrderPayController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderPayController.java @@ -42,8 +42,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; -import static com.gxwebsoft.common.core.constants.OrderConstants.ORDER_STATUS_OVER; -import static com.gxwebsoft.common.core.constants.OrderConstants.PAY_STATUS_NO_PAY; +import static com.gxwebsoft.common.core.constants.OrderConstants.*; /** * 订单记录表控制器 @@ -100,28 +99,25 @@ public class OrderPayController extends BaseController { @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { final OrderPay orderPay = orderPayService.getById(id); - final BigDecimal totalPrice = orderPay.getTotalPrice(); - final List list = orderPayService.list(new LambdaQueryWrapper() - .eq(OrderPay::getUserId,orderPay.getUserId()) - .eq(OrderPay::getPayStatus, PAY_STATUS_NO_PAY) + final BigDecimal rent = orderPay.getBatteryRent(); + final OrderPay one = orderPayService.getOne(new LambdaQueryWrapper() + .eq(OrderPay::getRentOrderId, orderPay.getRentOrderId()) + .eq(OrderPay::getUserId, orderPay.getUserId()) + .eq(OrderPay::getPayStatus, PAY_STATUS_SUCCESS) + .orderByDesc(OrderPay::getId) + .last("limit 1") ); - System.out.println("list.size = " + list.size()); final Integer goodsId = orderPay.getGoodsId(); final EquipmentGoods goods = equipmentGoodsService.getByIdRel(goodsId); final BigDecimal batteryRent = goods.getBatteryRent(); - System.out.println("batteryRent = " + batteryRent); + // 按新的续费价格 orderPay.setTotalPrice(batteryRent); - - list.forEach(d -> { - final long between = DateUtil.between(new Date(), d.getExpirationTime(), DateUnit.DAY, false); - System.out.println("item.. = " + between); - if(between < 0){ - orderPay.setTotalPrice(totalPrice); - } - }); + final long between = DateUtil.between(new Date(), one.getExpirationTime(), DateUnit.DAY, false); + if(between < 0){ + // 有逾期的订单不能享受折扣 + orderPay.setTotalPrice(rent); + } return success(orderPay); - // 使用关联查询 - //return success(orderPayService.getByIdRel(id)); } @GetMapping("/change-order-no") diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderPayServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderPayServiceImpl.java index e8ff5f2..b129b76 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderPayServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderPayServiceImpl.java @@ -33,7 +33,7 @@ public class OrderPayServiceImpl extends ServiceImpl i List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("pay_time desc"); + page.setDefaultOrder("id desc"); return page.sortRecords(list); }