1.接口文档
2.新建AttrGroupWithAttrsVo
package com.atguigu.gulimall.product.vo;
import com.atguigu.gulimall.product.entity.AttrEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.List;
/**
* 属性分组与属性VO
*/
@Data
public class AttrGroupWithAttrsVo {
/**
* 分组id
*/
private Long attrGroupId;
/**
* 组名
*/
private String attrGroupName;
/**
* 排序
*/
private Integer sort;
/**
* 描述
*/
private String descript;
/**
* 组图标
*/
private String icon;
/**
* 所属分类id
*/
private Long catelogId;
private List<AttrEntity> attrs;
}
3.AttrGroupController中添加getAttrGroupWithAttrs
/**
* 获取分类下所有分组&关联属性
* /product/attrgroup/{catelogId}/withattr
* @param catelogId 分类id
* @return
*/
@GetMapping("/{catelogId}/withattr")
public R getAttrGroupWithAttrs(@PathVariable("catelogId")Long catelogId){
//1、查出当前分类下的所有属性分组
//2、查出每个属性分组的所有属性
List<AttrGroupWithAttrsVo> attrGroupWithAttrsVoList = attrGroupService.getAttrGroupWithAttrsByCatelogId(catelogId);
return R.ok().put("data",attrGroupWithAttrsVoList);
}
4.AttrGroupService中添加getAttrGroupWithAttrsByCatelogId
List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId);
5.AttrGroupServiceImpl中getAttrGroupWithAttrsByCatelogId方法实现
/**
* 根据分类id查出所有的分组以及这些组里面的属性
* @param catelogId
* @return
*/
@Override
public List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId) {
//1、查询分组信息
List<AttrGroupEntity> attrGroupEntityList = this.list(
new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));
//2、查询所有属性
List<AttrGroupWithAttrsVo> attrGroupWithAttrsVoList = attrGroupEntityList.stream().map(attrGroup -> {
AttrGroupWithAttrsVo attrGroupWithAttrsVo = new AttrGroupWithAttrsVo();
BeanUtils.copyProperties(attrGroup,attrGroupWithAttrsVo);
List<AttrEntity> attrEntityList = attrService.getRelationAttr(attrGroupWithAttrsVo.getAttrGroupId());
attrGroupWithAttrsVo.setAttrs(attrEntityList);
return attrGroupWithAttrsVo;
}).collect(Collectors.toList());
return attrGroupWithAttrsVoList;
}