版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-2-基于JAVA的圖書管理系統(tǒng)的設計與實現(xiàn)摘要近年來,隨著社會不斷的發(fā)展,越來越多的人們都有著終身學習的理念。而閱讀書籍是人們獲取新知識的最直接途徑,但隨著人們借閱各類各樣書籍的需求量不斷增多,各類圖書更新迭代不斷加快,傳統(tǒng)老舊的圖書借閱管理模式已經難以滿足現(xiàn)代高效率辦公節(jié)奏,因此,有必要采用先進的計算機技術對圖書資源進行科學的管理。本文以一個圖書管理系統(tǒng)的實際工作需求為導向,研發(fā)了一個能滿足圖書館內日常維護書籍的圖書管理系統(tǒng)。系統(tǒng)使用了Idea集成工具以及maven項目管理工具開發(fā),采用java語言進行編程,前端UI頁面采用Layui,項目主要運用技術springboot+shiro+Thymeleaf,前端與后端交互技術Ajax,軟件oracle存儲相關數據信息,具體功能包括:用戶管理、圖書管理、審計管理、系統(tǒng)管理四大業(yè)務板塊功能。關鍵詞:springboot;圖書管理;圖書管理系統(tǒng);目錄1緒論 11.1研究背景與意義 11.2論文研究內容 12需求分析 22.1用戶需求分析 22.2功能需求分析 33主要技術 43.1SpringBoot 43.2ApacheShiro 43.3Ajax 44系統(tǒng)的設計 54.1系統(tǒng)的架構設計 54.2功能模塊的設計 54.2.1用戶登錄的設計 64.2.2用戶管理的設計 64.2.3圖書管理的設計 64.2.4審計管理的設計 74.2.5系統(tǒng)管理的設計 84.3數據庫設計 84.3.1概念結構設計 84.3.2物理結構設計 95系統(tǒng)功能實現(xiàn) 155.1用戶登錄模塊的實現(xiàn) 155.2用戶管理模塊的實現(xiàn) 165.3圖書管理模塊的實現(xiàn) 185.3.1圖書信息 185.3.2類型管理 195.3.3館藏管理 205.4審計管理模塊的實現(xiàn) 215.4.1借閱審計 215.4.2罰款審計 255.4.3歸還、預約審計 265.5系統(tǒng)管理 275.5.1操作管理員 275.5.2角色管理 276結語 29參考文獻 30 1緒論1.1研究背景與意義近幾年來,隨著計算機技術不斷發(fā)展,各行各業(yè)也開始使用自動化辦公應用,越來越多的人們開始追求更為簡單、快捷的辦公方式。在圖書館的建設中,自動化的建設也顯得越來越重,它正在起著傳統(tǒng)圖書館建設中其他手段無法代替的作用[1]。在這個終身學習的時代,人們對圖書資料的需求量增大,各類圖書更新迭代不斷加快,傳統(tǒng)老舊的圖書借閱管理模式已經難以滿足現(xiàn)代高效率辦公節(jié)奏,因此,有必要采用先進的計算機技術對圖書資源進行科學的管理[2]。本項目旨在研發(fā)一個圖書館的管理系統(tǒng),實現(xiàn)圖書館的信息化管理。1.2論文研究內容本系統(tǒng)主要以滿足圖書館用戶的需求為目標,采用java語言開發(fā),B/S架構為基本框架,采用Oracle11g作為系統(tǒng)數據庫,重點開發(fā)并實現(xiàn)了系統(tǒng)各個核心功能模塊,包括用戶管理、圖書管理、審計管理、系統(tǒng)管理功能模塊,經過基本的功能測試和性能測試,系統(tǒng)已達到預期設計目標。2需求分析2.1用戶需求分析在圖書館管理系統(tǒng)使用對象來講,系統(tǒng)等級身份劃分為借閱者、系統(tǒng)管理員。第一類借閱者,借閱者開始時是沒有任何權限,需要到圖書館管理員處報備個人信息后,才能獲得相應權限,如下圖2.1。圖2.1借閱者權限圖Figure2.1Borrowerpermissiongraph第二類為系統(tǒng)管理員,系統(tǒng)管理員是圖書館管理系統(tǒng)中擁有最大權限,它為系統(tǒng)內定賬戶,它可以分配多個系統(tǒng)角色,給不同角色分配不同權限,它們之間關系如下圖2.2。系統(tǒng)管理員擁有本系統(tǒng)所有模塊功能權限,包括管理借閱者信息、管理圖書信息、管理系統(tǒng)信息,權限關系如下圖2.3。圖2.2角色、權限、系統(tǒng)管理員關系圖Figure2.2Rolepermissionadministratordiagrams圖2.3系統(tǒng)管理員權限圖Figure2.3Systemadministratorpermissionsdiagram2.2功能需求分析觀察平時在圖書館借閱、歸還書籍,分析借閱、歸還書籍的過程并對整個流程的深入了解后,總結出了圖書管理系統(tǒng)主要以滿足圖書館管理員和借閱讀者的人員需求。借閱者個人信息以及對圖書借閱、歸還、續(xù)借和其他相關操作統(tǒng)一由系統(tǒng)管理員進行操作,從系統(tǒng)管理員需求分析,設計系統(tǒng)功能分為用戶管理、圖書管理、審計管理、系統(tǒng)管理四大業(yè)務模塊,用以管理、維護借閱者信息、管理員信息,保障圖書管理系統(tǒng)安全、可靠和易用,下面對這四個大業(yè)務模塊進行一一分析。用戶管理:館內用戶信息由管理員在此功能模塊錄入與維護。圖書管理:該模塊用于圖書管理員對圖書信息、圖書類型信息、以及館藏信息的維護管理,管理員可再次錄入館內新到來的圖書信息,對書籍分配在那個藏館進行設定和增設,對書籍類型進行管理。審計管理:該模塊主要給圖書館管理員對借閱者的借、歸、還、預約圖書進行書籍審核操作,只有等管理員將相應的圖書信息通過此模塊內的功能錄入系統(tǒng)后,借閱者才能正常借還,同時,此模塊也應包含有對借閱者所借的圖書超期進行繳納罰款功能,用戶只有繳納罰款后,方能進行借還圖書功能。系統(tǒng)管理:用于分配、管理系統(tǒng)管理員的子賬號,可分配多個子賬號,可對子賬號進行角色分配,可賦予它們相同或不同的角色,每個角色擁有管理不同功能模塊的權限,由管理員分配權限給角色,在通過賦予給系統(tǒng)子賬號角色來使其擁有相應模塊權限。3主要技術3.1SpringBootSpringBoot是一款基于Spring開發(fā)的全新框架,該框架主要用來簡化Spring開發(fā)框架的開發(fā)、配置、調試、部署工作,它擁有自己獨特的配置方式,簡化一些重復性的配置工作,并且內置有三種Servlet容器,Tomcat、Jetty、undertow,同時還支持web/jar部署,開箱就可以用,不再需要配置大量xml文件配置,很大程度減輕了網站開發(fā)的工作量[3]。3.2ApacheShiro考慮到本系統(tǒng)需要有不同職責管理員去維護、管理系統(tǒng)不同工作模塊,圖書系統(tǒng)管理員應有各自獨立的賬戶體系以及訪問權限控制,同時也考慮到后臺數據安全,因此,本系統(tǒng)引入Apacheshiro安全框架。Apacheshiro擁有執(zhí)行身份驗證、授權、加密和會話管理等功能,它比較簡單易用,開發(fā)學習成本相對其他安全框架來說比較低,而且不跟任何的框架或者容器捆綁,可以獨立行。本系統(tǒng)將簡單的整合shiro權限框架來設計與實現(xiàn)不同身份管理員的權限問題[4]。3.3AjaxAjax是一種創(chuàng)建交互式網頁應用的網頁開發(fā)技術。它可以實現(xiàn)無刷新更新頁面,減輕服務器的負擔,減少客戶實際和心理的等待時間,能讓客戶獲得桌面程序一樣的交互體驗,是一種非常好的前后端交互技術[5]。4系統(tǒng)的設計4.1系統(tǒng)的架構設計本系統(tǒng)是一個基于B/S結構運行的圖書館管理系統(tǒng),采用springboot搭建的maven項目工程,極大的減少項目開發(fā)時間,系統(tǒng)支持多用戶管理模式,具備較為靈活的權限管理和模塊管理的功能,增加了系統(tǒng)的安全性和穩(wěn)定性,有較為良好的擴展性和通用性。系統(tǒng)采用三層結構,它們分別為數據層、WEB應用層以及表示層。數據層采用由MyBatis數據庫開發(fā)框架,WEB應用層采用MVC模式,即應用層為MVC的Controller,業(yè)務邏輯層為MVC的Service,實體層為MVC的POJO,表示層采用Thymeleaf模板引擎,圖書館管理系統(tǒng)開發(fā)架構模型圖如圖4.1所示。圖4.1圖書館管理系統(tǒng)開發(fā)架構模型圖Figure4.1Librarymanagementsystemdevelopmentarchitecturemodeldiagram4.2功能模塊的設計圖書館管理系統(tǒng)的功能模塊依據功能需求分析而定,在功能需求分析上已經確定了本系統(tǒng)的功能模塊,共劃分為四大模塊,用戶管理、圖書管理、審計管理、系統(tǒng)管理,總體功能模塊圖如圖4.2所示:圖4.2總體功能模塊圖Figure4.2Overallfunctionalmodulediagram4.2.1用戶登錄的設計用戶登錄功能僅限用于圖書館管理系統(tǒng)的后臺管理員進行登錄操作,管理員在圖書館管理系統(tǒng)的登錄頁面,輸入個人賬戶、密碼和校驗碼,點擊登錄按鈕后,系統(tǒng)對用戶輸入的信息將進行檢驗,如果輸入的信息無誤,則進入系統(tǒng)后臺首頁,否則,登錄失敗,登錄界面提示登錄失敗信息。4.2.2用戶管理的設計登錄后并具有該權限的圖書管理員可以使用該模塊下的用戶資料模塊,圖書管理員可以在此模塊添加、修改和刪除借閱者的個人信息,可按借閱者的姓名進行模糊查找借閱者信息,可批量的查詢多個用戶的借書記錄。4.2.3圖書管理的設計圖書管理主要有圖書信息、類型管理、館藏管理這三個部分,這三個部分主要是給具有該部分權限的圖書管理員操作。圖書管理員可在圖書信息模塊添加圖書信息,將圖書信息列表導出程Excel文件,可對圖書信息進行修改、刪除以及多條件查找書籍信息。管理員可以在類型管理模塊添加、刪除圖書類型,在館藏管理模塊添加、刪除圖書館藏信息。4.2.4審計管理的設計審計管理主要有借閱審計、罰款審計、歸還審計、預約圖書審計四個部分,圖書管理員需要獲得該部分授權后才能使用。借閱審計模塊,圖書管理員可以在該模塊進行借書、還書、續(xù)借操作,進行借書操作時,借書歸還時間默認設定為三個月,可進行更改,管理員對借閱者進行借書操作時,可以一次性批量選擇5本書籍進行借書操作,點擊確定按鈕,即可進行借書,但借閱者所借的書籍大于自身最大借閱數時,則不可借書操作,并提示借閱失敗原因信息反饋給管理員,借閱者借閱書籍數不能超過自身最大借閱數。進行還書操作時,系統(tǒng)將會審核當前借閱者當前所歸還的書籍是否超期,超期的書籍需要繳納罰款后才能進行歸還操作。進行續(xù)借操作時,超期的圖書不能進行續(xù)借操作,續(xù)借次數最大為3次,續(xù)借后歸還時間默認增加一個月,借閱審計模塊流程圖如圖4.3所示。圖4.3審計模塊流程圖Figure4.3Flowchartofauditmodule罰款審計、歸還審計、預約圖書審計模塊。圖書館管理員可在罰款審計查看借閱者的罰款記錄和在歸還審計圖書歸還記錄,同時可對于一些不必要的數據進行刪除,也可導出記錄表列表生成Excel文件,預約圖書審計模塊記錄借閱者預定圖書信息,管理員可對借閱者預約的圖書信息進行審核,給予審核通過與不通過操作。4.2.5系統(tǒng)管理的設計系統(tǒng)管理主要包含有操作管理員、角色管理兩個小模塊。操作管理員模塊可添加新的圖書館系統(tǒng)管理員賬號,初始添加的管理員賬戶不具有任何權限,需要系統(tǒng)管理員通過給賬戶分配角色,相應的,子賬號繼承當前角色的權限。角色管理員模塊主要包括添加、編輯、刪除角色信息,給角色分配菜單權限等功能。4.3數據庫設計依據圖書館管理系統(tǒng)的需求分析,制定了如下數據庫的結構和數據項設計。4.3.1概念結構設計概念模型是現(xiàn)實世界到信息世界的第一層抽象,ER圖模型可以直接從現(xiàn)實流程中抽象出實體類型和實體之間的聯(lián)系,使得實體與實體之間的聯(lián)系更為直觀的展現(xiàn)出來,讓人更加的通俗易懂。根據本系統(tǒng)所作的需求分析、系統(tǒng)設計,規(guī)劃設計了本系統(tǒng)中使用的數據庫實體分別有角色實體、菜單權限實體、圖書信息實體、圖書分類實體、館藏類型實體、借閱者實體、管理員實體、預約圖書實體、歸還記錄實體、借閱記錄實體、罰款記錄實體,本系統(tǒng)將通過ER圖模型來描述數據庫的概念結構設計,如下4.4圖為圖書館管理系統(tǒng)數據庫表E_R圖。圖4.4圖書館管理系統(tǒng)數據庫表E_R圖Figure4.4LibrarymanagementsystemdatabasetableE_Rdiagram4.3.2物理結構設計依據對概念結構設計分析,本系統(tǒng)一共創(chuàng)建13張表,分別為管理員表、管理員角色關系表、菜單表、菜單角色關系表、圖書信息表、借閱記錄表、罰款記錄表、歸還記錄表、預定圖書表、圖書分類、館藏類型表、角色表、借閱者表,這13張表的結構如下:(1)管理員表admin:用于保存系統(tǒng)管理員的個人信息,通過賬號和密碼可登錄圖書館管理系統(tǒng)的后臺,賬戶名、密碼、姓名、電話號碼設置為必填字段,該表結構如下表4.1所示。表4.1admin(管理員表)Table4.1admin(admininformationtable)字段名數據類型長度允許空注釋是否為主鍵aidNumber11N編號是nameVarchar264N姓名—sexVarchar22Y性別—anoVarchar264Y職工號—passwordVarchar264N密碼—phoneVarchar264N電話號碼—usernameVarchar264N賬戶名—(2)管理員角色關系表admin_role:管理員與角色相互關聯(lián)橋表,保存管理員的id與角色id,該表結構如下表4.2所示。表4.2admin_role(管理員角色關系)Table4.2admin_role(admin_roleinformationtable)字段名數據類型長度允許空注釋是否為主鍵arIdNumber11N編號是aIdNumber11N管理員id—rIdNumber11N角色id—(3)菜單表menu:用于保存系統(tǒng)后臺菜單欄信息,用parentid記錄父級菜單id,使圖書館管理系統(tǒng)后臺菜單可以有多級菜單,該表結構如下表4.3所示。表4.3menu(菜單表)Table4.3menu(menuinformationtable)字段名數據類型長度允許空注釋是否為主鍵mIdNumber11N菜單id是titleVarchar264N標題—hrefVarchar264N跳轉地址—iconVarchar264N菜單圖標—targetVarchar264N跳轉類型—parentidNumber11N父id—(4)菜單角色關系表menu_role:菜單與角色相互關聯(lián)橋表,保存角色id和菜單id,該表結構如下表4.4所示。表4.4menu_role(菜單角色關系表)Table4.4menu_role(menu_roleinformationtable)字段名數據類型長度允許空注釋是否為主鍵mrIdNumber11N編號是rIdNumber11N角色id—mIdNumber11N菜單id—(5)圖書信息表book:用于保存圖書的信息,cId為圖書分類表的分類id,mcId為館藏表中的館藏id,使圖書分類信息和館藏地點信息從圖書信息表單獨立脫離開來,以便于后期更好維護圖書信息,也符合數據庫三范式設計,該表結構如下表4.5所示。表4.5book(圖書信息表)Table4.5book(bookinformationtable)字段名數據類型長度允許空注釋是否為主鍵bIdNumber11N圖書編號是bNameVarchar264N圖書名稱—bAuthorVarchar264N作者—bPublish
Varchar264N出版社—iSBNVarchar264NISBN—bPublicationTimeVarchar264N出版日期—cIdNumber11N分類編號—bSumNumber11N庫存量—nowBSumNumber11N現(xiàn)庫存—bRecordTimeDateN入庫時間—bLanguageVarchar264N語言—bPriceNumber5,2N價格—bPageNumber11N頁數—bBriefVarchar2255Y書籍簡介—mcIdNumber11N館藏編號—(6)借閱記錄表borrow:保存借閱者借書流水信息,userId為借閱者id,bId為圖書id,用renewCount作為記錄借閱者續(xù)借次數,控制借閱者續(xù)借圖書次數,用state字段標記借閱的狀態(tài),共分為三種狀態(tài),為y表示已歸還,為w表示續(xù)借中,為n表示待歸還,該表結構如下表4.6示。表4.6borow(借閱記錄表)Table4.6borow(borowinformationtable)字段名數據類型長度允許空注釋是否為主鍵borrowIdNumber11N借閱編號是userIdNumber11N讀者編號—bIdNumber11N圖書編號—bTimeDateN借閱時間—dateToReturnDateN應還時間—renewCountNumber11N續(xù)借次數—operatorVarchar264N操作員—state
Varchar22N狀態(tài)—(7)罰款記錄表Fine:保存借閱者繳納罰款流水信息,bId為圖書編號,userId為讀者編號,borrowId為借閱編號,用payment字段作為支付方式類型,“transfer”表示轉賬,“cash”表示現(xiàn)金,該表結構如下表4.7示。表4.7Fine(罰款記錄表)Table4.7Fine(Fineinformationtable)字段名數據類型長度允許空注釋是否為主鍵fIdNumber11N罰款編號是bIdNumber11N圖書編號—userIdNumber11N讀者編號—fineDateDateN罰款日期—findAmountNumber5,2N應罰金額—shouldFindAmountNumber5,2N應收金額—paymentVarchar264N支付方式—isPayVarchar22N是否繳納—remarkVarchar2255N備注—borrowIdNumber11N借閱id—
(8)歸還記錄表giveback:用于保存借閱者歸還書籍信息的流水信息,用giveBackType字段標識歸還記錄表的歸還類型,歸還類型用兩種字符標識,分別為“fine”罰款歸還和“normality”正常歸還,該表結構如下表4.8示。表4.8giveback(歸還記錄表)Table4.8giveback(givebackinformationtable)字段名數據類型長度允許空注釋是否為主鍵gbIdNumber11N歸還編號是bIdNumber11N圖書編號—userIdNumber11N讀者編號—giveBackTimeDateN退還時間—giveBackTypeVarchar264N歸還類型—isGiveBackVarchar22N是否歸還—operatorVarchar264N操作員—(9)預定圖書表reservebook:用于保存借閱者預定書籍信息,用isProcess標識預約的圖書是否受理狀態(tài),共有三種狀態(tài),“w”標識待審批,“y”表示已通過,“n”表示為通過,該表結構如下表4.9示。表4.9reservebook(預定圖書表)Table4.9reservebook(reservebookinformationtable)字段名數據類型長度允許空注釋是否為主鍵rbIdNumber11N預定編號是bIdNumber11N圖書編號—userIdNumber11N讀者編號—addTimeDateN發(fā)起時間—isProcessVarchar22N是否受理—(10)圖書分類表category:保存書籍的分類信息,該表結構如下表4.10所示。表4.10category(圖書分類表)Table4.10category(categoryinformationtable)字段名數據類型長度允許空注釋是否為主鍵cIdNumber11N分類編號是cNameVarchar264N分類名稱—
(11)借閱者信息表userb:存儲借閱者的個人信息,studentId設置為唯一,該表結構如下表4.11所示。表4.11userb(借閱者信息表)Table4.11userb(userbinformationtable)字段名數據類型長度允許空注釋是否為主鍵userIdNumber11N讀者編號是studentIdVarchar264N學生證號—userNameVarchar264N姓名—sexVarchar22N性別—unitsVarchar264Y單位—emailVarchar264Y郵箱—idCardVarchar264Y身份證—passwordVarchar264N密碼—borrowNumNumber11N借閱數—maxBorrowNumNumber11N最大借閱數—(12)館藏類型表MuseumCollection:保存館藏信息,該表結構如下表4.12所示。表4.12MuseumCollection(館藏類型表)Table4.12MuseumCollection(MuseumCollectioninformationtable)字段名數據類型長度允許空注釋是否為主鍵mcIdNumber11N館藏編號是mcNameVarchar264N館藏名稱—(13)角色表role:用于保存系統(tǒng)角色信息,該表結構如下表4.13所示。表4.13role(館藏類型表)Table4.13role(roleinformationtable)字段名數據類型長度允許空注釋是否為主鍵rIdNumber11N角色編號是nameVarchar264N規(guī)則名稱—nameZHVarchar264N角色名稱—
5系統(tǒng)功能實現(xiàn)5.1用戶登錄模塊的實現(xiàn)功能描述:該模塊用于給后臺管理員登錄,登錄成功后才能進入系統(tǒng)后臺主界面。系統(tǒng)的登錄界包含有用戶名、密碼的輸入,用戶名、密碼長度限制為不低于2個字符,不超過15個字符的英文、數字以及特殊符號組成,如圖5.1為系統(tǒng)用戶登錄界面,當用戶依次輸入用戶名和密碼后,點擊登錄按鈕,所輸入的信息先在前端進行長度校驗,滿足條件方可提交到后端,后端對系統(tǒng)用戶輸入的信息進行核查校驗,當系統(tǒng)用戶輸入的信息無誤后,才能進入系統(tǒng)后臺主界面,主界面顯示相應的菜單頁面,反之,登錄失敗,登錄界面提示登錄失敗信息。實現(xiàn)思路:前端獲取系統(tǒng)用戶輸入信息后,對系統(tǒng)用戶在表單上輸入的用戶名、密碼的長度進行校驗,檢驗通過后,由ajax將表單數據提交到后端,執(zhí)行后端LoginController類的doLogin方法,系統(tǒng)用戶輸入的信息經由shiro進行身份驗證,認證過程在自定義AdminRealm類(繼承AuthorizingRealm)中進行,在身份驗證過程中,先根據用戶名查詢數據庫看用戶是否存在,如果存在,根據系統(tǒng)用戶id將系統(tǒng)用戶具有角色列表以及菜單列表從數據庫中一一取出,并交由shrio進行管理,shiro驗證用戶名、密碼過程無異常拋出,則表示驗證成功,即登錄成功,反之,登錄失敗,提示失敗信息。主要代碼:Subjectsubject=SecurityUtils.getSubject();
UsernamePasswordTokentoken=
newUsernamePasswordToken(admin.getUsername(),admin.getPassword());
RespBeanrespBean=null;
try{
subject.login(token);
respBean=respBean.ok("登錄成功");
}catch(AuthenticationExceptione){
respBean=respBean.error("用戶名或密碼錯誤!");
token.clear();
}
return….;圖5.1系統(tǒng)用戶登錄頁面Fig5.1Systemuserloginpage5.2用戶管理模塊的實現(xiàn)功能描述:該模塊為管理借閱者的資料信息,管理員點擊系統(tǒng)左側菜單欄的用戶資料時,系統(tǒng)右側頁面則顯示用戶資料頁面,如圖5.2所示。管理員可以在用戶資料頁面點擊添加、編輯、刪除按鈕對借閱者信息進行相應操作,在搜索框輸入要查找的用戶名,點擊搜索按鈕可根據輸入的用戶名進行模糊搜索,在列表中顯示搜索到結果,管理員勾選1到3個復選框后,點擊查詢借書記錄按鈕,將會彈出一個借書記錄列表頁面,如圖5.3所示,用于顯示選中的借閱者借書記錄,最多只能一次查看3名借閱者借書記錄。實現(xiàn)思路:進行添加操作時,在insertUsers方法中將獲取管理員輸入的借閱者信息,學生證號、密碼、借約數由系統(tǒng)默認生成,密碼初始化默認為身份證后六位,借閱數初始默認為0,最后通過insertSelective方法將信息插入數據庫。進行編輯、刪除操作時,根據借閱者的id對數據庫借閱者表進行修改、刪除信息。進行搜索操作時,根據輸入的借閱者的用戶名對數據庫借閱者表進行模糊查詢,進行查詢借閱者記錄操作時,通過獲取多個借閱者id,在根據多個借閱者id對借閱記錄表進行批量查找信息。主要代碼://添加借閱者信息
StringstudentId=UuidUtil.getShortUuid();
Stringpassword=null;
Stringicard=userb.getIdCard();
if(icard.length()>6){
password=icard.substring(icard.length()-6);
}
….
returnuserService.insertSelective(userb);//查找用戶借書記錄
TableBean<Borrow>tb=newTableBean<>();
List<Borrow>borrows=borrowService.getBorrowsByIds(ids);
tb.setData(borrows);
returntb;圖5.2用戶資料頁面Fig5.2Userprofilepage圖5.3借書記錄列表頁面Fig5.3Listofborrowingrecordspage5.3圖書管理模塊的實現(xiàn)5.3.1圖書信息功能描述:該模塊用于管理、維護館內的圖書信息。管理員在系統(tǒng)圖書系統(tǒng)頁面中單擊左側圖書管理菜單欄,會出現(xiàn)三個圖書信息、類型管理、館藏管理三個下欄,點擊圖書信息下拉欄后在右側顯示圖書信息列表頁面,如圖5.4所示。點擊添加按鈕,可彈出一個添加書籍信息表單窗口,在次窗口完成添加新書籍信息操作,點擊編輯按鈕,對書籍信息進行變更,點擊刪除按鈕,對書籍信息進刪除操作,如果書籍還在外借中,則不可進行刪除操作,并提示不能刪除信息,可按工SBN號、書名、出版社、作者、書籍類型多條件進行篩選書籍信息,便于管理員查找書籍信息。實現(xiàn)思路:通過圖書信息表、圖書分類表、館藏類型表三個表進行連表查詢來顯示完整的圖書列表信息。添加圖書信息則是對圖書表進行插入數據操作,修改根據id修改圖書表信息表,進行刪除時,先通過書籍id、state!='y'(借閱記錄流水狀態(tài)不是已歸還狀態(tài))去統(tǒng)計記錄數,如果記錄數大于0,則該書籍有外借或續(xù)借狀態(tài),不能刪除,返回刪除失敗信息,進行查找時,通過mybatis動態(tài)sql標簽if,來控制是否使用某個參數值做為查詢條件。主要代碼://顯示圖書信息
TableBean<Book>tb=newTableBean<>();
List<Book>allBooks=bookService.getAllBooks(o);
intcount=bookService.count(o);
tb.setData(allBooks);
tb.setCount(count);…//刪除圖書信息
intborrowById=borrowService.getCountById(bId);
if(borrowById>0){
returnrespBean.error("不能刪除,該書還有同學未還");
}
returnbookService.deleteByPrimaryKey(bId);圖5.4圖書信息列表頁面Fig5.4Bookinformationlistpage5.3.2類型管理該模塊用于管理圖書分類信息管理。點擊添加按鈕可以進行添加新圖書分類,添加后的圖書分類信息都會更新到圖書信息分類下拉欄目,對于不必要的圖書分類可點擊該分類上的刪除按鈕,對其進行刪除,如圖5.5為圖書分類列表頁面。圖5.5圖書分類列表頁面Fig5.5Bookclassificationlistpage5.3.3館藏管理該模塊用于管理圖書館藏信息管理。點擊添加按鈕可以進行添加館藏信息,添加后的館藏信息更新到添加圖書信息窗口里的館地下拉欄目,對于不必要的館藏信息可點擊該條館藏信息上的刪除按鈕,對其進行刪除,如圖5.6為館藏信息列表頁面。圖5.6館藏信息列表頁面Fig5.6Collectioninformationlistpage5.4審計管理模塊的實現(xiàn)5.4.1借閱審計該模塊主要為顯示圖書借閱記錄信息,供管理員管理圖書借閱流水記錄和使用借書、還書、續(xù)借以及罰款功能。借閱審計列表頁面有兩個table表格單組成,上班部分table表格部分用于顯示待歸還、續(xù)借的圖書借閱記錄,頁面下半部分table則顯示已經歸圖書借閱記錄,如圖5.7為借閱審計列表頁面。上半部分table可以進行借書、還書、續(xù)借以及搜索借閱記錄操作,以下將對主要功能進行一一敘述。圖5.7借閱審計列表頁面Fig5.7Checkouttheauditlistpage(1)借書功能描述:管理員點擊借書按鈕,將彈出一個借書表單供管理員填寫借閱信息,借書列表頁面如下圖5.8所示,借書操作需滿足三個條件,才能進行正常借書。第一,不能超過用戶自身最大借閱數;第二,用戶不能借同一本書;第三,所借圖書的庫存量要大于0。如果不滿足上面三個條件,都會借書失敗,系統(tǒng)提示借閱失敗信息反饋給使用者,只有都滿足所以條件后,才能正常借閱,借閱成功后,借閱流水將添加到借閱表中,同時會減少相應圖書的庫存量、用戶的借閱數。實現(xiàn)思路:先根據當前借閱用戶id查找出借閱者信息表,userBorrowSum為當前所借書籍數量+borrowNum(借閱數),如果userBorrowSum大于借閱者信息表的maxBorrowNum(最大借閱數),則借閱失敗,提示失敗信息,小于,用for遍歷借閱者所借書籍,并以借閱者id以及書籍id查找借閱表信息,判斷是否為為null并且為續(xù)借或者為歸還狀態(tài)書籍,如果成立,則借閱失敗,反之,判斷圖書庫存量是否足夠,isTrue作庫存量是否足夠標識,默認為true,用一個for循環(huán)來遍歷所借書籍,通過每一本書籍id查找該書籍庫存量,當有一本書籍庫存量不足時,isTrue變?yōu)閒alse,用StringBuilder拼接不足書籍名稱,用于反饋給用戶,isTrue為true時,表明所借圖書庫存量充足,則可正常借書。主要代碼://判斷用戶是否超過用戶自身最大借閱數
Userbuser=userService.getUserById(borrow.getUserId());
intuserBorrowSum=select.length+user.getBorrowNum();
if(userBorrowSum>user.getMaxBorrowNum()){
intresult=user.getMaxBorrowNum()-user.getBorrowNum();…
}else{
//用戶不能借同一本書
for(inti=0;i<select.length;i++){
…
Borrowb=borrowService.getBorrowById(bDto);
if(b!=null){
Bookbook=bookService.getBookById(borrow1.getbId());
return…;
}
}
booleanisTrue=true;
StringBuilderstr=newStringBuilder();
…
//判斷圖書庫存量是否足夠羅列不足圖書,提示客戶
for(inti=0;i<select.length;i++){
Bookbooks=bookService.getBookById(select[i]);
if(books.getbSum()<=0){
if(i==select.length-1){
…
}else{
…
}
isTrue=false;
}
}
…
if(isTrue){
…
}else{
…
}
}
…圖5.8借書列表頁面Fig5.8Loanlistpage(2)還書、續(xù)借功能描述:用戶點擊還書或者續(xù)借時,都會檢查當前書籍是否超期,如果超期則提示用戶先去繳納罰款,執(zhí)行借書操作時,所借的圖書超期,則提示先繳納罰款,點擊確定后進入繳納罰款頁面,繳納罰款頁面會自動計算罰款以及超期的天數,如下圖5.9為繳納罰款頁面。用戶交罰款成功后,書籍將會自動歸還。執(zhí)行續(xù)借的操作時,所未超期續(xù)借的圖書執(zhí)行續(xù)借成功后,歸還時間默認增加一個月,并且續(xù)借次數+1,所續(xù)借的圖書續(xù)借的次數超過三次后不能再進行續(xù)借。實現(xiàn)思路:用state字段標識用戶續(xù)借與還書狀態(tài),如果state為w,表示為續(xù)借操作,bDto含有用戶id,圖書id,以及state借閱狀態(tài)為y,通過bDto查找當前續(xù)借書籍信息,存在記錄,且renewCount續(xù)借數小于等于3,更新續(xù)借記錄數+1,歸還時間增加一個月,如果不滿足的話,則為還書操作,還書則是更新state為y,只有當還書成功后會將流水添加到歸還表、返還圖書庫存,返還用戶借閱數。主要代碼:if("w".equals(o.getState())){
…
Borrowborrow=borrowMapper.getBorrowById(bDto);
if(borrow!=null&&borrow.getRenewCount()<=3){
if(borrow.getRenewCount()==0){
o.setRenewCount(1);
}else{
o.setRenewCount(borrow.getRenewCount()+1);
}
//時間加一個月
…
}else{
returnrespBean.error("續(xù)借次數超過三次,不能在續(xù)借!");}
}
inti=borrowMapper.updateByPrimaryKey(o);
if(i==1){
respBean=respBean.ok("成功");
if(!o.getState().equals("w")){
try{
//添加到歸還表
…
//還書成功后返回圖書庫存
…
//返還用戶借閱數
…
}catch(Exceptione){
LOG.info("還書出錯",e);
}
}
}else{
respBean=newRespBean().err
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026北京海淀區(qū)恩濟里體大幼兒園招聘2人考試參考試題及答案解析
- 2026年南昌大學共青學院行政人員招聘1人考試備考試題及答案解析
- 2026江西南昌市勞動保障事務代理中心招聘非全日制白案廚師1名考試參考題庫及答案解析
- 2026年石河子工程職業(yè)技術學院單招綜合素質筆試參考題庫附答案詳解
- 2026青海油田招聘考試參考試題及答案解析
- 2026安徽新橋交通發(fā)展有限責任公司就業(yè)見習招聘2人考試備考試題及答案解析
- 2026杭州文化廣播電視集團所屬有關事業(yè)單位招聘6人考試參考試題及答案解析
- 2026年成都高新中學天府一街分校面向社會公開招聘臨時聘用教師(3人)考試參考試題及答案解析
- 2026江西省某國企招聘勞務派遣工程師4人考試參考題庫及答案解析
- 2026江西南昌大學第一附屬醫(yī)院(江西省呼吸醫(yī)學中心)高層次人才招聘144人考試參考試題及答案解析
- 2026廣東深圳市龍崗中心醫(yī)院招聘聘員124人筆試備考試題及答案解析
- 山東省青島市嶗山區(qū)2024-2025八年級上學期歷史期末試卷(含答案)
- 2026屆新高考語文沖刺復習:詩歌鑒賞之理解詩句思想內容
- QGDW12505-2025電化學儲能電站安全風險評估規(guī)范
- 2025屆河北省唐山市高二生物第一學期期末統(tǒng)考試題含解析
- 臨床藥學科研思路與選題課件
- 燒結余熱鍋爐施工方案(最終版)
- 壓力容器質保體系內審檢查表模板樣本
- DB37-T 3134-2018.建筑施工企業(yè)安全生產風險分級管控體系實施指南
- 造紙術 完整版課件
- 2019年度上訴案件被發(fā)改情況分析
評論
0/150
提交評論