xuhy
2024-11-30 bfdb3faf4f27df01718f58ac8c4ec0bcc092e7b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.ruoyi.web.controller.api;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.TGoodsType;
import com.ruoyi.system.domain.TShop;
import com.ruoyi.system.service.TGoodsTypeService;
import com.ruoyi.system.service.TShopService;
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;
 
/**
 * <p>
 * 商品分类 前端控制器
 * </p>
 *
 * @author xiaochen
 * @since 2024-08-14
 */
@Api(tags = "商品分类")
@RestController
@RequestMapping("/t-goods-type")
public class TGoodsTypeController {
 
    private final TGoodsTypeService goodsTypeService;
    private final TokenService tokenService;
    private final TShopService shopService;
 
    @Autowired
    public TGoodsTypeController(TGoodsTypeService goodsTypeService, TokenService tokenService, TShopService shopService) {
        this.goodsTypeService = goodsTypeService;
        this.tokenService = tokenService;
        this.shopService = shopService;
    }
 
    /**
     * 查询商品分类列表
     */
    @ApiOperation( value = "查询商品分类列表")
    @PostMapping(value = "/list")
    public AjaxResult<List<TGoodsType>> list() {
        Long shopId = tokenService.getLoginUser().getObjectId();
        Integer roleType = tokenService.getLoginUser().getRoleType();
        TShop shop = shopService.getById(shopId);
        LambdaQueryWrapper<TGoodsType> wrapper = new LambdaQueryWrapper<>();
        if(roleType != 1){
            wrapper.eq(TGoodsType::getMealType, shop.getMealType());
        }
        return AjaxResult.success(goodsTypeService.list(wrapper));
    }
 
    /**
     * 查询商品分类列表
     */
    @ApiOperation( value = "查询商品分类列表-后台使用")
    @GetMapping(value = "/getList")
    public AjaxResult<List<TGoodsType>> getList(@RequestParam(value = "mealType",required = false) Integer mealType) {
        // 获取餐饮分类店铺id
//        TShop one = shopService.getOne(Wrappers.lambdaQuery(TShop.class)
//                .eq(TShop::getMealType, mealType)
//                .last("LIMIT 1"));
//        if(Objects.isNull(one)){
//            String str = mealType == 1 ? "中餐" : "火锅";
//            return AjaxResult.error("无"+str+"类型店铺");
//        }
        LambdaQueryWrapper<TGoodsType> wrapper = new LambdaQueryWrapper<>();
        if(Objects.nonNull(mealType)){
            wrapper.eq(TGoodsType::getMealType, mealType);
        }
        return AjaxResult.success(goodsTypeService.list(wrapper));
    }
 
    /**
     * 添加商品分类管理
     */
    @ApiOperation( value = "添加商品分类")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TGoodsType dto) {
        Long shopId = tokenService.getLoginUser().getObjectId();
        TShop shop = shopService.getById(shopId);
        dto.setMealType(shop.getMealType());
        dto.setShopId(tokenService.getLoginUser().getObjectId());
        return AjaxResult.success(goodsTypeService.save(dto));
    }
 
    /**
     * 修改商品分类
     */
    @ApiOperation( value = "修改商品分类")
    @PostMapping(value = "/update")
    public AjaxResult<Boolean> update(@RequestBody TGoodsType dto) {
        return AjaxResult.success(goodsTypeService.updateById(dto));
    }
 
    /**
     * 查看商品分类详情
     */
    @ApiOperation( value = "查看商品分类详情")
    @GetMapping(value = "/getDetailById")
    public AjaxResult<TGoodsType> getDetailById(@RequestParam("id") Long id) {
        return AjaxResult.success(goodsTypeService.getById(id));
    }
 
    /**
     * 删除商品分类
     */
    @ApiOperation( value = "删除商品分类")
    @DeleteMapping(value = "/deleteById")
    public AjaxResult<Boolean> deleteById(@RequestParam("id") Long id) {
        return AjaxResult.success(goodsTypeService.removeById(id));
    }
 
    /**
     * 批量删除商品分类
     */
    @ApiOperation( value = "批量删除商品分类")
    @DeleteMapping(value = "/deleteByIds")
    public AjaxResult<Boolean> deleteByIds(@RequestBody List<Long> ids) {
        return AjaxResult.success(goodsTypeService.removeByIds(ids));
    }
    
}