商品管理系統——SPU檢索功能

一 API分析

1 請求

GET /product/spuinfo/list

2 請求參數

{
    page: 1, //當前頁碼
    limit: 10, //每頁記錄數
    sidx: 'id', //排序字段
    order: 'asc/desc', //排序方式
    key: '華爲', //檢索關鍵字
    catelogId: 6, //三級分類id
    brandId: 1, //品牌id
    status: 0, //商品狀態
}

3 響應

{
    "msg": "success",
    "code": 0,
    "page": {
        "totalCount": 0,
        "pageSize": 10,
        "totalPage": 0,
        "currPage": 1,
        "list": [{
            "brandId": 0, //品牌id
            "brandName": "品牌名字",
            "catalogId": 0, //分類id
            "catalogName": "分類名字",
            "createTime": "2019-11-13T16:07:32.877Z", //創建時間
            "id": 0, //商品id
            "publishStatus": 0, //發佈狀態
            "spuDescription": "string", //商品描述
            "spuName": "string", //商品名字
            "updateTime": "2019-11-13T16:07:32.877Z", //更新時間
            "weight": 0 //重量
        }]
    }
}

二 控制器

    /**
     * 功能描述:按條件查詢SPU信息
     *
     * @param params 過濾條件
     * @return R 返回給前端的數據
     * @author cakin
     * @date 2020/11/8
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params) {
        PageUtils page = spuInfoService.queryPageByCondition(params);
        return R.ok().put("page", page);
    }

三 服務層

    /**
     * 功能描述:按條件進行分頁查詢
     *
     * @param params 過濾條件
     * @return PageUtils 分頁信息
     * @author cakin
     * @date 2020/11/8
     */
    @Override
    public PageUtils queryPageByCondition(Map<String, Object> params) {
        QueryWrapper<SpuInfoEntity> wrapper = new QueryWrapper<>();
        String key = (String) params.get("key");
        // 關鍵字查詢
        if (!StringUtils.isEmpty(key)) {
            wrapper.and((w) -> {
                w.eq("id", key).or().like("spu_name", key);
            });
        }
        // 拼接 status
        String status = (String) params.get("status");
        if (!StringUtils.isEmpty(status)) {
            wrapper.eq("publish_status", status);
        }
        // 拼接 brandId
        String brandId = (String) params.get("brandId");
        if (!StringUtils.isEmpty(brandId) && !"0".equalsIgnoreCase(brandId)) {
            wrapper.eq("brand_id", brandId);
        }
        // 拼接 catelogId
        String catelogId = (String) params.get("catelogId");
        if (!StringUtils.isEmpty(catelogId) && !"0".equalsIgnoreCase(catelogId)) {
            wrapper.eq("catalog_id", catelogId);
        }
        // 分頁條件和其他複合條件拼接後的查詢
        IPage<SpuInfoEntity> page = this.page(new Query<SpuInfoEntity>().getPage(params), wrapper);
        return new PageUtils(page);
    }

四 測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章