xuhy
2024-09-24 ae4c93dd2e2aef79332360fb5dec13c5b2c961f3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsController.java
@@ -1,12 +1,15 @@
package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.CodeGenerateUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.TGoods;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.query.TGoodsQuery;
import com.ruoyi.system.service.TGoodsService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TGoodsVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -14,6 +17,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -29,12 +33,20 @@
public class TGoodsController {
    private final TGoodsService goodsService;
    private final TGoodsTypeService goodsTypeService;
    private final TokenService tokenService;
    private final TOrderStockGoodsService orderStockGoodsService;
    private final TOrderSaleGoodsService orderSaleGoodsService;
    private final TOrderMealGoodsService orderMealGoodsService;
    @Autowired
    public TGoodsController(TGoodsService goodsService, TokenService tokenService) {
    public TGoodsController(TGoodsService goodsService, TGoodsTypeService goodsTypeService, TokenService tokenService, TOrderStockGoodsService orderStockGoodsService, TOrderSaleGoodsService orderSaleGoodsService, TOrderMealGoodsService orderMealGoodsService) {
        this.goodsService = goodsService;
        this.goodsTypeService = goodsTypeService;
        this.tokenService = tokenService;
        this.orderStockGoodsService = orderStockGoodsService;
        this.orderSaleGoodsService = orderSaleGoodsService;
        this.orderMealGoodsService = orderMealGoodsService;
    }
    /**
@@ -43,7 +55,10 @@
    @ApiOperation( value = "查询商品管理分页列表")
    @PostMapping(value = "/pageList")
    public AjaxResult<PageInfo<TGoodsVO>> pageList(@RequestBody TGoodsQuery query) {
        query.setShopId(tokenService.getLoginUser().getObjectId());
        Integer roleType = tokenService.getLoginUser().getRoleType();
        if(roleType != 1){
            query.setShopId(tokenService.getLoginUser().getObjectId());
        }
        return AjaxResult.success(goodsService.pageList(query));
    }
@@ -54,6 +69,7 @@
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TGoods dto) {
        dto.setShopId(tokenService.getLoginUser().getObjectId());
        dto.setGoodsNum(CodeGenerateUtils.generateVolumeSn());
        return AjaxResult.success(goodsService.save(dto));
    }
@@ -63,6 +79,24 @@
    @ApiOperation( value = "修改商品管理")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TGoods dto) {
        // 判断是否修改了名称
        TGoods goods = goodsService.getById(dto.getId());
        if(!goods.getGoodsName().equals(dto.getGoodsName())){
            List<TOrderStockGoods> orderStockGoods = orderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class)
                    .eq(TOrderStockGoods::getGoodsNum, goods.getGoodsNum()));
            orderStockGoods.stream().forEach(tOrderStockGoods -> tOrderStockGoods.setGoodsNum(dto.getGoodsNum()));
            orderStockGoodsService.updateBatchById(orderStockGoods);
            List<TOrderMealGoods> orderMealGoods = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
                    .eq(TOrderMealGoods::getGoodsNum, goods.getGoodsNum()));
            orderMealGoods.stream().forEach(tOrderMealGoods -> tOrderMealGoods.setGoodsNum(dto.getGoodsNum()));
            orderMealGoodsService.updateBatchById(orderMealGoods);
            List<TOrderSaleGoods> list = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
                    .eq(TOrderSaleGoods::getGoodsNum, goods.getGoodsNum()));
            list.stream().forEach(tOrderSaleGoods -> tOrderSaleGoods.setGoodsNum(dto.getGoodsNum()));
            orderSaleGoodsService.updateBatchById(list);
        }
        return AjaxResult.success(goodsService.updateById(dto));
    }
@@ -71,8 +105,15 @@
     */
    @ApiOperation( value = "查看商品管理详情")
    @GetMapping(value = "/getDetailById")
    public AjaxResult<TGoods> getDetailById(@RequestParam("id") Long id) {
        return AjaxResult.success(goodsService.getById(id));
    public AjaxResult<TGoodsVO> getDetailById(@RequestParam("id") Long id) {
        TGoods goods = goodsService.getById(id);
        TGoodsVO tGoodsVO = new TGoodsVO();
        BeanUtils.copyProperties(goods, tGoodsVO);
        TGoodsType goodsType = goodsTypeService.getById(goods.getTypeId());
        if(Objects.nonNull(goodsType)){
            tGoodsVO.setTypeName(goodsType.getTypeName());
        }
        return AjaxResult.success(tGoodsVO);
    }
    /**
@@ -81,6 +122,13 @@
    @ApiOperation( value = "删除商品管理")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Long id) {
        TGoods goods = goodsService.getById(id);
        long count = goodsService.count(Wrappers.lambdaQuery(TGoods.class)
                .eq(TGoods::getTypeId, goods.getTypeId())
                .ne(TGoods::getId,id));
        if(count == 0){
            return AjaxResult.error("当前菜品所属分类下至少保留一种菜品");
        }
        return AjaxResult.success(goodsService.removeById(id));
    }