日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ssm网上书城系统毕业设计-附源码180919

發布時間:2023/12/14 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssm网上书城系统毕业设计-附源码180919 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目 ?錄

摘要

1 緒論

1.1 研究意義

1.2開發背景

1.3論文結構與章節安排

2網上書城系統系統分析

2.1 可行性分析

2.2 系統流程分析

2.2.1 數據流程

3.3.2 業務流程

2.3 系統功能分析

2.3.1 功能性分析

2.3.2 非功能性分析

2.4 系統用例分析

2.5本章小結

3網上書城系統總體設計

3.1 系統架構設計

3.2 系統功能模塊設計

3.2.1整體功能模塊設計

3.2.2用戶模塊設計

3.2.3圖書管理模塊設計

3.2.4訂單管理模塊設計

3.3 數據庫設計

3.3.1 數據庫概念結構設計

3.3.2 數據庫邏輯結構設計

3.4本章小結

4網上書城系統詳細設計與實現

4.1用戶功能模塊

4.1.1 前臺首頁界面

4.1.2 會員注冊界面

4.1.3 會員登錄界面

4.1.4公告欄界面

4.1.5 我的賬戶界面

4.1.6 書店詳情界面

4.1.7 評論界面

4.2管理員功能模塊

4.2.1 用戶管理界面

4.2.2 公告內容管理界面

4.2.3 內容管理界面

4.2.4 模塊管理界面

5系統測試

5.1系統測試的目的

5.2 系統測試用例

5.3 系統測試結果

結論

參考文獻

??

摘要

信息化社會內需要與之針對性的信息獲取途徑,但是途徑的擴展基本上為人們所努力的方向,由于站在的角度存在偏差,人們經常能夠獲得不同類型信息,這也是技術最為難以攻克的課題。針對網上書城系統等問題,對網上書城系統進行研究分析,然后開發設計出網上書城系統以解決問題。

網上書城系統主要功能模塊包括系統用戶管理、書店信息、圖書信息、購物框管理、會員購買需知、會員購買、圖書入庫、圖書出庫、訂單中心、取消訂單、訂單發貨,采取面對對象的開發模式進行軟件的開發和硬體的架設,能很好的滿足實際使用的需求,完善了對應的軟體架設以及程序編碼的工作,采取Mysql作為后臺數據的主要存儲單元,采用JavaEE框架、Java技術、Ajax技術進行業務系統的編碼及其開發,實現了本系統的全部功能。本次報告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎。針對網上書城系統的各項需求以及技術問題進行分析,證明了系統的必要性和技術可行性,然后對設計系統需要使用的技術軟件以及設計思想做了基本的介紹,最后來實現網上書城系統和部署運行使用它。

關鍵詞:SSM技術;MYSQL;網上書城

Abstract

In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of online bookstore system, this paper studies and analyzes the online bookstore system, and then develops and designs the online bookstore system to solve the problems.

The main functional modules of the online bookstore system include system user management, bookstore information, book information, shopping box management, member purchase needs, member purchase, book warehousing, book delivery, order center, order cancellation and order delivery. The object-oriented development mode is adopted for software development and hardware erection, which can well meet the needs of actual use and improve the corresponding software erection and program coding, MySQL is used as the main storage unit of background data, and Java EE framework, Java technology and Ajax technology are used to code and develop the business system, which realizes all the functions of the system. This report first analyzes the background, role and significance of the research, laying a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the online bookstore system, proves the necessity and technical feasibility of the system, and then makes a basic introduction to the technical software and design ideas needed to design the system. Finally, it realizes the online bookstore system and deploys it.

Keywords:SSM technology; MYSQL; Online bookstore

1 緒論

1.1 研究意義

在Internet'飛速發展的今天,計算機是21世紀改革和創新的工具之一,而互聯網成為人們快速獲取、發布和傳遞信息的重要渠道,它在人們政治、經濟、生活等各個方面發揮著重要的作用。網上購物主要是通過網站來實現的,獲取信息也是要在Internet“海洋"中按照一定的檢索方式將所需要的信息通過網站來傳遞。因此網上購物在Internet應用上的地位顯而易見,它已成為機關、學校、企事業單位、甚至進入尋常百姓家的信息化建設中的重要組成部分,從而倍受人們的重視。而為了使其更大程度上為大家服務,為家長和同學們提供一個網上購書的橋梁,特做此系統網站。通過網站,全面宣傳,展示網。上圖書交易的優點與特色,發布圖書管理等信息內容。

網上書城是一個模擬購物環境的應用程序,它維護著一個數據庫,存儲著用戶新鮮、圖書信息、交易信息等。ASP程序從數據庫中獲得信息,并呈現給最終用戶。

在Internet網上,讓學生及家長及時了解到圖書的發布與更新以及新書推薦等重要信息,同時也幫助了學校完成部分事務,提高辦事效率,給學生、家長與學校最方便的聯系橋梁。也可以讓家長、學生以及其他社會人士通過本系統網站及時了解圖書信息,方便大家購買圖書,從而為大家節約時間,提高工作效率。

1.2開發背景

隨著Internet信息的自由化,工作節奏的加快,機械化的發展,使人們更想要一個學習知識的空間,更想暢舒心中所想,報紙一類的讀物已不能滿足人們的需求,迫切需要一個?更加具有自由性、開放性、時事性、互動性的交流平臺。網.上書城的出現適應了這一需求。

我這個網上書城為大家提供瀏覽圖書信息、瀏覽新書信息以及網上購書等功能;你可以足不出戶即可享受到好書、新書的啟迪和陶冶,同時可以為你節約時間,提高工作效率,更為你省去了許多不必要的麻煩。目前社會上各種交易系統發展飛快,各個企事業單位都引入了信息管理軟件來管理自己日益增長的各種信息,網上書城也是有了很大的發展,商業化的網上書城也不少.但本系統完全獨立開發,力求使系統功能簡潔明了,但功能齊全且易于操作,大方得體的、友好的界面。

1.3論文結構與章節安排

論文將分層次經行編排,除去論文摘要致謝文獻參考部分,正文部分還會對網站需求做出分析,以及闡述大體的設計和實現的功能,最后羅列部分調測記錄,論文主要架構如下:

第一章:引言。第一章主要介紹了課題研究的背景,系統開發的現狀和本文的研究內容與主要工作。

第二章:系統需求分析。第二章主要從系統的用戶、功能等方面進行需求分析。

第三章:系統設計。第三章主要對系統框架、系統功能模塊、數據庫進行功能設計。

第四章:系統實現。第四章主要介紹了系統框架搭建、系統界面的實現。

第五章:系統測試。第五章主要對系統的部分界面進行測試并對主要功能進行測試

第六章:總結。

2網上書城系統系統分析

系統分析是開發一個項目的先決條件,通過系統分析可以很好的了解系統的主體用戶的基本需求情況,同時這也是項目的開發的原因。進而對系統開發進行可行性分析,通常包括技術可行性、經濟可行性等,可行性分析同時也是從項目整體角度進行的分析。然后就是對項目的具體需求進行分析,分析的手段一般都是通過用戶的用例圖來實現。下面是詳細的介紹。

2.1 可行性分析

(1)經濟可行性:

經濟可行性在此僅代表網站的運維成本,開發成本不在此考慮。

目前該模式下的網上書城系統的數量日益增多,網購變得平民化普及化用戶人數呈上升趨勢,當用戶人數龐大了,運維成本可以由廣告費進行填補,包括開發成本。

所以經濟可行性沒有問題。

(2)操作可行性:

此次項目設計參考了幾個該模式下網站的開發案例,對他們的操作界面分析,將眾多案例結合在一起,突出以人為本簡化操作,所以具有基本計算機知識的人都會操作本項目。

因此操作可行性也沒有問題。

(3)技術可行性:

技術可行性指的是對于搭建框架的可行性,以及有更優秀的技術出現時系統的技術更新換代的納新性如何,開發時間成本費用比如何。

現有的SSM技術能夠迎合所有電子商務系統的搭建。開發這個網上書城系統的時候我采用了SSM+MYSQL用以運行整體程序。

綜上所述技術可行性也沒有問題。

(4)法律可行性:

從開發者角度來看,SSM和MYSQL是網上開源且免費的,在知識產權方面不會產生任何法律糾紛。

從用戶使用角度來看,只要不再系統上販賣違禁品,對系統做出條約協議,杜絕非法支付即可。

綜上所述法律可行性也沒有問題。

2.2 系統流程分析

2.2.1?數據流程

網上書城系統主要的目的就是實現對圖書的在線選購,圖2-1就是系統的數據流圖。

圖2-1圖書購買操作展開圖

3.3.2?業務流程

分析完系統的數據流,接下來我們來看系統的業務流程,圖2-2就是業務流程圖:

圖2-2業務流程圖

2.3?系統功能分析

2.3.1 功能性分析

按照網上書城系統的角色,我劃分為了注冊用戶管理模塊、商家、管理員管理模塊這三大部分。

用戶管理模塊:

(1)用戶注冊登錄:用戶注冊為會員并登錄網上書城系統;用戶對個人信息的增刪改查,比如個人資料,密碼修改。

(2)公告:用戶在公告消息這一菜單下對用戶提交的查看、同時也可以發布、評論。

(3)圖書資訊:用戶進行資訊的閱覽,查看管理者發布的圖書資訊信息。

(4)圖書信息:在首頁導航欄上我們會看到“圖書信息”這一菜單,我們點擊進入進去以后,會看到所有管理員在后臺發布的圖書信息,我們選擇想要了解圖書信息,查看圖書信息,可以點贊+收藏+評論

(5)我的收藏:點擊“我的”按鈕下的“我的收藏”會顯示出自己收藏的所有的信息,如果不想再收藏某一信息,點入詳情后,點擊后面的刪除按鈕刪除就可以了。

商家管理模塊:

(1)圖書信息管理:商家可以對前臺圖書信息進行管控。

(2)書店信息管理:管理員可以對網上書城中現有的書店進行增刪改查。

(3)訂單中心:查看購買的我的圖書訂單,對提交的訂單進行管理。

管理員管理模塊:

(1)登錄:管理員的賬號是在數據表表中直接設置生成的,不需要進行注冊;

(2)公告內容管理:當點擊“公告內容管理”這一菜單的時候,會出現輪播圖+公告欄兩個子菜單,可以對這兩個模塊進行增刪改查操作;

(3)用戶管理:當點擊“用戶管理”這一菜單的時候,會出現管理員+注冊用戶+商家三個子菜單,可以對這個模塊進行增刪改查操作;

(4)內容模塊管理:當點擊“內容模塊”這一菜單的時候,會出現圖書資訊+圖書資訊分類個子菜單,能夠對用戶在前臺提交的圖書資訊進行管理,同時對前臺展示的資訊分類信息進行增刪改查操作;

(5)模塊管理:當點擊“模塊多”這一菜單的時候,會出現書店信息+圖書信息+圖書入庫+圖書出庫+購物框管理+會員購買需知+購買會員+訂單中心+訂單發貨+取消訂單個子菜單,能夠對這十個子模塊進行增刪改查操作;

2.3.2 非功能性分析

網上書城系統的非功能性需求比如網上書城系統的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:

3-1網上書城系統非功能需求表

安全性

主要指網上書城系統數據庫的安裝,數據庫的使用和密碼的設定必須合乎規范。

可靠性

可靠性是指網上書城系統能夠安裝用戶的指示進行操作,經過測試,可靠性90%以上。

性能

性能是影響網上書城系統占據市場的必要條件,所以性能最好要佳才好。

可擴展性

比如數據庫預留多個屬性,比如接口的使用等確保了系統的非功能性需求。

易用性

用戶只要跟著網上書城系統的頁面展示內容進行操作,就可以了。

可維護性

網上書城系統開發的可維護性是非常重要的,經過測試,可維護性沒有問題

2.4?系統用例分析

通過2.3功能的分析,得出了本網上書城系統的用例圖:

用戶角色用例如圖2-3所示。

圖2-3網上書城系統用戶角色用例圖

web后臺管理上的管理員是維護整個網上書城系統中所有數據信息的。管理員角色用例如圖2-5所示。

圖2-5網上書城系統管理員角色用例圖

2.5本章小結

本章主要通過對網上書城系統的可行性分析、流程分析、功能需求分析、系統用例分析,確定整個網上書城系統要實現的功能。同時也為網上書城系統的代碼實現和測試提供了標準。

3網上書城系統總體設計

本章主要討論的內容包括網上書城系統的功能模塊設計、數據庫系統設計。

3.1 系統架構設計

本網上書城系統從架構上分為三層:表現層(UI)、業務邏輯層(BLL)以及數據層(DL)。

圖3-1網上書城系統架構設計圖

表現層(UI):又稱UI層,主要完成本網上書城系統的UI交互功能,一個良好的UI可以打打提高用戶的用戶體驗,增強用戶使用本網上書城系統時的舒適度。UI的界面設計也要適應不同版本的網上書城系統以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進行交互操作時必須要得到與之相符的交互結果,這就要求表現層要與業務邏輯層進行良好的對接。

業務邏輯層(BLL):主要完成本網上書城系統的數據處理功能。用戶從表現層傳輸過來的數據經過業務邏輯層進行處理交付給數據層,系統從數據層讀取的數據經過業務邏輯層進行處理交付給表現層。

數據層(DL):由于本網上書城系統的數據是放在服務端的mysql數據庫中,因此本屬于服務層的部分可以直接整合在業務邏輯層中,所以數據層中只有數據庫,其主要完成本網上書城系統的數據存儲和管理功能。

3.2?系統功能模塊設計

3.2.1整體功能模塊設計

在上一章節中主要對系統的功能性需求和非功能性需求進行分析,并且根據需求分析了本網上書城系統中的用例。那么接下來就要開始對本網上書城系統的架構、主要功能和數據庫開始進行設計。網上書城系統根據前面章節的需求分析得出,其總體設計模塊圖如圖3-2所示。

圖3-2網上書城系統功能模塊圖

3.2.2用戶模塊設計

后臺管理者能夠實現對前臺注冊的用戶增刪改查操作,用戶模塊結構圖如下圖:

圖3-3會員用戶模塊結構圖

3.2.3圖書管理模塊設計

網上書城系統是中需要存儲不少圖書信息,其模塊功能結構,具體的結構圖如下:

圖3-4圖書模塊結構圖

3.2.4訂單管理模塊設計

網上書城系統最重要的一個功能就是購買,其模塊功能結構,具體的結構圖如下:

圖3-5訂單模塊結構圖

3.3 數據庫設計

數據庫設計一般包括需求分析、概念模型設計、數據庫表建立三大過程,其中需求分析前面章節已經闡述,概念模型設計有概念模型和邏輯結構設計兩部分。

3.3.1 數據庫概念結構設計

下面是整個網上書城系統中主要的數據庫表總E-R實體關系圖。

圖3-6網上書城系統總E-R關系圖

下面根據網上書城系統的數據庫總E-R關系圖可以得出網上書城系統需要很多E-R圖,在此羅列出來一些主要的數據庫E-R模型圖。

圖3-7用戶注冊E-R關系圖

圖3-8?訂單中心E-R關系圖

圖3-9?訂單發貨E-R關系圖

圖3-10?書店信息E-R關系圖

3.3.2 數據庫邏輯結構設計

通過上一小節中網上書城系統中總E-R關系圖上得出一共需要創建很多個數據表。在此我主要羅列幾個主要的數據庫表結構設計。

user_registration表:

名稱

類型

長度

不是null

主鍵

注釋

user_registration_id

int

11

用戶注冊ID

gender

varchar

64

性別

membership_level

varchar

64

會員等級

member_discount

varchar

64

會員折扣

member_id

varchar

64

會員號

examine_state

varchar

16

審核狀態

recommend

int

11

智能推薦

user_id

int

11

用戶ID

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

shopping_box_management表:

名稱

類型

長度

不是null

主鍵

注釋

shopping_box_management_id

int

11

購物框管理ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

author

varchar

64

作者

press

varchar

64

出版社

price

varchar

64

價格

quantity_added

int

11

加入數量

total_amount

varchar

64

總金額

user_account

int

11

用戶賬號

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

order_shipment表:

名稱

類型

長度

不是null

主鍵

注釋

order_shipment_id

int

11

訂單發貨ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

author

varchar

64

作者

press

varchar

64

出版社

delivery_time

varchar

64

發貨時間

delivery_express

varchar

64

發貨快遞

shipment_quantity

int

11

發貨數量

user_account

int

11

用戶賬號

business

int

11

商家

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

order_center表:

名稱

類型

長度

不是null

主鍵

注釋

order_center_id

int

11

訂單中心ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

author

varchar

64

作者

press

varchar

64

出版社

price

varchar

64

價格

purchase_quantity

int

11

購買數量

membership_level

varchar

64

會員等級

member_discount

varchar

64

會員折扣

payment_amount

varchar

64

付款金額

user_account

int

11

用戶賬號

shipping_address_

varchar

64

發貨地址

contact_number

varchar

64

聯系電話

business

int

11

商家

pay_state

varchar

16

支付狀態

pay_type

varchar

16

支付類型: 微信、支付寶、網銀

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

member_purchase_needs_to_know表:

名稱

類型

長度

不是null

主鍵

注釋

member_purchase_needs_to_know_id

int

11

會員購買需知ID

number

varchar

64

編號

member_price

int

11

會員價格

member_discount

varchar

64

會員折扣

membership_level

varchar

64

會員等級

picture

varchar

255

圖片

member_needs_to_know

text

0

會員需知

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

cancellation_of_order表:

名稱

類型

長度

不是null

主鍵

注釋

cancellation_of_order_id

int

11

取消訂單ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

author

varchar

64

作者

press

varchar

64

出版社

price

varchar

64

價格

purchase_quantity

varchar

64

購買數量

membership_level

varchar

64

會員等級

member_discount

varchar

64

會員折扣

user_account

int

11

用戶賬號

cancel_time

date

0

取消時間

business

int

11

商家

cancellation_reason

text

0

取消原因

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

buy_member表:

名稱

類型

長度

不是null

主鍵

注釋

buy_member_id

int

11

購買會員ID

number

varchar

64

編號

member_discount

varchar

64

會員折扣

membership_level

varchar

64

會員等級

member_price

varchar

64

會員價格

user_account

int

11

用戶賬號

pay_state

varchar

16

支付狀態

pay_type

varchar

16

支付類型: 微信、支付寶、網銀

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

business表:

名稱

類型

長度

不是null

主鍵

注釋

business_id

int

11

商家ID

gender

varchar

64

性別

examine_state

varchar

16

審核狀態

recommend

int

11

智能推薦

user_id

int

11

用戶ID

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

bookstore_information表:

名稱

類型

長度

不是null

主鍵

注釋

bookstore_information_id

int

11

書店信息ID

bookstore_number

varchar

64

書店編號

bookstore_type

varchar

64

書店類型

bookstore_name

varchar

64

書店名稱

bookstore_pictures

varchar

255

書店圖片

business

int

11

商家

bookstore_introduction

text

0

書店簡介

hits

int

11

點擊數

praise_len

int

11

點贊數

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

book_warehousing表:

名稱

類型

長度

不是null

主鍵

注釋

book_warehousing_id

int

11

圖書入庫ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

receipt_quantity

int

11

入庫數量

business

int

11

商家

book_source

text

0

圖書來源

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

book_ex_warehouse表:

名稱

類型

長度

不是null

主鍵

注釋

book_ex_warehouse_id

int

11

圖書出庫ID

book_number

varchar

64

圖書編號

book_type

varchar

64

圖書類型

bookstore_name

varchar

64

書店名稱

title

varchar

64

書名

outbound_quantity

int

11

出庫數量

business

int

11

商家

recommend

int

11

智能推薦

create_time

datetime

0

創建時間

update_time

timestamp

0

更新時間

3.4本章小結

整個網上書城系統的需求分析主要對系統總體架構以及功能模塊的設計,通過建立E-R模型和數據庫邏輯系統設計完成了數據庫系統設計。

4網上書城系統詳細設計與實現

網上書城系統的詳細設計與實現主要是根據前面的網上書城系統的需求分析和網上書城系統的總體設計來設計頁面并實現業務邏輯。主要從網上書城系統界面實現、業務邏輯實現這兩部分進行介紹。

4.1用戶功能模塊

4.1.1 前臺首頁界面

當進入網上書城系統的時候,首先映入眼簾的是系統的導航欄,下面是輪播圖以及系統內容,其主界面展示如下圖4-1所示。

圖4-1?前臺首頁界面圖

4.1.2 會員注冊界面

不是網上書城系統中正式會員的是可以在線進行注冊的,如果你沒有本網上書城系統的賬號的話,添加“注冊”,當填寫上自己的賬號+密碼+確認密碼+昵稱+郵箱+手機號等后再點擊“注冊”按鈕后將會先驗證輸入的有沒有空數據,再次驗證密碼和確認密碼是否是一樣的,最后驗證輸入的賬戶名和數據庫表中已經注冊的賬戶名是否重復,只有都驗證沒問題后即可會員注冊成功。其用會員注冊界面展示如下圖4-2所示。

圖4-2?前臺會員注冊界面圖

注冊關鍵代碼如下所示。

??/**

?????* 注冊

?????* @return

?????*/

????@PostMapping("register")

????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

????????// 查詢用戶

????????Map<String, String> query = new HashMap<>();

????????Map<String,Object> map = service.readBody(request.getReader());

????????query.put("username",String.valueOf(map.get("username")));

????????List list = service.selectBaseList(service.select(query, new HashMap<>()));

????????if (list.size()>0){

????????????return error(30000, "用戶已存在");

????????}

????????map.put("password",service.encryption(String.valueOf(map.get("password"))));

????????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){

????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

????????baseMapper.insert(entity);

????????log.info("[{}] - 插入操作:{}",entity);

}

4.1.3 會員登錄界面

網上書城系統中的前臺上注冊后的會員是可以通過自己的賬戶名和密碼進行登錄的,當會員輸入完整的自己的賬戶名和密碼信息并點擊“登錄”按鈕后,將會首先驗證輸入的有沒有空數據,再次驗證輸入的賬戶名+密碼和數據庫中當前保存的用戶信息是否一致,只有在一致后將會登錄成功并自動跳轉到網上書城系統的首頁中;否則將會提示相應錯誤信息,用戶登錄界面如下圖4-3所示。

圖4-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;

}

4.1.4公告欄界面

用戶在點擊導航欄上面的公告欄板后,就可以搜索查看公告信息,用戶根據自己的喜好可以進行交流,公告欄界面如下圖4-4所示。

圖4-4公告欄界面圖

公告欄關鍵代碼如下所示。

??@RequestMapping(value = "/del")

????@Transactional

????public Map<String, Object> del(HttpServletRequest request) {

????????service.delete(service.readQuery(request), service.readConfig(request));

????????return success(1);

}

4.1.5?我的賬戶界面

當點擊導航欄上的“我的”的時候,就會進入對應的界面查看我的賬戶修改密碼、個人資料,我的賬戶界面如下圖4-4所示。

圖4-5我的賬戶界面圖

4.1.6?書店詳情界面

當訪客點擊了任意書店后將會進入該款書店的詳情界面,可以了解到該書店的書店編號、書店名稱、書店類型、商家等,同時可以對該書店進行收藏+點贊+評論,書店詳情展示頁面如圖4-6所示。

圖4-6?書店詳情界面圖

4.1.7?評論界面

用戶在點擊導航欄上面的評論后,就可以搜索查看評論信息,用戶根據自己的喜好可以進行評論,評論界面如下圖4-7所示。

圖4-7?評論界面圖

評論管理關鍵代碼如下所示。

@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);

}

4.2管理員功能模塊

4.2.1 用戶管理界面

網上書城系統中的管理人員是可以對前臺注冊的商家和用戶進行管理的,也可以對管理員進行管控。界面如下圖4-9所示。

圖4-9店長管理界面圖

店長管理關鍵代碼如下所示。

/**

?* 用戶組:用于用戶前端身份和鑒權(UserGroup)表實體類

?*

?* @author xxx

?*@since 202X-XX-XX

?*/

@TableName("user_group")

@Data

@EqualsAndHashCode(callSuper = false)

public class UserGroup implements Serializable {

????private static final long serialVersionUID = 968356951391304707L;

????/**

?????* 用戶組ID:[0,8388607]

?????*/

????@TableId(value = "group_id", type = IdType.AUTO)

????private Integer groupId;

????/**

?????* 顯示順序:[0,1000]

?????*/

????@TableField(value = "display")

????private Integer display;

????/**

?????* 名稱:[0,16]

?????*/

????@TableField(value = "name")

????private String name;

????/**

?????* 描述:[0,255]描述該用戶組的特點或權限范圍

?????*/

????@TableField(value = "description")

????private String description;

????/**

?????* 來源表:

?????*/

????@TableField(value = "source_table")

????private String sourceTable;

????/**

?????* 來源字段:

?????*/

????@TableField(value = "source_field")

????private String sourceField;

????/**

?????* 注冊位置:

?????*/

????@TableField(value = "register")

????private String register;

????/**

?????* 創建時間:

?????*/

????@TableField(value = "create_time")

????private Timestamp createTime;

????/**

?????* 更新時間:

?????*/

????@TableField(value = "update_time")

????private Timestamp updateTime;

}

????/**

?????* 所在用戶組:[0,32767]決定用戶身份和權限

?????*/

????@TableField(value = "user_group")

private String userGroup;

/**

?* 用戶組:用于用戶前端身份和鑒權(UserGroup)表控制層

?*

?*/

@RestController

@RequestMapping("user_group")

public class UserGroupController extends BaseController<UserGroup, UserGroupService> {

????/**

?????* 服務對象

?????*/

????@Autowired

????public UserGroupController(UserGroupService service) {

????????setService(service);

????}

}

4.3.2?公告內容管理界面

網上書城系統中的管理人員在“公告內容管理”這一菜單中是可以對前臺顯示的輪播圖以及公告欄進行管控。界面如下圖4-8所示。

圖4-10公告內容界面圖

4.2.3 內容管理界面

網上書城系統中的管理人員在“內容管理”這一菜單中是可以對網上書城系統內的圖書資訊管理、圖書資訊分類進行維護和管理的,界面如下圖4-11所示。

圖4-11內容管理界面圖

內容管理關鍵代碼如下所示。

??@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);

????}

4.2.4 模塊管理界面

網上書城系統中的管理人員在“模塊管理”這一菜單下是可以對網上書城系統內的書店信息、圖書信息、購物框管理、圖書入庫、圖書出庫、會員購買需知、購買會員、訂單中心、訂單發貨、取消訂單管理等信息進行管控的,其管理界面如下圖4-12所示。

圖4-12模塊管理界面圖

模塊管理關鍵代碼如下所示。

@PostMapping("/set")

@Transactional

????public Map<String, Object> set(HttpServletRequest request) throws IOException {

????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

????????return success(1);

}

5系統測試

5.1系統測試的目的

系統開發到了最后一個階段那就是系統測試,系統測試對軟件的開發其實是非常有必要的。因為沒什么系統一經開發出來就可能會盡善盡美,再厲害的系統開發工程師也會在系統開發的時候出現紕漏,系統測試能夠較好的改正一些bug,為后期系統的維護性提供很好的支持。通過系統測試,開發人員也可以建立自己對系統的信心,為后期的系統版本的跟新提供支持。

5.2?系統測試用例

系統測試包括:用戶登錄功能測試、圖書展示功能測試、圖書添加、圖書搜索、密碼修改功能測試,如表5-1、5-2、5-3、5-4、5-5所示:

用戶登錄功能測試:

表5-1?用戶登錄功能測試表

用例名稱

用戶登錄系統

目的

測試用戶通過正確的用戶名和密碼可否登錄功能

前提

未登錄的情況下

測試流程

1) 進入登錄頁面

2) 輸入正確的用戶名和密碼

預期結果

用戶名和密碼正確的時候,跳轉到登錄成功界面,反之則顯示錯誤信息,提示重新輸入

實際結果

實際結果與預期結果一致

圖書查看功能測試:

表5-2?圖書查看功能測試表

用例名稱

圖書查看

目的

測試圖書查看功能

前提

用戶登錄

測試流程

點擊圖書列表

預期結果

可以查看到所有圖書信息

實際結果

實際結果與預期結果一致

管理員添加圖書界面測試:

表5-3?管理員添加圖書界面測試表

用例名稱

圖書發布測試用例

目的

測試圖書發布功能

前提

用戶正常登錄情況下

測試流程

1)點擊圖書信息管理就,然后點擊添加后并填寫信息。

2)點擊進行提交。

預期結果

提交以后,頁面首頁會顯示新的圖書信息?

實際結果

實際結果與預期結果一致

圖書搜索功能測試:

表5-4圖書搜索功能測試表

用例名稱

圖書搜索測試

目的

測試圖書搜索功能

前提

測試流程

1)在搜索框填入搜索關鍵字。

2)點擊搜索按鈕。

預期結果

頁面顯示包含有搜索關鍵字的圖書

實際結果

實際結果與預期結果一致

密碼修改功能測試:

表5-5 密碼修改功能測試表

用例名稱

密碼修改測試用例

目的

測試管理員密碼修改功能

前提

管理員用戶正常登錄情況下

測試流程

1)管理員密碼修改并完成填寫。

2)點擊進行提交。

預期結果

使用新的密碼可以登錄

實際結果

實際結果與預期結果一致

5.3?系統測試結果

通過編寫網上書城系統的測試用例,已經檢測完畢用戶登錄模塊、圖書查看模塊、圖書添加模塊、圖書搜索模塊、密碼修改功能測試,通過這5大模塊為網上書城系統的后期推廣運營提供了強力的技術支撐。

結論

至此,網上書城系統已經結束,在開發前做了許多的準備,在本系統的設計和開發過程中閱覽和學習了許多文獻資料,從中我也收獲了很多寶貴的方法和設計思路,對系統的開發也起到了很重要的作用,系統的開發技術選用的都是自己比較熟悉的,比如Web、SSM技術、MYSQL,這些技術都是在以前的學習中學到了,其中許多的設計思路和方法都是在以前不斷地學習中摸索出來的經驗,其實對于我們來說工作量還是比較大的,但是正是由于之前的積累與準備,才能順利的完成這個項目,由此看來,積累經驗跟做好準備是十分重要的事情。

當然在該系統的設計與實現的過程中也離不開老師以及同學們的幫助,正是因為他們的指導與幫助,我才能夠成功的在預期內完成了這個系統。同時在這個過程當中我也收獲了很多東西,此系統也有需要改進的地方,但是由于專業知識的淺薄,并不能做到十分完美,希望以后有機會可以讓其真正的投入到使用之中。

參考文獻

[1]王春麗.基于SSM框架的會議管理信息系統設計與實現[J].電腦編程技巧與維護,2022(03):83-85.DOI:10.16184/j.cnki.comprg.2022.03.016.

[2]王常玨,段堯清,朱澤.基于SSM的政府數據治理聯盟鏈框架構建[J/OL].情報科學:1-18[2022-04-15].http://kns.cnki.net/kcms/detail/22.1264.g2.20220309.1213.002.html

[3]吳明陽,王森琛.基于SSM框架整合的客戶服務系統設計和實現[J].新型工業化,2022,12(02):12-15.DOI:10.19335/j.cnki.2095-6649.2022.02.005.

[4]吳保升,邵倩.基于JavaEE的網上書城系統設計[J].信息技術與信息化,2021(11):58-61.

[5]劉汪洋,李寧. 一種應用于SSM框架的會話保持方法[P]. 山東省:CN113347235A,2021-09-03.

[6]趙若程. 基于SSM框架的特殊材料衡算管理平臺的設計與實現[D].北京郵電大學,2020.DOI:10.26969/d.cnki.gbydu.2020.002221.

[7]謝艷芳,張錚,辛慧洋. 一種基于Web的網上書城銷售系統[P]. 天津市:CN111199445A,2020-05-26.

[8]鄧明楊,李忠雄.基于JAVA Web技術的網上書城的設計與實現[J].計算機產品與流通,2020(05):159-160.

[9]史展偉,曲秀敏.基于Web的網上書城設計與實現[J].電腦知識與技術,2020,16(02):278-279.DOI:10.14004/j.cnki.ckt.2020.0248.

[10]鄧明楊.SSH技術在網上書城開發中的應用[J].職業,2019(28):114-115.

[11]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.

[12]榮先釗,林宇馳,張上.網上書城的設計與開發[J].福建電腦,2019,35(06):117-118.

[13]Taizhi Lv, Juan Zhang. Non-Book Resource Management of Library based SSM Framework[J]. Scientific Journal of Economics and Management Research,2019,1(4).

[14]陳波,孟志偉.基于AMP的網上書城系統的設計與實現[J].電腦知識與技術,2018,14(18):40-41.DOI:10.14004/j.cnki.ckt.2018.2045.

[15]廖昳. 我國網上書城的線下經營策略研究[D].河南大學,2018.

[16]孟冬青. 墨香網上書城系統的設計與實現[D].吉林大學,2016.

[17]Qi liang SUN. Design and Implementation of Personnel Management Information System Based on SSM[P]. Qi liang SUN,2021.

致 ?謝

逝者如斯夫,不舍晝夜。轉眼間,大學生會員活便已經接近尾聲,人面對著離別與結束,總是充滿著不舍與茫然,我亦如此,仍記得那年秋天,我迫不及待的提前一天到了學校,面對學校巍峨的大門,我心里充滿了期待:這里,就是我新生活的起點嗎?那天,陽光明媚,學校的歡迎儀式很熱烈,我面對著一個個對著我微笑的同學,仿佛一縷縷陽光透過胸口照進了我心里,同時,在那天我認識可愛的室友,我們攜手共同度過了這難忘的兩年。如今,我望著這篇論文的致謝,不禁又要問自己:現在,我們就要說再見了嗎?

感慨莫名,不知所言。遙想當初剛來學校的時候,心里總是想著工科學校會過于板正,會缺乏一些柔情,當時心里甚至有一點點排斥,但是隨著我對學校的慢慢認識與了解,我才認識到了她的美麗,她的柔情,并且慢慢的喜歡上了這個校園,但是時間太快了,快到我還沒有好好體會她的美麗便要離開了,但是她帶給我的回憶,永遠不會離開我,也許真正離開那天我的眼里會滿含淚水,我不是因為難過,我只是想將她的樣子映在我的淚水里,刻在我的心里。最后,感謝我的老師們,是你們教授了我們知識與做人的道理;感謝我的室友們,是你們陪伴了我如此之久;感謝每位關心與支持我的人。

少年,追風趕月莫停留,平荒盡處是春山。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?點贊+收藏+關注??? 私信領取本源代碼、數據庫?

總結

以上是生活随笔為你收集整理的ssm网上书城系统毕业设计-附源码180919的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。