当前位置:网站首页>商品管理系统——SPU检索功能
商品管理系统——SPU检索功能
2020-11-09 07:35:00 【osc_c67q27vg】
一 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);
}
四 测试
版权声明
本文为[osc_c67q27vg]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4301161/blog/4708491
边栏推荐
- 六家公司CTO讲述曾经历的“宕机噩梦”
- 基于链表的有界阻塞队列 —— LinkedBlockingQueue
- 上线1周,B.Protocal已有7000ETH资产!
- 深度优先搜索和广度优先搜索
- Flink's datasource Trilogy 3: customization
- How to do thread dump analysis in Windows Environment
- Leetcode-15: sum of three numbers
- App crashed inexplicably. At first, it thought it was the case of the name in the header. Finally, it was found that it was the fault of the container!
- The difference between GDI and OpenGL
- 常见特征金字塔网络FPN及变体
猜你喜欢
随机推荐
OpenGL ES 框架详细解析(八) —— OpenGL ES 设计指南
Five design patterns frequently used in development
Factory pattern pattern pattern (simple factory, factory method, abstract factory pattern)
How does FC game console work?
APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!
File queue in Bifrost (1)
Exception capture and handling in C + +
Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
Execution of SQL statement
20201108编程练习——练习3
How to do thread dump analysis in Windows Environment
RabbitMQ快速入门详解
服务器性能监控神器nmon使用介绍
自然语言处理(NLP)路线图 - kdnuggets
LeetCode-11:盛水最多的容器
A solution to the problem that color picker (palette) cannot use shortcut keys in sublime Text3 plug-in
分库分表的几种常见玩法及如何解决跨库查询等问题
C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
Concurrent linked queue: a non blocking unbounded thread safe queue