谷粒商城实战笔记-85~87-商品发布-关键

文章目录

一,85-商品服务-API-新增商品-获取分类下所有分组以及属性

在商品发布中,基本信息填写完成后,进入规格参数的填写,此时需要查出所选分类下所有分组及每个分组下的所有属性。

AttrGroupController中增加接口。

clike 复制代码
 @GetMapping("/{catelogId}/withattr")
    public R getAttrGroupWithAttrs(@PathVariable("catelogId")Long catelogId){

        //1、查出当前分类下的所有属性分组,
        //2、查出每个属性分组的所有属性
        List<AttrGroupWithAttrsVo> vos =  attrGroupService.getAttrGroupWithAttrsByCatelogId(catelogId);
        return R.ok().put("data",vos);
    }

对应的Service实现。

clike 复制代码
public List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId) {
        //com.atguigu.gulimall.product.vo
        //1、查询分组信息
        List<AttrGroupEntity> attrGroupEntities = this.list(new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));

        //2、查询所有属性
        List<AttrGroupWithAttrsVo> collect = attrGroupEntities.stream().map(group -> {
            AttrGroupWithAttrsVo attrsVo = new AttrGroupWithAttrsVo();
            BeanUtils.copyProperties(group,attrsVo);
            List<AttrEntity> attrs = attrService.getRelationAttr(attrsVo.getAttrGroupId());
            attrsVo.setAttrs(attrs);
            return attrsVo;
        }).collect(Collectors.toList());

        return collect;
    }

二,86-商品服务-API-新增商品-商品新增vo抽取

这一节的内容主要是演示发布商品的前端操作,和前端生成的JSON参数,并根据JSON参数生成后端的VO用来接收前端的参数。

三,87-商品服务-API-新增商品-商品新增业务流程分析

这一节的内容也非常关键,一定要理解。

主要讲述了商品信息保存流程中的数据处理和数据库交互细节,特别是针对商品的基本信息、图片信息、规格参数、SKU信息以及积分信息的保存过程。

涉及的表比较多,逻辑相对比较复杂。

  1. 数据类型调整

    • 所有的价格字段和小数字段使用BigDecimal而不是Double,以避免精度损失。
    • 积分字段也使用BigDecimal,因为积分可能包含小数值。
    • 数据库中的ID字段使用Long类型。
    • VO(Value Object)类中的get/set方法被调整以匹配上述数据类型的变化。
  2. 保存流程概述*****

    • 基本信息保存 :在pms_spu_info表中保存商品的基本信息。

    • 描述图片保存 :在pms_spu_info_desc表中保存商品描述及其图片。

    • 图片集保存 :在pms_spu_images表中保存商品的所有图片集。

    • 规格参数保存 :在pms_product_attr_value表中保存商品的规格参数。

    • spu的积分信息gulimall_sms->sms_spu_bounds

    • SKU信息保存:分为下面几个步骤进行保存。

      • SKU基本信息:在pms_sku_info表中保存每个SKU的基本信息。
      • SKU图片信息:在pms_sku_image表中保存每个SKU的图片信息。
      • SKU销售 属性信息:在pms_sku_sale_attr_value表中保存每个SKU的销售属性信息。
      • SKU优惠信息:跨数据库操作,在SMS数据库中保存优惠信息,包括打折表、满减表和会员价格表。gulimall_sms->sms_sku_ladder\sms_sku_full_reduction\sms_member_price
  3. 事务管理

    • 为了保证数据的一致性,保存操作需要在一个事务中完成。
相关推荐
akbar&17 分钟前
计算机三级 - 数据库技术 - 第十三章 大规模数据库架构 笔记
数据库·笔记
sixteenyy35 分钟前
学习笔记(一)
笔记·学习
吃什么芹菜卷2 小时前
2024.9最新:CUDA安装,pytorch库安装
人工智能·pytorch·笔记·python·深度学习
云边有个稻草人2 小时前
【刷题】Day5--数字在升序数组中出现的次数
开发语言·笔记·算法
月夕花晨3742 小时前
C++学习笔记(26)
c++·笔记·学习
zhangrelay4 小时前
Arduino IDE离线配置第三方库文件-ESP32开发板
笔记·学习·持续学习
我叫啥都行4 小时前
计算机基础知识复习9.13
linux·笔记·后端·系统架构
南斯拉夫的铁托4 小时前
线性代数(宋浩版)(4)
经验分享·笔记·线性代数
俊昭喜喜里5 小时前
Git学习笔记
笔记·git·学习
好想有猫猫6 小时前
【Git】常见命令(仅笔记)
linux·c++·笔记·git·elasticsearch