From fd45fcbd496bbeaf9ee18edd8f2f858cf9cebaf3 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 24 一月 2025 16:47:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java | 92 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 85 insertions(+), 7 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java index 3cc2ec4..89451c0 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; @@ -9,10 +10,12 @@ import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.redis.annotation.DistributedLock; import com.ruoyi.other.api.domain.Goods; import com.ruoyi.other.api.domain.VipSetting; import com.ruoyi.other.api.feignClient.VipSettingClient; import com.ruoyi.other.service.GoodsService; +import com.ruoyi.other.service.VipSettingService; import com.ruoyi.other.vo.GoodsVO; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; @@ -36,6 +39,8 @@ private GoodsService goodsService; @Resource private VipSettingClient settingClient; + @Resource + private VipSettingService vipSettingService; /** * 添加商品 @@ -43,6 +48,22 @@ @PostMapping("/addGoods") @ApiOperation(value = "发布商品", tags = {"管理后台-商品管理"}) public R<Void> addGoods(@RequestBody Goods goods) { + if(goods.getPurchaseLimit()==null){ + goods.setPurchaseLimit(-1); + } + goodsService.addGoods(goods); + return R.ok(); + } + + /** + * 商品克隆 + */ + @GetMapping("/cloneGoods") + @ApiOperation(value = "商品克隆", tags = {"管理后台-商品管理"}) + public R<Void> cloneGoods(@RequestParam Long goodsId,@RequestParam String goodsName) { + Goods goods = goodsService.getManageGoodsDetail(goodsId); + goods.setId(null); + goods.setName(goodsName); goodsService.addGoods(goods); return R.ok(); } @@ -73,7 +94,20 @@ @PutMapping("/manageGoodsUpdate") @ApiOperation(value = "商品修改", tags = {"管理后台-商品管理"}) public R<Void> manageGoodsUpdate(@RequestBody Goods goods){ + if(goods.getPurchaseLimit()==null){ + goods.setPurchaseLimit(-1); + } goodsService.updateManageGoods(goods); + if (goods.getType()==2){ + goods.setAppointStore(2); + goodsService.updateById(goods); + } + if (goods.getType()==1){ + LambdaUpdateWrapper<Goods> goodsLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + goodsLambdaUpdateWrapper.set(Goods::getDistributionMode,null); + goodsLambdaUpdateWrapper.eq(Goods::getId, goods.getId()); + goodsService.update(goodsLambdaUpdateWrapper); + } return R.ok(); } @@ -112,7 +146,13 @@ @DeleteMapping("/manageGoodsDelete/{goodsId}") @ApiOperation(value = "商品删除", tags = {"管理后台-商品管理"}) public R<Void> manageGoodsDelete(@PathVariable("goodsId") Long goodsId){ - goodsService.removeById(goodsId); + long count = vipSettingService.count(new LambdaQueryWrapper<VipSetting>().last(" where FIND_IN_SET(" + goodsId + ", good_ids)")); + if(0 < count){ + return R.fail("商品已被会员配置使用,不能删除"); + } + Goods goods = goodsService.getById(goodsId); + goods.setDelFlag(1); + goodsService.updateById(goods); return R.ok(); } @@ -154,11 +194,14 @@ */ @GetMapping("/goodsDetail/{goodsId}") @ApiOperation(value = "商品详情", tags = {"小程序-商城-首页"}) - public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId){ - return R.ok(goodsService.goodsDetail(goodsId)); + public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId, + Integer shopId, + String longitude, + String latitude) { + return R.ok(goodsService.goodsDetail(goodsId, shopId, longitude, latitude)); } - - + + /** * 根据类型(1=服务商品,2=单品商品)获取商品数据 * @param type @@ -170,8 +213,8 @@ List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getType, type).eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2)); return R.ok(list); } - - + + /** * 根据id获取商品信息 * @param id @@ -191,5 +234,40 @@ return R.ok(goods); } + + /** + * 编辑商品 + * @param goods + * @return + */ + @PostMapping("/editGoodsList") + public R editGoodsList(@RequestBody List<Goods> goods){ + goodsService.updateBatchById(goods); + return R.ok(); + } + + + /** + * 商品销量增加 + */ + @PutMapping("/editGoodsNum") + @DistributedLock(lockNamePre = "#goods_lock", lockNamePost = "#goodsId") + public R<Void> editGoodsNum(@RequestParam("goodsId") Integer goodsId, @RequestParam("num") Integer num){ + Goods goods = goodsService.getById(goodsId); + goods.setSaleNum(goods.getSaleNum() + num); + goodsService.updateById(goods); + return R.ok(); + } + + + /** + * 获取所有商品 + * @return + */ + @PostMapping("/getAllGoods") + public R<List<Goods>> getAllGoods(){ + List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2)); + return R.ok(list); + } } -- Gitblit v1.7.1