谷粒商城实战笔记-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. 事务管理

    • 为了保证数据的一致性,保存操作需要在一个事务中完成。
相关推荐
草堂春睡足41 分钟前
【Datawhale AI夏令营】科大讯飞AI大赛(大模型技术)/夏令营:让AI理解列车排期表
人工智能·笔记
Olrookie2 小时前
若依前后端分离版学习笔记(一)——本地部署
笔记·后端·开源
##echo3 小时前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件
我爱学嵌入式6 小时前
C语言第 9 天学习笔记:数组(二维数组与字符数组)
c语言·笔记·学习
_Kayo_14 小时前
VUE2 学习笔记6 vue数据监测原理
vue.js·笔记·学习
使二颗心免于哀伤16 小时前
《设计模式之禅》笔记摘录 - 10.装饰模式
笔记·设计模式
悠哉悠哉愿意16 小时前
【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
笔记·python·单片机·嵌入式硬件·学习·视觉检测
岩中竹17 小时前
广东省省考备考——常识:科技常识(持续更新)
笔记
Olrookie17 小时前
若依前后端分离版学习笔记(三)——表结构介绍
笔记·后端·mysql
rannn_11118 小时前
Java学习|黑马笔记|Day23】网络编程、反射、动态代理
java·笔记·后端·学习