From cd5b5d190749988f969f5c3c7e41a1037b58046e Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 13 Jan 2025 15:29:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/feign/RemoteCanteenSpuService.java | 10 ++++++++++ .../feign/RemoteOnlineCanteenSpuService.java | 11 ++++++++++ .../CanteenOnlineSpuController.java | 16 +++++++++++++++ .../controller/CanteenSpuController.java | 18 +++++++++++++++++ .../impl/CanteenOnlineSpuServiceImpl.java | 19 +++++++++++++----- .../service/impl/CanteenSpuServiceImpl.java | 20 ++++++++++++++----- 6 files changed, 84 insertions(+), 10 deletions(-) diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteCanteenSpuService.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteCanteenSpuService.java index 3ecb3bc53..d13d7849d 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteCanteenSpuService.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteCanteenSpuService.java @@ -21,6 +21,7 @@ package com.bsd.pjcloud.canteen.api.feign; import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO; +import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity; import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity; import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; import com.bsd.pjcloud.common.core.util.R; @@ -66,4 +67,13 @@ public interface RemoteCanteenSpuService { @PostMapping("/canteenSpu/ad/getSpuListByIds") R> getSpuListByIds(@RequestBody List ids); + /** + * 购物车效验库存 + * @param spuId + * @param incrCount 扣减数量,正数负数都行 + * @return + */ + @GetMapping("/canteenSpu/app/checkSpuStock") + R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount); + } diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteOnlineCanteenSpuService.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteOnlineCanteenSpuService.java index 9875e7fff..70d6a0a34 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteOnlineCanteenSpuService.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/api/feign/RemoteOnlineCanteenSpuService.java @@ -21,6 +21,7 @@ package com.bsd.pjcloud.canteen.api.feign; import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO; +import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity; import com.bsd.pjcloud.canteen.vo.APPOnlineSpuVO; import com.bsd.pjcloud.canteen.vo.app.CanteenOnlineSpuAppVO; import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; @@ -76,4 +77,14 @@ public interface RemoteOnlineCanteenSpuService { @PostMapping("/canteenOnlineSpu/app/getSpuListByIds") R> getSpuListByIds(@RequestBody List ids); + + /** + * 购物车效验库存 + * @param spuId + * @param incrCount 扣减数量,正数负数都行 + * @return + */ + @GetMapping("/canteenOnlineSpu/app/checkSpuStock") + R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount); + } diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java index 87d5903aa..fbf426b41 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java @@ -23,6 +23,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; @@ -153,9 +154,24 @@ public class CanteenOnlineSpuController { } + @GetMapping("/app/checkSpuStock") + @SysLog("购物车效验库存") + @Transactional + public R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount) { + CanteenOnlineSpuEntity canteenOnlineSpuEntity = canteenOnlineSpuService.getById(spuId); + if (canteenOnlineSpuEntity == null) { + R.failed("商品不存在"); + } + if (canteenOnlineSpuEntity.getStock() list = canteenSpuService.list(new LambdaQueryWrapper().in(CanteenSpuEntity::getId, ids)); return R.ok(list); } + + + @GetMapping("/app/checkSpuStock") + @SysLog("购物车效验库存") + @Transactional + public R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount) { + CanteenSpuEntity canteenSpuEntity = canteenSpuService.getById(spuId); + if (canteenSpuEntity == null) { + R.failed("商品不存在"); + } + if (canteenSpuEntity.getStock() { - int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); - if (item.getIncrCount() <= 0) { - if (i == 0) { - R.failed("商品库存不足"); - } + // 查询当前库存 + CanteenOnlineSpuEntity spu = baseMapper.selectById(item.getId()); + if (spu == null) { + R.failed(spu.getName()+"商品不存在"); } + // 检查库存是否足够 + if (item.getIncrCount() < 0 && Math.abs(item.getIncrCount()) > spu.getStock()) { + R.failed(spu.getName()+"库存不足,无法完成操作"); + } + int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); +// if (item.getIncrCount() <= 0) { +// if (i == 0) { +// R.failed("商品库存不足"); +// } +// } }); return R.ok(); diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java index 45a8f1098..00177f504 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO; +import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity; import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity; import com.bsd.pjcloud.canteen.mapper.CanteenSpuMapper; import com.bsd.pjcloud.canteen.service.CanteenDailyMenuService; @@ -39,12 +40,21 @@ public class CanteenSpuServiceImpl extends ServiceImpl { - int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); - if (item.getIncrCount() <= 0) { - if (i == 0) { - R.failed("商品库存不足"); - } + // 查询当前库存 + CanteenSpuEntity spu = baseMapper.selectById(item.getId()); + if (spu == null) { + R.failed(spu.getName()+"商品不存在"); } + // 检查库存是否足够 + if (item.getIncrCount() < 0 && Math.abs(item.getIncrCount()) > spu.getStock()) { + R.failed(spu.getName()+"库存不足,无法完成操作"); + } + int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); +// if (item.getIncrCount() <= 0) { +// if (i == 0) { +// R.failed("商品库存不足"); +// } +// } }); return R.ok(); } 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 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E5=B8=82?= =?UTF-8?q?=E5=BA=93=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(); From 5e8f5a2e2e3155fbd172c868aeb8439a6b0d0464 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 13 Jan 2025 15:47:13 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8F=9C=E5=93=81?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bsd/pjcloud/canteen/vo/DailyMenuVO.java | 11 +++++++++++ .../main/resources/mapper/CanteenDailyMenuMapper.xml | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/DailyMenuVO.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/DailyMenuVO.java index 8735b093c..5f0af6f8b 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/DailyMenuVO.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/DailyMenuVO.java @@ -33,4 +33,15 @@ public class DailyMenuVO { * 时间类型 */ private Integer hourType; + + /** + * 价格 + */ + private Integer price; + + + /** + * 分类id + */ + private Long categoryId; } diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenDailyMenuMapper.xml b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenDailyMenuMapper.xml index cba747499..e16ca33eb 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenDailyMenuMapper.xml +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/CanteenDailyMenuMapper.xml @@ -35,7 +35,9 @@ t.id as tid, sp.name, sp.pic_url, - t.hour_type + t.hour_type, + sp.price, + sp.category_id FROM canteen_daily_menu t LEFT JOIN canteen_spu sp on t.spu_id=sp.id