項目本身是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)服務數據的統計
該功能將統計整個數據庫的詳細信息,包括各個表的總數,以及家政人員和服務表單的分類統計、未付費的會員、正在被雇佣的家政人員數目、家政人員排名信息等等。有利於管理員對整個系統的信息進行快速了解,提升管理員的用戶體驗。