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

    • 为了保证数据的一致性,保存操作需要在一个事务中完成。
相关推荐
辰海Coding8 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林8 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家9 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
玄米乌龙茶1239 小时前
LLM成长笔记(三):API 开发基础
笔记
Upsy-Daisy9 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
LuminousCPP11 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
一只机电自动化菜鸟12 小时前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计
你干嘛?哎哟12 小时前
4月工作笔记
笔记
tom021812 小时前
软考中级《嵌入式系统设计师》全套备考资料(真题 + 教材 + 笔记)
笔记·嵌入式·软考·自学·电子技术·电子资料·变成
问心无愧051314 小时前
ctf show web入门156
笔记