当前位置:网站首页>商品管理系统——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
边栏推荐
- Platform in architecture
- A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
- 首次开通csdn,这篇文章送给过去的自己和正在发生的你
- C++之异常捕获和处理
- 链表
- 架构中台图
- 通过canvas获取视频第一帧封面图
- A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
- First development of STC to stm32
- C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
猜你喜欢
《MFC dialog中加入OpenGL窗体》
Introduction to nmon
c++11-17 模板核心知识(二)—— 类模板
Database design: paradigms and anti paradigms
Combine theory with practice to understand CORS thoroughly
Depth first search and breadth first search
Core knowledge of C + + 11-17 template (2) -- class template
How to analyze Android anr problems
Web上的分享(Share)API
Factory Pattern模式(简单工厂、工厂方法、抽象工厂模式)
随机推荐
亚马逊的无服务器总线EventBridge支持事件溯源 - AWS
Teacher Liang's small class
失业日志 11月5日
C++邻接矩阵
Factory pattern pattern pattern (simple factory, factory method, abstract factory pattern)
When we talk about data quality, what are we talking about?
无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
Leetcode-15: sum of three numbers
Chapter 5 programming
程序员都应该知道的URI,一文帮你全面了解
六家公司CTO讲述曾经历的“宕机噩梦”
VIM Introduction Manual, (vs Code)
Android emulator error: x86 emulation currently requires hardware acceleration的解决方案
How does pipedrive support quality publishing with 50 + deployments per day?
卧槽,这年轻人不讲武德,应届生凭“小抄”干掉5年老鸟,成功拿到字节20Koffer
通过canvas获取视频第一帧封面图
Operation 2020.11.7-8
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
Salesforce connect & external object
Travel notes of csp-s 2020