商品管理系统——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);
    }

四 测试

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