4.5系统结构设计
本系统使用的角色主要有系统管理员、顾客、接单员,本系统为后台管理系统,游客用户可以经过账号注册,管理员审核通过后,用账号密码登录系统,查看后台首页,模块管理(顾客信息,充值信息,发布订单,接单信息,取消订单,付款记录,服务评价),顾客可以登录个人中心进行个人资料修改、订单查询、在线付款等功能。
管理员使用时,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用后台首页,系统用户(管理员,顾客,接单员),模块管理(顾客信息,充值信息,发布订单,接单信息,取消订单,付款记录,服务评价)等功能操作。。
系统的功能结构图如下图所示。
图4-4系统功能结构图
4.6主要功能模块设计
该模块包括顾客管理和接单员管理,系统用户主要是管理员,顾客和接单员,管理员对用户信息进行管理,只有用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户
- 登录模块
根据用户输入的 Id 和密码到数据库中查找该用户,如果未能找到该用户则做出 提醒“用户名或密码错误”,如果找到该用户,则要判断用户的类别然后根据用户类别进入相应的页面。
- 注册模块
当新用户第一次登陆时,要求注册账号。在登陆页点击注册后进入用户注册界面,新用户需要填写本人的手机号、用户名、设置登录密码,之后单击注册,则完成了初步信息的填写
- 订单信息管理模块
(1)订单添加;顾客必须填写订单标题、订单编号、顾客编号、顾客姓名、发布时间,订单类型、订单佣金、需求描述等信息,订单编号必须是唯一的, 提交后判断某一项是否为填写, 如果是则做出提醒, 填写符合规则后方可添加到数据库。
(2)订单查询:可以根据订单编号等信息对订单进行查询,查询结果仅有一个。
(3)订单修改:除了订单编号外,其他信息均可以修改。
(4)订单取消:首先找到要取消的订单(一个或多个),然后取消,等待管理员审核即可。
- 评价信息管理模块
评价模块分为用户评价和管理员管理评价信息,用户登录系统后,选择想要评价的订单,添加评价,管理员查询该评价信息,并有权对其管理,包括删除。
4.7数据库设计
4.7.1数据库设计概述
为了实现系统的功能设计,就要有相应的数据库表设计。根据系统的功能设计要求为各个数据库表设计字段、数据类型、是否为空等的相关信息。在实际调研和需求分析的基础上,对该系统设计数据库。再有系统的需求分析可以看出,本系统有三个角色:顾客,接单员和管理员,他们分别在系统的运行和使用中起着不同的作用。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。数据库中表的设计主要考虑两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用最可能小的存储空间。
4.7.2概念设计
概念设计是整个数据库设计的关键,在概念设计阶段,由需求分析得到了E-R模型。E-R图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。是对现实世界的抽象和概括,是数据库设计人员进行数据可设计的有力工具,能够方便直接地表达应用中的各种语义知识,令一方面它简单、清晰、易于用户理解。
图4-10系统总体ER图
4.7.3表设计
概念模型是独立于任何一种数据模型的信息结构。将概念模型转换成逻辑模型,转换的一般原则如下:
(1)一个实体性转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
(3)一个1:n联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。
(4)一个m:n联系转化为一个关系模式。
本系统设计如下多个表,包括顾客信息表、订单表、评价表。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cancellation_of_order_id | int | 10 | 0 | N | Y | 取消订单ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
4 | order_type | varchar | 64 | 0 | Y | N | 订单类型 | |
5 | order_commission | int | 10 | 0 | Y | N | 0 | 订单佣金 |
6 | receiver_number | int | 10 | 0 | Y | N | 0 | 接单员编号 |
7 | order_receiving_time | varchar | 64 | 0 | Y | N | 接单时间 | |
8 | cancel_time | date | 10 | 0 | Y | N | 取消时间 | |
9 | reason_for_cancellation | varchar | 64 | 0 | Y | N | 取消原因 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_id | int | 10 | 0 | N | Y | 顾客ID | |
2 | customer_no | varchar | 64 | 0 | N | N | 顾客编号 | |
3 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
4 | gender | varchar | 64 | 0 | Y | N | 性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_information_id | int | 10 | 0 | N | Y | 顾客信息ID | |
2 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
3 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
4 | gender | varchar | 64 | 0 | Y | N | 性别 | |
5 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | account_balance | int | 10 | 0 | Y | N | 0 | 账户余额 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_receiver_id | int | 10 | 0 | N | Y | 接单员ID | |
2 | receiver_number | varchar | 64 | 0 | N | N | 接单员编号 | |
3 | name_of_receiver | varchar | 64 | 0 | Y | N | 接单员姓名 | |
4 | gender | varchar | 64 | 0 | Y | N | 性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表order_receiving_information (接单信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_receiving_information_id | int | 10 | 0 | N | Y | 接单信息ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
4 | order_type | varchar | 64 | 0 | Y | N | 订单类型 | |
5 | order_commission | int | 10 | 0 | Y | N | 0 | 订单佣金 |
6 | requirement_description | text | 65535 | 0 | Y | N | 需求描述 | |
7 | receiver_number | int | 10 | 0 | Y | N | 0 | 接单员编号 |
8 | name_of_receiver | varchar | 64 | 0 | Y | N | 接单员姓名 | |
9 | order_receiving_time | date | 10 | 0 | Y | N | 接单时间 | |
10 | annotation_notes | varchar | 64 | 0 | Y | N | 标注说明 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | payment_records_id | int | 10 | 0 | N | Y | 付款记录ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
4 | order_type | varchar | 64 | 0 | Y | N | 订单类型 | |
5 | order_commission | int | 10 | 0 | Y | N | 0 | 订单佣金 |
6 | receiver_number | int | 10 | 0 | Y | N | 0 | 接单员编号 |
7 | name_of_receiver | varchar | 64 | 0 | Y | N | 接单员姓名 | |
8 | payment_time | date | 10 | 0 | Y | N | 付款时间 | |
9 | payment_amount | int | 10 | 0 | Y | N | 0 | 付款金额 |
10 | remarks | varchar | 64 | 0 | Y | N | 备注 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recharge_information_id | int | 10 | 0 | N | Y | 充值信息ID | |
2 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
3 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
4 | recharge_time | date | 10 | 0 | Y | N | 充值时间 | |
5 | recharge_amount | int | 10 | 0 | Y | N | 0 | 充值金额 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | release_order_id | int | 10 | 0 | N | Y | 发布订单ID | |
2 | title | varchar | 64 | 0 | Y | N | 标题 | |
3 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
4 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
5 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
6 | release_time | date | 10 | 0 | Y | N | 发布时间 | |
7 | order_type | varchar | 64 | 0 | Y | N | 订单类型 | |
8 | order_commission | int | 10 | 0 | Y | N | 0 | 订单佣金 |
9 | requirement_description | text | 65535 | 0 | Y | N | 需求描述 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | service_evaluation_id | int | 10 | 0 | N | Y | 服务评价ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | customer_no | int | 10 | 0 | Y | N | 0 | 顾客编号 |
4 | order_type | varchar | 64 | 0 | Y | N | 订单类型 | |
5 | order_commission | int | 10 | 0 | Y | N | 0 | 订单佣金 |
6 | receiver_number | int | 10 | 0 | Y | N | 0 | 接单员编号 |
7 | name_of_receiver | varchar | 64 | 0 | Y | N | 接单员姓名 | |
8 | evaluation_time | date | 10 | 0 | Y | N | 评价时间 | |
9 | evaluation_content | text | 65535 | 0 | Y | N | 评价内容 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
第5章 系统实现
5.1登录模块的实现
系统的系统入口就是用户登录功能,在浏览器输系统地址跳转至系统首页,包括用户名、密码、权限、验证码,除了权限框使用下拉列表,其他使用文本框,验证码下方为登录和重置两个按钮,用户点击登录按钮,则进行登录验证。
登录流程图如下所示。
图5-1登录流程图
5.2用户子系统模块的实现
5.2.1用户首页的实现
用户主要有顾客和接单员两个角色。在顾客用户的系统首页,主要有后台首页,模块管理(顾客信息,充值信息,发布订单,接单信息,取消订单,付款记录,服务评价)等主要模块。在接单员用户的系统首页,主要有后台首页,模块管理(订单信息,接单信息,取消订单,已付款订单,服务评价)等主要模块。
5.2.2注册模块的实现
这块程序首先根据所取得的表单中的用户名查询数据库中是否有相同用户名的记录,如果数据库存在相同的用户名,则提示用户名已存在,否则,打开记录集并添加一条新的记录,然后系统默认要给用户发送注册成功的提醒。
用户注册流程图如下所示。
图5-2用户注册流程图
图5-3用户注册界面图
5.2.3订单模块的实现
发布订单:顾客填写订单标题、订单编号、顾客编号、顾客姓名、发布时间,订单类型、订单佣金、需求描述等信息发布订单,待接单员接单后完成支付则订单成立,完成订单后还可进行订单取消,服务评价等操作,如下图所示。
图5-4发布订单界面图
订单信息与接单:接单员在订单信息列表查看顾客发布的订单信息,包括订单标题、订单编号、顾客编号、顾客姓名、发布时间,订单类型、订单佣金、需求描述等信息,可以进行查询,重置,接单等操作,如下图所示。
图5-5订单信息列表
图5-6接单界面图
5.2.4服务评价模块的实现
顾客用户点击某个订单点进入订单详细页,可以进行查询,重置,删除,添加,评价等操作,如下图所示。
图5-7待评价订单列表
图5-8评价界面图
5.3管理员子系统模块的实现
5.3.1系统用户管理模块的实现
系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。
图5-9用户管理界面图
图5-10用户添加界面图
5.3.2密码修改模块的实现
密码修改是对当前登录用户的密码进行修改,在用户登录后右上方也能进行密码修改。
密码修改流程图如下所示。
图5-11密码修改流程图
5.3.3顾客信息模块的实现
顾客信息功能主要指对其顾客编号,姓名,性别,联系电话,账户余额等一些基本信息的添加、删除和修改。顾客信息查询能根据顾客编号、名称等多种条件对顾客信息进行查询。如下图所示。
图5-12顾客信息管理界面
5.3.4充值记录管理模块的实现
管理员对顾客的充值记录进行维护管理,包括顾客编号,姓名,充值时间,金额等信息,可以根据需要进行查询,重置,删除,添加等操作,如下所示。
图5-13充值记录管理界面
图5-14充值界面