一、 目标
需求:完成商品添加业务。
第一步:理解商品模块的业务(通过ER图理解)
考核的知识点,通过数据库结构快速生成ER图。同自己的理解画好关系。
问题:为什么数据库表不建外键约束?
答:外键约束确保了数据的完整性,但是也约束数据的灵活性。如果将外键在数据里创建,不适合需求多变的项目。
第二步:查询商品类目(以树形结构显示,UI设计的要求)
考核的知识点,就是如何封装一个树状的数据结构。
第三步:实现图片的上传(要求:上传到指定的FTP服务器)
考核的知识点:
(1)Linux系统的使用
(2)tengine 纯HTTP的web服务器
(3)SpringMVC的上传功能
(4)FTP的数据传到
第四步:设置类目的参数规格模板
考核的知识点:JSON数据格式转换。
第五步:商品的保存
考核的知识点:使用MybatisPlus插入数据
二、功能分析
1、 相关数据表

2、实现思路
(1)每个商品都有一个分类,所以要实现商品类目选择功能。
(2)商品有一个图片属性,所以要实现图片上传的功能。
(3)每个商品都有规格参数,所以要实现商品规格参数编辑功能。
(4)将商品的规格参数、商品详情、商品信息分别保存到三张表中。
三、第一部分:实现商品类目选择功能
实现的思路:
业务理解:在加载树控件的时候,将所有顶级的类目显示出来。所以的子节点在展开的时候传入节点对应的类目编号(ID),查询对应的类目数据。
根据业务理解:
(1)加载树控件。(本项目使用的是easyui-tree插件,第一次传递的cid=0)
(2)确定异步树请求的参数及返回的节点结构。(要构建easyui-tree对应的业务模型VO,id、text、status)
(3)请求数据库,生成树结构。(根据parent_id字段查询子节点实现。)
四、第二部分:实现商品图片上传功能
1、 vsftpd简介
问题1:vsftpd是什么?
答:ftp(File Transfer Protocol)文件传输协议。(实现不同操作系统之间文件的传输)
vsftpd是一个基于ftp协议的文件传输服务器软件。
问题2:vsftpd作用是什么?
答:传输文件的文件服务器。(跨平台、跨操作系统)
问题3:如何使用?
答:服务端:在linux安装vsftpd软件,开启服务。
客户端:通过FtpClient客户端建立和服务器的连接,向服务器发送请求。
2、实现步骤说明
(1)在Linux上安装vsftpd服务。
(2)根据图片的地址访问图片。(最终保存到数据库的是图片的路径)
(3)web工程中实现图片上传。
五、 第三部分:kindEditor编辑商品属性
纯前端js实现,不需要java后台代码支持。
原理:内置了一个HTML编辑器,将HTML页面转换成文本类型,将值传给指定的元素。
六、第四部分:商品规格参数
(1)每一类商品的规格分组是相同的。
(2)每一个规格分组对应多个规格项。
(3)每一个商品的规格值不同。
网友评论