ssm校园拼车服务系统毕业设计源码211633
SSM校園拼車服務系統
摘?要
科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。在現實運用中,應用軟件的工作規則和開發步驟,采用Java技術建設校園拼車服務系統 。
本設計主要實現集人性化、高效率、便捷等優點于一身的校園拼車服務系統,完成用戶管理、拼車資訊、拼車論壇、拼車信息、拼車訂單等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。校園拼車服務系統 使用Java語言,采用基于MVVM模式的SSM技術進行開發,數據方面主要采用的是微軟的MySQL關系型數據庫來作為數據存儲媒介,配合前臺HTML+CSS 技術完成系統的開發。
關鍵詞:校園拼車服務系統;Java語言;?
SSM physical education classroom management systemAbstract
The rapid development of scientific and technological progress has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The advent of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, according to the working rules and development steps of the application software, Java technology is used to build the campus carpool service system.
This design mainly realizes the campus carpool service system with the advantages of humanization, high efficiency and convenience, and completes the functional modules such as user management, carpool information, carpool forum, carpool information, carpool order and so on. The system communicates with the server through the browser to realize the interaction and change of data. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage. The development of campus data is based on MySQL + SSM, and the development of campus data is based on MySQL + SSM.
、Key words:?Campus carpool service system; Java language;
目 ?錄
第1章?緒論
1.1?研究背景
1.2?研究現狀
1.3?主要工作及論文結構
第2章 相關技術介紹
2.1開發技術
2.2 MVVM模式
2.3?B/S結構
2.4?Mysql數據庫
2.5?SSM框架
2.5 SSM框架各層關系
第3章 系統分析
3.1?可行性分析
3.1.1?技術可行性
3.1.2?經濟可行性
3.1.3?社會可行性
3.2系統功能分析和描述
3.3性能分析 6
3.4系統操作流程 7
3.4.1添加信息流程 7
3.4.2操作流程 7
3.4.3刪除信息流程 8
第4章 系統設計
4.1系統架構設計
4.2開發流程設計
4.3數據庫設計
4..3.1實體ER圖 13
4.3.2數據表 14
第5章?系統實現
5.1用戶功能模塊
5.1.1 前臺首頁界面 15
5.1.2用戶注冊界面 15
5.1.3用戶登錄界面 19
5.1.4公告欄界面 22
5.1.5拼車資訊界面 23
5.1.6拼車介紹詳情界面 23
5.2管理員功能模塊 24
5.2.1 站點管理界面 24
5.2.2 用戶管理界面 25
5.2.3 內容管理管理界面 25
5.2.4 更多管理界面 26
第6章?系統測試 28
6.1?測試環境 28
6.2?測試目標 28
6.3?功能測試 28
6.4?測試結果 29
第7章?總結與展望 31
參考文獻 32
致謝 34
本課題的目的是使校園拼車服務系統清晰化,透明化,便于操作,易于管理。通過功能模塊的優化組合實現不同的管理細節,使管理過程實現最大程度的自動化與信息化,并能自動對人工操作環節進行復查,使校園拼車服務系統出錯率降至最低。在傳統的校園拼車管理系統中,各種管理工作往往是很復雜煩瑣的。校園拼車系統的特點是信息處理量比較大,所管理的種類比較繁多,而且由于消費、繳費等單據發生量特別大,關聯信息多,查詢和統計的方式不盡相同。在管理過程中經常會出現信息的重復傳遞,因此 校園拼車服務系統必須實現計算機化處理。我們系統開發的總體任務是實現校園拼車服務系統 ?的系統化、規范化、白動化、信息化與智能化,從而達到提高校園拼車服務系統效率的目的。
隨著計算機網絡的不斷滲透,人們的生活與工作、學習的方式也在慢慢發生變化。傳統的考勤相關信息管理方式一般都采取人工的方式,信息的獲取、整理、修改、存儲等工作還停留在人工階段。這種方式一方面需要花費大量的人力、物力和金錢,交互起來比較困難,而且會浪費時間;另一方面對用戶等信息的管理,特別是隨著用戶數量的遞增,查詢、修改起來特別困難;最后由于用戶等其他信息的不斷增加,信息的存儲也成為了難題。
一些發達國家,網絡發展比較快,已經很大程度上完成了從人工到計算機管理的轉變。我國計算機應用起步比較晚,而且發展區域不平衡,還有很多地區或單位使用傳統的方式進行管理,但是目前計算機發展較快,包括網絡也已經普及,很多單位和用戶也開始慢慢接觸網絡管理系統。縱觀這些系統主要有以下幾個特點:
(1)先進性:實現網絡化管理。
(2)通用性:同一行業基本都能使用。
(3)方便性:通過網絡就能完成管理工作。
(4)及時性:信息更新及時。
(5)可擴展性:可根據需要進行模塊的增加。
(6)安全性:對單位、用戶等信息進行加密。
截至如今,互聯網已經深入人們的生活,智能手機、筆記本電腦等已經是人們獲取信息的主要工具,這是一個溝通無限的時代,因此,利用網絡來進行在校園拼車也成為大勢所趨,所以,開發一個校園拼車服務系統是必須的。
本文的主要工作是研究如何將計算機和信息管理進行有機結合,從而利用Java語言以及Mysql數據庫技術在Dreamweaver中實現了系統的功能模塊,切實的開發出一套貼近校園拼車服務系統的實際,有效管理校園拼車服務系統 。
論文結構如下:
第一章緒論:主要對校園拼車服務系統的開發背景,研究現狀,目的,及意義進行了分析。
第二章開發技術及軟件:主要把系統開發工具進行介紹,另外講解開發系統所用到的一些特殊功能技術。
第三章系統分析:主要是對校園拼車服務系統進行需求分析,以及對其數據流程與功能進行分析。
第四章系統設計:主要根據系統需求對系統的設計進行介紹,以及對數據的開發與功能模塊設計的過程。
第五章系統實現:本章主要結合系統界面截圖,介紹了系統各個功能實現的結果。
第六章系統測試:本章系統進行功能模塊的測試,撰寫測試用例,確保系統各大功能準確無誤。
第七章總結與展望:對整個論文的研究內容進行總結,概括整個論文的特點,指出不足之處,為下步深究指明方向。
本系統前端部分基于MVVM模式進行開發,采用B/S模式,后端部分基于Java的ssm框架進行開發。
前端部分:前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現動態路由和全局狀態管理,Ajax實現前后端通信,Element UI組件庫使頁面快速成型,項目前端通過柵格布局實現響應式,可適應PC端、平板端、手機端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用ssm作為開發框架,同時集成MyBatis、Redis等相關技術
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由于需要展示內容而涉及的業務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
Mysql 經過多次的更新,功能層面已經非常的豐富和完善了,從Mysql4版本到5版本進行了比較大的更新,在商業的實際使用中取得了很好的實際應用效果。最新版本的Mysql支持對信息的壓縮,同時還能進行加密能更好的滿足對信息安全性的需求。同時經過系統的多次更新,數據庫自身的鏡像功能也得到了很大的增強,運行的流暢度和易用性方面有了不小的進步,驅動的使用和創建也更加的高效快捷。最大的變動還是進行了空間信息的顯示優化,能更加方便的在應用地圖上進行坐標的標注和運算。強大的備份功能也保證了用戶使用的過程會更加安心,同時支持的Office特性還支持用戶的自行安裝和使用。在信息的顯示形式上也進行了不小的更新,增加了兩個非常使用的顯示區,一個是信息區,對表格和文字進行了分類處理,界面的顯示更加清爽和具體。第二是儀表的信息控件,能在儀表信息區進行信息的顯示,同時還能進行多個信息的比對,為用戶的實際使用帶來了很大的便捷。
針對本文中設計的在線考試系統在實際的實現過程中,最終選擇Mysql數據庫的主要原因在于在企業的應用系統應用及開發的過程中會存在大量的數據庫比較頻繁的操作,而且數據的安全性要求也是非常的高。綜合這些因素,最終選擇安全性系數比較高的Mysql來對在線考試系統后臺數據進行存儲操作。
數據庫管理系統的總體結構圖如下圖所示。
?
圖2-1 數據庫組成結構
B/S結構
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數據的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
SSM即SpringMVVM+Spring+MySQL,這三個框架有各自最獨有的優勢,那么將它們組合在一起能夠碰撞出很強的火花。設計者在不需消耗大量功夫,能做出Web應用程序,而且這個程序還具有層次清晰、升級更新操作不影響正常使用的、允許多次使用的特點。這個復合框架形成一個有著結構完整、功能強大和結構良好的體系:SpringMVVM使各板塊分離,Spring使開發更靈活方便,讓開發者直接對對象進行操縱,各層次分工明細,并實現各個層次間的解耦,讓代碼更加的靈活精簡。這個框架使程序員能夠規避在開發時期避免個別錯誤導致整體被破壞,也能在后期應對客戶對產品提出的新需求。
DAO層、Service層這兩個層次都可以單獨開發,互相的耦合度很低,完全可以獨立進行,這樣的一種模式在開發大項目的過程中尤其有優勢。
Controller,View層因為耦合度比較高,因而要結合在一起開發,但是也可以看作一個整體獨立于前兩個層進行開發。這樣,在層與層之前只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,一切顯得非常清晰簡單。
系統分析是開發一個項目的先決條件,通過系統分析可以很好的了解系統的主體用戶的基本需求情況,同時這也是項目的開發的原因。進而對系統開發進行可行性分析,通常包括技術可行性、經濟可行性等,可行性分析同時也是從項目整體角度進行的分析。然后就是對項目的具體需求進行分析,分析的手段一般都是通過用戶的用例圖來實現。下面是詳細的介紹。
3.1.1技術可行性分析
校園拼車服務系統存儲所使用的mysql數據庫以及開發中所使用的IDEA、Tomcat這些開發工具的使用,能夠給我們的編寫工作帶來許多的便利。系統使用SSM框架進行開發,使系統的可擴展性和維護性更佳,減少java配置代碼,簡化編程代碼,目前SSM框架也是很多企業選擇的框架之一。
3.1.2經濟可行性分析
在開發校園拼車服務系統 中所使用的開發軟件像IDEA開發工具、Tomcat8.0服務器、MySQL5.7數據庫、Photoshop圖片處理軟件等,這些都是開源免費的,并且校園拼車服務系統 是自己設計并編碼實現的,數據庫是使用流行mysql進行數據的存儲,開源的mysql等技術的使用,減少系統開發費用。
3.1.3操作可行性分析
此次項目設計參考了幾個該模式下網站的開發案例,對他們的操作界面分析,將眾多案例結合在一起,突出以人為本簡化操作,所以具有基本計算機知識的人都會操作本項目。
對于性能分析,與傳統的管理方式相比,傳統的管理方式是使用人工通過用紙和筆進行數據信息的統計和管理,并且這種方式對于存儲和查找某一數據信息都比較麻煩,隨著計算機網絡的到來,這種傳統的方法很難適應當下社會的發展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對于使用的時間和所要花費的費用都是比較高的,為了降低成本費用,提高用戶的工作效率,進行開發一套基于計算機和網絡技術的校園拼車服務系統 。
校園拼車服務系統 的開發設計時一個獨立的系統,以之前數據庫進行數據的存儲開發,主要是為了實現校園拼車服務系統 ?的用戶角色及相對應的功能模塊,讓校園拼車服務系統 的管理不會存在管理差異、低效率,而是跟傳統的管理信息恰好相反,校園拼車服務系統 的實現可以節約資源,并且對于業務的處理速度也提高,速度快、效率高,功能性強大。
3.3系統流程分析
3.3.1添加信息流程
添加信息,編號系統使用自動編號模式,沒有用戶填寫,用戶添加信息輸入信息,系統將自動確認的信息和數據,驗證的成功是有效的信息添加到數據庫,信息無效,重新輸入信息。添加信息流程如圖3-3所示。
圖3-3 添加信息流程圖
?
3.3.2操作流程
用戶想進入系統,首先進入系統登錄界面,通過正確的用戶名、密碼,選擇登錄類型登錄,系統會檢查登錄信息,信息正確,然后輸入相應的功能界面,提示信息錯誤,登錄失敗。系統操作流程如圖3-4所示。
圖3-4操作流程圖
?
3.3.3刪除信息流程
用戶選擇要刪除的信息并單擊Delete按鈕。系統提示是否刪除信息。如果用戶想要刪除信息,系統將刪除信息。系統數據庫刪除信息。刪除信息流程圖如圖3-5所示。
?
圖3-5?刪除信息流程圖
系統設計
校園拼車服務系統的系統項目的概述設計分析,主要內容有校園拼車服務系統 的具體分析,進行數據庫的是設計,數據采用mysql數據庫,并且對于系統的設計采用比較人性化的操作設計,對于系統出現的錯誤信息可以及時做出處理及反饋。
基于校園拼車服務系統 的設計基于現有的電腦,可以實現用戶管理、拼車論壇、拼車資訊、拼車信息、拼車訂單等詳細的了解及統計分析。根據系統功能需求建立的模塊關系圖如下圖:?
?
???????????圖4-1管理員功能模塊圖
???????
校園拼車服務系統 的開發對管理模塊和系統使用的數據庫進行分析,編寫代開發,規劃和操作是構建信息管理應用程序的必要三步曲,它決定了系統是否能夠真正實現預設功能以及是否可以在成功設計后實施。在開發過程中,每個階段必須嚴格按照線性順序進行開發,并且在相應階段生成的每個工作都可以通過技術進行驗證和檢查。確保一個階段完成后是正確的,不會造成下一階段拖拽現象,使系統完成設計功能后得到保證。
從校園拼車服務系統 ?的成功開發經驗來看,上述方法效果最為明顯,最大程度地降低了系統開發的復雜性。如圖4-2所示。
?
?????????圖4-2開發系統流程圖
數據庫是信息系統的基礎和核心。數據庫設計的好壞直接影響到信息系統開發的成敗。創建數據庫表首先確定實體的屬性和實體之間的關系。根據關系創建一個數據表。
4.3.1實體ER圖
數據庫是整個軟件編程中最重要的一個步驟,對于數據庫問題主要是判定數據庫的數量和結構公式的創建。展示系統使用的是Mysql進行對數據庫進行管理,進行保證數據的安全性、穩定性等。
概念模型的設計是為了抽象真實世界的信息,并對信息世界進行建模。它是數據庫設計的強大工具。數據庫概念模型設計可以通過E-R圖描述現實世界的概念模型。系統的E-R圖顯示了系統中實體之間的鏈接。而且Mysql數據庫是自我保護能力比較強的數據庫,下圖主要是對數據庫實體的E-R圖:
(1)司機用戶管理E-R圖,如圖4-3所示:
?
?圖4-3司機用戶實體屬性圖
?(2)乘客用戶管理E-R圖如圖4-4所示:
?
???圖4-4乘客用戶管理實體圖
這些功能可以充分滿足校園拼車服務系統的需求。此系統功能較為全面如下圖系統功能結構如圖4-5所示。
??????????????????????????????圖4-5系統功能結構圖
?
4.3.2數據表
將數據庫概念設計的E-R圖轉換為關系數據庫。在關系數據庫中,數據關系由數據表組成,但是表的結構表現在表的字段上。
passenger_information表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| passenger_information_id | int | 11 | 是 | 是 | 乘客用戶ID |
| passenger_name | varchar | 64 | 是 | 否 | 乘客姓名 |
| passenger_gender | varchar | 64 | 否 | 否 | 乘客性別 |
| emergency_contact_ | varchar | 16 | 否 | 否 | 緊急聯系人 |
| id | varchar | 255 | 否 | 否 | 身份證 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| driver_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| driver_information_id | int | 11 | 是 | 是 | 司機用戶ID |
| driver_name | varchar | 64 | 是 | 否 | 司機姓名 |
| driver_gender | varchar | 64 | 否 | 否 | 司機性別 |
| driver_driving_age | varchar | 64 | 否 | 否 | 司機駕齡 |
| emergency_contact_ | varchar | 16 | 否 | 否 | 緊急聯系人 |
| id | varchar | 255 | 否 | 否 | 身份證 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| carpool_order表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| carpool_order_id | int | 11 | 是 | 是 | 拼車訂單ID |
| order_number | varchar | 64 | 否 | 否 | 訂單編號 |
| vehicle_brand | varchar | 64 | 否 | 否 | 車輛品牌 |
| body_color | varchar | 64 | 否 | 否 | 車身顏色 |
| license_plate | varchar | 64 | 否 | 否 | 車牌號碼 |
| driver_user | int | 11 | 否 | 否 | 司機用戶 |
| passenger_user | int | 11 | 否 | 否 | 乘客用戶 |
| number_of_passengers | int | 11 | 否 | 否 | 乘客人數 |
| time_of_appointment | datetime | 0 | 否 | 否 | 預約時間 |
| boarding_location_ | varchar | 64 | 否 | 否 | 上車地點 |
| destination | varchar | 64 | 否 | 否 | 目的地 |
| unit_price | varchar | 64 | 否 | 否 | 單價 |
| kilometers | int | 11 | 否 | 否 | 公里數 |
| total_price | varchar | 64 | 否 | 否 | 總價 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| pay_state | varchar | 16 | 是 | 否 | 支付狀態 |
| pay_type | varchar | 16 | 否 | 否 | 支付類型: 微信、支付寶、網銀 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| carpool_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| carpool_information_id | int | 11 | 是 | 是 | 拼車信息ID |
| vehicle_picture | varchar | 255 | 否 | 否 | 車輛圖片 |
| vehicle_brand | varchar | 64 | 否 | 否 | 車輛品牌 |
| body_color | varchar | 64 | 否 | 否 | 車身顏色 |
| license_plate | varchar | 64 | 是 | 否 | 車牌號碼 |
| vehicle_status | varchar | 64 | 否 | 否 | 車輛狀態 |
| driver_user | int | 11 | 否 | 否 | 司機用戶 |
| number_of_seats | int | 11 | 否 | 否 | 座位數 |
| unit_price | int | 11 | 否 | 否 | 單價 |
| hits | int | 11 | 是 | 否 | 點擊數 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| Notice表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| notice_id | mediumint | 8 | 是 | 是 | 公告id |
| title | varchar | 125 | 是 | 否 | 標題 |
| content | longtext | 0 | 否 | 否 | 正文 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| Collect表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| collect_id | int | 10 | 是 | 是 | 收藏ID |
| user_id | int | 10 | 是 | 否 | 收藏人ID |
| source_table | varchar | 255 | 否 | 否 | 來源表 |
| source_field | varchar | 255 | 否 | 否 | 來源字段 |
| source_id | int | 10 | 是 | 否 | 來源ID |
| title | varchar | 255 | 否 | 否 | 標題 |
| img | varchar | 255 | 否 | 否 | 封面 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| Praise表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| praise_id | int | 10 | 是 | 是 | 點贊ID |
| user_id | int | 11 | 是 | 否 | 點贊人 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| source_table | varchar | 255 | 否 | 否 | 來源表: |
| source_field | varchar | 255 | 否 | 否 | 來源字段 |
| source_id | int | 10 | 是 | 否 | 來源ID |
| status | tinyint | 1 | 是 | 否 | 點贊狀態 |
5.1.1 前臺首頁界面
當進入校園拼車服務系統 的時候,首先映入眼簾的是系統的導航欄,下面是輪播圖以及系統內容,其主界面展示如下圖5-1所示。
?
圖5-1首頁界面
5.1.2用戶注冊界面
不是校園拼車服務系統 中正式用戶的是可以在線進行注冊的,如果你沒有本校園拼車服務系統 的賬號的話,添加“注冊”,當填寫上自己的賬號+密碼+確認密碼+昵稱+郵箱+手機號等后再點擊“注冊”按鈕后將會先驗證輸入的有沒有空數據,再次驗證密碼和確認密碼是否是一樣的,最后驗證輸入的賬戶名和數據庫表中已經注冊的賬戶名是否重復,只有都驗證沒問題后即可會員注冊成功。其用用戶注冊界面展示如下圖5-2所示。
圖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.3用戶登錄界面
校園拼車服務系統 中的前臺上注冊后的用戶是可以通過自己的賬戶名和密碼進行登錄的,當會員輸入完整的自己的賬戶名和密碼信息并點擊“登錄”按鈕后,將會首先驗證輸入的有沒有空數據,再次驗證輸入的賬戶名+密碼和數據庫中當前保存的用戶信息是否一致,只有在一致后將會登錄成功并自動跳轉到校園拼車服務系統 的首頁中;否則將會提示相應錯誤信息,用戶登錄界面如下圖5-3所示。
圖5-3登錄界面
?
登錄代碼如下:
????/**
?????* 登錄
?????* @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;
????????QueryWrapper wrapper = new QueryWrapper<User>();
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
????????????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, "賬號或密碼不正確");
????????}
}
????public String select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return sql.toString();
}
????public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
5.1.4公告欄界面
當點擊導航欄上的“公告欄”的時候,就會進入對應的界面查看公告信息,公告欄界面如下圖5-4所示。
?
圖5-4公告欄界面
5.1.5拼車資訊界面
當訪客點擊校園拼車服務系統 中導航欄上的“拼車資訊”后將會進入到該“拼車資訊”列表的界面,然后選擇想要看的拼車資訊,點擊進入到詳細界面,在詳細界面可以收藏+贊+評論等操作,拼車資訊界面如下圖5-5所示。
?
圖5-5拼車資訊界面
拼車資訊關鍵代碼如下所示。
@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
5.1.6拼車介紹詳情界面
當訪客點擊“拼車介紹”后就可以看到所有的拼車介紹信息,選擇你想要了解的拼車介紹后將會進入該拼車介紹的詳情界面,可以了解到車輛品牌、車身顏色、車牌號碼、車輛狀態、司機用戶、座位數、單價等,同時可以對點擊下方的“加入”、“點贊”、“收藏”、“評論”,拼車介紹詳情展示頁面如圖5-6所示。
?
圖5-6拼車詳情界面圖
拼車詳情關鍵代碼如下所示。
@RequestMapping("/get_list")
????public Map<String, Object> getList(HttpServletRequest request) {
????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
????????return success(map);
}
5.2管理員功能模塊
5.2.1?站點管理界面
校園拼車服務系統 中的管理人員在“站點管理”這一菜單中是可以對前臺顯示的輪播圖以及公告欄進行管控。界面如下圖5-7所示。
?
圖5-7站點管理界面圖
5.2.2?用戶管理界面
校園拼車服務系統 中的管理人員在“用戶管理”這一菜單是中可以對注冊的用戶、司機用戶以及管理員進行管控,這里以用戶管理為例。界面如下圖5-8所示。
圖5-8用戶管理界面圖
5.2.3 內容管理管理界面
校園拼車服務系統 中的管理人員在“內容管理”這一菜單中是可以對校園拼車服務系統內的拼車論壇、拼車資訊、新聞分類列表、論壇分類列表進行維護和管理的,界面如下圖5-9所示。
?
?
圖5-9內容管理界面圖
5.2.4 更多管理界面
校園拼車服務系統中的管理人員在“更多管理”這一菜單下是可以對校園拼車服務系統 內的拼車信息、拼車訂單進行管控的,其管理界面如下圖5-9所示。
?
圖5-9更多管理界面圖
更多管理關鍵代碼如下所示。
public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
1、服務器端
操作系統:Windows 7
Web服務器:Tomcat7.0
數據庫:Mysql
開發語言:Java
2、客戶端
瀏覽器:Internet Explorer10
界面布局:DIV+CSS
分辨率:最佳效果1027*768以上像素
3、開發工具
Visual Studio Code
Myeclipse
系統測試是用于檢查軟件的質量、性能、可靠性等是否符合用戶需求。一套嚴謹的、規范的、完善的測試過程將大大提高軟件的質量、可信度、可靠性,降低軟件的出錯率,降低用戶風險系數。通過在計算機上對系統進行測試試驗并從中發現此系統中存在的問題和錯誤然后加以修改,使之更加符合用戶需求。
1.測試的目的是通過測試來發現程序在執行過程中的錯誤的過程。
2.好的測試方案是可以檢驗出還未被發現的錯誤的方案。
3.好的測試是發現了到目前為止還未被發現的錯誤的測試。
4.該系統能夠完成用戶管理、拼車信息、拼車訂單、拼車資訊、拼車論壇、新聞分類列表、論壇分類列表等功能,做到所開發的系統操作簡單,盡量使系統操作不受用戶對電腦知識水平的限制。
下表是校園拼車服務系統 功能的測試用例,檢測了校園拼車服務系統 中對拼車信息信息的增加,刪除,修改,查詢操作是否成功運行。觀察系統的響應情況,得出該功能也達到了設計目標,系統運行正確。
前置條件;管理員登錄系統。
表6-1拼車信息管理的測試用例
| 功能描述 | 用于拼車信息管理 | |
| 測試目的 | 檢測拼車信息管理時的各種操作的運行情況 | |
| 測試數據以及操作 | 預期結果 | 實際結果 |
| 點擊添加拼車信息,必填項合法輸入,點擊保存 | 提示添加成功 | 與預期結果一致 |
| 點擊添加拼車信息,必填項輸入不合法,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊修改拼車信息,必填項修改為空,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊修改拼車信息,必填項輸入不合法,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊刪除拼車信息,選擇拼車信息刪除 | 提示刪除成功 | 與預期結果一致 |
| 點擊搜索拼車信息,輸入存在的拼車信息名 | 查找出拼車信息 | 與預期結果一致 |
| 點擊搜索拼車信息 ,輸入不存在的拼車信息名 | 不顯示拼車信息 | 與預期結果一致 |
下表是拼車訂單管理功能的測試用例,檢測了拼車訂單管理的操作是否成功運行。觀察系統的響應情況,得出該功能也達到了設計目標,系統運行正確。
前置條件;管理員登錄系統。
表6-2 拼車訂單管理的測試用例
| 功能描述 | 用于拼車訂單管理 | |
| 測試目的 | 檢測拼車訂單管理時各種操作的情況 | |
| 測試數據以及操作 | 預期結果 | 實際結果 |
| 未選擇拼車訂單,點擊提交 | 提示請選擇拼車訂單 | 與預期結果一致 |
| 未上傳附件,點擊提交 | 提示請選擇附件 | 與預期結果一致 |
| 未選擇原因,點擊提交 | 提示請選擇原因 | 與預期結果一致 |
根據以上測試情況,測試結果如下表所示。
表6-1測試結果表
| 測試項目 | 測試結果 |
| 登錄測試 | 成功 |
| 修改密碼測試 | 成功 |
| 拼車訂單管理測試 | 成功 |
| 拼車信息測試 | 成功 |
| 拼車資訊管理 | 成功 |
| 拼車論壇管理測試 | 成功 |
| 用戶管理測試 | 成功 |
本研究針對校園拼車服務系統 地需求建模,數據建模及過程建模分析設計并實現校園拼車服務系統的過程。給出系統應用架構并分析優劣勢,通過功能分解圖,系統組件圖描述功能需求。設計建立了數據庫,給出系統關鍵數據結構的定義。通過類關系圖描述組件間的協作關系,給出各個類的定義方法。通過描述每一個類的字段,屬性及方法實現校園拼車服務系統 的前后端代碼。最終給出系統集成整合方法,完成校園拼車服務系統 地設計與實現。
在此項目的開發中,先要按照產品經理做出的產品模型鋪出大體的頁面,并在其中找好頁面的邏輯關系,并且中途總結一些頁面上的問題重新反饋給產品經理,當靜態頁面的搭建的大體已經完善時,就需要和負責后臺開發的技術開發者聯系,來接好前后臺的數據接口,可以讓后臺的信息在前臺顯示出來,在這個項目實現中,不光明白了前端開發和產品經理的聯系,也明白了后臺在整個系統中起到了什么作用,因為前后臺的連接,用戶可以對系統進行操作,可以在輸入自己的相關信息后,通過后臺加工,完成對數據庫的查找、修改、添加,而理解了這些關系與實現的方法后。再去完善整個系統的功能就更加清晰與簡單了。此次的項目它涉及了前臺與后臺系統的搭建,在學校所學的知識基礎上,此次的項目,讓我對于一個系統的前端開發,以及后臺的作用都有了一個更深切的認知。
參考文獻
[1]王常玨,段堯清,朱澤.基于SSM的政府數據治理聯盟鏈框架構建[J/OL].情報科學:1-18[2022-03-16].http://kns.cnki.net/kcms/detail/22.1264.g2.20220309.1213.002.html
[2]許愛琪,柳松. 一種MySQL數據庫全流量鏡像系統及方法[P]. 上海市:CN114064767A,2022-02-18.
[3]李艷杰.基于JAVA與MySQL數據庫的移動端題庫練習系統的設計與實現[J].黑龍江科學,2022,13(02):56-57.
[4]李雙,郭晨晨,李佳虎,張慧娥.基于SSM框架的智能駕校系統的設計與開發[J].電腦知識與技術,2022,18(03):62-63+65.
[5]王一竹.基于MySQL的圖書館信息管理系統設計[J].電腦編程技巧與維護,2022(01):93-95+116.
[6]郭靜.基于SSM框架的高校新生預報到系統的設計與實現[J].電子技術與軟件工程,2022(02):232-235.
[7]馮凱.“MySQL數據庫”課程教學中常見問題探析[J].無線互聯科技,2021,18(24):158-159.
[8]陳潔.“MySQL數據庫安全”課程教學方法優化分析[J].無線互聯科技,2021,18(24):160-161.
[9]徐旭,李明明,夏輝,陳曦,王天宇,肖碩,雍旭.基于SSM框架的互聯網+多元監管下構建醫療設備質量控制管理服務平臺研究[J].中國醫學裝備,2021,18(12):106-110.
[10]李春生,李朝霞,劉濤,胡亞楠.基于SSM的科研室管理系統的研究與設計[J].計算機技術與發展,2021,31(12):148-154.
[11]胡世洋,賴森林.淺論SSM框架在構建“微農”信息服務中的應用[J].電腦知識與技術,2021,17(34):4-6.
[12]李耀,李路蘭,王明宇,楊廣,王偉,孫新杰.基于SSM框架的創新創業申報系統的構建——以六盤水師范學院為例[J].電腦知識與技術,2021,17(33):47-48+52.
[13]王晨. 基于JAVA的教室查詢系統研究[C]//.第三十五屆中國(天津)2021’IT、網絡、信息技術、電子、儀器儀表創新學術會議論文集.,2021:16-19.
[14]Jun Ma, Jun Mao, Long Chen , Lili Yin. Design and Implementation of Multi-terminal Debugging System based on SSM Framework[J]. International Core Journal of Engineering,2021,7(7).
[15]Xiaojie Guo,Tingmei Wang*. Design and Implementation of Graduate Information Management System Based on SSM Framework[J]. Journal of Simulation,2020,8(2).
[16]Ping Wanxin,Chen Yuankun,Hou Xiaoyan. Design of Campus Bicycle Rental Management System Based on SSM Framework[J]. Journal of Physics: Conference Series,2019,1314.
[17]李瑩, 電子信息 易云云數據庫MySQL上線. 翟立新 主編,中關村年鑒,北京出版集團公司北京出版社,2018,205,年鑒.
[18]Taizhi Lv, Juan Zhang. Non-Book Resource Management of Library based SSM Framework[J]. Scientific Journal of Economics and Management Research,2019,1(4).
[19]肖睿,程寧,田崇峰,金志雄,杜毅. MySQL數據庫應用技術及實戰[M].人民郵電出版社:, 201801.177.
[20]陳小兵,錢偉,郭旭,李鐵錚. MySQL數據庫攻擊與安全防范技術研究[C]//.第六屆全國網絡安全等級保護技術大會論文集.,2017:89-93.
致謝
在此論文完成之際,感謝我的指導老師。在指導老師的網頁設計課上,當時我學到了很多東西,這對于我實習過程中也打了一定的基礎,而且指導老師對于我的設計也提出許多建議,并予以悉心的指導,對于一些細小的問題都耐心的指導我去完善,授予我寫論文的好友,時常的鼓勵我,另外感謝教導我完善此項目的前端同學,對于這個項目,我是邊學習邊實現完成的,有許多東西開始并不是很明白,但前端開發的同學非常耐心的引導我去將這個項目完成,在系統的后端開發中,所用到的后臺開發技術也時常會給我講解,助于我更好的將論文完成,在此對幫助到我的同學和一直予以教導的指導老師致以衷心的感謝,祝事業有成。
免費領取本源代碼,請關注點贊+私信
總結
以上是生活随笔為你收集整理的ssm校园拼车服务系统毕业设计源码211633的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux深入理解
- 下一篇: MAX40026 280ps高速比较器开