document
API test

获取分类的属性分组

GET
http://localhost:88/api/product/attrgroup//list/:catalogId?key=%E4%B8%BB%E8%8A%AF%E7%89%87

API description

获取分类的(销售属性或规格参数)属性分组, 支持检索字段key

Request Parameters

parameter
type
description
required
catalogId
long
(restful)示例:225
required
key
string
示例:主芯片
optional

Response Parameters

parameter
type
description
required
msg
string
示例:success
required
code
int
示例:0
required
page
object
数据字典
required
totalCount
int
示例:1
required
pageSize
int
示例:10
required
totalPage
int
示例:1
required
currPage
int
示例:1
required
list
array
数据列表
required
attrGroupId
int
示例:7
required
attrGroupName
string
示例:主芯片
required
sort
int
示例:0
required
descript
string
示例:主芯片
required
icon
string
示例:xx
required
catelogId
int
示例:225
required
catelogPath
object
示例:null
required

Description or Example

# 核心代码 ```java @RequestMapping("/list/{catalogId}") // @RequiresPermissions("product:attrgroup:list") public R list(@RequestParam Map<String, Object> params, @PathVariable("catalogId") Long catalogId){ PageUtils page = attrGroupService.getAttrGroupsByCatId(params, catalogId); return R.ok().put("page", page); } ``` ```java /** * 直接调用该方法, 返回的是分页数据, 建议不要直接调用 * @param params 分页参数, 可为空 * @param catalogId 分类ID, 必须不为空, 大于等于0的值 * @return 有param返回的是分页记录, 没有param返回的是属性分组集合 * @param <T> 泛型只能声明PageUtils或List<AttrGroupEntity>, 其他都会报错 */ <T>T getAttrGroupsByCatId(Map<String, Object> params, Long catalogId); /** * 调用该方法, 返回的是属性分组集合 * @param catalogId 分类ID * @return 集合 * @param <T> List<AttrGroupEntity> */ <T>T getAttrGroupsByCatId(Long catalogId); ``` ```java @Override public <T> T getAttrGroupsByCatId(Long catalogId) { return this.getAttrGroupsByCatId(null, catalogId); } @Override public <T> T getAttrGroupsByCatId(Map<String, Object> params, Long catalogId) { LambdaQueryWrapper<AttrGroupEntity> wrapper = new LambdaQueryWrapper<>(); // 对categoryId进行判断, 如果不为0, 说明查询执行分类的属性分组 if (catalogId != 0L) wrapper.eq(AttrGroupEntity::getCatelogId, catalogId); if (params != null) { // 检索关键字 String key = (String) params.get("key"); // 如果检索关键字存在 if (StringUtils.isNotBlank(key)) { wrapper.and(wp -> wp.eq(AttrGroupEntity::getAttrGroupId, key) .or() .like(AttrGroupEntity::getAttrGroupName, key)); } IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), wrapper); return (T)new PageUtils(page); }else { return (T)this.baseMapper.selectList(wrapper); } } ``` > 注意: 是否存在分类ID和检索关键字无关, 因此它们的判断是没有任何关系的, 应该用多个`if` # 设计思想 > 这个获取分类下面的属性分组的方法复用率很高, 有可能返回分页记录, 也有可能返回属性分组集合, 因此用一个泛型来解决类型转换异常, 通过是否有`param`来决定返回的是什么