Skip to content

Latest commit

 

History

History
1545 lines (1485 loc) · 43.1 KB

详细设计说明书.md

File metadata and controls

1545 lines (1485 loc) · 43.1 KB

网络商城——学信汇详细设计说明书

编号: 20190927
版本: 1.01
作者:
 姓名: 张骞 韩文白 黄绍宸 宋博文 于培政
 学号: 2019011206 2019011192 2019011193 2019011292 2019011204
 团队: 111队
完成日期: 2022/9/27
文件状态: 正式发布
文件标识: 正式发布

版本更新信息: 在逻辑上正确地实现学信汇系统每个模块的功能

1.引言

使用人员: 交易平台买家与卖家,管理员

编写目的: 详细设计说明书旨在逻辑上正确地实现每个模块的功能和对目标系统的算法、数据表示和数据结构、实施的功能和使用的数据之间的关系精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

背景:
a.名称: 学信汇网上交易平台(网络商城系统)
b.说明:随着经济的迅速发展与科技日新月异的进步,家庭内的各项物品更新换代频率越来越快,人们购买新商品后越来越多旧的商品积压需要处理;在互联网电商的各种营销刺激下,消费者非常容易形成“冲动” 消费,因而产生了大量的闲置、二手物品。现阶段物价越来越高,加之生活压力越来越大,百姓生活成本也在逐步提高。随着经济意识的不断增强,生活习惯和消费观念也在悄然改变,人们逐渐倾向于购买便宜而又实惠的二手商品。
在此背景下,大量二手物品交易市场应运而生,二手物品的交易已成为国民经济中不可缺少的一部分。二手商品交易平台,是基于一种新的思想,文化,理念的生活方式,伴随互联网及移动端的高速发 展,快速、便利、精准地为百姓提供高性价比的二手物品,既能满足百姓日益增长的生活需要,又可促进可利用资源的循环使用,减少资源的浪费。在注重商品交易的同时,更多的考虑到环境保护因素,贴合时下主流文化,让每个人在交易的同时,能够参与到环境保护中。    眼下,国家大力提倡节能环保、低碳行为,让市民家中闲置的二手物品流通起来产生效益,有望成为一个热门生意。我们将自己设计创建主要以孝义市为市场的二手交易平台,推出“C2C+C2B+C2B2C”的服务式平台,自建一套独立完善的物流系统,带给顾客一种全新的服务体验。结合多功能的网站交易平台和一体化的物流配送服务,力使我们的平台得到最大化的推广,让我们的平台成为孝义及周边地区有影响力的二手交易的品牌。

定义与缩写:
术语:md5算法
解释:MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

参考资料:
条目:https://baike.baidu.com/item/MD5/212708

2.程序系统的结构

系统架构图:
系统架构图.jpg

程序系统的结构:
系统结构.jpg

3.单元设计说明

标识符:用户单元

程序描述

游客可访问学信汇主界面进行商品浏览和模糊查询,点击商品名称可浏览商品详细信息。 游客可通过浏览学信汇网站登录界面进行注册和登录。 游客注册待管理员审核通过后可进行登录学信汇主页面进行充值,评论,修改信息等功能。 用户在商品详细界面点击加入购物车可在购物车界面查看到用户添加到购物车的商品。 用户通过点击结算按钮进行商品结算,用户可点击一键下单进行下单或者在线支付选择积分支付或者在线支付。 商品状态为收货以后用户可以点击收货进行收货或者退款,若超过24小时则商品无法退货。 用户收货完成以后可以进行商品评价为其他用户提供参考。

功能

1.用户注册功能模块:用户通过输入账号,密码,城市,电话,银行卡号等相关信息进行注册,注册成功后用户跳转至登录界面进行登录,同时用户信息也会提交至数据库。
2.用户搜索功能模块:用户通过搜索栏搜索想要的商品进行浏览商品,也可通过模糊查询进行商品的搜索。
3.用户购物车功能模块:用户通过浏览商品详细信息界面将感兴趣的商品添加到购物车。
4.用户订单功能模块:用户在购物车界面勾选感兴趣的商品进行下单,系统跳转到订单界面,用户可点击一键下单或者在线支付进行下单,下单后商家进行发货,当商品状态信息显示到货以后用户可点击收货或者退货,当商家同意退货以后用户资金和积分自动返还。
5.用户修改信息功能模块:用户可在管理模块进行密码,资料,头像,地址的修改。
6.用户评价功能模块:对于收货的商品用户可进行评价,商家可进行回复评价。

算法

md5算法:对用户的密码进行加密防止有人恶意盗取密码进行刷单等不法行为。

流程逻辑
1.用户登录流程图:
用户登录流程图.jpg
2.用户下单流程图:
用户下单流程图.png

接口
1.IUserService.impl:处理用户/商家/管理员数据的业务层接口

1.1 reg
函数原型:void reg(User user);
功能:实现用户的注册功能。
参数说明:
User用户的实体类
返回值说明:无
使用方法:在UserController控制层调用该接口实现类中的方法实现用户注册。

1.2 login
函数原型:User login(String username,String password);
功能:实现用户的登录功能。
参数说明:
username 用户名
password 用户密码
返回值说明:返回当前匹配的用户数据(数据库中的用户注册数据) 无则返回NULL。
使用方法:在UserController控制层调用该接口实现类中的方法实现用户登录。

1.3 changePassword
函数原型:void changePassword(Integer uid,String username,String oldPassword,String newPassword);
功能:实现用户的修改密码功能。
参数说明:
uid 用户id
username 用户名
oldPassword 老密码
newPassword 新密码
返回值说明:无
使用方法:在UserController控制层调用该接口实现类中的方法实现用户修改密码。

1.4 getByUid
函数原型: User getByUid(Integer uid);
功能:根据用户的id查询用户数据。
参数说明:
uid 用户id
返回值说明:返回用户的数据。
使用方法:在UserController控制层调用该接口实现类中的方法实现根据用户的id查询用户数据。

1.5 changeInfo
函数原型:void changeInfo(Integer uid,String username,User user);
功能:更新用户的数据。
参数说明:
uid 用户id
username 用户名
user 用户对象的数据
返回值说明:无
使用方法:在UserController控制层调用该接口实现类中的方法实现更新用户的数据。

1.6 changeAvatar
函数原型:void changeAvatar(Integer uid,String avatar,String username);
功能:修改用户头像。
参数说明:
uid 用户id
avatar 用户头像路径
username 用户名
返回值说明:无
使用方法:在UserController控制层调用该接口实现类中的方法实现修改用户头像。

1.7 checkAllUsers
函数原型: List checkAllUsers();
功能:管理员查看所有用户数据。
参数说明: 无
返回值说明:返回用户的数据信息。
使用方法:在在UserController控制层调用该接 口实现类中的方法实现修改用户头像控制层调用该接口实现类中的方法实现用户登录。

1.8 passUserByUid
函数原型: void passUserByUid(Integer uid);
功能:根据用户uid让用户审核通过。
参数说明:
uid 用户id
返回值说明:无
使用方法:在在UserController控制层调用该接口实现类中的方法实现用户审核通过。

1.9 rejectUserByUid
函数原型: void rejectUserByUid(Integer uid);
功能:根据用户uid让用户审核不通过。
参数说明:
uid 用户id
返回值说明:无
使用方法:在在UserController控制层调用该接口实现类中的方法实现用户审核不通过。

1.10 addMoney 函数原型: void addMoney(Integer uid,Integer purse, String modifiedUser, Date modifiedTime);
功能:根据用户uid添加钱。
参数说明:
uid 用户id
purse 用户钱包金额
modifiedUser 修改数据的用户
modifiedTime 修改时间
返回值说明:无
使用方法:在在UserController控制层调用该接口实现类中的方法实现根据用户uid添加钱。

1.11 addLevel 函数原型: void addLevel(Integer uid,String modifiedUser, Date modifiedTime);
功能:根据用户id修改商家等级。
参数说明:
uid 用户id
modifiedUser 修改数据的用户
modifiedTime 修改时间
返回值说明:无
使用方法:在在UserController控制层调用该接口实现类中的方法实现根据用户id修改商家等级。

2.IAddressService.impl:收货地址业务层接口

2.1 addNewAddress
函数原型:void addNewAddress(Integer uid,String username,Address address);
功能:添加一个新的用户收货地址。
参数说明:
uid 用户的id
username 用户名
address 用户收货地址
返回值说明:无
使用方法:在AddressController控制层调用该接口实现类中的方法实现用户地址添加。

2.2 getByUid
函数原型: List

getByUid(Integer uid);
功能:根据用户uid获取用户收货地址列表。
参数说明:
uid 用户的id
返回值说明:用户收货地址列表
使用方法:在AddressController控制层调用该接口实现类中的方法实现获取用户收货地址列表。

2.3 setDefault
函数原型: void setDefault(Integer aid,Integer uid,String username);
功能:修改某个用户收货地址数据为默认收货地址。
参数说明:
aid 收货地址id
uid 用户的id
username 表示修改执行的人
返回值说明:无
使用方法:在AddressController控制层调用该接口实现类中的方法实现修改某个用户收货地址数据为默认收货地址。

2.4 delete
函数原型: void delete(Integer aid, Integer uid,String username);
功能:删除用户选中的收货地址数据。
参数说明:
aid 收货地址id
uid 用户的id
username 表示修改执行的人
返回值说明:无
使用方法:在AddressController控制层调用该接口实现类中的方法实现删除用户选中的收货地址数据。

2.5 updateInfoByAid
函数原型: void updateInfoByAid(Integer aid,String username,Address address);
功能:根据用户aid修改用户收货地址数据。
参数说明:
aid 收货地址id
username 用户名称 address 用户地址对象数据
返回值说明:无
使用方法:在AddressController控制层调用该接口实现类中的方法实现根据用户aid修改用户收货地址数据。

2.6 getByAid
函数原型: Address getByAid(Integer aid,Integer uid);
功能:根据收货地址id获取收货地址数据。
参数说明:
aid 收货地址id
uid 用户的id
返回值说明:用户的收货地址数据
使用方法:在AddressController控制层调用该接口实现类中的方法实现根据收货地址id获取收货地址数据。

3.ICartService.impl:购物车业务层接口

3.1 addToCart
函数原型: void addToCart(Integer uid,Integer pid,Integer amount,String username);
功能: 将商品添加至购物车中
参数说明:
uid 用户id
pid 商品id
amount 新增数量
username 修改者用户名
返回值说明:无
使用方法: 在控制层调用该接口实现将商品添加至购物车中
说明: 需要查询当前要添加的该物品是否在表中已经存在

3.2 getVOByUid
函数原型: List getVOByUid(Integer uid);
功能: 根据用户uid查询VO类用户加入购物车的商品列表
参数说明:
uid 用户id
返回值说明:List类型用户加入购物车的商品列表
使用方法: 在控制层调用该接口实现查询用户加入购物车的商品列表

3.3 delCartItem
函数原型: void delCartItem(Integer cid);
功能: 根据购物车id逻辑删除某项购物车物品
参数说明:
cid 购物车id
返回值说明:无
使用方法: 在控制层调用该接口实现将商品添加至购物车中
说明: 需要查询当前要添加的该物品是否在表中已经存在

3.4 addNum
函数原型: Integer addNum(Integer cid,Integer uid,String username);
功能: 更新用户购物车数据的数量
参数说明:
uid 用户id
cid 购物车id
username 修改者用户名
返回值说明:无
使用方法: 在控制层调用该接口实现更新用户购物车数据的数量
说明: 结合Mapper层中的findByCid和updateNumByCid增加购物车商品数目

3.5 reduceNum
函数原型: Integer reduceNum(Integer cid,Integer uid,String username);
功能: 减少用户购物车数据的数量
参数说明:
uid 用户id
cid 购物车id
username 修改者用户名
返回值说明:无
使用方法: 在控制层调用该接口实现减少用户购物车数据的数量

3.6 getVOByCid
函数原型: List getVOByCid(Integer uid, Integer[] cids);
功能: 获取购物车数据
参数说明:
uid 用户id
cids[] 购物车数组id
返回值说明: List类型的购物车数据 使用方法: 在控制层调用该接口实现获取购物车数据

4.ICommentService.impl:用户/商家/管理员评论业务层接口

4.1 insert
函数原型: void insert(Comment comment);
功能: 插入评论相关数据
参数说明:
comment Comment类型实例
返回值说明: 无
使用方法: 在控制层调用该接口实现插入评论相关数据

4.2 updateByBid
函数原型: void updateByBid(Integer uid,Integer bid,Integer oid,Integer pid,String reply);
功能: 商家根据商品id和用户id为用户提交评价
参数说明:
uid 用户id
oid 订单id
bid 商家id
pid 商品id
reply 回复
返回值说明:无
使用方法:在控制层调用该接口实现提交用户评价功能

4.3 findByUid
函数原型: List findByUid(Integer uid);
功能: 用户根据uid查看所有评价信息
参数说明:
uid 用户id
返回值说明: List的评论
使用方法:在控制层调用该接口实现查看所有评价信息

4.4 findByBid
函数原型: List findByBid(Integer bid);
功能: 商家根据bid也就是商家的uid查看所有对买家的回复
参数说明:
bid 商家id
返回值说明: List的评论
使用方法:在控制层调用该接口实现查看所有对买家的回复

4.5 findByPid
函数原型: List findByPid(Integer pid);
功能: 根据商品号查看商品评价
参数说明:
pid 商品id
返回值说明:List的评论
使用方法:在控制层调用该接口实现查看商品评价

5.IDistrictService.impl:用户/商家/管理员地址业务层接口

5.1 getByParent
函数原型: List getByParent(String parent);
功能: 根据父区域代号来查询区域信息;
参数说明:
parent 父代码
返回值说明: 多个区域信息
使用方法: 在控制层调用该接口实现查询地区

5.2 getNameByCode
函数原型: String getNameByCode(String code);
功能: 查询区域名称
参数说明:
code 地区代号
返回值说明: 地区名字
使用方法: 在控制层调用该接口实现查询地区

6.IOrderService.impl:订单和订单数据的业务层接口

6.1 create
函数原型: Order create(Integer aid,Integer[] cids, Integer uid, String username);
功能: 创建订单
参数说明:
aid 收货地址id
cids 购物车数据id
uid 用户id
username 用户名
返回值说明: 无
使用方法: 在控制层调用该接口实现创建订单。

6.2 findVOByOid
函数原型: List findVOByOid(Integer oid);
功能: 根据订单id查询订单列表
参数说明:
oid 订单id
返回值说明: List类型的对应id的订单列表
使用方法: 在控制层调用该接口实现根据订单id查询订单列表。

6.3 findOrderByOid
函数原型: Order findOrderByOid(Integer oid);
功能: 根据订单id查询详情的订单信息
参数说明:
oid 订单id
返回值说明: Order类型的对应id的订单列表
使用方法: 在控制层调用该接口实现根据订单id查询详情的订单信息。

6.4 updateStatus
函数原型: void updateStatus(Integer oid, Date payTime);
功能: 更新订单状态
参数说明:
oid 订单id
payTime 订单支付时间
返回值说明: 无
使用方法: 在控制层调用该接口实现更新订单状态。

6.5 findVOByUid
函数原型: List findVOByUid(Integer uid);
功能: 根据用户id 查询详情的列表
参数说明:
订单id
返回值说明: 无
使用方法: 在控制层调用该接口实现查找订单的详细信息

6.7 findVOByOUid 函数原型: List findVOByOUid(Integer oid,Integer uid);
功能: 根据用户id 订单id查询详情的列表
参数说明:
oid 订单id
uid 用户id
返回值说明: 用户订单下商品列表
使用方法: 在控制层调用该接口实现根据用户id 订单id查询详情的列表。

6.8 findVOByOUPid 函数原型: OrderVO findVOByOUPid(Integer oid,Integer pid);
功能: 根据订单id 用户id 商品id查询用户下单的某个商品
参数说明:
oid 订单id
pid 商品id
返回值说明: 用户订单下下单的某个商品
使用方法: 在控制层调用该接口实现根据订单id 用户id 商品id查询用户下单的某个商品。

7.IProductService.impl产品数据的业务层接口

7.1 findHotList 函数原型: List findHotList();
功能: 查询热销商品的前n名
参数说明: 无
返回值说明: 热销商品前n名的集合
使用方法: 在控制层调用该接口实现查询热销商品的前n名。

7.2 findMarkList
函数原型: List findMarkList();
功能: 查询评分最高商品前n名
参数说明: 无
返回值说明: 查询评分最高商品前n名
使用方法: 在控制层调用该接口实现查询评分最高商品前n名。

7.3 findDescList
函数原型: List findDescList();
功能: 查询最贵的商品前n名
参数说明: 无
返回值说明: 查询最贵的商品前n名
使用方法: 在控制层调用该接口实现查询最贵的商品前n名。

7.4 findAscList
函数原型: List findAscList();
功能: 查询最便宜商品前n名
参数说明: 无
返回值说明: 查询最便宜商品前n名
使用方法: 在控制层调用该接口实现查询最便宜商品前n名。

7.5 findAscList
函数原型: Product findById(Integer id);
功能: 根据商品id查询商品详情
参数说明:
id 商品id
返回值说明: 根据商品id查询商品详情
使用方法: 在控制层调用该接口实现根据商品id查询商品详情。

7.5 findByTitle
函数原型: List findByTitle(String title);
功能: 根据商品名称查询商品详情
参数说明:
title 商品名称
返回值说明: 所查询商品详情的列表
使用方法: 在控制层调用该接口实现根据商品名称查询商品详情。

7.6 findAllProducts
函数原型:List findAllProducts();
功能: 查询所有商品
参数说明:无
返回值说明: 所有商品详情
使用方法: 在控制层调用该接口实现根据商品名称查询商品详情。

7.7 findAllPassProducts
函数原型:List findAllPassProducts();
功能: 查询所有在售商品
参数说明:无
返回值说明: 所有在售商品
使用方法: 在控制层调用该接口实现查询所有在售商品。

7.8 findAllProductsByBid
函数原型:List findAllProductsByBid(Integer bid);
功能: 查询商家所有商品
参数说明:
bid 商家id
返回值说明: 商家所有商品列表
使用方法: 在控制层调用该接口实现查询商家所有商品。

7.9 findPassProductsByBid
函数原型:List findPassProductsByBid(Integer bid);
功能: 查询商家所有在售商品
参数说明:
bid 商家id
返回值说明: 所有在售商品
使用方法: 在控制层调用该接口实现查询商家所有在售商品。

7.10 insert
函数原型:void insert(Product product);
功能: 新增商品
参数说明:
product 产品相关数据
返回值说明:无
使用方法: 在控制层调用该接口实现新增商品。

7.11 passProjectById
函数原型:void passProjectById(Integer id);
功能: 根据商品id让商家发布的商品审核通过
参数说明:
id 商品id
返回值说明: 无
使用方法: 在控制层调用该接口实现根据商品id让商家发布的商品审核通过。

7.12 passProjectByBusiness
函数原型:void passProjectByBusiness(Integer id);
功能: 根据商品id让商家发布的商品上架
参数说明:
id 商品id
返回值说明: 无
使用方法: 在控制层调用该接口实现根据商品id让商家发布的商品上架。

注释设计

文档注释:利用JDK提供的javadoc工具将文档注释提取出来生成一份API帮助文档。其中包含用户接口的文档注释,数据实体的文档注释,用户业务层,控制层的文档注释

测试计划

1.对用户登录界面进行并发测试检测系统的抗压性。
2.对用户订单界面进行接口测试。
3.对系统进行黑盒测试和白盒测试。
注:详细测试计划见测试计划文档。

尚未解决的问题

对于用户的在线支付功能尚未解决。

标识符:商家单元

程序描述

用户通过注册并上传商家营业执照,进行商家身份的注册。 商家待管理员通过审核后跳转到登录界面,商家登录到商家主界面。 商家可点击上传商品到自己的商品橱柜,待管理员审核完成以后商品可被所有用户看到并购买,若商品未通过审核则商家商品仅自己可见但用户无法被看到。 用户下单商品以后商家可点击发货,待用户收货以后商家才可获得尾款。 用户对商品进行的评价商家可进行回复供其他用户参考。

功能

1.商家注册功能模块:用户通过输入账号,密码,城市,电话,银行卡号,商家营业执照等相关信息进行注册,待管理员审核通过算注册成功,注册成功后商家跳转至登录界面进行登录,同时用户信息也会提交至数据库。
2.商家橱窗功能模块:商家可浏览自己上传的商品的信息和上架\下架的商品信息。
3.商家上传商品功能模块:商家上传希望售卖商品的信息。
4.商家订单功能模块:商家对于用户下单的商品以及商品的状态进行发货,退货,拒绝退货。
5.商家修改信息功能模块:商家可在管理模块进行密码,资料,商家营业执照,地址的修改。
6.商家评价功能模块:对于收货的商品用户可进行评价,商家可进行回复评价。

流程逻辑
1.商家添加商品流程图:
商家添加商品流程图.jpg

接口

参照用户单元中的接口

注释设计

文档注释:利用JDK提供的javadoc工具将文档注释提取出来生成一份API帮助文档。其中包含业务层接口的文档注释,数据实体的文档注释,业务层,控制层的文档注释

测试计划

1.对商家登录界面进行并发测试检测系统的抗压性。
2.对商家订单界面进行接口测试。
3.对系统进行黑盒测试和白盒测试。
注:详细测试计划见测试计划文档。

尚未解决的问题

对于商家的在线收款功能尚未解决。

标识符:管理员单元

程序描述

用户通过注册成为管理员,输入正确的管理员资格码后可成功注册管理员身份。 管理员跳转到管理主界面进行用户注册管理,商家商品上架管理。

功能

1.管理员注册功能模块:用户通过输入账号,密码,城市,电话,银行卡号,管理员资格码等相关信息进行注册,管理员资格码审核通过算注册成功,注册成功后管理员跳转至登录界面进行登录,同时管理员信息也会提交至数据库。
2.管理员审核用户功能模块:管理员进入该模块后会展示进行注册的用户或商家或管理员的注册信息,管理员可以点击通过或者驳回进行审核。
3.管理员审核商品功能模块:管理员对商家上传的商品信息进行审核,对于合规商品进行通过,不合规商品进行驳回。

算法

流程逻辑
1.管理员审核商家商品流程图:
管理员审核商家商品流程图.jpg
2.管理员审核用户权限流程图:
管理员审核用户权限流程图.jpg

接口

参照用户单元中的接口

注释设计

文档注释:利用JDK提供的javadoc工具将文档注释提取出来生成一份API帮助文档。其中包含业务层接口的文档注释,数据实体的文档注释,业务层,控制层的文档注释

测试计划

1.对管理员登录界面进行并发测试检测系统的抗压性。
2.对管理员审核界面进行接口测试。
3.对系统进行黑盒测试和白盒测试。
注:详细测试计划见测试计划文档

尚未解决的问题

暂无

4.数据库设计

4.1 外部设计:

  1. 数据库类型, Navicat
  2. 数据库版本,15.0.25
  3. 数据库运行环境
     (1). 正式环境
      硬件信息:
      CPU: Intel(R) Xeon(R) Gold 6161 CPU @ 2.20GHz 内存:8GB 固态硬盘:无机械硬盘:500GB
      软件信息: 移动客户端服务器部署在linux centos, 操作系统为Windows 10 64bit,Web中间件为,Apache/2.4.39 (Unix)
     (2). 开发环境
      a. tomcat
      b. windows10
  4. 数据库前缀/表前缀
     (1). t_
  5. 数据库名称 store2019011292
  6. 数据库权限
     (1). root用户,只能本地登录
  7. 用户名
     (1). root
  8. 密码要求
     (1). 随机生成16位,其中必须包含 A-Z/ a-z /0-9 /!@#$%^&*
     (2). 上线后, 数据库密码每个月要更换一次
  9. 端口
     1. 3307
  10. 有效时间
     1. 开发阶段
     2. 生产阶段

4.2 结构设计:
概念设计:img.png

逻辑结构设计:
 用户(编号,用户名,密码,电话,城市,地址,权限)
 商品(编号,商家编号,名字,价格,数量,描述)
 购物车(卖家编号,买家编号,商品编号,数量)
 账单(账单编号,买家编号,卖家编号,商品编号,日期,数量,是否评价  评论(评论编号,内容,用户编号,评论时间,商品编号,卖家编号,评分
 申请(申请编号,用户编号,银行卡号,就业执照)

t_address表

名称 类型 长度 注释
aid int 11 收货地址id
uid int 11 收件人id
name varchar 20 收件人姓名
Province_name varchar 15 省-名称
Province_code char 6 省-行政代号
city_name varchar 15 市-名称
city_code char 6 市-行政代号
area_name varchar 15 区-名称
area_code char 6 区-行政代号
zip char 6 邮政编码
address varchar 50 详细地址
phone varchar 20 手机号
tel varchar 20 固定电话
tag varchar 6 标签
is_default int 11 是否默认;0-不默认,1-默认
created_user varchar 20 创建人
created_time datetime 创建时间
modified_user varchar 20 修改人
modified_time datetime 修改时间

t_cart表

名称 类型 长度 注释
cid int 11 购物车数据id
uid int 11 用户id
pid int 11 商品id
price bigint 20 加入时商品单价
num int 11 商品数量
created_user varchar 20 创建人
created_time datatime 创建时间
modified_user varchar 20 修改人
modified_time datatime 修改时间
cstatus int 1 是否删除

t_comment表

名称 类型 长度 注释
id int 10 主键id
uid int 10 用户id
bid int 10 商家id
oid int 10 订单id
pid int 10 商品id
p_comment varchar 255 商品的评价
b_comment varchar 255 商家的评价
judge_mark int 10 商品的评分
reply varchar 255 商家的回复
created_user varchar 20 日志-创建人
created_time datatime 日志-创建时间
modified_user varchar 20 日志-最后修改执行人
modified_time datatime 日志-最后修改时间

t_dict_district表

名称 类型 长度 注释
id int 11 主键
parent varchar 6
code varchar 6
name varchar 16

t_order表

名称 类型 长度 注释
oid int 11 订单id
uid int 11 用户id
recv_name varchar 20 收货人姓名
recv_phone varchar 20 收货人电话
recv_province varchar 15 收货人所在省
recv_city varchar 15 收货人所在市
recv_area varchar 15 收货人所在区
recv_address varchar 50 收货人所在具体地址
total_price bigint 20 总价
status int 11 状态.0-未支付,1-已支付,2-已收款,3-申请退款,4-已完成
order_time datetime 下单时间
pay_time datetime 支付时间
created_user varchar 20 日志-创建人
created_time datatime 日志-创建时间
modified_user varchar 20 日志-最后修改执行人
modified_time datatime 日志-最后修改时间

t_order_item表

名称 类型 长度 注释
id int 11 订单中的商品记录的id
oid int 11 所归属的订单id
pid int 11 商品的id
title varchar 100 商品的标题
image varchar 500 商品的图片
price bigint 20 商品的价格
num int 11 购买数量
created_user varchar 20 创建人
created_time datatime 创建时间
modified_user varchar 20 修改人
modified_time datatime 修改时间
p_status int 1 商品状态 0 未发货 1已发货 2 已到货 3 已收货 4交易完成 5申请退货 6退货完成 7退货驳回

t_purse_record_user表

名称 类型 长度 注释
id int 20 金额变化记录id
uid int 11 用户id
username varchar 20 用户名
purse int 10 用户当前金额
add_count int 10 用户充值金额
sub_count int 10 用户扣除金额
pid int 11 用户购买的商品的id
created_user varchar 20 日志-创建人
created_time datatime 日志-创建时间
modified_user varchar 20 日志-最后修改执行人
modified_time datatime 日志-最后修改时间

t_user表

名称 类型 长度 注释
uid int 11 用户id
username varchar 20 用户名
password char 32 密码
salt char 36 盐值
phone varchar 20 手机号
email varchar 30 电子邮箱
gender int 11 性别:0:女,1:男
avatar varchar 50 头像
is_delete int 11 是否删除:0:未删除,1:已删除
created_user varchar 20 日志-创建人
created_time datatime 日志-创建时间
modified_user varchar 20 日志-最后修改执行人
modified_time datatime 日志-最后修改时间
city varchar 255 城市
bankAccount varchar 255 银行卡帐号
userType varchar 255 用户类型 0代表普通用户 1代表管理员 2代表商家
is_pass int 255 是否审核通过
purse int 255 钱包
level int 2 卖家等级
point int 20 用户积分

物理设计:
 数据结构为关系型数据库,所以,在程序中可以通过标准的SQL语句与数据结构进行交互,交互过程中 采用通用的数据库访问接口。本软件通过springboot连接数据库,因此只要主机上spring boot服务程 序即可以与Mysql数据库进行连接,实现对数据库的访问。

4.3 运行设计:
数据字典设计:
字典类别表:(字典类名称,类型,长度,注释)

购物车数据的Value Object

名称 类型 长度 注释
cid int 11 购物车数据id
uid int 11 用户id
pid int 11 商品id
price bigint 20 加入时商品单价
num int 11 商品数量
title varchar 100 商品的标题
image varchar 500 商品的图片

订单数据的Value Object

名称 类型 长度 注释
uid int 11 用户id
pid int 11 商品id
oid int 10 订单id
price bigint 20 加入时商品单价
num int 11 商品数量
recv_name varchar 20 收货人姓名
order_time datetime 下单时间
pay_time datetime 支付时间
title varchar 100 商品的标题
image varchar 500 商品的图片

支付数据的Value Object

名称 类型 长度 注释
uid int 11 用户id
pid int 11 商品id
oid int 10 订单id
pay_time datetime 支付时间
status int 11 状态.0-未支付,1-已支付,2-已收款,3-申请退款,4-已完成
num int 11 商品数量
p_status int 1 商品状态 0 未发货 1已发货 2 已到货 3 已收货 4交易完成 5申请退货 6退货完成 7退货驳回
price bigint 20 加入时商品单价

安全保密设计:
 root用户只能本地登录,对于用户的密码采用md5算法进行加密。