谷粒商城分布式基础篇

谷粒商城分布式基础篇
谷粒商城分布式高级篇(上)
谷粒商城分布式高级篇(中)
谷粒商城分布式高级篇(下)

文章目录

  • 简介
  • 环境
    • 使用vagrant快速创建linux虚拟机
    • 虚拟机网络设置
    • linux安装docker
    • 配置docker阿里云镜像加速
    • docker安装MySQL
        • mysql启动报错
    • docker安装redis
    • 开发工具&环境安装配置
    • 配置git-ssh
    • 项目结构创建&提交到码云
    • 数据库初始化
  • 快速开发
    • 人人开源搭建后台管理系统
    • 逆向工程搭建使用
    • 配置&测试微服务基本CRUD功能(整合MyBatis-Plus)
    • nodejs
  • 分布式组件
    • SpringCloud Alibaba简介
    • SpringCloud Alibaba-Nacos注册中心
    • SpringCloud-OpenFeign测试远程调用
    • SpringCloud Alibaba-Nacos配置中心-简单示例
    • SpringCloud Alibaba-Nacos配置中心-命名空间与配置分组
    • SpringCloud Alibaba-Nacos配置中心-加载多配置集
    • SpringCloud-Gateway网关核心概念&原理
    • SpringCloud-Gateway-创建&测试API网关
  • 前端基础
    • 技术栈简介
    • ES6
      • let&const
      • 解构&字符串
      • 箭头函数
    • Vue
      • 介绍&HelloWorld
      • 基本语法&插件安装
      • 整合ElementUI快速开发
  • 商品服务-API
    • 三级分类
      • 查询-递归树形结构数据获取
      • 配置网关路由与路径重写
      • 网关统一配置跨域
      • 查询-树形展示三级分类数据
      • 删除-页面效果
      • 删除-逻辑删除
      • 删除-删除效果细化
      • 新增-新增效果完成
      • 修改-基本修改效果完成
      • 修改-拖拽效果
      • 修改-拖拽数据收集
      • 修改-拖拽功能完成
    • 品牌管理
      • 使用逆向工程的前后端代码
      • 效果优化与快速显示开关
      • 云存储开通与使用
      • OSS获取服务端签名
      • OSS前后联调测试上传
      • 表单校验&自定义校验器
        • 页面的校验
        • 自定义的校验规则
      • JSR303数据校验
      • 统一异常处理
      • JSR303分组校验
      • JSR303自定义校验注解
    • 概念-SPU&SKU&规格参数&销售属性
        • 关联关系
    • 属性分组
      • 前端组件抽取&父子组件交互
      • 获取分类属性分组
      • 分组新增&级联选择器
      • 分组修改&级联选择器回显
    • 品牌管理-品牌分类关联与级联更新
    • 平台属性
      • 规格参数新增与VO
      • 规格参数列表
      • 规格修改
      • 销售属性维护
      • 查询分组关联属性&删除关联
      • 查询分组未关联的属性
      • 新增分组与属性关联
    • 新增商品
      • 调试会员等级相关接口
      • 获取分类关联的品牌
      • 获取分类下所有分组以及属性
      • 商品新增vo抽取
      • 商品新增业务流程分析
      • 保存SPU基本信息
      • 保存SKU基本信息
      • 调用远程服务保存优惠等信息
      • 商品保存debug完成
      • 商品保存其他问题处理
    • 商品管理
      • SPU检索
      • SKU检索
  • 仓储服务-API
    • 仓库管理
      • 整合ware服务&获取仓库列表
      • 查询库存&创建采购需求
      • 合并采购需求
      • 领取采购单
      • 完成采购
  • 商品服务-API-商品管理-SPU规格维护
  • 分布式基础篇总结


简介

谷粒商城分布式基础篇_第1张图片
谷粒商城分布式基础篇_第2张图片

谷粒商城分布式基础篇_第3张图片

谷粒商城分布式基础篇_第4张图片

环境

使用vagrant快速创建linux虚拟机

  1. 使用virtualbox 6.1.10
  2. 使用vagrant2.2.9
  3. cmd窗口 vagrant 初始化 centos
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
  1. vagrant up vagrant ssh(注意在有vagrantfile的目录 启动vagrant命令)

虚拟机网络设置

未设置前需手动指定端口映射
谷粒商城分布式基础篇_第5张图片
谷粒商城分布式基础篇_第6张图片
给虚拟机固定IP地址

VagrantFile 修改配置
谷粒商城分布式基础篇_第7张图片
谷粒商城分布式基础篇_第8张图片
vagrant reload
互相ping 通

linux安装docker

网上都有: 教程
如果国内镜像下载docker很慢,可以试试用手机热点下载,亲测有效
docker 开机自启 systemctl enable docker

谷粒商城分布式基础篇_第9张图片

配置docker阿里云镜像加速

docker安装MySQL

  1. 下载镜像文件docker pull mysql:5.7
  2. 创建实例并启动
    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/log:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
  3. 参数说明
    -p 3306:3306 将容器的3306端口映射到主机的3306端口
    --name mysql 容器命名为 mysql
    -v /mydata/mysql/cong:/etc/mysql 将docker的实例配置文件夹挂载到主机
    -v /mydata/mysql/log:/var/lib/mysql 将docker的日志文件夹载到主机
    -v /mydata/mysql/conf:/etc/mysql 将docker的配置文件夹挂载到主机
    -e MYSQL_ROOT_PASSWORD=root 初始化root用的密码
  4. docker ps 查看在运行的容器
  5. 创建mysql配置文件 vi /mydata/mysql/conf/my.cnf
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
  6. 设置容器随docker自启动 docker update mysql --restart=always
  7. 进入mysql容器内部的命令 docker exec -it mysql /bin/bash/

mysql启动报错

启动失败 docker logs [容器id] 查看日志

2023-01-19 01:09:34+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.41-1.el7 started.
2023-01-19 01:09:34+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.JmvWhCmjVf
        mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

配置文件有问题
删掉docker 容器

sudo mkdir -p /etc/mysql/conf.d

sudo docker run --privileged=true \
 -p 3306:3306 --name mysql \
 -v /mydata/mysql/log:/var/log/mysql \
 -v /mydata/mysql/data:/var/lib/mysql \
 -v /mydata/mysql/conf:/etc/mysql/conf.d \
 -e MYSQL_ROOT_PASSWORD=root \
 -d mysql:5.7

docker安装redis

  1. 下载 redis 镜像 docker pull redis
  2. 创建实例并启动
    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
  1. 使用redis镜像执行redis-cli命令连接 docker exec -it redis redis-cli
  2. 开启redis持久化存储
    vi /mydata/redis/conf/redis.conf
    # 添加如下内容
    appendonly yes
    
  3. 设置容器随docker自启动 docker update redis --restart=always

开发工具&环境安装配置

  1. 配置好maven

  2. idea 插件 lombok mybatisX gitee

  3. vscode 插件
    谷粒商城分布式基础篇_第10张图片
    谷粒商城分布式基础篇_第11张图片

配置git-ssh

  1. 下载并安装git
  2. 任意位置 git bash
    配置用户名
    git config --global user.name "username" username 随意
    配置邮箱
    git config --global user.email "[email protected]" 注册gitee 时用的邮箱
  3. 配置ssh 免密登录
    git bash 中 ssh-keygen -t rsa -C "[email protected]" 连续三次回车
    cat ~/.ssh/id_rsa.pub 或找到生成路径查看生成的密钥
    进入gitee设置中添加ssh公钥
    ssh -T [email protected] 测试是否成功

项目结构创建&提交到码云

码云创建仓库
谷粒商城分布式基础篇_第12张图片
idea 新建版本控制项目
谷粒商城分布式基础篇_第13张图片

模块创建示例
谷粒商城分布式基础篇_第14张图片
必要组件的导入
谷粒商城分布式基础篇_第15张图片
谷粒商城分布式基础篇_第16张图片

根目录新建pom 聚合服务
谷粒商城分布式基础篇_第17张图片
pom添加进maven工程
谷粒商城分布式基础篇_第18张图片
设置忽略文件
第一次commit
在这里插入图片描述

数据库初始化

创建5个数据库并导入表
在这里插入图片描述

快速开发

人人开源搭建后台管理系统

克隆两个项目
谷粒商城分布式基础篇_第19张图片
renren-fast属于后端模块导入工程
创建后台管理的数据库并导入
在这里插入图片描述
修改配置 并运行
在这里插入图片描述

逆向工程搭建使用

clone导入renren-genertor
填入需要逆向的数据库地址,模块名,包名
谷粒商城分布式基础篇_第20张图片
创建 common 模块,抽取各个公共依赖放入
每个模块都依赖common

谷粒商城分布式基础篇_第21张图片

调整生成器Controller的模板 注释这一段
在这里插入图片描述

配置&测试微服务基本CRUD功能(整合MyBatis-Plus)

谷粒商城分布式基础篇_第22张图片
谷粒商城分布式基础篇_第23张图片

主键自增

依法炮制各个模块

nodejs

安装 10.* . * 版本,与教学中大版本保持一致
注意设置淘宝镜像源
npm install时 模块 node-sass还是从github中拉取,导致拉取失败所以还需单独设置 此模块的镜像源

npm config set registry http://registry.npm.taobao.org/

npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

//运行前端项目

npm install

npm run dev

分布式组件

SpringCloud Alibaba简介

谷粒商城分布式基础篇_第24张图片
谷粒商城分布式基础篇_第25张图片

谷粒商城分布式基础篇_第26张图片

谷粒商城分布式基础篇_第27张图片
谷粒商城分布式基础篇_第28张图片
谷粒商城分布式基础篇_第29张图片
检查 spring-cloud 、spring-boot、spring-cloud-alibaba 的对应版本

需根据 对应版本说明 调整 自身项目的对应版本,或严格按照教程所示版本

SpringCloud Alibaba-Nacos注册中心

谷粒商城分布式基础篇_第30张图片

在这里插入图片描述
common中导入nacos
谷粒商城分布式基础篇_第31张图片
谷粒商城分布式基础篇_第32张图片
1.1.3版本 启动nacos
配置文件nacos地址和模块名
在这里插入图片描述

谷粒商城分布式基础篇_第33张图片
谷粒商城分布式基础篇_第34张图片
模块名
在这里插入图片描述

SpringCloud-OpenFeign测试远程调用

谷粒商城分布式基础篇_第35张图片
谷粒商城分布式基础篇_第36张图片

谷粒商城分布式基础篇_第37张图片

在这里插入图片描述

谷粒商城分布式基础篇_第38张图片

在这里插入图片描述

SpringCloud Alibaba-Nacos配置中心-简单示例

谷粒商城分布式基础篇_第39张图片

  1. 导入配置谷粒商城分布式基础篇_第40张图片
    在这里插入图片描述
    测试
    未使用配置中心
    谷粒商城分布式基础篇_第41张图片
    在这里插入图片描述
    使用配置中心

配置中心配置列表新建配置,默认为模块名的properties文件
controller上注解动态刷新配置
在这里插入图片描述

SpringCloud Alibaba-Nacos配置中心-命名空间与配置分组

谷粒商城分布式基础篇_第42张图片
配置集
谷粒商城分布式基础篇_第43张图片
谷粒商城分布式基础篇_第44张图片
配置文件中可指定命名空间,可以开发环境隔离
在这里插入图片描述
也可以
谷粒商城分布式基础篇_第45张图片

配置分组
谷粒商城分布式基础篇_第46张图片
可以分组隔离
bootstrap.properties文件中
在这里插入图片描述

SpringCloud Alibaba-Nacos配置中心-加载多配置集

就是 拆分配置文件,
谷粒商城分布式基础篇_第47张图片
谷粒商城分布式基础篇_第48张图片
谷粒商城分布式基础篇_第49张图片

SpringCloud-Gateway网关核心概念&原理

谷粒商城分布式基础篇_第50张图片

谷粒商城分布式基础篇_第51张图片
谷粒商城分布式基础篇_第52张图片
谷粒商城分布式基础篇_第53张图片
谷粒商城分布式基础篇_第54张图片
一个路由里面包含多个Predicate和多个Filter
请求到达网关,网关利用断言 Predicate 判断这次请求是否符合路由规则 Route 如果符合了,经过一系列 Filter 路由到指定地方
谷粒商城分布式基础篇_第55张图片

SpringCloud-Gateway-创建&测试API网关

spring初始化向导创建一个moudle网关

谷粒商城分布式基础篇_第56张图片

在这里插入图片描述

配置模块将模块注册到 nacos 注册中心和配置中心
排除数据库相关配置
在这里插入图片描述

测试application.yml
谷粒商城分布式基础篇_第57张图片

前端基础

技术栈简介

谷粒商城分布式基础篇_第58张图片

ES6

let&const

谷粒商城分布式基础篇_第59张图片

解构&字符串

箭头函数

Vue

介绍&HelloWorld

谷粒商城分布式基础篇_第60张图片
谷粒商城分布式基础篇_第61张图片
谷粒商城分布式基础篇_第62张图片
初始化vue
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本语法&插件安装

在这里插入图片描述
谷粒商城分布式基础篇_第63张图片

整合ElementUI快速开发

商品服务-API

三级分类

查询-递归树形结构数据获取

product控制器下
谷粒商城分布式基础篇_第64张图片

  1. 查出所有
  2. 组装父子结构

配置网关路由与路径重写

前端新增目录
谷粒商城分布式基础篇_第65张图片
新增菜单
谷粒商城分布式基础篇_第66张图片
在element组件加入 Tree树形控件
在这里插入图片描述
谷粒商城分布式基础篇_第67张图片
发现请求路径错误
在这里插入图片描述
修改基准地址
谷粒商城分布式基础篇_第68张图片

转发至网关 88 端口

发现验证码错误,将后端管理模块renren-fast也加入注册中心,也由网关分配地址
网关路径重写为正确地址
在这里插入图片描述
谷粒商城分布式基础篇_第69张图片

网关统一配置跨域

谷粒商城分布式基础篇_第70张图片

谷粒商城分布式基础篇_第71张图片

谷粒商城分布式基础篇_第72张图片
在网关模块配置跨域

谷粒商城分布式基础篇_第73张图片
去除 renren-fast 多余的跨域配置

查询-树形展示三级分类数据

配置商品服务的网关
粒度大的往后,粒度细的提前
谷粒商城分布式基础篇_第74张图片
前端获取到数据
在这里插入图片描述
正确显示
在这里插入图片描述

删除-页面效果

使用scope
谷粒商城分布式基础篇_第75张图片
谷粒商城分布式基础篇_第76张图片
只有在点击箭头才收缩节点
在这里插入图片描述
限制按钮显示
在这里插入图片描述
添加选择框
在这里插入图片描述
设置节点唯一标识
在这里插入图片描述
在这里插入图片描述

删除-逻辑删除

category控制器中delete方法自定义逻辑删除
查看官方文档
谷粒商城分布式基础篇_第77张图片
此步可省略,直接在字段属性上加@TableLogin注解
谷粒商城分布式基础篇_第78张图片

删除-删除效果细化

谷粒商城分布式基础篇_第79张图片
确认提示框
默认展开节点
因为做了mybtis的逻辑删除,所以查询时会自动过滤逻辑标记字段

新增-新增效果完成

在这里插入图片描述
表单插件,显示表单插件el-dialog
在这里插入图片描述

修改-基本修改效果完成

同增加差不多
在这里插入图片描述

修改-拖拽效果

el-tree属性
在这里插入图片描述
在这里插入图片描述

修改-拖拽数据收集

谷粒商城分布式基础篇_第80张图片
谷粒商城分布式基础篇_第81张图片

修改-拖拽功能完成

品牌管理

使用逆向工程的前后端代码

品牌表在这里插入图片描述

新增谷粒商城分布式基础篇_第82张图片

在这里插入图片描述

效果优化与快速显示开关

在这里插入图片描述
谷粒商城分布式基础篇_第83张图片

云存储开通与使用

谷粒商城分布式基础篇_第84张图片

  1. 开通oss
  2. 创建bucket
  3. 安装sdk
  4. 开通子用户的Accesskey
    谷粒商城分布式基础篇_第85张图片

OSS获取服务端签名

创建第三方模块,整合oss
谷粒商城分布式基础篇_第86张图片
排除数据库配置
谷粒商城分布式基础篇_第87张图片
三方服务模块创建 osscontroller 获取签名的接口

谷粒商城分布式基础篇_第88张图片
报错
在这里插入图片描述
OSSClient 组件未找到
原因
在这里插入图片描述
对象存储环境的自动配置中 容器 Bean放的ossClient OSS 是接口类型
在这里插入图片描述
自动注入时要保持一致
在这里插入图片描述—>在这里插入图片描述
配置好后也要将此模块加入到网关中
谷粒商城分布式基础篇_第89张图片

如果出现 OSS项目启动报错 Field ossClient not found
那么手动注入

OSS前后联调测试上传

将前端编写好的上传组件加入到 项目 commonents 中
谷粒商城分布式基础篇_第90张图片
替换文件中的 bucket 地址
在这里插入图片描述
在要用到文件上传功能的地方导入组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小问题,接口方面优化返回值
在这里插入图片描述
设置bucket跨域权限

谷粒商城分布式基础篇_第91张图片

表单校验&自定义校验器

使用 elementui的 imge组件
谷粒商城分布式基础篇_第92张图片
报错没有注册 imge组件
在这里插入图片描述
组件注册步骤

  1. main.js中导入 src目录的element-ui谷粒商城分布式基础篇_第93张图片
  2. src目录下的element-ui中的index.js中导入了各个注册的组件

在这里插入图片描述
3. 可按需导入需要的组件
4. 此报错为 此版本 element-ui 没有以下组件,删除这些组件即可
谷粒商城分布式基础篇_第94张图片

页面的校验

在这里插入图片描述
校验规则命名为了 dataRule
在这里插入图片描述
谷粒商城分布式基础篇_第95张图片

自定义的校验规则

与上区别为 自定义了校验方法,
谷粒商城分布式基础篇_第96张图片

谷粒商城分布式基础篇_第97张图片
也可以将校验器直接定义在内部
谷粒商城分布式基础篇_第98张图片

JSR303数据校验

在bean加入校验注解
谷粒商城分布式基础篇_第99张图片

controller开启校验
谷粒商城分布式基础篇_第100张图片
还可以自定义返回提示
在这里插入图片描述
自定义校验返回,紧跟被校验对象加BindingResult
谷粒商城分布式基础篇_第101张图片
获取和处理校验返回结果
谷粒商城分布式基础篇_第102张图片
可以标注多个校验注解
在这里插入图片描述

统一异常处理

用到SpringMVC提供的 ControllerAdvice
新建一个包存放统一处理,指定需要处理的包basepackge
谷粒商城分布式基础篇_第103张图片
取消方法中的异常处理,都交给统一处理
在这里插入图片描述
@ExceptionHandler 感知异常和指定的异常类
谷粒商城分布式基础篇_第104张图片
发现异常类型为
在这里插入图片描述
遂可以精确获取异常
谷粒商城分布式基础篇_第105张图片
上面处理精确异常,而后需要一个捕获所有异常
谷粒商城分布式基础篇_第106张图片
并统一异常代码
谷粒商城分布式基础篇_第107张图片
再公共模块中编写统一异常码的枚举类
谷粒商城分布式基础篇_第108张图片
在这里插入图片描述

JSR303分组校验

groups必须指定一个接口类型,此接口类型仅作标识用,无需任何实现
在这里插入图片描述
接口方法指定校验组,使用spring提供的validated
在这里插入图片描述

JSR303自定义校验注解

谷粒商城分布式基础篇_第109张图片

  1. 编写一个注解,必须满足jsr303规范,查看自带注解可以看到规范
    谷粒商城分布式基础篇_第110张图片
  2. 校验注解的规范,两部分,原信息和三个属性,和一个注解传入的值vals

谷粒商城分布式基础篇_第111张图片

  1. 配置错误提示信息,一般为当前包全路径,在resource
    在这里插入图片描述
    谷粒商城分布式基础篇_第112张图片
  2. 指定用什么自定义的类来校验
    谷粒商城分布式基础篇_第113张图片
    validateBy的值为数组且类型为 ConstraintValidator 接口所以,自定义的检验类必须实现ConstraintValidator这个接口
    谷粒商城分布式基础篇_第114张图片
  3. ConstraintValidator 接口有两个泛型,第一个泛型指定注解,第二个泛型为被校验数据的基本类型

谷粒商城分布式基础篇_第115张图片
6. 编写自定义校验器,添加两个实现方法
谷粒商城分布式基础篇_第116张图片
initialize 初始化方法,获取校验注解上输入的 vals 的值 ,并封装在 set 数组里,方便isValid方法处理
谷粒商城分布式基础篇_第117张图片

谷粒商城分布式基础篇_第118张图片
isValid方法对输入的值进行判断处理, Integer value参数为输入的值
谷粒商城分布式基础篇_第119张图片
7. 校验器的原信息中指定刚才编写的检验方法

谷粒商城分布式基础篇_第120张图片

小修改,
谷粒商城分布式基础篇_第121张图片
在这里插入图片描述

概念-SPU&SKU&规格参数&销售属性

谷粒商城分布式基础篇_第122张图片
谷粒商城分布式基础篇_第123张图片
spu与sku的关系类似与 java中 类与对象的关系

谷粒商城分布式基础篇_第124张图片
spu => 基本属性 => 规格与包装
sku=>销售属性
谷粒商城分布式基础篇_第125张图片

关联关系

谷粒商城分布式基础篇_第126张图片
谷粒商城分布式基础篇_第127张图片

属性分组

前端组件抽取&父子组件交互

导入菜单表
在这里插入图片描述
在这里插入图片描述
抽取一个三级分类
在这里插入图片描述
使用分隔jianlan
谷粒商城分布式基础篇_第128张图片
导入抽取的三级分类
谷粒商城分布式基础篇_第129张图片
导入自动生成 的 attrgroup组件及其方法
谷粒商城分布式基础篇_第130张图片
父子组件传递数据
在这里插入图片描述
tree组件中的事件函数
在这里插入图片描述
函数中向父组件发送数据 this.$emit

在这里插入图片描述
父组件的子引用部分可以 接受这个事件
谷粒商城分布式基础篇_第131张图片
父组件就可以处理这个事件
在这里插入图片描述
就可以获取到被点击的 catid

获取分类属性分组

在这里插入图片描述
查询的 是 pms_attr_group
谷粒商城分布式基础篇_第132张图片
一个被封装的标准分页返回
谷粒商城分布式基础篇_第133张图片
当前类默认生成的方法 this.page,传入分页信息page 和查询条件封装 queryWrapper
谷粒商城分布式基础篇_第134张图片
构造查询条件

select * from pms_attr_group where catelog_id=? and (attr_group_id=key or attr_group_name like %key%)

等同于上面的sql语句
谷粒商城分布式基础篇_第135张图片
前端部分 点击三级分类后 重新加载
谷粒商城分布式基础篇_第136张图片

分组新增&级联选择器

前端 级联选择器的使用
谷粒商城分布式基础篇_第137张图片
在这里插入图片描述
在生命周期创建时 触发此查询
谷粒商城分布式基础篇_第138张图片

设置级联选择器的 属性
在这里插入图片描述

谷粒商城分布式基础篇_第139张图片
在这里插入图片描述
后端去掉children的空集合

谷粒商城分布式基础篇_第140张图片
级联选择器的选中值为数组
谷粒商城分布式基础篇_第141张图片
所以提交时,只提交数组最后一个元素
在这里插入图片描述

分组修改&级联选择器回显

级联选择器的正确显示需要一个数组,所以要根据cateLogId查询完整的 父子 路径

在这里插入图片描述
在这里插入图片描述
谷粒商城分布式基础篇_第142张图片
前端,关闭后清空选择器
谷粒商城分布式基础篇_第143张图片
在这里插入图片描述
可搜索
谷粒商城分布式基础篇_第144张图片

品牌管理-品牌分类关联与级联更新

配置分页插件
谷粒商城分布式基础篇_第145张图片
谷粒商城分布式基础篇_第146张图片
品牌管理页的查询
谷粒商城分布式基础篇_第147张图片

替换前端已编写好的功能
谷粒商城分布式基础篇_第148张图片
在这里插入图片描述
谷粒商城分布式基础篇_第149张图片
关联表设置了两个字段的冗余
谷粒商城分布式基础篇_第150张图片

重新编写实现,做冗余
谷粒商城分布式基础篇_第151张图片

谷粒商城分布式基础篇_第152张图片
保证冗余数据的准确性,修改相关冗余时,同时修改冗余
修改 品牌修改接口增加冗余修改
谷粒商城分布式基础篇_第153张图片
谷粒商城分布式基础篇_第154张图片
分类修改时同上
谷粒商城分布式基础篇_第155张图片
首先保证基本更新,再冗余更新
谷粒商城分布式基础篇_第156张图片
谷粒商城分布式基础篇_第157张图片
mybatis 快捷 创建sql
谷粒商城分布式基础篇_第158张图片
使用 @Param 注解快捷传入sql 值
在这里插入图片描述
谷粒商城分布式基础篇_第159张图片

平台属性

规格参数新增与VO

属性分组 查询全部时 没有模糊查询
更改接口细节
谷粒商城分布式基础篇_第160张图片
什么是vo ,vo是根据当次接口需要的数据字段,替代原装持久层的
接受页面传递来的数据,封装对象
将业务处理完成的对象,封装成页面要用的对象
谷粒商城分布式基础篇_第161张图片
谷粒商城分布式基础篇_第162张图片
多了attrGroupId
谷粒商城分布式基础篇_第163张图片

重新编写保存接口

谷粒商城分布式基础篇_第164张图片

规格参数列表

在这里插入图片描述
谷粒商城分布式基础篇_第165张图片
相应数据多了 两个字段
谷粒商城分布式基础篇_第166张图片
可以继承基本的,再添加多出的
谷粒商城分布式基础篇_第167张图片

规格修改

在这里插入图片描述
数据的返回类型
谷粒商城分布式基础篇_第168张图片
谷粒商城分布式基础篇_第169张图片
谷粒商城分布式基础篇_第170张图片

销售属性维护

谷粒商城分布式基础篇_第171张图片
谷粒商城分布式基础篇_第172张图片

查询分组关联属性&删除关联

点击关联理出当前分组关联的所有属性
谷粒商城分布式基础篇_第173张图片
谷粒商城分布式基础篇_第174张图片

谷粒商城分布式基础篇_第175张图片
谷粒商城分布式基础篇_第176张图片
提交的一个自定义数据可以封装为vo
谷粒商城分布式基础篇_第177张图片

查询分组未关联的属性

新建关联
谷粒商城分布式基础篇_第178张图片
谷粒商城分布式基础篇_第179张图片
谷粒商城分布式基础篇_第180张图片
谷粒商城分布式基础篇_第181张图片

新增分组与属性关联

谷粒商城分布式基础篇_第182张图片
谷粒商城分布式基础篇_第183张图片

新增商品

调试会员等级相关接口

谷粒商城分布式基础篇_第184张图片
配置会员服务的路由.

前端编写好的文件导入
谷粒商城分布式基础篇_第185张图片

获取分类关联的品牌

谷粒商城分布式基础篇_第186张图片

谷粒商城分布式基础篇_第187张图片

谷粒商城分布式基础篇_第188张图片
提到规范
在这里插入图片描述

获取分类下所有分组以及属性

谷粒商城分布式基础篇_第189张图片
谷粒商城分布式基础篇_第190张图片
根据上图所示响应数据封装新的vo

谷粒商城分布式基础篇_第191张图片
效果
谷粒商城分布式基础篇_第192张图片

商品新增vo抽取

谷粒商城分布式基础篇_第193张图片
谷粒商城分布式基础篇_第194张图片
复制需要提交的json数据,格式化json数据
谷粒商城分布式基础篇_第195张图片
使用工具 json转java 实体类,设置好 类名和包名生成并下载,导入到工程
谷粒商城分布式基础篇_第196张图片

商品新增业务流程分析

调整 上一步生成的vo 价格字段都设为BigDeciaml,主键都为Long类型
由于有 Lomobank 所以去掉 get set
谷粒商城分布式基础篇_第197张图片
加上事务注解
谷粒商城分布式基础篇_第198张图片

保存SPU基本信息

保存SKU基本信息

调用远程服务保存优惠等信息

谷粒商城分布式基础篇_第199张图片
谷粒商城分布式基础篇_第200张图片

商品保存debug完成

设置一个 compund 统一启动
谷粒商城分布式基础篇_第201张图片
给每个服务设置内存占用

谷粒商城分布式基础篇_第202张图片
设置 mysql 隔离级别为读未提交,可以读到 事务中已经提交的数据,事物失败后会回滚
在这里插入图片描述

谷粒商城分布式基础篇_第203张图片

商品保存其他问题处理

过滤空的图片路径

商品管理

SPU检索

复杂检索
谷粒商城分布式基础篇_第204张图片
统一日期格式化
在这里插入图片描述

SKU检索

在这里插入图片描述

仓储服务-API

仓库管理

整合ware服务&获取仓库列表

  1. 加入注册中心
  2. 加入网关路由

查询库存&创建采购需求

在这里插入图片描述
在这里插入图片描述
查询采购需求
谷粒商城分布式基础篇_第205张图片

合并采购需求

谷粒商城分布式基础篇_第206张图片

谷粒商城分布式基础篇_第207张图片
谷粒商城分布式基础篇_第208张图片

领取采购单

谷粒商城分布式基础篇_第209张图片
谷粒商城分布式基础篇_第210张图片

谷粒商城分布式基础篇_第211张图片
谷粒商城分布式基础篇_第212张图片

完成采购

谷粒商城分布式基础篇_第213张图片
谷粒商城分布式基础篇_第214张图片
在这里插入图片描述
谷粒商城分布式基础篇_第215张图片

商品服务-API-商品管理-SPU规格维护

显示400,给admin表加入菜单

INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num) VALUES (76, 37, '规格维护', 'product/attrupdate', '', 2, 'log', 0);

谷粒商城分布式基础篇_第216张图片

谷粒商城分布式基础篇_第217张图片
在这里插入图片描述
谷粒商城分布式基础篇_第218张图片

分布式基础篇总结

谷粒商城分布式基础篇_第219张图片

你可能感兴趣的:(学习笔记,自学笔记,java基础,java,后端)