博客
关于我
谷粒商城day55-商品服务-API-平台属性-规格参数列表
阅读量:761 次
发布时间:2019-03-23

本文共 2127 字,大约阅读时间需要 7 分钟。

需求分析与查询功能实现

打开规格参数界面时,与进入界面后点击某分类时,均会发出两个まったく相同的HTTP请汤汚,但两次请汤汚的参数略有不同。这两个请求基于不同的条件执行,刚进入界面时的点击则基于分类的ID值完成查询。

截图1

截图2

查询功能实现

为完成查询功能,我们设计并实现了 AttrResponseVo 类,该类继承自 AttrEntity 类,主要补充了 catelogName 和 groupName 两个属性。这些属性与原始的 PO 类相比,额外提供了分类名称和组别名称等信息。

在 service 层实现中,我们根据不同的 catelogId 值构造条件查询。具体来说:

  • 如果 catelogId 不为0,则添加 catelog_id 进行等值查询
  • 如果提供了 searchKey 关键词,则在 attr_id 和 attr_name 字段上执行精确查询或模糊查询
  • 通过以上逻辑,我们获取到对应的记录列表,并将结果转换为 AttrResponseVo 类格式返回。与此同时,为了确保分类信息的完整性,我们 调用了后台服务 拿到对应的分类名称信息和组别名称信息,将其动态注入 AttrResponseVo 对象中。

    代码实现如下:

    @Overridepublic PageUtils baseAttrList(Map
    params, Long catelogId) { QueryWrapper
    queryWrapper = new QueryWrapper<>(); if (catelogId != 0) { queryWrapper.eq("catelog_id", catelogId); } String searchKey = (String) params.get("searchKey"); if (StringUtils.isNotEmpty(searchKey)) { queryWrapper.and(obj -> { obj.eq("attr_id", searchKey).or().like("attr_name", searchKey); }); } IPage
    page = this.page( new Query
    () .getPage(params), queryWrapper ); PageUtils pageUtils = new PageUtils(page); List
    attrResponseVos = page.getRecords().stream() .map(attrEntity -> { AttrResponseVo attrResponseVo = new AttrResponseVo(); BeanUtils.copyProperties(attrEntity, attrResponseVo); CategoryEntity categoryEntity = categoryService.getById( attrEntity.getCatelogId() ); if (categoryEntity != null) { attrResponseVo.setCatelogName(categoryEntity.getName()); } AttrAttrgroupRelationEntity attrAttrgroupRelationEntity = attrAttrgroupRelationService.getOne( new QueryWrapper
    () .eq("attr_id", attrEntity.getAttrId()) ); if (attrAttrgroupRelationEntity != null) { AttrGroupEntity attrGroupEntity = attrGroupService.getById( attrAttrgroupRelationEntity.getAttrGroupId() ); attrResponseVo.setGroupName(attrGroupEntity.getAttrGroupName()); } return attrResponseVo; }) .collect(Collectors.toList()); pageUtils.setList(attrResponseVos); return pageUtils;}

    截图3

    截图4

    转载地址:http://pfezk.baihongyu.com/

    你可能感兴趣的文章
    Python基础——面向对象
    查看>>
    Python基础——线程锁
    查看>>
    python基础——线程与进程
    查看>>
    Python基础——构造方法和特殊成员方法
    查看>>
    Python基础——多线程值从Thread类继承
    查看>>
    Python基础——多线程之信号量
    查看>>
    Python基础——_thread多线程
    查看>>
    Python基础——Thread类与线程对象
    查看>>
    Python基础——Thread创建管理多线程
    查看>>
    Python基础——SQLite数据库基本操作
    查看>>
    Python基础——MySQL数据库基本操作
    查看>>
    Python基础_列表 list
    查看>>
    python系列【仅供参考】:python异步库调用gevent和asyncio对比
    查看>>
    python基础3
    查看>>
    Python基础08 面向对象的基本概念
    查看>>
    python系列【仅供参考】:python二进制转10进制
    查看>>
    Python基础-函数篇
    查看>>
    python基础---->常用模块
    查看>>
    Python基础(2):控制结构
    查看>>
    Python基础 | 关于“循环”那些事
    查看>>