From e9d5d32c7ee67eec2f47ed80fe9aae92a0ce7ec1 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 14 一月 2025 10:17:38 +0800 Subject: [PATCH] 12.18 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java | 142 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 119 insertions(+), 23 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 19c1e53..4fd3c4b 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,17 +2,22 @@ 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; import com.ruoyi.common.core.domain.R; 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.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -28,27 +33,31 @@ */ @RestController @RequestMapping("/goods") -@Api(tags = "商品") +@Api("商品") public class GoodsController extends BaseController { @Resource private GoodsService goodsService; + @Resource + private VipSettingClient settingClient; + @Resource + private VipSettingService vipSettingService; /** * 添加商品 */ @PostMapping("/addGoods") - @ApiOperation(value = "后台商品添加", tags = {"管理后台-商品管理-发布商品"}) + @ApiOperation(value = "发布商品", tags = {"管理后台-商品管理"}) public R<Void> addGoods(@RequestBody Goods goods) { goodsService.addGoods(goods); return R.ok(); } /** - * 后台管理商品列表 + * 管理后台商品列表 */ @GetMapping("/manageGoodsList") - @ApiOperation(value = "后台管理商品列表", tags = {"管理后台-商品管理-商品列表"}) - public R<IPage<Goods>> manageGoodsList(, + @ApiOperation(value = "商品列表", tags = {"管理后台-商品管理"}) + public R<IPage<Goods>> manageGoodsList(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("每一页数据大小") Integer pageSize, Goods goods){ return R.ok(goodsService.getManageGoodsList(new Page<>(pageNum, pageSize), goods)); @@ -58,7 +67,7 @@ * 后台商品详情 */ @GetMapping("/manageGoodsDetail/{goodsId}") - @ApiOperation(value = "后台商品详情", tags = {"管理后台-商品管理-商品详情"}) + @ApiOperation(value = "商品详情", tags = {"管理后台-商品管理"}) public R<Goods> manageGoodsDetail(@PathVariable("goodsId") Long goodsId){ return R.ok(goodsService.getManageGoodsDetail(goodsId)); } @@ -67,20 +76,72 @@ * 后台商品修改 */ @PutMapping("/manageGoodsUpdate") - @ApiOperation(value = "后台商品修改", tags = {"管理后台-商品管理-商品修改"}) + @ApiOperation(value = "商品修改", tags = {"管理后台-商品管理"}) public R<Void> manageGoodsUpdate(@RequestBody Goods goods){ 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(); } + + + @PutMapping("/editGoodsSort") + @ApiOperation(value = "商品修改排序", tags = {"管理后台-商品管理"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "商品id", name = "id", dataType = "int", required = true), + @ApiImplicitParam(value = "排序", name = "sort", dataType = "int", required = true), + }) + public R editGoodsSort(@RequestParam("id") Integer id, @RequestParam("sort") Integer sort){ + Goods goods = goodsService.getById(id); + goods.setSort(sort); + goodsService.updateById(goods); + return R.ok(); + } + + + + + /** + * 更新上/下架状态 + */ + @PutMapping("/manageGoodsStatus/{goodsId}/{status}") + @ApiOperation(value = "商品上/下架", tags = {"管理后台-商品管理"}) + public R<Void> manageGoodsStatus(@PathVariable("goodsId") Long goodsId, + @PathVariable("status") Integer status){ + goodsService.lambdaUpdate().eq(Goods::getId, goodsId).set(Goods::getStatus, status).update(); + return R.ok(); + } + /** * 后台商品删除 */ @DeleteMapping("/manageGoodsDelete/{goodsId}") - @ApiOperation(value = "后台商品删除", tags = {"管理后台-商品管理-商品删除"}) + @ApiOperation(value = "商品删除", tags = {"管理后台-商品管理"}) public R<Void> manageGoodsDelete(@PathVariable("goodsId") Long goodsId){ + long count = vipSettingService.count(new LambdaQueryWrapper<VipSetting>().last(" where FIND_IN_SET(" + goodsId + ", good_ids)")); + if(0 < count){ + return R.fail("商品已被会员配置使用,不能删除"); + } goodsService.removeById(goodsId); return R.ok(); + } + + /** + * 获取会员等级信息 + */ + @GetMapping("/getVipSetting") + @ApiOperation(value = "会员等级信息", tags = {"管理后台-商品管理"}) + public R<List<VipSetting>> getVipSetting(){ + return settingClient.info(); } @@ -89,10 +150,9 @@ * 商品列表 */ @GetMapping("/goodsList") - @ApiOperation(value = "商品列表", tags = {"小程序-商城-首页-热门商品列表", "首页热门商品-小程序"}) - public R<TableDataInfo> goodsList(Goods goods){ - startPage(); - return R.ok(getDataTable(goodsService.goodsList(goods))); + @ApiOperation(value = "热门商品列表", tags = {"小程序-商城-首页", "小程序-首页"}) + public R<PageInfo<GoodsVO>> goodsList(Goods goods){ + return R.ok(goodsService.goodsList(goods)); } @@ -100,10 +160,11 @@ * 指定门店商品 */ @GetMapping("/getGoodsListByShopId") - @ApiOperation(value = "商品列表", tags = {"小程序-首页-门店详情-商品购买列表"}) - public R<TableDataInfo> getGoodsListByShopId(@ApiParam("门店id") @RequestParam Integer shopId) { - startPage(); - return R.ok(getDataTable(goodsService.getGoodsListByShopId(shopId))); + @ApiOperation(value = "商品购买列表", tags = {"小程序-首页-门店详情"}) + public R<PageInfo<Goods>> getGoodsListByShopId(@ApiParam("门店id") Integer shopId, Integer pageCurr, Integer pageSize) { + PageInfo<Goods> pageInfo = new PageInfo(pageCurr, pageSize); + List<Goods> goodsList = goodsService.getGoodsListByShopId(pageInfo, shopId); + return R.ok(pageInfo.setRecords(goodsList)); } @@ -111,9 +172,9 @@ * 商品详情 */ @GetMapping("/goodsDetail/{goodsId}") - @ApiOperation(value = "商品详情", tags = {"小程序-商城-首页-商品详情"}) - public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId){ - return R.ok(goodsService.goodsDetail(goodsId)); + @ApiOperation(value = "商品详情", tags = {"小程序-商城-首页"}) + public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId, String longitude, String latitude){ + return R.ok(goodsService.goodsDetail(goodsId, longitude, latitude)); } @@ -145,9 +206,44 @@ @ResponseBody @PostMapping("/getGoodsByIds") public R<List<Goods>> getGoodsByIds(@RequestParam("ids") String [] ids){ - List<Goods> goods = goodsService.lambdaQuery().in(Goods::getId, ids).eq(Goods::getStatus, 0).list(); + List<Goods> goods = goodsService.lambdaQuery().in(Goods::getId, ids).list(); 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