商品管理系统——SKU检索功能

coding

一 API分析

1 请求

GET /product/skuinfo/list

2 请求参数

{

page: 1, //当前页码

limit: 10, //每页记录数

sidx: 'id', //排序字段

order: 'asc/desc', //排序方式

key: '华为', //检索关键字

catelogId: 0,

brandId: 0,

min: 0,

max: 0

}

3 响应数据

{

"msg": "success",

"code": 0,

"page": {

"totalCount": 26,

"pageSize": 10,

"totalPage": 3,

"currPage": 1,

"list": [{

"skuId": 1,

"spuId": 11,

"skuName": "华为 HUAWEI Mate 30 Pro 星河银 8GB+256GB",

"skuDesc": null,

"catalogId": 225,

"brandId": 9,

"skuDefaultImg": "https://gulimall-hello.oss-cn-beijing.aliyuncs.com/2019-11-26/60e65a44-f943-4ed5-87c8-8cf90f403018_d511faab82abb34b.jpg",

"skuTitle": "华为 HUAWEI Mate 30 Pro 星河银 8GB+256GB麒麟990旗舰芯片OLED环幕屏双4000万徕卡电影四摄4G全网通手机",

"skuSubtitle": "【现货抢购!享白条12期免息!】麒麟990,OLED环幕屏双4000万徕卡电影四摄;Mate30系列享12期免息》",

"price": 6299.0000,

"saleCount": 0

}]

}

}

二 控制器

    /**

* 功能描述:条件查询SKU信息

*

* @param params 分页过滤条件

* @return R 返回给前端的数据

* @author cakin

* @date 2020/11/8

*/

@RequestMapping("/list")

public R list(@RequestParam Map<String, Object> params) {

PageUtils page = skuInfoService.queryPageByCondition(params);

return R.ok().put("page", page);

}

三 服务层

    /**

* 功能描述:条件查询SKU信息

*

* @param params 分页查询参数

* @return PageUtils 分页信息

* @author cakin

* @date 2020/11/8

*/

@Override

public PageUtils queryPageByCondition(Map<String, Object> params) {

QueryWrapper<SkuInfoEntity> queryWrapper = new QueryWrapper<>();

// 关键字检索

String key = (String) params.get("key");

if (!StringUtils.isEmpty(key)) {

queryWrapper.and((wrapper) -> {

wrapper.eq("sku_id", key).or().like("sku_name", key);

});

}

// catelogId 检索,等于0就是查全部

String catelogId = (String) params.get("catelogId");

if (!StringUtils.isEmpty(catelogId) && !"0".equalsIgnoreCase(catelogId)) {

queryWrapper.eq("catalog_id", catelogId);

}

// brandId 检索,等于0就是查全部

String brandId = (String) params.get("brandId");

if (!StringUtils.isEmpty(brandId) && !"0".equalsIgnoreCase(catelogId)) {

queryWrapper.eq("brand_id", brandId);

}

// min 必须大于等于最小值

String min = (String) params.get("min");

if (!StringUtils.isEmpty(min)) {

queryWrapper.ge("price", min);

}

// max 必须小于等于最大值

String max = (String) params.get("max");

// 最大值为空就不判断了

if (!StringUtils.isEmpty(max)) {

try {

BigDecimal bigDecimal = new BigDecimal(max);

// 最大值大于0才判断

if (bigDecimal.compareTo(new BigDecimal("0")) == 1) {

queryWrapper.le("price", max);

}

} catch (Exception e) {

}

}

// 分页过滤查询和其他条件组合的复合查询

IPage<SkuInfoEntity> page = this.page(new Query<SkuInfoEntity>().getPage(params), queryWrapper);

return new PageUtils(page);

}

四 测试 

以上是 商品管理系统——SKU检索功能 的全部内容, 来源链接: utcz.com/z/509635.html

回到顶部