无关风月
2025-01-16 a9f49eed5a1056e3968764ba5668c008c679d34d
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,6 +10,7 @@
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;
@@ -46,6 +48,9 @@
    @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();
    }
@@ -76,7 +81,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();
    }
@@ -161,11 +179,14 @@
     */
    @GetMapping("/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));
    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
@@ -177,8 +198,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
@@ -198,5 +219,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);
    }
}