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();