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.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.domain.TGoods; import com.ruoyi.system.domain.TGoodsType; import com.ruoyi.system.query.TGoodsQuery; import com.ruoyi.system.service.TGoodsService; import com.ruoyi.system.service.TGoodsTypeService; import com.ruoyi.system.vo.TGoodsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; /** *

* 商品管理 前端控制器 *

* * @author xiaochen * @since 2024-08-14 */ @Api(tags = "商品管理") @RestController @RequestMapping("/t-goods") public class TGoodsController { private final TGoodsService goodsService; private final TGoodsTypeService goodsTypeService; private final TokenService tokenService; @Autowired public TGoodsController(TGoodsService goodsService, TGoodsTypeService goodsTypeService, TokenService tokenService) { this.goodsService = goodsService; this.goodsTypeService = goodsTypeService; this.tokenService = tokenService; } /** * 查询商品管理分页列表 */ @ApiOperation( value = "查询商品管理分页列表") @PostMapping(value = "/pageList") public AjaxResult> pageList(@RequestBody TGoodsQuery query) { Integer roleType = tokenService.getLoginUser().getRoleType(); if(roleType != 1){ query.setShopId(tokenService.getLoginUser().getObjectId()); } return AjaxResult.success(goodsService.pageList(query)); } /** * 添加商品管理管理 */ @ApiOperation( value = "添加商品管理") @PostMapping(value = "/add") public AjaxResult add(@RequestBody TGoods dto) { dto.setShopId(tokenService.getLoginUser().getObjectId()); return AjaxResult.success(goodsService.save(dto)); } /** * 修改商品管理 */ @ApiOperation( value = "修改商品管理") @PostMapping(value = "/update") public AjaxResult update(@RequestBody TGoods dto) { return AjaxResult.success(goodsService.updateById(dto)); } /** * 查看商品管理详情 */ @ApiOperation( value = "查看商品管理详情") @GetMapping(value = "/getDetailById") public AjaxResult 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); } /** * 删除商品管理 */ @ApiOperation( value = "删除商品管理") @DeleteMapping(value = "/deleteById") public AjaxResult 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)); } /** * 批量删除商品管理 */ @ApiOperation( value = "批量删除商品管理") @DeleteMapping(value = "/deleteByIds") public AjaxResult deleteByIds(@RequestBody List ids) { return AjaxResult.success(goodsService.removeByIds(ids)); } }