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

    • 为了保证数据的一致性,保存操作需要在一个事务中完成。
相关推荐
sakiko_21 小时前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
自小吃多21 小时前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
存在morning1 天前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
老当益壮梁奶奶1 天前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
weixin_466068111 天前
《十分钟冥想》精读笔记(上):每天10分钟,给大脑做一次“系统减负”
笔记
凯尔萨厮1 天前
Java学习笔记十(注解)
java·笔记·学习
一条破秋裤1 天前
STM32 学习笔记:GPIO 输出实验——LED 闪烁、流水灯与蜂鸣器
笔记·stm32·学习
存在morning1 天前
【Paimon 学习笔记 二】存储架构:快照、manifest、LSM 树、bucket
笔记·学习·架构
双眼鈹1 天前
周报8.31
笔记·学习
打团从来人不齐1 天前
Linux服务器搭建笔记-008:台式机共享WIFI
linux·服务器·笔记