基于springboot書店信息管理系統(tǒng)
摘 ?要
書店信息管理系統(tǒng)采用B/S結構、java開發(fā)語言、以及Mysql數據庫等技術。系統(tǒng)主要分為管理員和用戶兩部分,管理員管理主要功能包括:首頁、輪播圖、公告欄、資源管理(圖書資訊、資訊分類)交流管理(留言板、留言板分類)系統(tǒng)用戶(管理員、顧客用戶)模塊管理(圖書信息、分類管理、購買信息、入庫記錄、采購記錄)等。用戶個人前臺管理主要包括:首頁、留言板、公告消息、圖書資訊、圖書信息等功能,基本上實現(xiàn)了整個書店信息管理系統(tǒng)信息管理的過程。本系統(tǒng)在一般書店信息管理系統(tǒng)的基礎上增加了首頁推送最新信息的功能方便用戶快速瀏覽,是一個高效的、動態(tài)的、交互友好的書店信息管理系統(tǒng)。
關鍵詞?:書店信息管理系統(tǒng);java技術;Mysql數據庫;B/S結構?
Bookstore Information Management System Based on Springboot
Abstract
The bookstore information management system adopts technologies such as B/S structure, Java development language, and MySQL database. The system is mainly divided into two parts: administrator and user. The main functions of administrator management include: homepage, rotation chart, bulletin board, resource management (book information, information classification) communication management (message board, message board classification) system user (administrator, customer user) module management (book information, classification management, purchase information, storage records, purchase records), etc. The user's personal front desk management mainly includes functions such as homepage, message board, announcement message, book information, and book information, basically realizing the entire process of information management in the bookstore information management system. This system adds the function of pushing the latest information on the homepage to facilitate users to quickly browse, and is an efficient, dynamic, and interactive bookstore information management system.
Keywords: Bookstore information management system; Java technology; MySQL database; B/S structure
目??錄
1 緒論
1.1研究背景
1.2研究現(xiàn)狀
1.3 研究意義
1.4研究目的
2 系統(tǒng)開發(fā)環(huán)境
2.1 ?系統(tǒng)開發(fā)平臺
2.2 平臺開發(fā)相關技術
2.2.1 ?B/S架構
2.2.2 ?Java技術介紹
2.2.3 mysql數據庫介紹
2.2.4 spring boot框架介紹
3 需求分析
3.1系統(tǒng)目標
3.2系統(tǒng)功能
3.3系統(tǒng)流程和邏輯
4系統(tǒng)概要設計
4.1?概述
4.2?系統(tǒng)結構
4.3.?數據庫設計
4.3.1 數據庫實體
4.3.2 數據庫設計表
5 系統(tǒng)詳細設計
5.1 系統(tǒng)功能模塊
5.2管理員功能模塊
6 系統(tǒng)測試
6.1系統(tǒng)測試的目的
6.2測試策略
6.3測試特性及分析
6.4功能測試
6.5測試結果
結論
致 謝
參考文獻
1 緒論
1.1?研究背景
以往的書店信息管理系統(tǒng)相關信息管理,都是工作人員手工統(tǒng)計。這種方式不但時效性低,而且需要查找和變更的時候很不方便。隨著科學的進步,技術的成熟,計算機信息化也日新月異的發(fā)展,如今計算機已經進入了人類社會發(fā)展的各個領域,并且發(fā)揮著十分重要的作用。本系統(tǒng)充分利用網絡的便捷,在工作效率上,得到極大地提高,延伸至服務水平也會有好的收獲,有了網絡,書店信息管理系統(tǒng)的各方面的管理更加科學和系統(tǒng),更加規(guī)范和簡便。
1.2?研究現(xiàn)狀
在國內,書店信息管理系統(tǒng)是國內知名的大型網站,該公司向超過千萬的用戶提供全方位的書籍服務,其售后服務也非常有保障,使用戶可以安心舒適的享受各種圖片,但由于其價格單一沒有競爭力以及現(xiàn)在各個其他書店信息管理系統(tǒng)的興起和普及,使其流失了部分客戶。
書店信息管理系統(tǒng)是國內主要致力于書籍信息的攻略。首先,書店信息管理系統(tǒng)為用戶提供一站式目的書籍資訊。另外,書店信息管理系統(tǒng)會把當地最代表的書籍信息以及產品一同提供給用戶,提高了用戶的查看質量,使用戶不再盲目找書。
中國書店信息管理系統(tǒng)堅持“以人為本”的原則對網站的內容進行分類,同時該網站全面整理了廣大驢友喜愛的專業(yè)書籍資訊,是目前中國具有一定影響力的書店信息管理系統(tǒng)。
如今,互聯(lián)網已經深入人們的生活,智能手機、筆記本電腦等已經是人們獲取信息的主要工具,因此,利用網絡來進行書店信息管理系統(tǒng)的管理也成為大勢所趨,所以,開發(fā)一個書店信息管理系統(tǒng)是必須的。
1.3 研究意義
過去人們去往各地買書時,由于信息的局限性往往不知道怎樣選擇最適合自己的書籍方案,往往耗費大量的時間和精力。而如今,21世紀是信息化的世界,互聯(lián)網行業(yè)發(fā)展迅猛帶動了生活中方方面面,信息管理的規(guī)范化、高效化的重要性日益凸顯。
書店信息管理系統(tǒng)利用信息的合理管理,動態(tài)的、高效的、安全的實現(xiàn)了客戶的各種需求,改變了傳統(tǒng)的買書方式,使用戶可以足不出戶的在線購買最適合自己興趣愛好的書籍方案。
1.4?研究目的
當今各式各樣的書店信息管理系統(tǒng)相繼興起,為了使大眾可以快速獲得大量信息,節(jié)省精力和財力。在本系統(tǒng)中,實現(xiàn)了查看書籍詳細內容,在線購買等功能。該系統(tǒng)具有首頁、輪播圖、公告欄、資源管理(圖書資訊、資訊分類)交流管理(留言板、留言板分類)系統(tǒng)用戶(管理員、顧客用戶)模塊管理(圖書信息、分類管理、購買信息、入庫記錄、采購記錄)個人管理等功能。首先在該系統(tǒng)中用戶可以通過本網站的書籍信息功能進行查看,進行全方位了解,可以毫無顧慮的進行線上自主訂書,或者通過用戶模塊來規(guī)劃自己的訂書計劃。其次用戶注冊登陸本網站后,用戶可以進入個人系統(tǒng)首頁、留言板、公告消息、圖書資訊、圖書信息,增加了推送功能,使用戶可以直接快速接觸到最豐富的內容,提高了用戶體驗感,增加了銷售量。?
此網站基本上實現(xiàn)了整個書店信息管理系統(tǒng)信息管理的過程,向大眾提供了一個安全、動態(tài)、高效的書店信息管理系統(tǒng)系統(tǒng)。
2 系統(tǒng)開發(fā)環(huán)境
為了能夠使本系統(tǒng)較好、較為完善的被設計實現(xiàn)出來,在功能上,我對新系統(tǒng)進行了細致的分析。通過詳細的分析,前端部分基于MVVM模式進行開發(fā),采用B/S模式,后端部分基于Java的springboot框架進行開發(fā)。
前端部分:前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現(xiàn)動態(tài)路由和全局狀態(tài)管理,Ajax實現(xiàn)前后端通信,Element UI組件庫使頁面快速成型,項目前端通過柵格布局實現(xiàn)響應式,可適應PC端、平板端、手機端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用springboot作為開發(fā)框架,同時集成MyBatis、Redis等相關技術。
2.1 系統(tǒng)開發(fā)平臺
在該書店信息管理系統(tǒng)中,java技術可以給用戶帶來極大方便,其主要特點就是可以使用戶學習起來方便、快捷,另一方面就是信息儲存量也是非常大的,該功能主要被應用為數據庫中進行查詢和編程。并且該功能的數據應用比較靈活,通過我們現(xiàn)在的發(fā)展可以得知,只要利用一小部分代碼就可以來實現(xiàn)非常強大的功能。
2.2 平臺開發(fā)相關技術
????????2.2.1 B/S架構?
B/S結構的特點也非常多,例如在很多瀏覽器中都可以做出信號請求。并且可以適當的減輕用戶的工作量,通過對客戶端安裝或者是配置少量的運行軟件就能夠逐步減少用戶的工作量,這些功能的操作主要是由服務器來進行控制的,由于該軟件的技術不斷成熟,最主要的特點就是與瀏覽器相互配合為軟件開發(fā)帶來了極大的便利,不僅能夠減少開發(fā)成本,還能夠不斷加強系統(tǒng)的軟件功能,層層相互獨立和展現(xiàn)層是該B/S結構完成相互連接的主要特性。
????????2.2.2?Java技術介紹?
Java語言擅長開發(fā)互聯(lián)網類應用和企業(yè)級應用,現(xiàn)在已經相當的成熟,而且也是目前使用最多的編程語言之一。Java語言具有很好的面向對象性,可以符合人的思維模式進行設計,封裝是將對象的屬性和方法盡可能地隱藏起來,使得外界并不知道是如何實現(xiàn)的,外界能通過接口進行訪問,繼承是指每個類都會有一個父類,所有的子類都有父類的方法,可以進行繼承,但是只有final修飾的類不能被繼承,通過繼承可以使得代碼得到重新利用,能夠提高軟件的開發(fā)效率,也是多態(tài)的前提。
Java就像C語言、C#語言等,也是一種程序開發(fā)語言,而它的特點就是面向對象。作為一種程序開發(fā)與設計的語言,它有很多特性,主要特性就是面向對象、夸平臺以及可以分布式運行。Java語言項目不但安全性高、穩(wěn)定性強,而且可以并發(fā)運行。
為了提高開發(fā)的速度及效率,必須做到代碼的重復使用和簡化程序的復雜度,要達到上述的要求java語言通過封裝、繼承與多態(tài)等方式實現(xiàn),這樣可以很大程度上達到信息的封裝,提高代碼復用率,減少冗余度,提高效率。在Java中難能可貴的一點就是它的垃圾回收機制,它使得以往程序中大量存在的內存泄漏的問題得到了較好的緩解。所謂的內存泄漏就是程序向操作系統(tǒng)申請了一塊存儲空間,比如定義了一個變量,但是由于某種原因,這個變量一直沒有使用,但是仍然占用著系統(tǒng)的內存空間,可能一兩個這樣的變量對程序和操作系統(tǒng)造不成什么大的影響,但是試想如果這樣的變量定義的多了系統(tǒng)的內存空間就會一步步減少,從而造成機器的性能降低甚至宕機。但是在Java中有垃圾回收機制的存在,這種機制極大地避免了內存泄漏的出現(xiàn),在Java虛擬機中,垃圾回收機制會對長時間沒有引用變量指向的對象實施垃圾回收,簡單的說就是將這個對象銷毀,以避免內存泄漏的情況出現(xiàn)。
????????2.2.3 mysql數據庫介紹?
MySQL是一款Relational Database Management System,直譯過來的意思就是關系型數據庫管理系統(tǒng),MySQL有著它獨特的特點,這些特點使他成為目前最流行的RDBMS之一,MySQL想比與其他數據庫如ORACLE、DB2等,它屬于一款體積小、速度快的數據庫,重點是它符合本次畢業(yè)設計的真實音樂環(huán)境,擁有成本低,開發(fā)源碼這些特點,這也是選擇它的主要原因。
本系統(tǒng)使用了MySQL數據庫,建立了多張數據庫表來存儲音樂以及音樂網站相關數據。系統(tǒng)中主要應用查詢(select),修改(update),刪除(delete)以及增加(insert)等語句來實現(xiàn)系統(tǒng)功能。
????????2.2.4 spring boot框架介紹
Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現(xiàn)控制反轉來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現(xiàn)。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務模板,系統(tǒng)可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數據訪問框架解決了開發(fā)人員在應用程序中使用數據庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
所以結合書店信息管理系統(tǒng)系統(tǒng)的需求及功能模塊的實現(xiàn),使用springboot技術是最合適的,而且springboot的拓展性比較好,對于書店信息管理系統(tǒng)系統(tǒng)在后期使用過程中可以不斷對系統(tǒng)功能進行拓展,使系統(tǒng)更完善,更方便的滿足用戶需求。
3 需求分析
所謂需求分析就是,需求人員通過與客戶的溝通,所獲取的信息,然后把這些信息通過需求說明書的方式展示給用戶和開發(fā)人員。
3.1?系統(tǒng)目標
本系統(tǒng)設計的是一個書店信息管理系統(tǒng)的網站,此網站使用戶實現(xiàn)了不需出門就可以在電腦前進行網上查看首頁、留言板、公告消息、圖書資訊、圖書信息等。不需親臨現(xiàn)場就可以在網站的圖片上領略圖書信息。
用戶在首頁上會看到各類模塊的推送內容,可以以最直接的方式獲取信息,注冊登陸后,可以對應心儀的書籍進行預訂購買,而管理員則可以在后臺直接管理和處理用戶訂單等信息。本網站模塊設計的獨立性強,用戶體驗良好、后期維護修改管理十分方便。
3.2?系統(tǒng)功能
此系統(tǒng)的功能分為用戶和管理員模塊:
用戶功能模塊用戶模塊包括:首頁、留言板、公告消息、圖書資訊、圖書信息等模塊。
管理員功能模塊包括:首頁、輪播圖、公告欄、資源管理(圖書資訊、資訊分類)交流管理(留言板、留言板分類)系統(tǒng)用戶(管理員、顧客用戶)模塊管理(圖書信息、分類管理、購買信息、入庫記錄、采購記錄)等模塊。
3.3 系統(tǒng)流程和邏輯
系統(tǒng)業(yè)務流程圖,如圖所示:
圖3-1登錄流程圖
圖3-2添加信息流程圖
圖3-3注冊信息流程圖
4 系統(tǒng)概要設計
4.1?概述
書店信息管理系統(tǒng)基于Web服務模式,是一個適用于Internet環(huán)境下的模型結構。只要用戶能連上Internet,便可以在不受時間、地點的限制來使用這個系統(tǒng)。書店信息管理系統(tǒng)工作原理圖,如圖4-1所示:
圖4-1 ?系統(tǒng)工作原理圖
4.2?系統(tǒng)結構
本系統(tǒng)架構網站系統(tǒng),本系統(tǒng)的具體功能如下:
圖4-2系統(tǒng)功能結構圖
管理員功能結構圖,如圖4-3所示:
圖4-3 管理員功能結構圖
用戶后臺功能結構圖,如圖4-4所示:
圖4-4 用戶后臺功能結構圖
4.3 數據庫設計
????????4.3.1 數據庫實體
下面是整個網上書店系統(tǒng)中主要的數據庫表總E-R實體關系圖。
圖4-5網上書店實體屬性圖
????????4.3.2 數據庫設計表
此系統(tǒng)需要后臺數據庫,下面介紹數據庫中的各個表的詳細信息。
表access_token (登陸訪問時長)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
臨時訪問牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
臨時訪問牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大壽命:默認2小時 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用戶編號: |
表article (文章:用于內容管理系統(tǒng)的文章)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
標題:[0,125]用于文章和html的title標簽中 |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分類:[0,1000]用來搜索指定類型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
點擊數:[0,1000000000]訪問這篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
點贊數 |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
來源:[0,255]文章的出處 |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
來源地址:[0,255]用于跳轉到發(fā)布該文章的網站 |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
標簽:[0,255]用于標注文章所屬相關內容,多個標簽用空格隔開 |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主體內容 |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面圖 |
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
表article_type (文章分類)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分類ID:[0,10000] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
顯示順序:[0,1000]決定分類顯示的先后順序 |
3 |
name |
varchar |
16 |
0 |
N |
N |
分類名稱:[2,16] |
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上級分類ID:[0,32767] |
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述該分類的作用 |
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分類圖標: |
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外鏈地址:[0,255]如果該分類是跳轉到其他網站的情況下,就在該URL上設置 |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
表auth (用戶權限管理)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授權ID: |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用戶組: |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模塊名: |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
頁面標題: |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路徑: |
|
7 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
8 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳轉方式: |
9 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
10 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可刪除: |
11 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
12 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
13 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
14 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
15 |
field_get |
text |
65535 |
0 |
Y |
N |
查詢字段: |
|
16 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表導航名稱: |
|
17 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表導航: |
|
18 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
表book_information (圖書信息)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
book_information_id |
int |
10 |
0 |
N |
Y |
圖書信息ID |
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
圖書編號 |
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
圖書名稱 |
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
圖書類型 |
|
5 |
book_price |
int |
10 |
0 |
Y |
N |
0 |
圖書價格 |
6 |
book_inventory |
int |
10 |
0 |
Y |
N |
0 |
圖書庫存 |
7 |
cover_photo |
varchar |
255 |
0 |
Y |
N |
封面圖片 |
|
8 |
book_introduction |
longtext |
2147483647 |
0 |
Y |
N |
圖書簡介 |
|
9 |
hits |
int |
10 |
0 |
N |
N |
0 |
點擊數 |
10 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間 |
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間 |
表classification_management (分類管理)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
classification_management_id |
int |
10 |
0 |
N |
Y |
分類管理ID |
|
2 |
book_type |
varchar |
64 |
0 |
Y |
N |
圖書類型 |
|
3 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
4 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間 |
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間 |
表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 |
創(chuàng)建時間: |
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 |
創(chuàng)建時間: |
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: |
表customer_user (顧客用戶)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
customer_user_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 |
已通過 |
審核狀態(tài) |
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 |
創(chuàng)建時間 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間 |
表forum (論壇)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
forum_id |
mediumint |
8 |
0 |
N |
Y |
論壇id |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
排序 |
3 |
user_id |
mediumint |
8 |
0 |
N |
N |
0 |
用戶ID |
4 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵稱:[0,16] |
|
5 |
praise_len |
int |
10 |
0 |
Y |
N |
0 |
點贊數 |
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
訪問數 |
7 |
title |
varchar |
125 |
0 |
N |
N |
標題 |
|
8 |
keywords |
varchar |
125 |
0 |
Y |
N |
關鍵詞 |
|
9 |
description |
varchar |
255 |
0 |
Y |
N |
描述 |
|
10 |
url |
varchar |
255 |
0 |
Y |
N |
來源地址 |
|
11 |
tag |
varchar |
255 |
0 |
Y |
N |
標簽 |
|
12 |
img |
text |
65535 |
0 |
Y |
N |
封面圖 |
|
13 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文 |
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
15 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
16 |
avatar |
varchar |
255 |
0 |
Y |
N |
發(fā)帖人頭像: |
|
17 |
type |
varchar |
64 |
0 |
N |
N |
0 |
論壇分類:[0,1000]用來搜索指定類型的論壇帖 |
表forum_type (論壇分類)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分類ID:[0,10000] |
|
2 |
name |
varchar |
16 |
0 |
N |
N |
分類名稱:[2,16] |
|
3 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述該分類的作用 |
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
外鏈地址:[0,255]如果該分類是跳轉到其他網站的情況下,就在該URL上設置 |
|
5 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上級分類ID:[0,32767] |
6 |
icon |
varchar |
255 |
0 |
Y |
N |
分類圖標: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間: |
8 |
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 |
創(chuàng)建時間: |
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 |
創(chuàng)建時間: |
5 |
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 |
創(chuàng)建時間: |
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 |
點贊狀態(tài):1為點贊,0已取消 |
表purchase_information (購買信息)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
purchase_information_id |
int |
10 |
0 |
N |
Y |
購買信息ID |
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
圖書編號 |
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
圖書名稱 |
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
圖書類型 |
|
5 |
book_price |
varchar |
64 |
0 |
Y |
N |
圖書價格 |
|
6 |
customer_information |
int |
10 |
0 |
Y |
N |
0 |
顧客信息 |
7 |
full_name |
varchar |
64 |
0 |
Y |
N |
姓名 |
|
8 |
purchase_quantity |
int |
10 |
0 |
Y |
N |
0 |
購買數量 |
9 |
total_purchase_price |
varchar |
64 |
0 |
Y |
N |
購書總價 |
|
10 |
pay_state |
varchar |
16 |
0 |
N |
N |
未支付 |
支付狀態(tài) |
11 |
pay_type |
varchar |
16 |
0 |
Y |
N |
支付類型: 微信、支付寶、網銀 |
|
12 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
13 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間 |
14 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間 |
表purchasing_records (采購記錄)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
purchasing_records_id |
int |
10 |
0 |
N |
Y |
采購記錄ID |
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
圖書編號 |
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
圖書名稱 |
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
圖書類型 |
|
5 |
purchase_quantity |
int |
10 |
0 |
Y |
N |
0 |
采購數量 |
6 |
purchase_remarks |
text |
65535 |
0 |
Y |
N |
采購備注 |
|
7 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間 |
9 |
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 |
創(chuàng)建時間: |
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 |
賬戶狀態(tài):[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 |
創(chuàng)建時間: |
表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 |
創(chuàng)建時間: |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間: |
表warehousing_record (入庫記錄)
編號 |
名稱 |
數據類型 |
長度 |
小數位 |
允許空值 |
主鍵 |
默認值 |
說明 |
1 |
warehousing_record_id |
int |
10 |
0 |
N |
Y |
入庫記錄ID |
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
圖書編號 |
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
圖書名稱 |
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
圖書類型 |
|
5 |
receipt_quantity |
int |
10 |
0 |
Y |
N |
0 |
入庫數量 |
6 |
receipt_remarks |
varchar |
64 |
0 |
Y |
N |
入庫備注 |
|
7 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時間 |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時間 |
5 系統(tǒng)詳細設計
5.1 系統(tǒng)功能模塊
書店信息管理系統(tǒng)設計,在書店信息管理系統(tǒng)首頁可以查看首頁、留言板、公告消息、圖書資訊、圖書信息、個人管理等內容,如圖5-1所示。
圖5-1網站首頁界面圖
首頁代碼如下:
??@RequestMapping("/get_obj")
????public Map<String, Object> obj(HttpServletRequest request) {
????????Query select = service.select(service.readQuery(request), service.readConfig(request));
????????List resultList = select.getResultList();
????????if (resultList.size() > 0) {
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("obj",resultList.get(0));
????????????return success(jsonObject);
????????} else {
????????????return success(null);
????????}
}
?public Query 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 runEntitySql(sql.toString());
????}
圖書信息,在圖書信息頁面可以查看名稱、價格、庫存、書籍編號、書籍類型、圖片、簡述、作者、出版社、詳情等詳細信息,根據需要進行添加到購物車、立即購買、評價或收藏,如圖5-2所示。
圖5-2圖書信息界面圖
用戶注冊,在用戶注冊頁面可以填寫用戶名、密碼、姓名、身份證、手機等信息進行注冊,如圖5-3所示。在個人中心頁面可以填寫用戶名、密碼、姓名、性別、圖片、身份證、手機等信息進行更新操作,還可以根據需要我的發(fā)布,我的訂單,我的地址,我的收藏進行相應操作;如圖5-4所示。
圖5-3用戶注冊界面圖
注冊代碼如下:
/**
?????* 注冊
?????* @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;
????/**
?????* 賬戶狀態(tài):[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;
????/**
?????* 創(chuàng)建時間:
?????*/
????@Basic
????@Column(name = "create_time")
????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
????private Timestamp createTime;
????@Basic
????@Transient
????private String code;
}
圖5-4個人中心界面圖
我的收藏,在我的收藏頁面可以查看收藏書籍名稱、等詳細信息,根據需要進行購買或刪除,如圖5-5所示。
圖5-5我的收藏界面圖
圖書資訊頁面可以查看資訊名稱,資訊內容、資訊封面等信息進行查看或點贊等操作,如圖5-6所示。
圖5-6地址管理界面圖
購買信息,在購買信息頁面可以查看圖書編號、圖書名稱、商品圖片、購買數量、作者、總價格、支付類型、狀態(tài)、顧客信息、姓名等信息進行查看、提交等操作,如圖5-7所示。
圖5-7購買信息管理界面圖
5.2 管理員功能模塊
管理員登錄,管理員通過輸入賬號,密碼,權限等信息即可進行系統(tǒng)登錄,如圖5-8所示。
圖5-8管理員登錄界面圖
登錄代碼如下:
/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執(zhí)行登錄接口]");
????????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);
????????//查詢用戶審核狀態(tài)
????????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,"該用戶審核未通過");
????????????}
????????}
????????//查詢用戶狀態(tài)
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態(tài),不能登錄");
????????}
????????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, "賬號或密碼不正確");
????????}
}
管理員登錄進入書店信息管理系統(tǒng)設計可以查看首頁、輪播圖、公告欄、資源管理(圖書資訊、資訊分類)交流管理(留言板、留言板分類)系統(tǒng)用戶(管理員、顧客用戶)模塊管理(圖書信息、分類管理、購買信息、入庫記錄、采購記錄)個人管理等內容進行操作,如圖5-9所示。
圖5-9管理員功能界面圖
用戶管理,在用戶管理頁面可以對用戶名、密碼、姓名、性別、頭像、身份證、手機等信息進行刪除,修改等操作,如圖5-10所示。
圖5-10用戶管理界面圖
圖書分類管理,在圖書分類管理頁面可以對圖書類型信息進行刪除,修改等操作,如圖5-11所示。
圖5-11圖書分類管理界面圖
圖書信息管理,在圖書信息管理頁面可以對圖書編號、圖書名稱、圖書類型、圖片、簡述、作者、出版社、詳情、價格、單限、庫存等信息進行查看、修改或刪除等操作,如圖5-12所示。
圖5-12圖書信息管理界面圖
6 系統(tǒng)測試
6.1 系統(tǒng)測試的目的?
程序設計不能保證沒有錯誤,這是一個開發(fā)過程,在錯誤或錯誤的過程中都是難以避免的。雖然這是不可避免的,但我們不能使這些錯誤始終存在于系統(tǒng)中,錯誤可能會造成無法估量的后果,如系統(tǒng)崩潰,安全信息泄露,系統(tǒng)無法正常啟動等,為了避免這些問題,我們需要測試程序,再測試過程中發(fā)現(xiàn)問題,并糾正它們,從而使系統(tǒng)更長時間穩(wěn)定成熟。
本章的作用是發(fā)現(xiàn)這些問題,并對其進行修改,雖然耗時費力,但對于長期使用而言是非常重要和必要系統(tǒng)的開發(fā)。
軟件在設計后必須進行測試,調試過程中使用的方法是軟件測試方法。在開發(fā)新軟件時,系統(tǒng)測試是檢查軟件是否合格的關鍵步驟,以及是否符合設計目標的參考。測試主要是查看軟件中數據的準確性,正確的操作與否,以及操作的結果,還有哪些方面需要改進。
書店信息管理系統(tǒng)的實現(xiàn),對于系統(tǒng)中功能模塊的實現(xiàn)及操作都必須通過測試進行來評判系統(tǒng)是否可以準確的實現(xiàn)。在系統(tǒng)正式上傳使用之前必須做的一步就是系統(tǒng)測試,對于測試發(fā)現(xiàn)的錯誤及時修改處理,保證系統(tǒng)準確無誤的供給用戶使用。
6.2?測試策略
測試系統(tǒng)主要針對以下三個方面進行測試:
1、基于springboot的系統(tǒng)代碼的單元測試,集成測試,系統(tǒng)測試和驗收測試結果;
2、測試對象中列出的可測試或不可接受的特征和功能;
3、分析并記錄測試要求:日期的書面文件不影響測試的設計、開發(fā)和執(zhí)行。
6.3?測試特性及分析
系統(tǒng)測試的特性如下:
(1)挑剔性:測試是為了找出系統(tǒng)的錯誤,在系統(tǒng)測試時我們要嚴格苛刻,十分挑剔。
(2)復雜性:測試是一個非常復雜的過程。
(3)不徹底性:雖然系統(tǒng)經過測試,但測試仍然會存在不夠徹底的問題,測試不能保證系統(tǒng)后期運行完整無誤,所以要在后期不斷的檢查、修改。
(4)經濟性:通場這種測試稱為“選擇測試(Selective Testing)”。在測試時要遵守經濟性的原則。
經過測試,產品的穩(wěn)定性和成熟度可以大大提高,產品質量也可以得到保證。
6.4?功能測試
系統(tǒng)測試方面,我們通常運用的是白盒測試以及黑盒測試這兩種方法。白盒測試是指在了解系統(tǒng)內部工作流程的前提下,可以根據需求規(guī)范驗證系統(tǒng)內部操作是否能夠正常運行的測試;而黑盒測試指的是,倘若知道了這個系統(tǒng)的全部功能,可以進行測試檢測系統(tǒng)中的每一個功能是否滿足正常使用。
功能測試,主要是對系統(tǒng)的用戶登錄進行詳細的測試,但是登錄不可以是任何人都可以登錄成功的,所以對登錄進行詳細測試。
用戶登錄測試:
模塊名稱 |
測試用例 |
預期結果 |
實際結果 |
是否通過 |
登錄模塊 |
用戶名:admin ??密碼:123 ? |
彈出錯誤提示,提示密碼錯誤 |
彈出錯誤提示,提示密碼錯誤 |
通過 |
登錄模塊 |
用戶名:123 ?? 密碼:admin ?? |
彈出錯誤提示,提示用戶名錯誤 |
彈出錯誤提示,提示用戶名錯誤 |
通過 |
登錄模塊 |
用戶名:admin ?? 密碼:admin ?? |
管理員登錄成功 |
管理員登錄成功 |
通過 |
刪除分類測試:
模塊名稱 |
測試用例 |
預期結果 |
實際結果 |
是否通過 |
刪除分類模塊 |
分類名:最新通知 ? |
刪除成功、頁面自動跳轉 |
刪除成功、頁面自動跳轉 |
通過 |
修改密碼測試:
模塊名稱 |
測試用例 |
預期結果 |
實際結果 |
是否通過 |
修改密碼模塊 |
原密碼:666 新密碼:123 確認密碼:123 ? |
彈出錯誤提示,提示原密碼錯誤 |
彈出錯誤提示,提示原密碼錯誤 |
通過 |
修改密碼模塊 |
原密碼:admin ??新密碼:123 確認密碼:333 ? |
彈出錯誤提示,提示確認密碼不一致 |
彈出錯誤提示,提示確認密碼不一致 |
通過 |
修改密碼模塊 |
原密碼:admin ??新密碼:123 確認密碼:123 ? |
密碼修改成功 |
密碼修改成功 |
通過 |
通過對功能的測試,書店信息管理系統(tǒng)的基本功能都是可行的,不管是系統(tǒng)里面的功能,還是界面的設計都是可值得推廣宣傳的。
6.5 測試結果
經過對一系列測試結果的有效分析,本平臺開發(fā)系統(tǒng)符合用戶的要求和需求。所有的基本功能相對齊全,操作起來簡單方便,測試系統(tǒng)性能良好,作為大眾化系統(tǒng)使用是比較值得推廣宣傳的。
結 論
此時項目已經完成,即使實施的時間不是很長,但是在這個過程中需要準備很長的一段時間去對系統(tǒng)設計開發(fā)所實際用到的技術進行學習和鞏固。在學習的過程中,我逐漸認識到了我自身存在的一些不足。對于一些控制是必要的應用技能,能夠理解,整個過程中僅僅是掌握了常用的性能和控制方法,我覺得還是相對來說挺容易的。從該系統(tǒng)中,系統(tǒng)的分析和設計的調查數據,已經經歷了幾個月,并且努力了幾個月,該系統(tǒng)現(xiàn)在已經完成。很顯然,該系統(tǒng)仍有很多不成熟的地方,在系統(tǒng)設計過程中有許多技術缺陷存在。在設計的過程中也涉及到了很多自己無法解決的問題,主要通過找專業(yè)的網站和論壇來解決這些問題,對于圓滿完成我的畢業(yè)設計,他們也貢獻了很大一部分力量。
系統(tǒng)的開發(fā)環(huán)境和配置都是可以自行安裝的,系統(tǒng)使用采用springboot作為開發(fā)框架,使用比較成熟的Mysql數據庫進行對系統(tǒng)前臺及后臺的數據交互,根據技術語言結合需求對數據庫進行修改維護,可以使得系統(tǒng)運行更具有穩(wěn)定性和安全性,從而完成實現(xiàn)系統(tǒng)的開發(fā)。
在設計書店信息管理系統(tǒng)的過程中還遇到了一個棘手的問題,那就是自己的英語水平還有待提高,很多關于網站技術開發(fā)的資料文獻都是英文版的,關鍵詞語以及技術性詞匯不能很好的理解。只有在借助翻譯軟件的實時性翻譯功能的輔助下才勉強看懂。顯然英語水平的高低直接影響到系統(tǒng)的開發(fā)過程。
回顧畢業(yè)設計的整個過程,既付出了努力與汗水也收獲了很多難以忘懷的美好經歷。雖然在系統(tǒng)開發(fā)過程中經歷了各種各樣的困難,自己也在不斷研究與探索,可是系統(tǒng)的實現(xiàn)仍有許多不足之處。但是經過系統(tǒng)編程工作的學習讓我有了更多的信心,我相信在未來的路上,我會走的更好。
致 謝
畢業(yè)設計結束的同時也意味著四年的大學生活就要結束了。書店信息管理系統(tǒng)的完成以及如何在系統(tǒng)運行過程中實現(xiàn)的更好,這其中付出了很大的努力,這段時光將會終身難忘。
在畢業(yè)設計的這一段時間里,離不開導師的細心指導,還有同學們的熱情幫助,有時候幾個同學在一起討論系統(tǒng)中的某個功能模塊如何實現(xiàn),如何實現(xiàn)的更好,或是問題沒得到有效的解決,就會沒有心思做其他的事情,讓我們對學習充滿了動力。
在畢業(yè)設計即將結束之時,首先要感謝我的指導老師,謝謝您在畢業(yè)設計和畢業(yè)論文中對我的指導。在您的細心指導下我才能快速的掌握系統(tǒng)的相關功能,在您的大力幫助下我才能將課本上的知識與自己的項目結合,真正的做到學以致用。感謝您經常犧牲自己的休息時間,利用其豐富的教學和項目經驗對我進行指導。 課堂上,您教會我們如何學習、教會我們新的知識,在課下,您又像朋友一樣親切,教會了我很多道理,讓我意識到先做人、后做事。感謝所有教過我的老師,為我傾注了大量的心血,正是你們的諄諄教誨、嚴謹教學才使我能順利的完成學業(yè),再此向你們表示深深的感謝。感謝大學里教過我的每一位老師,真心祝福您們。
在這里還得感謝我的戰(zhàn)友們,也就是同學們對我的大力支持及幫助。正是因為有你們的不斷幫助、鼓勵,熬夜通宵,不停的調試、測試程序,給我?guī)砹藰O大的動力,才能最終完成網站的運行。我們在一起交流、談論的時光,都將是我們在通往未來道路上的寶貴財富。我要深深地感謝你們!
畢業(yè)在即,在今后的工作和生活中,我會銘記師長們的教誨、同學們的幫助,繼續(xù)不懈努力和追求,來報答所有支持和幫助過我的人!
最后,我要向犧牲了休息時間來對本文進行審閱,評議和參與論文答辯的各位老師表示深深的感謝。在此,衷心的謝謝您們!
參考文獻
[1]王屯屯.融合時序模型和W&D模型的在線商城商品推薦[J].信息技術與信息化,2021(08):78-80.
[2]劉慶. 威海:建價格監(jiān)測機制 ?網上商城節(jié)支15%[N]. 政府采購信息報,2021-08-09(008).DOI:10.38293/n.cnki.nzfcg.2021.000771.
[3]沈家駒. 認知指示語的使用與消費者購買意愿的關系研究[D].四川外國語大學,2021.
[4]董瑩. 吉林:為政采在線支付資金提速[N]. 政府采購信息報,2021-06-21(003).DOI:10.38293/n.cnki.nzfcg.2021.000511.
[5]Sriramulu Bojjagani,V. N. Sastry,Chien-Ming Chen,Saru Kumari,Muhammad Khurram Khan. Systematic survey of mobile payments, protocols, and security infrastructure[J]. Journal of Ambient Intelligence and Humanized Computing,2021(prepublish):
[6]印杏. 基于負面在線評論的國內外網購消費者行為差異性研究[D].浙江工商大學,2021.DOI:10.27462/d.cnki.ghzhc.2021.000274.
[7]宋蘇娟,李賽鳳,季振義,曾余洋,彭衛(wèi).在線評論有用性的影響因素探究——基于京東商城的實證研究[J].科技創(chuàng)業(yè)月刊,2021,34(02):72-79.
[8]牛希鐳.基于JavaWeb的在線圖書商城設計與實現(xiàn)[J].電子測試,2021(01):73-75.DOI:10.16520/j.cnki.1000-8519.2021.01.025.
[9]Jiao Ruohuang,Przepiorka Wojtek,Buskens Vincent. Reputation effects in peer-to-peer online markets: A meta-analysis[J]. Social Science Research,2021(prepublish):
[10]楊 豐嘉,黃 媛媛. 基于 Vue.js 的在線商城網站設計與實現(xiàn)[J]. 工程技術研究,2020,2(8):
[11]Cheng Hsing Kenneth,Fan Weiguo,Guo Peipei,Huang Hailiang,Qiu Liangfei. Can “Gold Medal” Online Sellers Earn Gold? The Impact of Reputation Badges on Sales[J]. Journal of Management Information Systems,2020,37(4):
[12]鄒瑞,段華瓊.基于前后端分離技術的在線商城的設計與實現(xiàn)[J].電腦知識與技術,2020,16(26):231-232+239.DOI:10.14004/j.cnki.ckt.2020.2844.
[13]賈行行. 企業(yè)自營在線商城及第三方在線平臺的競爭策略及消費者偏好研究[D].北京郵電大學,2020.DOI:10.26969/d.cnki.gbydu.2020.000544.
[14]劉麗媛.基于HTML5技術的微商城設計與實現(xiàn)[J].電腦編程技巧與維護,2020(05):53-55.DOI:10.16184/j.cnki.comprg.2020.05.019.
[15]蘇杰.基于UML的在線商城的分析與設計[J].電腦知識與技術,2020,16(11):276-277+286.DOI:10.14004/j.cnki.ckt.2020.1467.
[16]孟祥云. 基于用戶體驗優(yōu)化在線導購APP界面設計研究[D].華東理工大學,2019.DOI:10.27148/d.cnki.ghagu.2019.000167.
[17]王學文. 面向在線商城的客服問答系統(tǒng)的設計與實現(xiàn)[D].哈爾濱工業(yè)大學,2019.DOI:10.27061/d.cnki.ghgdu.2019.001214.
[18]朱重佳. 基于SSM框架的網購商城的設計與實現(xiàn)[D].北京交通大學,2018.
[19]周娟. 基于顧客需求的B2C電子商務網站滿意度評價研究[D].南昌大學,2018.文章來源:http://www.zghlxwxcb.cn/news/detail-832089.html
[20]周星宇. 跨境電商在線商城訂單子系統(tǒng)的設計與實現(xiàn)[D].南京大學,2018.文章來源地址http://www.zghlxwxcb.cn/news/detail-832089.html
免費領取項目源碼,請關注?點贊收藏并私信博主,謝謝-
免費領取項目源碼,請關注?點贊收藏并私信博主,謝謝-
免費領取項目源碼,請關注?點贊收藏并私信博主,謝謝-
到了這里,關于基于SpringBoot的書店信息管理系統(tǒng)+93494(免費領源碼)可做計算機畢業(yè)設計JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數據可視化、大數據、全套文案的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!