目录
新增商品
调试会员等级等相关接口
配置网关
查看结果
组件之间传递数据的方式
①使用之前介绍过的父子组件,通过传递事件进行一个数据的传递
②使用消息发布和订阅组件PubSub
实例:
①发布消息
监听path是否改变,一旦改变就发布消息,消息的名字为"catPath",消息的内容为path的新值
②订阅消息
接受消息,并做相应的处理,获取当前类目的catId
获取分类关联的品牌
请求路径
请求参数
响应数据
编写Vo
编写接口
测试:
获取分类下所有分组以及属性
当点击下一步:设置基本参数时,发送一个请求获取当前分类下所有分组关联的属性
响应数据
编写VO
编写接口
商品新增VO抽取
①设置SPU信息
②设置规格参数
③设置销售属性
④ 设置sku信息
⑤将提交的数据转化为jason数据
使用工具:jason在线解析
工具地址:在线JSON字符串转Java实体类(JavaBean、Entity)-懒人工具|www.ab173.com
⑥将解析的jason数据转化为JavaBean即我们需要的vo
将生成的JavaBean复制到项目中,并且将可能值为小数的属性的数据类型改为BigDecimal,将id改为Long
商品新增业务流程分析
①保存SPU基本信息: pms_spu_info
②保存SPU的描述图片集: pms_spu_info_desc
③保存SPU的图片集: pms_spu_images
④保存SPU的规格参数: pms_product_attr_value
⑤保存SPU的积分信息:sms_spu_bounds
⑥保存SKU的基本信息:pms_sku_info
⑦保存SKU的图片集:pms_sku_images
⑧保存SKU的销售属性: pms_sku_sale_attr_value
⑨保存SKU的折扣、满减、会员价格等信息:sms_sku_ladder、sms_sku_full_reduction、sms_member_price
保存SPU基本信息
请求路径:
编写接口:
保存SKU基本信息
远程调用服务保存优惠券等信息
由于需要保存的积分、折扣、满减等信息都在优惠券服务中,因此,涉及服务与服务之间的调用
远程服务调用的前提是:服务必须注册到注册中心中
1.保存SPU的积分信息:sms_spu_bounds
①编写一个feign接口,并且声明需要调用的服务和方法
由于需要使用SpuBoundsEntity就要导入coupon服务,因此,服务与服务之间的耦合就增加了,因此,服务与服务之间的数据传输我们使用TO,又由于服务彼此之间都要用到TO,所以将TO写在common里
② 开启OpenFeign
③完善功能
服务与服务之间数据传输的过程:
①通过@RequestBody主机,SpringMVC将feiservice下方法的参数转化成jason数据
②SpringMVC将jason数据与被调用方法的入参对象进行一个数据绑定。前提:属性名要一致才能进行数据绑定
虽然,传递的是SpuBoundsTo但是接收的是SpuBoundsEntity但是只要属性名一致就可以数据绑定成功
2.保存SKU的折扣、满减、会员价格等信息
①编写To
② 编写接口
在SkuLadderController下编写接口
商品保存Debug完成
配置服务一键启动
为了服务启动的方便,配置一键重启我们需要的服务
选择需要的服务
起名
如果你的运行内存吃紧,可以配置服务最大占用内存来缓解你的运行内存
Debug调试
①更新spu基本信息成功
数据库中没有数据,这是因为,我添加了事务注解@Transactional,数据库的默认事务隔离级别是可重复度,因此,为了方便测试,将当前会话的食物隔离级别改为读未提交
set session transaction isolation level read uncommitted;
查看记录
②更新SPU介绍图片
出现问题:
出现问题的原因:
表中的spu_id不是自增的,而mybatis-plus把spu_id当作是自增的,因此,报错
解决方案:
将@TableId的type类型改为用户输入
执行成功
查看记录
③ 保存SPU图片集
更新成功
查看记录
④ 保存SPU的规格参数
更新成功
查看记录
⑤ 远程调用服务更新积分信息
更新成功
查看记录
⑥保存SKU
1.保存第一个SKU的基本信息
更新成功基本信息成功
查看记录
2.保存第一个SKU的图片集
更新成功
查看记录
出现问题: 没有图片url的信息不给予保存
3.保存SKU的销售属性
更新成功
查看记录
4.保存SKU的折扣、满减、会员价格等信息
更新成功
查看记录
截止到此第一个SKU的基本属性保存成功
所有SKU信息保存成功
商品保存其它问题处理
出现问题:保存SKU图片集时,需要选中的图片才有url,我们需要将没有url的图片不进行保存
解决方案:进行一个过滤
出现问题: 没有填写金币、成长值、满多少件打几折、满多少减多少、会员价格的数据不进行一个保存
解决方案:进行一个过滤
出现问题:Java new Date获取的时间与插入数据库的时间相差8个小时
解决方案:Java Date获取到的时间与插入数据库的时间不一致(相差8小时)_Lfp1065633178的博客-优快云博客
SPU检索
请求路径:
请求参数:
编写接口:
出现问题:时间没有格式化
解决方案:配置时间格式化
SKU检索
请求路径:
请求参数:
编写接口
仓库管理
整合ware服务&获取仓库列表
①将ware服务注册到注册中心
配置注册中心地址和服务名
开启注册到注册中心注解和mybatis包扫描注解
配置ware服务到一键启动中去和占用内存大小
②配置网关路由
③完善模糊查询功能
请求路径
编写接口
在application.yml文件中配置打印日志功能
查询仓库&创建采购需求
请求路径
请求参数
编写接口,完善查询功能
商品库存中新增功能在实际中并不可能自己手动的输入商品的库存数量,我们应该根据采购需求,当采购单完成之后进行一个库存的记录
编写查询采购需求功能
请求路径
请求参数
编写接口
合并采购需求
采购流程
①查询未领取的采购单
请求路径
编写接口
查询状态为新建、已分配的采购订单
编写采购订单、采购详情的枚举类
合并采购需求
请求路径
请求参数 :
1.有采购单可选择时
2. 无采购单可选择时,需自动生成采购单
编写VO
编写接口
功能优化
添加新建和修改时间
时间格式化
领取采购单
请求路径
请求参数
编写接口
完善合并采购需求功能,只有新建和已分配才能合并采购需求
完成采购功能
逻辑分析:完成采购即需要更新采购单的状态、采购项的状态、库存数量,但是采购单的状态由采购项的状态决定,只要全部采购项完成采购单状态才能是已完成。
请求路径
请求参数
编写VO
编写接口
完善商品库存中的冗余字段存储
远程服务调用
不能因为远程服务调用的不稳定或者是其它原因导致调用的失败而回滚,因此,将可能抛出的移除处理掉避免回滚
编写分页插件配置类
SPU规格维护
获取spu规格
请求路径
响应体
编写接口
修改商品规格
请求路径
请求参数
编写接口