当前位置:网站首页>商品管理系统——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
边栏推荐
- C + + adjacency matrix
- First development of STC to stm32
- 通过canvas获取视频第一帧封面图
- After Android solves the setrequested orientation, the rotation of the mobile phone screen does not trigger the onconfigurationchanged method
- 理论与实践相结合彻底理解CORS
- Five design patterns frequently used in development
- This program cannot be started because msvcp120.dll is missing from your computer. Try to install the program to fix the problem
- 2.计算机硬件简介
- c++11-17 模板核心知识(二)—— 类模板
- Web上的分享(Share)API
猜你喜欢
随机推荐
C / C + + Programming Notes: pointer! Understand pointer from memory, let you understand pointer completely
C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
Chapter 5 programming
20201108编程练习——练习3
LeetCode-15:三数之和
对象
How to analyze Android anr problems
无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
Investigation of solutions to rabbitmq cleft brain problem
程序员都应该知道的URI,一文帮你全面了解
首次开通csdn,这篇文章送给过去的自己和正在发生的你
使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?
Installation record of SAP s / 4hana 2020
Why don't we use graphql? - Wundergraph
OpenGL ES 框架详细解析(八) —— OpenGL ES 设计指南
23 pictures, take you to the recommended system
操作系统之bios
常见特征金字塔网络FPN及变体
leetcode之反转字符串中的元音字母
When iperf is installed under centos7, the solution of make: * no targets specified and no makefile found. Stop