From 5e454dfa0ca751be37e964c91906aa37887497d0 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 13 Jan 2025 15:40:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E5=B8=82=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/RemoteSupermarketSpuService.java | 11 +++++++++++ .../controller/SupermarketSpuController.java | 14 ++++++++++++++ .../impl/SupermarketSpuServiceImpl.java | 19 ++++++++++++++----- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java index bffc597d0..c3e755381 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/api/feign/RemoteSupermarketSpuService.java @@ -75,4 +75,15 @@ public interface RemoteSupermarketSpuService { */ @PostMapping("/supermarketSpu/app/selectListAll") R getSupermarketSpu(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO); + + + /** + * 购物车效验库存 + * @param spuId + * @param incrCount 扣减数量,正数负数都行 + * @return + */ + @GetMapping("/supermarketSpu/app/checkSpuStock") + R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount); + } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SupermarketSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SupermarketSpuController.java index 18d30e4c6..5f9ce2c37 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SupermarketSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SupermarketSpuController.java @@ -28,6 +28,7 @@ import org.springframework.http.HttpHeaders; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -216,5 +217,18 @@ public class SupermarketSpuController { return R.ok(supermarketSpuService.getSupermarketSpuAppDetailById(id)); } + @GetMapping("/app/checkSpuStock") + @SysLog("购物车效验库存") + @Transactional + public R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount) { + SupermarketSpuEntity spu= supermarketSpuService.getById(spuId); + if (spu == null) { + R.failed("商品不存在"); + } + if (spu.getStock() { - int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); - if (item.getIncrCount() <= 0) { - if (i == 0) { - R.failed("商品库存不足"); - } + // 查询当前库存 + SupermarketSpuEntity spu = baseMapper.selectById(item.getId()); + if (spu == null) { + R.failed(spu.getProductName()+"商品不存在"); } + // 检查库存是否足够 + if (item.getIncrCount() < 0 && Math.abs(item.getIncrCount()) > spu.getStock()) { + R.failed(spu.getProductName()+"库存不足,无法完成操作"); + } + int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); +// if (item.getIncrCount() <= 0) { +// if (i == 0) { +// R.failed("商品库存不足"); +// } +// } }); return R.ok();