谷粒商城实战笔记-78-商品服务-API-平台属性-规格修改


这一节的主要内容是完善规则参数的修改功能。

一,规则参数的修改功能

在这里插入图片描述

点击修改按钮,首先是要回显属性信息。

在这里插入图片描述

回显需要调用查询接口/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)

  • 定义:属性是指描述商品特性的具体特征,例如颜色、尺寸、材质等。
  • 作用:属性帮助用户了解商品的详细信息,同时也可用于商品搜索和筛选。
  • 示例:以一款手机为例,其属性可以包括“屏幕尺寸”、“摄像头像素”、“操作系统版本”等。

关系总结

  1. 分类与分组的关系

    • 三级分类下的商品会具有特定的属性分组,这些属性分组是根据该分类的特点来定义的。
    • 不同的三级分类可能拥有不同的属性分组,因为每个分类下的商品特性和关注点可能不同。
  2. 分组与属性的关系

    • 属性分组是将相关属性组织在一起的逻辑容器,一个属性分组内包含一组特定的属性。
    • 一个属性只有一个分组
    • 属性是具体的商品特征,它们属于某个属性分组,用于描述商品的各个方面。
  3. 分类与属性的关系

    • 属于某个三级分类下的商品会具有一组特定的属性。
    • 不同的三级分类可能具有不同的属性集,这些属性集反映了该分类下商品的特点和差异。
    • 一个属性只属于一个分类。

示例

假设我们有一个三级分类体系,其中“电子产品”是一级分类,“手机”是二级分类,“苹果手机”是三级分类。在这个例子中:

  • 三级分类: “苹果手机”
    • 属性分组: “基本参数”
      • 属性: “屏幕尺寸”、“分辨率”、“内存大小”
    • 属性分组: “外观特性”
      • 属性: “颜色”、“重量”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值