From e5d17ab1bc9e0779b325c53bf23d61ae4a15432e Mon Sep 17 00:00:00 2001 From: seatonwan9 Date: 星期四, 28 八月 2025 16:17:52 +0800 Subject: [PATCH] 更新代码 --- src/main/java/com/webmanage/service/OrderInfoService.java | 7 +++++++ src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java | 16 ++++++++++++++++ src/main/java/com/webmanage/controller/OrderController.java | 13 +++++++++++++ 3 files changed, 36 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/webmanage/controller/OrderController.java b/src/main/java/com/webmanage/controller/OrderController.java index f3120a7..5a9e406 100644 --- a/src/main/java/com/webmanage/controller/OrderController.java +++ b/src/main/java/com/webmanage/controller/OrderController.java @@ -360,4 +360,17 @@ return Result.error("鍙栨秷璁㈠崟澶辫触锛�" + e.getMessage()); } } + + @GetMapping("/product/{productId}/has-completed-orders") + @ApiOperation("鏍规嵁浜у搧ID鍒ゆ柇鏄惁瀛樺湪瀹℃牳涓殑鍏宠仈璁㈠崟") + public Result<Boolean> hasCompletedOrdersByProductId( + @ApiParam("浜у搧ID") @PathVariable @NotBlank String productId) { + try { + boolean exists = orderInfoService.existsCompletedNotCancelledOrderByProductId(productId); + return Result.success(exists); + } catch (Exception e) { + log.error("鏌ヨ浜у搧鍏宠仈璁㈠崟瀛樺湪鎬уけ璐ワ紝浜у搧ID: {}", productId, e); + return Result.error("鏌ヨ澶辫触锛�" + e.getMessage()); + } + } } diff --git a/src/main/java/com/webmanage/service/OrderInfoService.java b/src/main/java/com/webmanage/service/OrderInfoService.java index 07ff911..ea54fd5 100644 --- a/src/main/java/com/webmanage/service/OrderInfoService.java +++ b/src/main/java/com/webmanage/service/OrderInfoService.java @@ -145,4 +145,11 @@ * @return 鏄惁鏇存柊鎴愬姛 */ boolean updateWorkflowId(String orderId, String workflowId); + + /** + * 鏍规嵁浜у搧ID鍒ゆ柇鏄惁瀛樺湪鏈彇娑堜笖宸插畬鎴愮殑鍏宠仈璁㈠崟 + * @param productId 浜у搧ID + * @return 瀛樺湪杩斿洖true锛屼笉瀛樺湪杩斿洖false + */ + boolean existsCompletedNotCancelledOrderByProductId(String productId); } diff --git a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java index 459acd4..456e8a3 100644 --- a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java @@ -41,6 +41,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Arrays; import java.util.stream.Collectors; /** @@ -1183,4 +1184,19 @@ orderInfo.setUpdatedAt(LocalDateTime.now()); return this.updateById(orderInfo); } + + @Override + public boolean existsCompletedNotCancelledOrderByProductId(String productId) { + if (!StringUtils.hasText(productId)) { + throw new BusinessException("浜у搧ID涓嶈兘涓虹┖"); + } + QueryWrapper<OrderInfo> wrapper = new QueryWrapper<>(); + wrapper.eq("product_id", productId); + // 鏈彇娑堬細閫昏緫鏈垹闄� + wrapper.eq("deleted", 0); + // 瀹℃牳涓細鐘舵�佷笉涓� 宸插畬鎴� 鎴� 宸插彇娑� + wrapper.notIn("order_status", Arrays.asList("宸插畬鎴�", "宸插彇娑�")); + Integer count = this.baseMapper.selectCount(wrapper); + return count != null && count > 0; + } } -- Gitblit v1.8.0