From 6439afad386ad5f43c9b2a0295d3b6efa97437dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 11 Mar 2026 16:52:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(shopping):=20=E6=B7=BB=E5=8A=A0=E8=B4=AD?= =?UTF-8?q?=E7=89=A9=E8=BD=A6=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现了购物车删除接口,支持通过ID删除指定购物车 - 添加事务注解确保删除操作的数据一致性 - 集成业务验证逻辑,检查购物车是否存在及状态是否允许删除 - 实现关联数据清理,包括购物车项目、配件和服务的级联删除 - 优化代码格式,统一方法体内的空格规范 --- .../controller/app/ShoppingController.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java index 59e884c3..cf66f14d 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java @@ -238,8 +238,30 @@ public class ShoppingController extends ControllerBase { * 查询购物车 */ @PostMapping("/search") - public ApiResult> search(@Valid @RequestBody ShoppingSearchRequest request){ - return ApiResult.success(shoppingCartService.search(request,MultilingualUtil.getLanguage())); + public ApiResult> search(@Valid @RequestBody ShoppingSearchRequest request) { + return ApiResult.success(shoppingCartService.search(request, MultilingualUtil.getLanguage())); + } + + /** + * 删除购物车 + */ + @Transactional + @PostMapping("/delete") + public ApiResult delete(@RequestParam Long id) { + QuotationShoppingCart cart = shoppingCartService.getById(id); + VUtils.trueThrowBusinessError(Objects.isNull(cart)).throwMessage("未找到购物车信息"); + VUtils.trueThrowBusinessError(cart.getStatus() == 1).throwMessage("已生成报价单不能删除"); + shoppingCartItemService.lambdaUpdate() + .eq(QuotationShoppingCartItem::getCartId, id) + .remove(); + shoppingCartAccessoryService.lambdaUpdate() + .eq(QuotationShoppingCartAccessory::getCartId, id) + .remove(); + shoppingCartServiceService.lambdaUpdate() + .eq(QuotationShoppingCartService::getCartId, id) + .remove(); + shoppingCartService.removeById(id); + return ApiResult.success(); } private Pair getRatio(Long modelId, Long categoryId) {