字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | ||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 图片 | ||
buynumber | int | 购买数量 | |||
price | double | 单价 | |||
discountprice | double | 折扣价 |
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | username | varchar | 20 | 否 | 50 | 用户名 |
3、 | pwd | varchar | 20 | 否 | 50 | 密码 |
4、 | cx | varchar | 20 | 否 | 50 | 权限 |
5、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
表4-1管理员用户表
表4-2新闻公告表
表4-3系统简介
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | biaoti | varchar | 50 | 否 | 300 | 标题 |
3、 | leibie | varchar | 20 | 否 | 50 | 类别 |
4、 | neirong | text | 8 | 否 | 8 | 内容 |
5、 | tianjiaren | varchar | 20 | 否 | 50 | 添加人 |
6、 | shouyetupian | varchar | 20 | 否 | 50 | 图片 |
7、 | dianjilv | int | 4 | 否 | 4 | 点击率 |
8、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | biaoti | varchar | 50 | 否 | 300 | 标题 |
3、 | leibie | varchar | 20 | 否 | 50 | 类别 |
表4-4留言板
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | cheng | varchar | 20 | 否 | 50 | 昵称 |
3、 | xingbie | varchar | 8 | 是 | 20 | 头像 |
4、 | varchar | 8 | 是 | 20 | ||
5、 | youxiang | varchar | 8 | 是 | 20 | 邮箱 |
6、 | dianhua | varchar | 8 | 是 | 20 | 电话 |
7、 | neirong | varchar | 50 | 是 | 500 | 留言内容 |
8、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
9、 | huifneirong | varchar | 50 | 是 | 500 | 回复内容 |
表4-5评论表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | username | varchar | 20 | 否 | 50 | 用户名 |
3、 | pwd | varchar | 20 | 否 | 50 | 密码 |
4、 | cx | varchar | 20 | 否 | 50 | 权限 |
5、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
表4-6注册用户表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | yonghuming | varchar | 20 | 否 | 50 | 用户名 |
3、 | mima | varchar | 8 | 是 | 20 | 密码 |
4、 | xingming | varchar | 20 | 是 | 50 | 姓名 |
5、 | xingbie | varchar | 20 | 是 | 50 | 性别 |
6、 | chushengnianyue | varchar | 20 | 是 | 50 | 出生年月 |
7、 | varchar | 20 | 是 | 50 | ||
8、 | youxiang | varchar | 20 | 是 | 50 | 邮箱 |
9、 | dianhua | varchar | 20 | 是 | 50 | 电话 |
10、 | shenfenzheng | varchar | 20 | 是 | 50 | 身份证 |
11、 | touxiang | varchar | 20 | 是 | 50 | 头像 |
12、 | dizhi | varchar | 20 | 是 | 50 | 地址 |
13、 | beizhu | varchar | 20 | 是 | 50 | 备注 |
14、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
表4-7友情连接
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 4 | 主键ID |
2、 | wangzhanmingcheng | varchar | 20 | 否 | 50 | 网站名称 |
3、 | wangzhi | varchar | 8 | 是 | 20 | 网址 |
4、 | logo | varchar | 20 | 是 | 50 | LOGO |
5、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
表4-8用户信息
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1、 | ID | int | 4 | 否 | 8 | 主键ID |
2、 | zhanghao | varchar | 50 | 是 | 50 | 账号 |
3、 | mima | varchar | 50 | 否 | 50 | 密码 |
4、 | xingming | varchar | 50 | 是 | 50 | 姓名 |
5、 | xingbie | varchar | 50 | 是 | 50 | 性别 |
6、 | nianling | varchar | 50 | 是 | 50 | 年龄 |
7、 | dianhua | varchar | 50 | 是 | 50 | 电话 |
8、 | huiyuandengji | varchar | 50 | 是 | 50 | 会员等级 |
9、 | banlishijian | datetime | 8 | 是 | 8 | 办理时间 |
10、 | youhuizhekou | varchar | 50 | 是 | 50 | 优惠折扣 |
11、 | zhaopian | varchar | 50 | 是 | 50 | 照片 |
12、 | addtime | datetime | 8 | 否 | 8 | 添加时间 |
3.3 系统流程分析
3.3.1 操作流程分析
在程序交付用户时,应附上操作流程图(如图3.1所示),以帮助用户更好地理解程序的工作流程,目前,程序的操作流程通常遵循一个基本准则,即用户需首先在登录页面上传登录信息,并在程序验证这些信息无误后,方可在程序的功能操作区域执行相应的功能操作。
图3.1 程序操作流程图
3.3.2 登录流程分析
这部分将重点介绍程序登录功能模块的详细工作过程(如图3.2所示)引入登录模块的目的在于提升程序的安全性,以增强用户的安心感。该模块的基本职能是接收用户的登录信息,并进行相应的数据校验,只有当校验结果为通过时,用户才能登录程序。
图3.2 程序登录流程图
3.3.3 信息添加流程分析
程序中的添加功能旨在为操作人员提供一种录入数据的方式,无论这些数据是用户信息还是其他功能模块所需的信息,程序在处理信息添加的流程(如图3.3所示)方面保持一致性。程序在操作人员输入数据后,会先对其进行审核,该审核过程由预先编写的代码规定。只有当数据通过审核,确认符合规定标准时,程序才会将这些数据记录到相应的数据表中。例如,在用户信息添加过程中,新用户的信息将被存储到用户信息数据表的文件中。
图3.3 信息添加流程图
3.3.4 信息删除流程分析
在程序中移除无效数据时,必须遵循预设的信息删除流程(如图3.4所示)。首先,用户需选择需删除的数据条目。为了防止用户误操作,程序会提供确认提示。一旦用户确认删除所选信息,该信息将被永久从数据库中移除。
图3.4 信息删除流程图
如图4.2所示,展示了管理员登录系统后台的登录模块顺序图。
图4.2登录顺序图
登录系统后台之后,用户有权限执行对物品进行竞拍信息的操作,该操作的顺序图如图4.3展现。
图 4.3 添加竞拍信息顺序图
在成功登录系统后台之后,管理员将能够执行删除竞拍信息的任务,该任务的顺序图在图4.4中有所展示。
图 4.4 管理员删除竞拍顺序图
用户在登录系统后,将拥有修改自己个人信息的权限,该操作的顺序图如图4.5所示。
图 4.5 用户修改个人信息顺序图
2.1 业务需求
2.1.1 业务流程(可选)
本系统的业务流程分析的主要任务是调查系统中每个环节的管理业务活动,掌握管理业务的内容、作用及信息的输入、输出,数据存储和信息的处理方法及过程等,为建立系统运作模式打下基础。本系统的业务流程如下:
1、客户可以通过本系统浏览来自商家提供商品类别和商品介绍等。系统提供会员服务功能,用户必须注册才能订购商品。客户还可以通过评价商品。
2、系统管理员可以凭用户名和密码登陆后台管理系统,添加商品,对会员信息、管理员信息、商品信息、订单、评价信息等进行管理。
系统业务流程如图3.3所示。
图3.3业务流程图
管理员可以对后台进行管理包括用户、产品、公告和评论等信息,可对其进行增加、删除、修改、查询等操作。管理员活动图如图36所示。
图36 管理员活动图
用户可以查询、浏览产品,关注用户,收藏产品、管理个人信息等,用户活动图如图37所示。
图37 用户活动图
2.1.3 业务对象
业务建模(Business Modeling)是一种建模方法,目标是对系统的整体业务进行建模。其主要功能是描述一个目标系统的总体构想,主要目的是确定系统的总体业务流程或过程,明确系统业务中的角色及其职责。帮助开发者了解系统的业务流程。
经过分析美食点餐交易类手机小程序的业务流程,明确了系统的两大角色,分别是用户和管理员。其中将用户分成了两个种类,一种是未进行注册直接进入系统的用户,只能在线浏览产品信息和系统通告,并不能够发布自己的评价、不能留言、发布、收藏产品、不能关注用户;另一种是已经注册的用户,用户可以浏览产品的详细信息和系统公告、发布和收藏产品、留言、对产品评价、关注用户,和用户互动等。
管理员的主要功能是对系统后台进行管理和维护。可以对已经注册的用户信息、产品的分类、用户评论、公告信息进行增加、删除、修改、查询等管理工作。同时,管理员也可以对自己的信息进行管理,也可以增加管理员。系统中的总体业务流程如图31所示。
图31 系统业务流程图
2.2 功能性需求
本系统管理员主要功能:对商品信息可以增加、删除、修改、查询,可以增加、修改、查询和删除商品分类信息,对交易订单的管理,用户信息的管理。管理员用例如图3.1所示。
图3.1 管理员功能用例图
用户主要功能:客户可以在网站上注册、登录;用户登录后,可以修改自己的个人信息和地址等,也可以重新设定密码等,客户可以浏览和搜索商品,客户可以将商品添加购物车,购物车删除商品,查看购物车,下单,付款,在线预约,查看我的订单,商品评论等功能。用户用例如图3.2所示。
图3.2用户用例图
2.2.1 用例概述
图2.3 高层用例图
2.2.2 用例描述
用例摘要描述如表2.1所示。
管理员的功能如客户信息管理,查询客户信息、发货、充值等用例描述表如表3.13.2所示。
表3.1 查询客户信息用例描述表
用例编号 | 001 |
用例名称 | 查询客户信息 |
用例描述 | 管理员查询客户的购买信息 |
参与者 | 管理员 |
前置条件 | 管理员登录系统 |
后置条件 | 管理员查询后,出现相关用户的购买信息 |
基本事件流 | 1.系统确认管理员登录;
2.管理员根据客户名称条件进行查询; 3系统出现该客户的所有购买记录和信息; |
备选事件流 | 1. 若无该客户,无内容出现 |
客户主要功能可以下单、付款、添加和删除购物车、搜索商品、查看我的订单、评论商品、修改密码、修改个人信息等。其用例描述如表3.33.12所示。
表3.3 下单用例描述表
用例编号 | 004 |
用例名称 | 下单 |
用例描述 | 客户选择购物车中商品,或者直接在商品详情提交订单 |
参与者 | 客户 |
前置条件 | 客户已注册登录 |
后置条件 | 提交订单成功,在我的订单中可以查看订单 |
基本事件流 | 1.客户将商品加入购物车
2.在购物车中提交订单 3.客户直接在商品详情页提交订单 4.订单创建成功 |
备选事件流 | 1.客户未登录,系统提示登录
2.商品库存不足,系统提示不足 |
表3.4 付款用例描述表
用例编号 | 005 |
用例名称 | 付款 |
用例描述 | 客户创建订单后,去支付商品价格 |
参与者 | 客户 |
前置条件 | 订单创建成功,处于未付款状态 |
后置条件 | 若支付成功,则提示成功支付,并改变订单状态为已支付;若支付失败,提示余额不足请充值。 |
基本事件流 | 1.客户选择一个支付订单
2.点击付款 3.提示客户付款是否成功 |
备选事件流 | 1余额不足,支付失败 |
表3.5商品评论用例描述表
用例编号 | 006 |
用例名称 | 商品评论 |
用例描述 | 客户给已付款订单已完成订单。进行评论 |
参与者 | 客户 |
前置条件 | 客户订单已完成 |
后置条件 | 客户发表评论成功,评论显示在商品下面 |
基本事件流 | 1.客户订单已完成,选择一个商品订单
2.填写评论内容,发表评论 3.评论成功,显示评论内容 |
备选事件流 | 1.客户评论内容不可为空 |
表3.6 添加购物车用例表
用例编号 | 007 |
用例名称 | 添加购物车 |
用例描述 | 客户浏览商品信息,点击商品详情,将商品添加进购物车 |
参与者 | 客户 |
前置条件 | 客户已登录,浏览商品 |
后置条件 | 添加购物车成功 |
基本事件流 | 1.选择一个商品信息
2.点击添加购物车 3.添加购物车成功,在我的购物车中查看 |
备选事件流 | 1.客户未登录,提示登录 |
表3.7 删除购物车用例表
用例编号 | 008 |
用例名称 | 删除购物车 |
用例描述 | 选择购物车中的商品,将其删除 |
参与者 | 客户 |
前置条件 | 购物车中至少有一个商品 |
后置条件 | 购物车商品删除成功 |
基本事件流 | 1.选择购物车中一个商品
2.点击删除商品 3.商品移除成功 |
备选事件流 | 1.购物车中无商品,点击添加商品。 |
表3.8 修改密码用例表
用例编号 | 009 |
用例名称 | 修改密码 |
用例描述 | 修改原来的密码,填写新的密码 |
参与者 | 客户 |
前置条件 | 客户已登录 |
后置条件 | 密码修改成功 |
基本事件流 | 1.填写原始密码
2.输入新密码 3.新密码再次确认 4.点击确认,修改成功 |
备选事件流 | 1.新密码输入不一致,重新输入 |
表3.9 查看我的订单用例表
用例编号 | 010 |
用例名称 | 查看我的订单 |
用例描述 | 订单生成后,可以查看我的订单商品 |
参与者 | 客户 |
前置条件 | 客户购买商品,生成订单 |
后置条件 | 查看订单信息成功 |
基本事件流 | 1.订单生成后,点击我的订单界面,查看订单 |
备选事件流 | 1.没有订单,选择商品创建订单 |
表3.10 修改个人信息用例表
用例编号 | 011 |
用例名称 | 修改个人信息 |
用例描述 | 用户修改个人信息比如地址 |
参与者 | 客户 |
前置条件 | 客户已登录 |
后置条件 | 个人信息修改成功 |
基本事件流 | 1.修改个人信息
2.点击确认修改成功 |
备选事件流 | 无 |
表3.11 搜索商品用例表
用例编号 | 012 |
用例名称 | 搜索商品 |
用例描述 | 用户输入关键字搜索商品 |
参与者 | 客户 |
前置条件 | 客户已登录 |
后置条件 | 查询到所要信息 |
基本事件流 | 1.输入信息关键字
2.点击搜索查询到商品信息 |
备选事件流 | 1.没有该商品,搜索为空 |
用户端模块主要功能是产品的查询和上传,另外还满足用户之间的交互功能。用户端模块如图4-2所示。
图4-2 用户端模块图
后台管理员的功能包括用户管理、分类管理、评论管理、产品管理和系统公告管理等,结构如图4-3所示。
图4-3 后台功能结构图
时序图描述的是对之间如何交互,而且重点是放在消息序列上的。也就是说,说明如何在对象间发送和接收消息。时序图强调的是对象之间发送消息的顺序,显示对象间的一种动态合作关系。
登录是为了充分体验系统功能迈出第一步。首先要输入登录信息也就是用户名和密码,接着会进行表单验证。若在用户信息表中可以查询到与登录信息匹配的记录,那么就可以成功登录;反之则提示有误。时序图如下图所示。
图4-4 用户登录时序图
管理员可以操作信息的添加(如用户信息、产品分类信息、系统公告的添加),添加信息模块顺序图如图4-5所示。
图4-5添加信息顺序图
用户登录进入首页,选择底部导航栏的“发布”,进入产品编辑页面。用户可以选择发布作品或产品,可以选择分类(如川菜、家常菜、甜品、西餐等),上传步骤图片并附上文字说明等。发布后,信息会存储在数据库中,并且产品列表也会更新。产品发布时序图,如下图所示。
图4-6产品发布时序图
依据以上分析可以对数据库进行设计。[13]根据美食点餐交易系统的需求分析和功能模块划分,本系统具有以下实体类,其属性为:
(1)公告实体类:属性有ID、标题、内容、时间;
(2)评论实体类:属性有用户名、ID、评论时间、发布人、评价内容、状态等;
(3)产品实体类:属性有ID、产品名、做法、类型、图片、用户名;
(4)用户实体类:属性有ID、用户名、密码、性别、电话、地址、QQ、喜欢菜系、邮箱、生日等;
(5)消息实体类:属性有ID、用户名、朋友名、发布时间、消息等。
(1)公告实体图,如图4-7所示:
图4-7公告实体图
(2)评论实体图,如图4-8所示:
图4-8 评论实体图
(3)产品实体图,如图4-9所示:
图4-9产品实体图
(4)用户实体图,如图4-10所示:
图4-10 用户实体图
(5)消息实体图,如图4-11所示:
图4-11 消息实体图
根据实体间的联系,可以画出如下图所示的总体E-R图:
图4-12 总体E-R图
(1)注册流程
用户在注册账号的时候,首先进入注册界面,填写用户信息,包括用户名、密码和电话等,如果用户名已经被使用,那么将会提醒用户返回到注册页面,重新填写信息,如果未被使用,且两次密码输入一致即可注册成功,并且相关数据将会自动上传到数据库中。用户注册流程图如下图所示。
图 5-1 注册流程图
(2)注册界面如下图所示:
图5-2 注册界面
2.登录
(1)登录流程
进入系统先看到的是首页,但只是游客身份,只能查看产品。如果想上传产品、收藏产品等必须先登录。注册成功的用户可以直接输入用户名和密码登录。其登录流程图如图所示。
图5-3 登录流程图
(2)登录界面
图5-4 登录界面
图3.4 ER图
图3.4 概念模型
3.5.1 创建问卷用例实现
系统时序图可以更加准确的描述出本系统各个类模板之间的联系以及大致的工作流程,通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。下面系统时序图如图4.2所示。
图4.2系统时序图
1)首先通过实体类创建对象接收用户发出的请求参数,通过请求接收类进行处理。
2)当控制器类接收到请求处理类发来的校验请求,进行校验,并根据校验结果的成功与否返回用户类或进入逻辑处理类。
3)逻辑处理类接收控制器类的请求,通过自身业务逻辑对其进行处理,并选择将数据写入数据访问层还是从数据访问层读出数据。
4)根据验证结果进行以下处理的业务代理对象:用于非一致性请求返回的提示信息;对于右侧的请求,该请求将被转发到的业务对象。
5)在数据访问类中进行读写操作的过程将会被异常处理类监控,一旦出现插入、更新等异常,会立即发送异常消息,到业务逻辑类,业务逻辑类抛出异常结果给业务处理类,最后业务处理类将抛出的异常显示给用户。
4.3.2商品管理功能设计
商品管理模块主要是对商品信息的添加、查询、编辑和删除。商品管理顺序图如图4.3所示。
图4.3商品管理功能顺序图
4.3.3用户管理功能设计
用户管理模块中可以对用户信息进行查询、编辑和删除,用户管理顺序图如图4.4所示。
图4.4用户管理功能顺序图
4.3.4分类管理功能设计
分类管理模块主要是对商品分类的添加、查询、编辑和删除。分类管理顺序图如图4.5所示。
图4.5分类管理功能顺序图
4.3.5订单管理功能设计
订单管理模块中,管理员进入订单管理列表,可以查看订单详细信息,对订单进行操作,可以进行退款操作以及订单确认完成,也可以删除订单信息,订单管理顺序图如图4.6所示。
图4.6订单管理功能顺序图
4.3.6注册登录功能设计
用户注册功能:用户可注册自己的账号,包括昵称,密码,头像选择等基本信息。注册流程如图4.7所示。
图4.7用户注册顺序图
用户登陆功能:用户输入已注册的账号、密码和验证码,验证成功之后登陆购物商城系统。如图4.8所示。
图4.8用户登录顺序图
4.3.7商品查询功能模块设计
商品浏览流程:当用户进入商品浏览主页并点击商品时,系统会将此商品id对应的所有商品详情展示在用户面前,用户满意后就可以加入到购物车中。完成后还可以继续查看其它商品。如图4.9所示。
图4.9商品浏览时序图
4.3.8商品购买功能模块设计
拿到商品id后,查找商品内容,存到数组中后以id为下标存入session。然后提交之后加到订单中。商品购买时序图如图4.10所示。
图4.10商品购买时序图