摘?要
科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。在現實運用中,應用軟件的工作規則和開發步驟,采用java技術建設家政服務管理系統。
本設計主要實現集人性化、高效率、便捷等優點于一身的家政服務管理系統,完成首頁、服務項目、服務分類、訂單信息、訂單評價等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。家政服務管理系統使用Java語言,采用基于 MVVM模式的spring boot技術進行開發,使用 Eclipse 2017 CI 10 編譯器編寫,數據方面主要采用的是微軟的MySQL數據庫來作為數據存儲媒介,配合前臺HTML+CSS 技術完成系統的開發。
關鍵詞:Java開發語言;springboot框架技術;家政服務管理系統;
Abstract
The rapid development of science and technology has caused tremendous changes in people’s daily lives. The rapid development of electronic information technology has made the application level of electronic information technology in various fields popular and applied. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software are used to build a housekeeping service management system using Java technology.
This design mainly implements a housekeeping service management system that integrates the advantages of humanization, efficiency, and convenience, and completes functional modules such as home page, service items, service classification, order information, and order evaluation. The system communicates with the server through a browser to achieve data interaction and change. This system improves work efficiency and reduces errors and omissions in data storage through scientific management methods and convenient services. The housekeeping service management system uses Java language, uses spring boot technology based on MVVM mode for development, and uses Eclipse 2017 CI 10 compiler for writing. In terms of data, it mainly uses Microsoft’s MySQL database as the data storage medium, and cooperates with the front-end HTML+CSS technology to complete the system development.
Key words:Java development language; Spring boot framework technology; Domestic service management system;
目 ?錄
第1章 緒論
1.1?系統開發背景
1.2?系統開發意義
第2章 相關技術介紹
2.1 B/S架構
2.2 springboot框架介紹
2.3 MySQL數據庫
第3章 系統分析
3.1?可行性分析
3.1.1?技術可行性
3.1.2?經濟可行性
3.1.3?操作可行性
3.2?系統功能需求
3.3?系統性能需求
第4章 系統設計
4.1?總體目標
4.2?總體結構設計
4.3?功能模塊設計
4.4?數據庫設計
4.4.1?概念設計
4.4.2?邏輯設計
第5章 系統實現
5.1?登錄模塊的實現
5.2?用戶首頁模塊的實現
5.3?注冊模塊的實現
5.4?密碼修改模塊的實現
5.5?評論模塊的實現
5.6?服務項目收藏模塊的實現
5.7?公告管理模塊的實現
5.8?用戶管理模塊的實現
5.9訂單信息管理模塊的實現
5.10訂單評價管理模塊的實現
第6章 系統測試
6.1?測試目的
6.2?測試用例
6.2.1?用戶登錄測試
6.2.2?創建數據測試
6.2.3?修改數據測試
6.2.4?查詢數據測試
6.3?測試結果
第7章 結論
參考文獻
致謝
- 緒論
- 系統開發背景
近年來,隨著家政服務行業在國內的普及,越來越多的家政服務機構在中國大地上生根發芽。這么多的機構和公司給需求者帶來了很大的便利,同時也給更多的需求者帶來了很大的困惑。如,我該選擇哪家機構,哪家機構的家政服務人員都是哪里的,哪家機構的家政服務人員的工作認真、態度好。
此類問題的產生多數是由于家政服務機構對家政服務人員的信息的管理不當引起的。很多機構都采用記賬本的方式來記錄、管理員工的信息,這樣就可能會導致信息的丟失、被隨意串改等情況,對需求者的需求帶來很大的不安定因素。在采用計算機的管理技術后,在很大程度上將會減少這類事情的發生,也提高了信息的可信度和安全性而且對于管理者來說這樣的管理方式可以提高自己的工作效率。
其實在國外,家政服務行業早已是一個很繁榮的行業,更有日本學者說他們有一個服務行業的時代。
這正是因為國外的家政服務公司都有一個適合自己企業發展的管理系統,將員工的信息進行系統的、安全的管理和讓需求者有適合自己需求選擇,這樣不僅減少了對管理者人力的要求,大大提高了公司的口碑、信譽和發展速度。
-
- 系統開發意義
對于正在發展中的家政服務行業,一個公司的家政服務人員的信息管理是一個很重要并且很繁瑣環節,這樣就需要大量的人力去進行統計和管理。但浦東申江家政服務管理系統通過使用數據庫這個平臺,可以將大量的數據進行統–管理并且可以很便捷的查找到所需要的信息。這樣可以大大減少管理者的工作時間并提高工作效率。
同時該系統支持需求者在網上進行對家政服務人員的信息查詢和雇傭操作,和傳統的打電話雇傭方式相比,大大減少了人工接聽和處理的操作,讓:工作效率變得更高。安全、方便、快捷的管理系統可以給家政公司的發展帶來很大的效益。
- 相關技術介紹
- B/S架構
B/S架構(瀏覽器/服務器)是當前應用最為廣泛的一種架構,能夠使系統的開發變得容易、易操作、易于維護。當你在你的電腦上安裝一個數據庫和幾個非常常見的瀏覽器時,你就可以使用這個結構。B/S結構可以直接用于 B/S系統,并且 B/S架構可以在實際應用中大大降低了系統的運行維護。在 B/S平臺上,各數據庫彼此獨立,具有很高的安全性。由于 B/S架構可以清晰地觀察到系統所處理的業務,使管理者可以及時做出決定,從而避免了企業的虧損。B/S架構的本質特征是集中式管理,用戶通過系統產生的數據,將其存入數據庫,便于以后的應用,從而達到了各種需要。
B/S模型由一個瀏覽器、一個網絡服務器、一個數據庫服務器三個層級構成。數據管理采用了當前大部分現有B/S系統的表現層、應用層和數據層,Web瀏覽器是為了滿足用戶的要求而設計的,在數據處理和邏輯過程中使用的中間應用層,從而形成分布式的運行模式。B/S體系結構的邏輯是:在前端完成的處理,將主要的業務邏輯交給后臺,而前端只負責少量的請求、渲染等。由于因特網技術的迅速發展,B/S體系結構使得任何時間、任何地點都能訪問到該系統。
圖2-1 B/S模式三層結構圖
-
- springboot框架介紹
Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現控制反轉來實現管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優秀的Web框架方便開發等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且幾乎可以在Java平臺的任何環境中工作。Spring集成多種事務模板,系統可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數據訪問框架解決了開發人員在應用程序中使用數據庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發人員在開發過程中認為現有的StrutsWeb框架的呈現層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創建了SpringMVC。
-
- MySQL數據庫
科技的進步,給日常帶來許多便利:教室的投影器用到了虛擬成像技術,數碼相機用到了光電檢測技術,比如超市貨物進出庫的記錄需要一個信息倉庫。這個信息倉庫就是數據庫,而這次的物流信息管理系統也需要這項技術的支持。
用MySQL這個軟件,是因為它能接受多個使用者訪問,而且里面存在Archive等。它會先把數據進行分類,然后分別保存在表里,這樣的特別操作就會提高數據管理系統自身的速度,讓數據庫能被靈活運用。MySQL的代碼是公開的,而且允許別人二次編譯升級。這個特點能夠降低使用者的成本,再搭配合適的軟件后形成一個良好的網站系統。雖然它有缺點,但是綜合各方面來說,它是使用者的主流運用的對象。
- 系統分析
- 可行性分析
可行性分析也是為了分析項目的開發系統是否對開發有價值,以及是否真的需要改進管理系統在信息聽寫方面的不足。以本項目家政服務管理系統的設計目標和實施過程為例,如果開發該系統,希望能很好地解決用戶的管理信息問題,并且如果這使家政服務管理系統可以發展出最大價值學說,并且還可以變相的解決了用戶在一定程度上的問題,那么這個項目的研發系統也就是最有價值有意義的系統。但研發目標又是不是達到了所期望的結果,以及科研任務在實現后的最大效用和價值,它是否等于所有總成本。因此,研發階段本質上就是研發體系能否真正設計的階段。
-
-
- 技術可行性
-
技術可行性是指所確定的科學技術或決策方法中的科學技術均未突破組織掌握或相關人員熟悉的科學技術資源的界限。在技術研究過程中,應注意全面調查系統研發過程中包含的各種關鍵技術問題,盡可能選擇成熟技術,認真引用先進技術,關注特定的研究平臺和開發人員,評估關鍵技術的有效性。
Java技術對于該家政服務管理系統的設計和實施很是關鍵,基于、B/S架構的和MySQL數據庫管理,對于前臺的應用和后臺的數據庫管理都是至關重要的,要想有效應用該程序,就需要保持功能全面、易懂易簡單使用的特性。構建數據庫管理時,需要確保數據分析信息完全、數據分析信息穩定性好、數據分析信息穩定性較高的庫。在早期,人們對Java的基本重要知識點就有理解和熟悉,對MySQL數據庫發生過簡要的掌握、熟悉,在早期對軟件工程測試,以及UML語言等基礎課程發生過大致的掌握和練習,經過對上述課程練習,就能夠對上述課程有相應的信息系統開發、檢驗和判斷。
Java可以和MySQL結合起來研發一個家政服務管理系統,一定是合理而且有效的。
-
-
- 經濟可行性
-
實施國民經濟的可行性主要包括兩個方面:一是從要實施的某個計劃中獲取和利用國民經濟各種資源的潛在可能性,二是實現國民經濟發展政策總體目標的潛在可能性;二是為完成某一國民經濟發展政策實施方案,所要花費的經濟成本及其所獲得的利益。由于政府的財務資源是限制的,每一種從國民經濟發展政策實施方案中所獲取和利用的財政資源也是限制的。于是,每一項公眾政策措施中都面臨著一種爭奪公共財政資本的問題。但總的來說,"公眾政策措施的社會經濟資源的占用量與其政策措施目標的預期價值成正比例關聯。"當然,這還觸及到了一種成本效率提問。假如某一方法的總成本等于利潤,顯然這種社會經濟政策措施就是不有效的。
這個項目開發的初衷是省錢,是我一個人做的,基本上不需要啟動資金。此外,項目開發的整個過程是一個自學的過程,這是一個雙贏的結果。因此,綜上所述,本項目的研發優勢大于劣勢,符合我國當前社會主義市場經濟發展的實際情況。
-
-
- 操作可行性
-
家政服務管理系統的注冊與登陸頁面設計簡潔容易應用,可以通過最常見的頁面窗口來登陸頁面,并利用過計算機實現登陸功能,因此使用者只要平時利用過計算機都可以實現登陸應用。此操作系統的研發工作環境運用了Java技術,并運用了B/S結構,這些研發工作環境都使得此系統功能更為完整,使整個設計更為個性化,使用者功能也更為簡潔方便。本管理系統具備了易于運行、容易管理、交互性較好的優點,在實際操作上也是非常簡單的。因此,本管理系統也可進行商業設計。
綜上所述,該設備的研發符合技術、工藝和技術要求,因此其研發具有可操作性。
-
- 系統功能需求
注冊用戶信息用例圖如下所示。
圖3-1 注冊用戶信息用例圖
管理員用例圖如下所示。
圖3-2 管理員用例圖
員工用戶用例圖如下所示。
圖3-3?員工用戶用例圖
表3-1 公告瀏覽用例描述
描述項 | 說明 |
用例名稱 | 公告查詢 |
用例描述 | 用戶可以查看公告的詳情 |
參與者 | 用戶 |
前置條件 | 使用者是學生用戶類型并成功進入該系統 |
后置條件 | 瀏覽成功 |
主事件流 | (1)用戶可以瀏覽公告的模塊、公告的內容 (2)用戶點擊公告可以對公告進行詳情閱讀 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 個人信息管理用例描述
用例名稱 | 管理和修改個人信息 |
參與者 | 用戶 |
描述 | 用戶查看、修改個人信息 |
前置條件 | 用戶已登錄到系統中 |
后置條件 | 無 |
事件流 | (1)用戶查看個人信息 (2)用戶修改個人信息 |
補充說明 | (a)用戶可修改密碼 (b)用戶可修改個人資料,例如姓名,頭像等 |
表3-1 評論用例描述
用例名稱 | 評論 |
參與者 | 用戶 |
描述 | 用戶發表評論 |
前置條件 | 用戶已登錄 |
后置條件 | 評論內容不違規 |
事件流 | (1)在評論頁輸入評論數據,提交評論 (2)更新并顯示評論板 |
補充說明 | (a)評論內容不能為空 |
表3-1 收藏用例描述
用例名稱 | 收藏 |
參與者 | 用戶 |
描述 | 用戶將內容加入收藏夾 |
前置條件 | 用戶已登錄 |
后置條件 | 無 |
事件流 | (1)在收藏頁加入收藏 (2)更新并顯示收藏夾 |
補充說明 | 無 |
表3-1 用戶管理用例描述
描述項 | 說明 |
用例名稱 | 用戶操作 |
用例描述 | 管理員正確登錄后臺管理的條件下,對用戶進行管理 |
參與者 | 管理員 |
前置條件 | 管理員登錄成功并跳轉到后臺主界面 |
后置條件 | 操作成功 |
主事件流 | 管理員跳轉用戶管理頁面,查詢用戶詳情的信息 管理員可以刪除用戶信息 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 訂單信息管理用例描述
描述項 | 說明 |
用例名稱 | 訂單信息操作 |
用例描述 | 管理員正確登錄后臺管理的條件下,對訂單信息模塊進行管理 |
參與者 | 管理員 |
前置條件 | 管理員成功登錄 |
后置條件 | 操作成功 |
主事件流 | (1)管理員進入訂單信息管理頁面,查詢訂單信息的信息 (2)管理員可以對訂單信息進行增刪除和編輯訂單信息操作 (3)管理員新增訂單信息,添加成功跳轉到查詢頁面 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 服務項目管理用例描述
描述項 | 說明 |
用例名稱 | 服務項目操作 |
用例描述 | 管理員正確登錄后臺管理的條件下,對服務項目模塊進行管理 |
參與者 | 管理員 |
前置條件 | 管理員成功登錄 |
后置條件 | 操作成功 |
主事件流 | (1)管理員進入服務項目管理頁面,查詢服務項目的信息 (2)管理員可以對服務項目進行增刪除和編輯服務項目操作 (3)管理員新增服務項目,添加成功跳轉到查詢頁面 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 資訊管理用例描述
描述項 | 說明 |
用例名稱 | 資訊操作 |
用例描述 | 管理員正確登錄后臺管理的條件下,資訊模塊進行管理 |
參與者 | 管理員 |
前置條件 | 管理員成功登錄 |
后置條件 | 操作成功 |
主事件流 | (1)管理員進入資訊管理頁面,查詢資訊內容的信息 (2)管理員可以對資訊進行刪除操作 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 公告管理用例描述
用例名稱 | 公告管理 |
參與者 | 管理者 |
描述 | 管理者提供新增、修改、刪除、查閱等功能 |
前置條件 |
|
后置條件 | 無 |
事件流 | (1)管理者查看修改公告 (2)管理者添加公告 (3)管理者刪除公告 |
補充說明 | (a)新添加的公告不符合要求時會添加失敗 (b)修改的公告不符合要求時會修改失敗 |
表3-1 評論管理用例描述
描述項 | 說明 |
用例名稱 | 評論操作 |
用例描述 | 管理員正確登錄后臺管理的條件下,評論模塊進行管理 |
參與者 | 管理員 |
前置條件 | 管理員成功登錄 |
后置條件 | 操作成功 |
主事件流 | (1)管理員進入評論管理頁面,查詢評論內容的信息 (2)管理員可以從用戶評論中刪除數據 |
異常事件流 | e1.報500錯誤 e2.數據庫連接異常 |
表3-1 文件上傳用例描述
用例名稱 | 文件上傳 |
參與者 | 用戶 |
描述 | 用戶上傳文件至服務器 |
前置條件 | 用戶已登錄 |
后置條件 | 無 |
事件流 | 在文件上傳頁點擊“上傳”按鈕 |
補充說明 | 無 |
-
- 系統性能需求
第一,友好界面。家政服務管理系統開發設計,界面的友好性比較重要,滿足這一要求才能體現出人性化設計特征,和用戶應用系統便捷性相適應,動態的人機交互設計,用戶應用系統的時候能感受到操作的便利,提高用戶的體驗良好感受,才能有助于將系統開采設計的作用價值充分發揮出來。
第二,穩定性要求。開發設計的家政服務管理系統,需要保持其穩定,系統應用穩定才能有助于各項管理工作高效率完成,提升系統使用體驗度。系統運行保障因外部異常造成系統崩潰,系統發生問題后數據能及時備份,第一時間恢復數據信息,保障系統良好運行。
第三,可擴展性。家政服務管理系統的開發設計,需要滿足可擴展性的要求,系統的設計需要考慮未來系統業務擴展問題,在測試不斷應用下,功能需求會不斷擴展,通過良好擴展性作用發揮,滿足多樣化的需要。
第四,滿足需求。為能有效加強對大用戶的需求,在開發家政服務管理系統的過程中,要能和實際應用的需求緊密對接,保障系統的實用性。系統開發要能有前瞻性,由于管理系統建設是長期工程,不同階段需要有先導發展藍圖以及行動綱領為指導。預見性地考慮教材訂購信息管理的重要問題。系統的開發要能滿足靈活性應用的需要,將系統的價值充分發揮出來。
- 系統設計
- 總體目標
家政服務管理系統主要服務于家政的家政服務管理系統,利用網絡改變家政服務管理系統模式,簡化家政服務管理系統管理流程,減輕傳統家政服務管理系統帶來的工作負擔和降低大量資源的消耗。本系統達到的目標主要有以下幾點:
(1)通過簡單的頁面設計和便捷的功能操作,保證系統的簡單性和實用性,形成良好的用戶體驗。
(2)本系統主要針對家政服務管理系統需求進行設計開發,突出較強的針對性。
(3)能夠具有一定的安全機制,保證問題記錄的安全性。
-
- 總體結構設計
層次框圖是一系列由多層矩形框架組成的樹,其頂部為矩形框架,表示整個數據結構,下方的長方形立方體表示獨立的數據,下方的長方形表示該數據的實際數據(不能進行分割)。由于這個架構的精煉,層級方塊圖描述的資料結構也愈加詳盡,這個模型很好地滿足了需求分析的要求。首先對最上層的信息進行分類,然后在圖表中的每個路徑上重復地進行優化,直至完整的數據結構被確定。
這個系統由兩個模塊組成,一個是管理員,二個是學生用戶,這二個部分看起來是獨立的,實際上卻是連接著數據庫,每個模塊都有自己的權限,唯一不同的,就是訪問的方式不同。在調研資料的基礎上,完成了各個模塊的功能。在對上述功能進行分析的基礎上,本系統提出了兩個主要的模塊,每個單元可劃分為若干小單元。
系統的功能結構圖如下圖所示。
圖4-2 系統功能結構圖
-
- 功能模塊設計
1.登錄模塊:
本家政服務管理系統的用戶登錄涉及到三類信息的判斷:第一類是用戶名和密碼是否為空;第二類是驗證碼是否錄入和正確;第三類就是用戶登錄信息、驗證碼和權限是否匹配通過。在該用戶登錄流程對會對用戶名和密碼是否為空進行判斷,以及驗證碼是否正確進行判斷,只有以上的幾類信息中的一種存在問題的情況下都是無法登錄成功的。
2.公告管理模塊:
本家政服務管理系統中的公告管理,管理方式都是對信息的三種基本操作:一種是完成公告信息的添加,在這里會對公告信息的錄入情況來判斷;一種是對公告信息的修改,另一種就是對公告信息的刪除。其后兩種操作都是要建立在第一種操作而生成的公告列表的基礎上完成的。
3.服務項目管理模塊
本家政服務管理系統中的服務項目管理,管理方式都是對信息的三種基本操作:一種是完成服務項目的添加,在這里會對服務項目的錄入情況來判斷;一種是對服務項目的修改,另一種就是對服務項目的刪除。其后兩種操作都是要建立在第一種操作而生成的服務項目列表的基礎上完成的。
-
- 數據庫設計
- 概念設計
- 數據庫設計
借助先進的系統,ER圖使其他用戶可以快速輕松地了解系統的功能以及他們之間的關系。根據家政服務管理系統分析結果,整個家政服務管理系統包括以下各個單元:用戶、評論、訂單信息、服務項目、訂單評價、公告等。
系統的主要實體間關系E-R圖如下圖所示。
圖4-3 總體ER圖
-
-
- 邏輯設計
-
所有系統的應用數據相互區分。一旦在相應的系統中實現,它們將與自己相應的網絡和服務器通信。所以這個系統可以連接這些數據。當我們選擇橋梁截面時,以下將簡要介紹如何建立系統。在單擊上一個按鍵的時候,就會自動在對話框中彈出數據源的名字,之后再單擊下一個按鍵時,就在填寫相對應的身份驗證和登錄信息。按照系統功能設計的特點與職能模塊的分類,家政服務管理系統的總體設計和實施過程一共涉及到了幾個資料表格。
以下就介紹了一些根據各類別主要數據庫表的設計結構以及基本功能建立數據庫
表collect (收藏)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
6 | title | varchar | 255 | 0 | Y | N | 標題: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表comment (評論)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | comment_id | int | 10 | 0 | N | Y | 評論ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 評論人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回復評論ID:空為0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 內容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵稱: | |
6 | avatar | varchar | 255 | 0 | Y | N | 頭像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
9 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
表employee_users (員工用戶)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | employee_users_id | int | 10 | 0 | N | Y | 員工用戶ID | |
2 | job_number | varchar | 64 | 0 | Y | N | 工號 | |
3 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
4 | service_items | text | 65535 | 0 | Y | N | 服務項目 | |
5 | employee_status | varchar | 64 | 0 | Y | N | 員工狀態 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通過 | 審核狀態 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用戶ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表hits (用戶點擊)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
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: |
表notice (公告)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 標題: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表order_evaluation (訂單評價)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | order_evaluation_id | int | 10 | 0 | N | Y | 訂單評價ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 訂單號 | |
3 | service_name | varchar | 64 | 0 | Y | N | 服務名稱 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服務類型 | |
5 | user | int | 10 | 0 | Y | N | 0 | 用戶 |
6 | service_staff | int | 10 | 0 | Y | N | 0 | 服務員工 |
7 | score | varchar | 64 | 0 | Y | N | 評分 | |
8 | evaluation_content | text | 65535 | 0 | Y | N | 評價內容 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表order_information (訂單信息)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | order_information_id | int | 10 | 0 | N | Y | 訂單信息ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 訂單號 | |
3 | service_name | varchar | 64 | 0 | Y | N | 服務名稱 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服務類型 | |
5 | user | int | 10 | 0 | Y | N | 0 | 用戶 |
6 | contact_number | varchar | 64 | 0 | Y | N | 聯系電話 | |
7 | service_address | varchar | 64 | 0 | Y | N | 服務地址 | |
8 | service_time | datetime | 19 | 0 | Y | N | 服務時間 | |
9 | order_notes | text | 65535 | 0 | Y | N | 訂單備注 | |
10 | service_staff | int | 10 | 0 | Y | N | 0 | 服務員工 |
11 | employee_phone | varchar | 64 | 0 | Y | N | 員工電話 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未審核 | 審核狀態 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 審核回復 | |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表praise (點贊)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | praise_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: |
8 | status | bit | 1 | 0 | N | N | 1 | 點贊狀態:1為點贊,0已取消 |
表registered_users (注冊用戶)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注冊用戶ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性別 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通過 | 審核狀態 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用戶ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表service_classification (服務分類)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | service_classification_id | int | 10 | 0 | N | Y | 服務分類ID | |
2 | service_type | varchar | 64 | 0 | Y | N | 服務類型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表service_items (服務項目)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | service_items_id | int | 10 | 0 | N | Y | 服務項目ID | |
2 | service_name | varchar | 64 | 0 | Y | N | 服務名稱 | |
3 | service_type | varchar | 64 | 0 | Y | N | 服務類型 | |
4 | picture | varchar | 255 | 0 | Y | N | 圖片 | |
5 | services_include | varchar | 64 | 0 | Y | N | 服務包含 | |
6 | charging_standard | varchar | 64 | 0 | Y | N | 收費標準 | |
7 | service_introduction | longtext | 2147483647 | 0 | Y | N | 服務介紹 | |
8 | hits | int | 10 | 0 | N | N | 0 | 點擊數 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 點贊數 |
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 | 更新時間 |
表slides (輪播圖)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | slides_id | int | 10 | 0 | N | Y | 輪播圖ID: | |
2 | title | varchar | 64 | 0 | Y | N | 標題: | |
3 | content | varchar | 255 | 0 | Y | N | 內容: | |
4 | url | varchar | 255 | 0 | Y | N | 鏈接: | |
5 | img | varchar | 255 | 0 | Y | N | 輪播圖: | |
6 | hits | int | 10 | 0 | N | N | 0 | 點擊量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表upload (文件上傳)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
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 | 文件類型 |
表user (用戶賬戶:用于保存用戶登錄信息)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
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 | 創建時間: |
表user_group (用戶組:用于用戶前端身份和鑒權)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
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-1 登錄流程圖
登錄界面如下圖所示。
圖5-1 登錄界面
登錄關鍵代碼如下所示。
/**
* 登錄
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping(“login”)
public Map<String,?Object> login(@RequestBody Map<String,?String> data,?HttpServletRequest httpServletRequest) {
log.info(“[執行登錄接口]”);
String username = data.get(“username”);
String email = data.get(“email”);
String phone = data.get(“phone”);
String password = data.get(“password”);
List resultList = null;
Map<String,?String> map = new HashMap<>();
if(username != null && “”.equals(username) == false){
map.put(“username”,?username);
resultList = service.select(map,?new HashMap<>()).getResultList();
}
else if(email != null && “”.equals(email) == false){
map.put(“email”,?email);
resultList = service.select(map,?new HashMap<>()).getResultList();
}
else if(phone != null && “”.equals(phone) == false){
map.put(“phone”,?phone);
resultList = service.select(map,?new HashMap<>()).getResultList();
}else{
return error(30000,?“賬號或密碼不能為空”);
}
if (resultList == null || password == null) {
return error(30000,?“賬號或密碼不能為空”);
}
//判斷是否有這個用戶
if (resultList.size()<=0){
return error(30000,“用戶不存在”);
}
User byUsername = (User) resultList.get(0);
Map<String,?String> groupMap = new HashMap<>();
groupMap.put(“name”,byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap,?new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,“用戶組不存在”);
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查詢用戶審核狀態
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from “+ userGroup.getSourceTable() +” WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,“用戶不存在”);
}
if (!res.equals(“已通過”)){
return error(30000,“該用戶審核未通過”);
}
}
//查詢用戶狀態
if (byUsername.getState()!=1){
return error(30000,“用戶非可用狀態,不能登錄”);
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存儲Token到數據庫
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll(“-”,?“”));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用戶信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put(“token”,?accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put(“obj”,user);
return success(ret);
} else {
return error(30000,?“賬號或密碼不正確”);
}
}
-
- 用戶首頁模塊的實現
首頁主要分別展示各個模塊的最新動態,瀏覽者可以很清楚地看到不同模塊的最新更新內容。并且系統首頁每個部分可以跳轉到相對應的模塊,方便瀏覽者選擇感興趣的地方。
首頁載入流程圖如下所示。
圖5-1?首頁載入流程
首頁如下圖所示。
圖5-1 首頁界面
-
- 注冊模塊的實現
系統的用戶通過自行注冊生成,在系統首頁點擊用戶注冊菜單,系統跳轉到對應的注冊頁面。點擊重置按鈕,清空所填數據,點擊注冊按鈕完成注冊。
用戶注冊流程圖如下所示。
圖5-1 用戶注冊流程圖
用戶注冊界面如下圖所示。
圖5-1 注冊界面
注冊關鍵代碼如下所示。
/**
* 注冊
* @param user
* @return
*/
@PostMapping(“register”)
public Map<String,?Object> signUp(@RequestBody User user) {
// 查詢用戶
Map<String,?String> query = new HashMap<>();
query.put(“username”,user.getUsername());
List list = service.select(query,?new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000,?“用戶已存在”);
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用戶ID:[0,8388607]用戶獲取其他與用戶相關的數據
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = “user_id”)
private Integer userId;
/**
* 賬戶狀態:[0,10](1可用|2異常|3已凍結|4已注銷)
*/
@Basic
@Column(name = “state”)
private Integer state;
/**
* 所在用戶組:[0,32767]決定用戶身份和權限
*/
@Basic
@Column(name = “user_group”)
private String userGroup;
/**
* 上次登錄時間:
*/
@Basic
@Column(name = “login_time”)
private Timestamp loginTime;
/**
* 手機號碼:[0,11]用戶的手機號碼,用于找回密碼時或登錄時
*/
@Basic
@Column(name = “phone”)
private String phone;
/**
* 手機認證:[0,1](0未認證|1審核中|2已認證)
*/
@Basic
@Column(name = “phone_state”)
private Integer phoneState;
/**
* 用戶名:[0,16]用戶登錄時所用的賬戶名稱
*/
@Basic
@Column(name = “username”)
private String username;
/**
* 昵稱:[0,16]
*/
@Basic
@Column(name = “nickname”)
private String nickname;
/**
* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數字或英文組成
*/
@Basic
@Column(name = “password”)
private String password;
/**
* 郵箱:[0,64]用戶的郵箱,用于找回密碼時或登錄時
*/
@Basic
@Column(name = “email”)
private String email;
/**
* 郵箱認證:[0,1](0未認證|1審核中|2已認證)
*/
@Basic
@Column(name = “email_state”)
private Integer emailState;
/**
* 頭像地址:[0,255]
*/
@Basic
@Column(name = “avatar”)
private String avatar;
/**
* 創建時間:
*/
@Basic
@Column(name = “create_time”)
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
private Timestamp createTime;
@Basic
@Transient
private String code;
}
-
- 密碼修改模塊的實現
用戶使用該家政服務管理系統注冊完成后,用戶對登錄密碼有修改需求時,系統也可以提供用戶修改密碼權限。系統中所有的操作者能夠變更自己的密碼信息,執行該功能首先必須要登入系統,然后選擇密碼變更選項以后在給定的文本框中填寫初始密碼和新密碼來完成修改密碼的操作。在填寫的時候,假如兩次密碼填寫存在差異,那么此次密碼變更操作失敗,下面的圖片展示的就是該板塊對應的工作面。
密碼修改流程圖如下所示。
圖5-1 密碼修改流程圖
密碼修改界面如圖所示。
圖5-1 密碼修改界面
-
- 評論模塊的實現
用戶點擊某個服務項目進入服務項目詳細頁,點擊評論按鈕進入評論頁,提交評論信息,成功發布評論,管理員管理用戶的評論信息。
發布評論流程圖如下所示。
圖5-1 發布評論流程圖
發布評論界面如圖所示。
圖5-1 發布評論界面
-
- 服務項目收藏模塊的實現
用戶選擇相應的服務項目收藏,通過id傳參,找到id為此傳參的服務項目信息,在收藏頁提交收藏記錄表單,生成收藏記錄,用戶在個人中心管理個人的收藏夾。
服務項目收藏界面如下圖所示。
圖5-1 服務項目收藏界面
-
- 公告管理模塊的實現
在主頁左側菜單欄中點擊“公告管理”按鈕,再從二級目錄中點擊“新增公告”按鈕,進入到新增公告界面。在此處公告可以添加公告的標題。
在主頁左側菜單欄中點擊“公告管理”按鈕,再從二級目錄中點擊“查詢公告”按鈕,進入到查詢公告界面。在此處公告可以查詢當前所有公告記錄。
公告展示界面如下圖所示。
圖5-1 公告展示界面
公告管理界面如下圖所示。
圖5-1 公告管理界面
公告管理邏輯代碼如下所示。
@RequestMapping(value = “/del”)
@Transactional
public Map<String,?Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request),?service.readConfig(request));
return success(1);
}
@Transactional
public void delete(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer(“DELETE FROM “).append(”`”).append(table).append(“`”).append(" ");
sql.append(toWhereSql(query,?“0”.equals(config.get(FindConfig.GROUP_BY))));
log.info(“[{}] - 刪除操作:{}”,table,sql);
Query query1 = runCountSql(sql.toString());
query1.executeUpdate();
}
-
- 用戶管理模塊的實現
用戶通過注冊了方可獲得登錄使用權限,此時選擇學生用戶選項,系統就會自動轉到用戶注冊工作面,在注冊該部分信息時系統會自動調用add函數,然后在給定的文本框中填寫有關該用戶的基礎信息后選擇確認即可完成注冊。檢索用戶信息,在新增用戶信息以后,在檢索工具欄中填寫對應的用戶信息,系統就會將該用戶有關的所有信息展示出來。
用戶管理流程圖如下所示。
圖5-1 用戶管理流程圖
用戶管理界面如下圖所示。
圖5-1 用戶管理界面
用戶管理的邏輯代碼如下:
@PostMapping(“/add”)
@Transactional
public Map<String,?Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String,?Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder(“”);
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json,?Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append(“`”).append(table).append(“`”).append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append(“`”+humpToLine(entry.getKey())+“`”).append(“,”);
}
sql.deleteCharAt(sql.length()-1);
sql.append(“) VALUES (”);
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append(“'”).append(entry.getValue()).append(“'”).append(“,”);
}else {
sql.append(entry.getValue()).append(“,”);
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(“)”);
log.info(“[{}] - 插入操作:{}”,table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
-
- 訂單信息管理模塊的實現
管理員執行訂單信息管理,并可以操作相關內容,例如添加,查看,編輯和刪除。通過單擊“添加訂單信息”,可以通過訂單信息添加界面添加詳細信息。單擊查看字段級別鏈接以查看有關所選字段級別的信息。然后單擊“提交”跳轉重返到添加頁面。添加成功后的信息會載入到訂單信息查詢列表中,管理員可進行編輯以及修改。
訂單信息管理流程圖如下所示。
圖5-1 訂單信息管理流程圖
訂單信息管理如下圖所示。文章轉自鏈接
圖5-1 訂單信息管理界面
-
- 訂單評價管理模塊的實現
管理員執行訂單評價管理,并可以操作相關內容,例如添加,查看,編輯和刪除。通過單擊“添加訂單評價”,可以通過訂單評價添加界面添加詳細信息。單擊查看字段級別鏈接以查看有關所選字段級別的信息。然后單擊“提交”跳轉重返到添加頁面。添加成功后的信息會載入到訂單評價查詢列表中,管理員可進行編輯以及修改。
訂單評價添加流程圖如下所示。
圖5-1 訂單評價管理流程圖
訂單評價管理如下圖所示。
圖5-1 訂單評價管理界面
- 系統測試
- 測試目的
在這個產品被投入使用前,首先需要進行試用,這是重要的環節。考慮到某個部分的開發沒有缺陷情況下,把各種模塊拼接,也有一定概率就存在矛盾。這就好比每個人都很獨特,但聚在一起就顯得雜亂無章,需要保證有默契的配合。對于測試,要看它的各項內容是否契合的原則。若與最初定下的標準有一定程度上的出入,那么就需要做出一些調整,讓最終的大方向朝著目標前進。
測試是為了發現在開發的程序中所存在的問題,測試這一工作是非常艱巨的,而又是非常困難的,這一部分在程序的設計中占有很大比例,可以說一個程序的開發工作量要是占據了百分至六十,那么剩下的百分之四十必然是測試這一部分,甚至更高。
-
- 測試用例
- 用戶登錄測試
- 測試用例
用戶登錄功能測試:
表5-1?用戶登錄功能測試表
用例名稱 | 用戶登錄系統 |
目的 | 測試用戶通過正確的用戶名和密碼可否登錄功能 |
前提 | 未登錄的情況下 |
測試流程 | 1) 進入登錄頁面 2) 輸入正確的用戶名和密碼 |
預期結果 | 用戶名和密碼正確的時候,跳轉到登錄成功界面,反之則顯示錯誤信息,提示重新輸入 |
實際結果 | 實際結果與預期結果一致 |
-
-
- 創建數據測試
-
在系統中,創建功能也是基礎功能之一,因此創建功能的測試很有代表性。在此章節主要列舉在創建時各種情況下系統結果的測試。由于系統涉及創建功能操作過多,因此將多處統稱創建功能。
創建數據用例如下表所示。
表6-5 創建數據測試用例
測試用例編號 | YL_05 | |
測試用例名稱 | 系統使用者進行創建數據 | |
測試用例描述 | 使用者輸入要創建的數據 | |
系統入口 | 瀏覽器 | |
步驟 | 預期結果 | 實際結果 |
輸入完整并且格式正確的數據 | 提示“創建成功”,并顯示所有數據 | 預期結果 |
核心位置數據但非必要位置不輸入數據 | 提示“創建成功”,并顯示所有數據 | 預期結果 |
核心數據位置不輸入數據 | 提示“創建失敗” | 預期結果 |
-
-
- 修改數據測試
-
在系統中,修改功能是系統主要實現功能,因此修改功能的測試很有代表性。在此章節主要列舉在修改時各種情況下系統結果的測試。由于系統涉及修改功能操作過多,因此將多處數據表記錄修改和狀態修改統稱修改功能。
修改數據用例如下表所示。
表6-6 修改數據測試用例
測試用例編號 | YL_06 | |
測試用例名稱 | 系統使用者進行修改數據 | |
測試用例描述 | 使用者對可修改的數據項進行修改 | |
系統入口 | 瀏覽器 | |
步驟 | 預期結果 | 實際結果 |
將現有數據修改成正確的數據 | 提示“修改成功”,并顯示所有數據 | 預期結果 |
將現有數據修改成錯誤的數據 | 提示“修改失敗” | 預期結果 |
-
-
- 查詢數據測試
-
在系統中,查詢功能是使用系統使用最多也是最基礎的功能,因此查詢功能的測試很有代表性。在此章節主要列舉在查詢時各種情況下系統結果的測試。
查詢數據用例如下表所示。
表6-7 查詢數據測試用例
測試用例編號 | YL_05 | |
測試用例名稱 | 系統使用者進行查詢數據 | |
測試用例描述 | 全部查詢以及輸入關鍵詞查詢 | |
系統入口 | 瀏覽器 | |
步驟 | 預期結果 | 實際結果 |
界面自動查詢全部 | 顯示對應所有記錄 | 預期結果 |
輸入已存在且能匹配成功的關鍵字 | 顯示所查詢到的數據 | 預期結果 |
輸入不存在的關鍵字 | 顯示數據界面為空 | 預期結果 |
-
- 測試結果
在本次測試的過程主要針對所有功能下的添加操作,修改操作和刪除操作,并以真實數據一一進行相關功能項目的輸入,最終能夠保證每個項目涉及的功能都是能夠正常運行,因此能夠保證本次設計的,已實現的功能能夠正常運行并且相關數據庫的信息也同樣保證正確。
結 ?論
本次家政服務管理系統利用了Web應用同現實研發方案工作進行相結合,在系統功能開始編碼之前,作者花費了大量時間在圖書館內進行資料文獻的收集和總結,通過大量文獻的分析,能夠發現,家政服務管理系統管理的方式在家政中扮演的位置是越來越重要,而使用的方式也是越來越多元化,也正是因為這個原因,作者深深的希望能夠開發出一種專門針對家政服務管理系統,以滿足用戶的需求。
在本次家政服務管理系統中,利用了目前市場上普遍使用的Java技術,以及數據庫管理功能MySQL,和目前比較流行的springboot框架,最后配合使用到了VUE頁面布局技術進行系統界面的布置,以現實生活的用戶運動過程為標準,設計實現了公告查詢、資訊瀏覽、服務項目查詢、點贊收藏、在線評論等功能,并維護好后臺的信息和整體系統的穩定性。
但是由于作者受到了技術水平的限制,在有限的時間,只能夠將系統功能模擬時的功能實現,在許多功能方面仍然存在很大的弊端,而這些弊端需要不斷的測試,不斷的總結,不斷的改進。例如本次系統設計中,在數據儲存的方面并不夠全面,很容易出現信息泄露的風險;例如針對用戶權限的設置同樣不夠全面完整,沒有考慮權限在實際情況的運用是否能夠完美執行。而在這之后的日子里,作者將會繼續學習Java技術和相關的信息技術,對系統功能進行更加完整的,詳細的分析,將系統功能一一進行完善,幫助使用者完成相應的操作。