项目本身是Java小学期作业
这是作业的基本要求:
- 能够实现家政人员的分工管理(保健、维修、保姆、看护等),
- 并实现家政人员的工作时间管理。
- 会员登陆后可以根据分工选择相应家政人员,
- 通过时间段系统能够自动筛选出合适的几个家政人员,会员可以进行选择,
- 服务完成后进行付费和评分。
在此基础上还实现了:
-
- 数据库的备份以及自动备份
- 简单的数据统计
- 不仅可以评分还可以评价
基本场景为:
会员根据分工和时间段选择家政人员进行雇佣
雇佣成功后家政人员开始工作(不由系统负责,属于实际工作)
家政人员完成工作后进行打卡
打卡后会员开始进行付费操作
付费完成后会员开始评分和评价,至此整个流程结束。
除此之外,提供会员和家政人员的注册,家政人员的注册需要管理员进行审核,而新的管理员账户只能由旧的管理员进行增加。管理员也可以修改相应服务类别的价格,新增服务类型等等。
代码:
Github传送门:
https://github.com/chengbao-0/HousekeepingServiceMgrSys
注:如需数据库表,应该可以由项目文件夹backup中的数据库备份记录进行恢复
项目详细信息如下:
1 系统主要的类图
项目整体包结构:
1.1 数据访问层主要类图
1.2 实体类主要类图
1.3 业务层主要类图
业务层整体包结构:
1.3.1 会员业务主要类图
1.3.2 家政人员业务主要类图
1.3.3 管理员业务主要类图
1.3.4 工厂业务主要类图
2 系统数据库设计
2.1 数据库表汇总
表名 |
功能说明 |
Client(会员表) |
存放会员信息 |
Housekeeper(家政人员表) |
存放家政人员信息 |
Admin(管理员表) |
存放管理员信息 |
ServiceRecord(服务记录表) |
存放服务记录表单信息 |
Service(服务类型表) |
存放服务类型信息 |
ApplyForHousekeeper(待审核家政人员表) |
存放待审核家政人员信息 |
表2.1 数据库表汇总
2.2 会员表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
user |
用户名 |
varchar |
32 |
唯一性约束, 非空 |
2 |
pwd |
密码 |
varchar |
50 |
MD5加密 |
3 |
clientID |
会员编号 |
int |
|
主键 |
4 |
name |
姓名 |
varchar |
8 |
|
5 |
sex |
性别 |
enum |
‘男’, ‘女’ |
非空 |
6 |
phone |
联系电话 |
varchar |
11 |
|
7 |
address |
家庭住址 |
varchar |
50 |
|
8 |
paidState |
付费状态 |
enum |
‘待支付’, ‘正常’ |
非空 |
表2.2 Client表
2.3 家政人员表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
user |
用户名 |
varchar |
32 |
唯一性约束,非空 |
2 |
pwd |
密码 |
varchar |
50 |
MD5加密 |
3 |
housekeeperID |
员工编号 |
int |
|
主键 |
4 |
name |
姓名 |
varchar |
8 |
|
5 |
sex |
性别 |
enum |
‘男’, ‘女’ |
非空 |
6 |
service |
提供服务 |
varchar |
20 |
外键(Service表,service) |
7 |
phone |
联系电话 |
varchar |
11 |
|
8 |
avgScore |
历史评分 |
double |
(2,1) |
|
9 |
startTime |
工作开始时间 |
Time |
|
|
10 |
endTime |
工作结束时间 |
Time |
|
|
11 |
state |
雇佣状态 |
enum |
‘雇佣中’, ‘未雇佣’, ‘忙碌’ |
非空 |
12 |
clientID |
雇主编号 |
int |
|
外键(Client表,clientID) |
表2.3 Housekeeper表
2.4 管理员表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
user |
用户名 |
varchar |
32 |
唯一性约束,非空 |
2 |
pwd |
密码 |
varchar |
50 |
MD5加密 |
3 |
adminID |
管理员编号 |
int |
|
主键 |
表2.4 Admin表
2.5 服务记录表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
formID |
表单编号 |
bigint |
|
主键 |
2 |
service |
服务类型 |
varchar |
20 |
外键(Service表,service) |
3 |
clientID |
会员编号 |
int |
|
外键(Client表,clientID) |
4 |
housekeeperID |
家政人员编号 |
int |
|
外键(Housekeeper表,housekeeperID) |
5 |
employDate |
雇佣日期 |
Date |
|
|
6 |
startEmployTime |
开始雇佣时间 |
Time |
|
|
7 |
endEmployTime |
结束雇佣时间 |
Time |
|
|
8 |
employDays |
雇佣天数 |
int |
|
|
9 |
totalCompensation |
总计薪酬 |
double |
|
|
10 |
formState |
表单状态 |
enum |
‘进行中’, ‘未付费’, ‘已付费’, ‘已结算’ |
非空 |
11 |
clientScore |
会员评分 |
double |
(2.1) |
|
12 |
clientEvaluate |
会员评价 |
varchar |
100 |
|
表2.5 ServiceRecord表
2.6 服务类型表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
serviceID |
服务编号 |
int |
|
主键 |
2 |
service |
服务类型 |
varchar |
20 |
主键 |
3 |
hourlyWage |
时薪 |
double |
|
非空 |
表2.6 Service表
2.7 待审核家政人员表
编号 |
名称 |
描述 |
数据类型 |
大小 |
备注 |
1 |
user |
用户名 |
varchar |
32 |
非空 |
2 |
pwd |
密码 |
varchar |
32 |
MD5加密 |
3 |
ID |
编号 |
int |
|
主键 |
4 |
name |
姓名 |
varchar |
8 |
|
5 |
sex |
性别 |
enum |
‘男’, ‘女’ |
非空 |
6 |
service |
服务类型 |
varchar |
20 |
外键(Service表,service) |
7 |
phone |
联系电话 |
varchar |
11 |
|
8 |
startTime |
开始工作时间 |
Time |
|
|
9 |
endTime |
结束工作时间 |
Time |
|
|
10 |
registerState |
审核状态 |
enum |
‘审核中’, ‘未通过’ |
非空 |
表2.7 ApplyForHousekeeper表
3 主要功能设计
3.1 家政服务管理系统
3.1.1 基本功能
用户启动程序后可以选择“登录”或者“注册”操作。
如果用户选择“登录”:用户需要输入用户名和密码。如果用户输入错误,系统将会具体提醒是“用户名错误”还是“密码错误”,此时用户可以选择重新输入或是退出系统。
如果用户选择“注册”:用户需要进一步选择注册类型。当选择注册类型成功后,根据系统提示输入注册信息即可。同样,不合法的输入会有提示重新输入。当注册完成后,可以选择回到系统启动界面或是退出系统。
3.1.2 功能亮点
(1)无需选择登录模式
用户无需选择登录模式,直接输入用户名和密码即可,系统将自动判断用户具体属于哪一类角色。
(2)密码进行MD5加密
用户输入的密码并不会直接存放到数据库,而是通过MD5加密后储存到数据库。
(3)对于家政人员的注册有着审核机制
家政人员注册后则需要等待管理员对其信息进行审核。期间该家政人员无法登录进入系统,并且其信息也不会被会员所检索到。当其尝试登录时,系统会给出“审核中”的提示。如果审核不通过,则当该家政人员尝试登录时,系统会给出注册失败的提示,同时将其信息从待审核家政人员中删除,如若再用其用户名登录系统则只会提示用户不存在。
3.2 会员登录
3.2.1 基本功能
会员既可以查询所有的会员信息,也可以查询指定编号的家政人员信息。在查询过程中会员能够根据分工选择相应家政人员,通过时间段系统能够自动筛选出合适的几个家政人员,会员可以选择符合心意的家政人员进行雇佣。
服务完成后进行付费和评分。服务未完成无需付费,同时未进行付费不可评分。
此外,会员可以修改个人信息以及查看具体的收费细则。
3.2.2 功能亮点
(1)加入服务评价系统
会员不仅可以评分,还可以输入服务评价,评价内容仅限100字以内。这样的话,对于家政人员的评价就能够更加地全面,而不是仅仅依靠评分。同时,会员在筛选或雇佣的过程中,可以查看家政人员的历史评价记录。通过了解其他会员对于该家政人员的评价,会员选择出更适合自己的家政人员,提升家政服务的满意度。
(2)会员可以查看自己的历史服务记录。
对于已往的雇佣记录,会员可以进行查看。有利于会员明确自己过去一段时间家政服务需求的倾向性,对自己的生活做出调整。
3.3 家政人员登录
3.2.1 基本功能
家政人员当被雇佣时,可以查看雇主的信息,例如家庭住址、联系电话等等。完成工作后需要进行打卡。打卡完成后则可以查询未到账表单。
此外,家政人员亦可查看和修改个人信息,以及查看收费细则。
3.2.1 功能亮点
(1)设置工作状态
家政人员可以主动设置自己的工作状态(忙碌/空闲)。当家政人员有重要的事耽搁无法进行工作时,他可以主动设置自己的工作状态为忙碌,而无需通知管理员或是被雇佣了却无法提供服务。当设置为忙碌时,将不会被雇佣。如果已在雇佣中,则无法进行此项操作。
(2)查看历史评价
家政人员可以查看自己的历史评价,从而对自己以往的工作进行反思和改进,不断提高自己的服务水平。
3.4 管理员登录
管理员的功能可以划分为上图五大模块,便于管理员进行管理。
3.4.1 会员管理
基本功能:
管理员可以对会员信息进行增删改查。
3.4.2 家政人员管理
基本功能:
管理员可以对家政人员信息进行增删改查。并且拥有多种查询方式,与会员查询家政人员的区别在于能够看见家政人员的用户名。(密码对于任何用户都不可见,只能被更改)
功能亮点:
(1)家政人员注册审核
管理员可以对注册的家政人员信息进行审核。如果审核通过,将会把该家政人员信息导入到现有的家政人员表,出现在会员的检索结果当中。注册审核机制有利于提高整体家政服务的质量,避免出现家政服务良莠不齐的现象,进而迎来更多的会员的注册。
3.4.3 服务记录管理
基本功能:
对表单信息进行增删改查,并且拥有多种查询方式。
功能亮点:
(1)管理员可以删除某一表单的评论信息(不可更改评论)
对于一些会员针对家政人员的恶意中伤甚至是辱骂等等,或者是会员的一些违法言论,管理员有权利对该评论进行删除。这样,可以营造更好的评论氛围,使评论发挥出其应有的效果。
3.4.4 收费细则管理
基本功能:
管理员可以查看收费细则并且修改某个服务类型的具体收费。
功能亮点:
(1)新增服务类型
当有新的服务类型出现时,管理员可以随时进行添加,而不用对程序本身做任何修改,大大提高了程序的可扩展性。
3.4.5 系统管理
基本功能:
管理员可以新增和删除其他管理员,解决了无法通过注册获得管理员身份的情况。
功能亮点:
(1)数据库的备份和恢复以及备份记录的删除。
管理员可以随时对数据库进行备份和恢复。备份记录存放在本地,管理员也可以进行删除。有以下优点:a. 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃的时候,没有数据库备份就没法找到数据。b. 使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案,如果让客户重新填报数据,代价那就太大了。c. 没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段,没有了数据,应用再花哨也是镜中花水中月。
(2)数据库的自动备份。
当管理员登录成功后,系统会检测今天是否已经备份,如果本地没有备份记录则立即进行备份。与此同时,系统将启动一个自动备份线程,根据配置文件中设定的备份时间以及每次备份间隔时间进行自动备份(下一次备份时间为明天的备份时间)。
注:如果程序一直运行,则自动备份生效。如果管理员退出系统则会关闭该线程。
(3)服务数据的统计
该功能将统计整个数据库的详细信息,包括各个表的总数,以及家政人员和服务表单的分类统计、未付费的会员、正在被雇佣的家政人员数目、家政人员排名信息等等。有利于管理员对整个系统的信息进行快速了解,提升管理员的用户体验。