package cn.iocoder.yudao.module.trade.controller.app.cart; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.trade.controller.app.cart.vo.*; import cn.iocoder.yudao.module.trade.service.cart.CartService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Tag(name = "用户 App - 购物车") @RestController @RequestMapping("/trade/cart") @RequiredArgsConstructor @Validated @Slf4j public class AppCartController { @Resource private CartService cartService; @PostMapping("/add") @Operation(summary = "添加购物车商品") public CommonResult addCart(@Valid @RequestBody AppCartAddReqVO addCountReqVO) { return success(cartService.addCart(getLoginUserId(), addCountReqVO)); } @PutMapping("/update-count") @Operation(summary = "更新购物车商品数量") public CommonResult updateCartCount(@Valid @RequestBody AppCartUpdateCountReqVO updateReqVO) { cartService.updateCartCount(getLoginUserId(), updateReqVO); return success(true); } @PutMapping("/update-selected") @Operation(summary = "更新购物车商品选中") public CommonResult updateCartSelected(@Valid @RequestBody AppCartUpdateSelectedReqVO updateReqVO) { cartService.updateCartSelected(getLoginUserId(), updateReqVO); return success(true); } @PutMapping("/reset") @Operation(summary = "重置购物车商品") public CommonResult resetCart(@Valid @RequestBody AppCartResetReqVO updateReqVO) { cartService.resetCart(getLoginUserId(), updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除购物车商品") @Parameter(name = "ids", description = "购物车商品编号", required = true, example = "1024,2048") public CommonResult deleteCart(@RequestParam("ids") List ids) { cartService.deleteCart(getLoginUserId(), ids); return success(true); } @GetMapping("get-count") @Operation(summary = "查询用户在购物车中的商品数量") public CommonResult getCartCount() { return success(cartService.getCartCount(getLoginUserId())); } @GetMapping("/list") @Operation(summary = "查询用户的购物车列表") public CommonResult getCartList() { return success(cartService.getCartList(getLoginUserId())); } }