这一节的主要内容是完善规则参数的修改功能。
一,规则参数的修改功能
点击修改按钮,首先是要回显属性信息。
回显需要调用查询接口/product/attr/info
,Controller层使用AttrVo封装前端数据。
@RequestMapping("/update")
public R update(@RequestBody AttrVo attr){
attrService.updateAttr(attr);
return R.ok();
}
对应的Service接口实现如下,回显信息包含的分类名称和分组名称不是Join得到的,而是分多次单表查询再代码组装。
@RequestMapping("/info/{attrId}")
public R info(@PathVariable("attrId") Long attrId){
AttrRespVo vo = attrService.getAttrInfo(attrId);
return R.ok().put("attr", vo);
}
public AttrRespVo getAttrInfo(Long attrId) {
AttrRespVo respVo = new AttrRespVo();
AttrEntity attrEntity = this.getById(attrId);
BeanUtils.copyProperties(attrEntity,respVo);
//1、设置分组信息
// 要通过中间表得到
AttrAttrgroupRelationEntity attrgroupRelation = relationDao.selectOne(new QueryWrapper<AttrAttrgroupRelationEntity>().eq("attr_id", attrId));
if(attrgroupRelation!=null){
respVo.setAttrGroupId(attrgroupRelation.getAttrGroupId());
AttrGroupEntity attrGroupEntity = attrGroupDao.selectById(attrgroupRelation.getAttrGroupId());
if(attrGroupEntity!=null){
respVo.setGroupName(attrGroupEntity.getAttrGroupName());
}
}
//2、设置分类信息
Long catelogId = attrEntity.getCatelogId();
Long[] catelogPath = categoryService.findCatelogPath(catelogId);
respVo.setCatelogPath(catelogPath);
CategoryEntity categoryEntity = categoryDao.selectById(catelogId);
if(categoryEntity!=null){
respVo.setCatelogName(categoryEntity.getName());
}
return respVo;
}
二,谷粒商城中,分类、分组和属性总结
分类(Category)
- 定义:分类是用来对商品进行分组的一种方式,通常按照商品的类型或特点来进行分类。在谷粒商城中,分类通常采用三级结构:一级分类、二级分类、三级分类。
- 作用:分类有助于用户快速定位和查找商品,同时也便于商家对商品进行管理和分类展示。
- 示例:例如,“电子产品”可能是一级分类,“手机”是二级分类,“苹果手机”是三级分类。
分组(Attribute Group)
- 定义:分组是指将相关的商品属性归类在一起,以便更好地管理和展示。例如,对于手机,可以有一个“基本参数”的属性分组,包含屏幕尺寸、分辨率等属性。
- 作用:分组使得商品详情页更加整洁有序,方便用户快速获取所需信息。
- 示例:“基本参数”分组下可以包含“屏幕尺寸”、“电池容量”等属性;“外观特性”分组下则可以包含“颜色”、“材质”等属性。
属性(Attribute)
- 定义:属性是指描述商品特性的具体特征,例如颜色、尺寸、材质等。
- 作用:属性帮助用户了解商品的详细信息,同时也可用于商品搜索和筛选。
- 示例:以一款手机为例,其属性可以包括“屏幕尺寸”、“摄像头像素”、“操作系统版本”等。
关系总结
-
分类与分组的关系:
- 三级分类下的商品会具有特定的属性分组,这些属性分组是根据该分类的特点来定义的。
- 不同的三级分类可能拥有不同的属性分组,因为每个分类下的商品特性和关注点可能不同。
-
分组与属性的关系:
- 属性分组是将相关属性组织在一起的逻辑容器,一个属性分组内包含一组特定的属性。
- 一个属性只有一个分组
- 属性是具体的商品特征,它们属于某个属性分组,用于描述商品的各个方面。
-
分类与属性的关系:
- 属于某个三级分类下的商品会具有一组特定的属性。
- 不同的三级分类可能具有不同的属性集,这些属性集反映了该分类下商品的特点和差异。
- 一个属性只属于一个分类。
示例
假设我们有一个三级分类体系,其中“电子产品”是一级分类,“手机”是二级分类,“苹果手机”是三级分类。在这个例子中:
- 三级分类: “苹果手机”
- 属性分组: “基本参数”
- 属性: “屏幕尺寸”、“分辨率”、“内存大小”
- 属性分组: “外观特性”
- 属性: “颜色”、“重量”
- 属性分组: “基本参数”