計(jì)算機(jī)科學(xué)與技術(shù)-基于SpringBoot的辦公設(shè)備采購平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
計(jì)算機(jī)科學(xué)與技術(shù)-基于SpringBoot的辦公設(shè)備采購平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
計(jì)算機(jī)科學(xué)與技術(shù)-基于SpringBoot的辦公設(shè)備采購平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
計(jì)算機(jī)科學(xué)與技術(shù)-基于SpringBoot的辦公設(shè)備采購平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
計(jì)算機(jī)科學(xué)與技術(shù)-基于SpringBoot的辦公設(shè)備采購平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章緒論1.1課題研究的目的和意義到了如今的2020年,在全世界已經(jīng)出現(xiàn)了大大小小的網(wǎng)絡(luò)平臺(tái),現(xiàn)在在中國人均都有一臺(tái)電腦,一部手機(jī),大WEB時(shí)代已經(jīng)到來,已經(jīng)深入了人們的點(diǎn)點(diǎn)滴滴。隨著"互聯(lián)網(wǎng)+"在各個(gè)銷售領(lǐng)域的應(yīng)用發(fā)展,企業(yè)辦公設(shè)備采購平臺(tái)還于"藍(lán)海"階段,公司治力于設(shè)備領(lǐng)域傳統(tǒng)銷售模式中已經(jīng)多年,苦于沒有很好的交互平臺(tái)工具,來把業(yè)務(wù)做成規(guī)模。從創(chuàng)立采購平臺(tái)的出發(fā)點(diǎn),首先是要滿足企業(yè)對(duì)多品種多品牌設(shè)備的采購的需求,其次借助平臺(tái)的客戶資源,持續(xù)的營造自有品牌和推進(jìn)高價(jià)值品牌產(chǎn)品銷量。從宏觀角度分析,從經(jīng)濟(jì)上消費(fèi)水平在往優(yōu)質(zhì)高端趨勢(shì)升級(jí),在技術(shù)角度上互聯(lián)網(wǎng)技術(shù)和移動(dòng)支付技術(shù)逐漸趨于成熟,從社會(huì)角度上線上采購平臺(tái)突破解決企業(yè)與企業(yè)之間傳統(tǒng)的采購方式,彌補(bǔ)采購商采購過程中出現(xiàn)的諸多問題。在這種成熟的經(jīng)濟(jì)、技術(shù)、社會(huì)條件下,有必要開發(fā)一個(gè)辦公設(shè)備采購平臺(tái)來提供更高效的更高效的采購方式,從采購商線上定制方案,線下供應(yīng)商一對(duì)一跟進(jìn)業(yè)務(wù),承運(yùn)商配送設(shè)備,都是從線上反饋采購的進(jìn)度,使得采購的過程透明化,提高采購商的采購體驗(yàn)和提高了更好的采購服務(wù)。本課題主要研究與開發(fā)辦公設(shè)備采購平臺(tái),來解決企業(yè)辦公設(shè)備采購所遇到的痛點(diǎn)。企業(yè)通過B2B企業(yè)與企業(yè)之間進(jìn)行交易的商業(yè)模式,通過線上的網(wǎng)絡(luò)平臺(tái)或網(wǎng)站與客戶緊密聯(lián)系在一起。通過軟件的便捷性,彌補(bǔ)了線下的采購業(yè)務(wù)的諸多問題,為客戶提供了更好的服務(wù),從而促進(jìn)了企業(yè)的業(yè)務(wù)發(fā)展。為了解決消費(fèi)者對(duì)產(chǎn)品的“即想要即得到”的快速認(rèn)知體驗(yàn),因此線上的圍繞消費(fèi)者360度的采購平臺(tái)對(duì)消息者來說就顯得重要了1.2國內(nèi)外研究現(xiàn)狀在國內(nèi)隨著互聯(lián)網(wǎng)技術(shù)的進(jìn)步,淘寶、天貓、京東平臺(tái)的慢慢出現(xiàn),線上購物已經(jīng)成為人們所喜愛的購物方式,線下交易則受到了越來越大的挑戰(zhàn)。因此線下交易也將結(jié)合了線上交易,形成了B2B模式,把兩者緊密的結(jié)合起來,兩者的出現(xiàn)讓購物變得便捷。從之前的京東模式和淘寶模式到現(xiàn)在的線上線下結(jié)合,服務(wù)商也在全國各地有了自己的倉庫,讓商品流通更加便利,也能讓客戶方便購物,資金能夠迅速流轉(zhuǎn),帶動(dòng)了經(jīng)濟(jì)的發(fā)展。在國外,在金融危機(jī)的大背景下,傳統(tǒng)實(shí)體業(yè)也逐漸走向電子采購,減少了企業(yè)采購成本,采購商方式也逐漸多元化。1.3本課題研究的方法和技術(shù)路線本論文在撰寫過程中主要運(yùn)用了以下兩種研究方法:調(diào)查法,從市場(chǎng)調(diào)研、行業(yè)相關(guān)人士咨詢中所搜集到的大量資料進(jìn)行分析、綜合、歸納,從而得過詳細(xì)的需求。文獻(xiàn)研究法,根據(jù)調(diào)查文獻(xiàn)以及書籍等途徑來獲取相關(guān)資料以此來獲取系統(tǒng)開發(fā)的需求。研究的技術(shù)路線:確定辦公設(shè)備采購平臺(tái)的需求和主要的功能,以及市場(chǎng)調(diào)研相關(guān)資料收集。主要通過行業(yè)的相關(guān)人士對(duì)采購行業(yè)深入了解,深入探討采購的過程,與傳統(tǒng)采購行業(yè)的痛點(diǎn)從而來確定系統(tǒng)的主要功能模塊。確定后需求與功能。應(yīng)該制定具體的開發(fā)計(jì)劃,確定系統(tǒng)的架構(gòu)以及相對(duì)應(yīng)的技術(shù)方案。設(shè)計(jì)與實(shí)施階段。確定完開發(fā)計(jì)劃與系統(tǒng)設(shè)計(jì)之后,就開始進(jìn)行模塊開發(fā)、數(shù)據(jù)庫建模、設(shè)計(jì),功能測(cè)試。上線與維護(hù)階段。功能開發(fā)完畢,開始解決上線過程中所存在的不足之處并及時(shí)修復(fù),保持系統(tǒng)的穩(wěn)定性。

第2章系統(tǒng)調(diào)研和需求分析2.1系統(tǒng)調(diào)研在開發(fā)采購系統(tǒng)之前,首先通過分析國內(nèi)采購平臺(tái)的現(xiàn)狀與發(fā)展趨勢(shì),以及查詢相關(guān)的文獻(xiàn)資料和咨詢采購行業(yè)的相關(guān)人士與其討論采購過程中所遇到的問題,可以通過實(shí)現(xiàn)哪些具體的功能可以解決他們現(xiàn)存在的問題,通過上述的相關(guān)調(diào)研之后就可以把控需求過程,確定系統(tǒng)的需求,再進(jìn)行相關(guān)需求評(píng)審,分析需求是否可以支撐采購平臺(tái)。接著進(jìn)行了技術(shù)調(diào)研,分析現(xiàn)階段市面上成熟的采購平臺(tái)以及實(shí)現(xiàn)的技術(shù)架構(gòu),通過網(wǎng)上資料查找實(shí)現(xiàn)采購平臺(tái)的相關(guān)技術(shù),以及基于什么技術(shù)可以支撐采購平臺(tái)。2.2可行性分析1.經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性分析主要是對(duì)軟件的成本價(jià)值進(jìn)行估算,已經(jīng)平臺(tái)對(duì)市場(chǎng)使用價(jià)值的估算。本項(xiàng)目的研發(fā),會(huì)提高企業(yè)之間辦公設(shè)備采購的效率,減少企業(yè)的人力成本,讓采購過程透明化,高效化。2.技術(shù)可行性技術(shù)可行性分析包括分析可得到的硬件和支撐軟件在功能以及性能上等各方面能否滿足系統(tǒng)的要求。本項(xiàng)目采用SpringBoot的微服務(wù)架構(gòu),有較高的可維護(hù)性和能提供團(tuán)隊(duì)的開發(fā)效率,其應(yīng)用也可以實(shí)現(xiàn)獨(dú)立部署,容錯(cuò)率較低,微服務(wù)架構(gòu)也易于擴(kuò)展,可部署微服務(wù)集群。成熟的技術(shù)也使得平臺(tái)構(gòu)建容易很多。而且開發(fā)人員需要有成熟的開發(fā)經(jīng)驗(yàn),熟練的服務(wù)器運(yùn)能能力,基本的排查錯(cuò)誤能力,且能對(duì)軟件的性能能夠測(cè)試進(jìn)而進(jìn)行優(yōu)化。3.運(yùn)行可行性應(yīng)用層采用多容器部署應(yīng)用,使得項(xiàng)目穩(wěn)定運(yùn)行,網(wǎng)絡(luò)層采用Nginx負(fù)載均衡,客戶端請(qǐng)求會(huì)按策略算法分發(fā)到各個(gè)容器,提高系統(tǒng)的吞吐量和性能,實(shí)現(xiàn)了高可用、高容災(zāi)。數(shù)據(jù)庫采用主從復(fù)制策略,實(shí)現(xiàn)數(shù)據(jù)的異地備份,保證了數(shù)據(jù)安全性。4.法律可行性政府鼓勵(lì)扶持企業(yè)發(fā)展,加快互聯(lián)網(wǎng)平臺(tái)建設(shè)、構(gòu)建應(yīng)用服務(wù)體系。同時(shí)項(xiàng)目所用的服務(wù)器、域名進(jìn)行備案,承當(dāng)相應(yīng)法律風(fēng)險(xiǎn)。5.操作可行性因?yàn)獒槍?duì)的是企業(yè)用戶,使用人群是30到40歲之間,所以平臺(tái)需要界面簡(jiǎn)潔,且用戶體驗(yàn)度要高,操作便捷,能符合大部分用戶的使用習(xí)慣。2.3系統(tǒng)的需求分析2.3.1系統(tǒng)基本情況狀況本系統(tǒng)采用B/S架構(gòu),采購商使用移動(dòng)設(shè)備訪問系統(tǒng),業(yè)務(wù)功能都集中在服務(wù)端處理,客戶端與服務(wù)端通過接口形式進(jìn)行數(shù)據(jù)交互,提高了系統(tǒng)的可維護(hù)性。本系統(tǒng)用戶主要是兩類:采購商管理員管理員的要求:管理員擁有創(chuàng)建需求,審核需求,生成報(bào)價(jià)單的功能;需求創(chuàng)建訂單,審核訂單,完善訂單信息,打印送貨單。上架商品,審核商品,品牌管理,承運(yùn)商管理,商品類目管理。具體的解釋如下:創(chuàng)建需求:管理員可以在后臺(tái)為采購商根據(jù)其企業(yè)的采購需求創(chuàng)建需求。審核需求:管理員可以在后臺(tái)審核采購商或業(yè)務(wù)員提交的采購需求是否合理。生成報(bào)價(jià)單:管理員審核通過采購需求之后為選購的商品設(shè)定成交價(jià),可以生成報(bào)價(jià)單并導(dǎo)出。需求創(chuàng)建訂單:管理員審核通過的采購需求可以為采購商創(chuàng)建采購訂單審核訂單:采購商挑選完要采購的商品之后為采購名單創(chuàng)建訂單,或管理員審核通過的采購需求之后,管理員進(jìn)行審核訂單的操作。完善訂單信息:管理員審核通過的訂單,進(jìn)行完善訂單的采購商的付款憑證、電子發(fā)票、付款途徑、財(cái)務(wù)稅號(hào)、承運(yùn)商等信息。打印送貨單:訂單的配送階段,可以進(jìn)行打印送貨單的操作。上架商品:管理員進(jìn)行市場(chǎng)調(diào)研之后為采購商定制的商品進(jìn)行上架的操作,設(shè)置商品名稱、貨品進(jìn)貨價(jià)、分銷價(jià)、集采價(jià)、市場(chǎng)價(jià),以及起訂量等信息。審核商品:上架完商品之后,商品的價(jià)格不是適合市場(chǎng)價(jià)格或不適合市場(chǎng)需求,可以進(jìn)行駁回商品的操作,反之可以審核通過商品,審核通過的商品會(huì)在移動(dòng)端前臺(tái)上架,采購商對(duì)商品進(jìn)行采購的操作。采購商的要求:采購商擁有采購商申請(qǐng)、采購商登錄、搜索采購商品、加入采購清單、生成采購訂單、發(fā)布采購需求的操作。具體的解釋如下:1、采購商申請(qǐng):采購商進(jìn)行采購賬號(hào)申請(qǐng)的操作,需要完善真實(shí)姓名、企業(yè)名稱、企業(yè)規(guī)模、所在部門、企業(yè)地址、手機(jī)號(hào)碼、營業(yè)執(zhí)照、開票資料等信息。2、采購商登錄:采購商根據(jù)賬號(hào)以及密碼進(jìn)行賬號(hào)登錄的操作,登錄成功之后可進(jìn)行商品加入采購清單,創(chuàng)建采購訂單、發(fā)布采購需求等操作。3、搜索采購商品:采購商在移動(dòng)端導(dǎo)航欄對(duì)所要采購的商品的進(jìn)行搜索的操作。4、加入采購清單:在采購商瀏覽完心儀的商品之后對(duì)商品進(jìn)行加入購物清單的操作,在購物清單里面可以臨時(shí)存放商品、修改采購商品的數(shù)量、刪除采購商品等操作。5、生成采購訂單:采購商把要采購的商品加入采購清單之后,可為采購清單生成采購訂單,在移動(dòng)端可查看訂單的實(shí)時(shí)狀態(tài)。6、發(fā)布采購清單:采購商根據(jù)企業(yè)的采購需求進(jìn)行采購清單的發(fā)布操作,需要填寫人均采購預(yù)算,發(fā)放人數(shù),方案需求,心愿品項(xiàng)等信息。2.3.2業(yè)務(wù)流程分析系統(tǒng)業(yè)務(wù)主要分為管理員模塊和采購商模塊的業(yè)務(wù)。管理員業(yè)務(wù)流程圖如圖2-1所示,首先管理員根據(jù)采購商的需求為采購商創(chuàng)建需求清單,然后進(jìn)行采購需求的審核,檢驗(yàn)采購的商品是否符合采購需求,審核通過的采購清單與采購商洽談完可以為采購的商品設(shè)置商品成交價(jià),可以生成報(bào)價(jià)單并導(dǎo)出,接下來為清單清單創(chuàng)建采購訂單。然后生成采購商的訂單之后,管理員需要進(jìn)行訂單的操作操作,若審核通過,則需要完善采購商的開票信息、付款憑證、承運(yùn)商等信息,之后就進(jìn)行訂單的配送階段,可以預(yù)覽或?qū)С鏊拓泦翁峤恢脸羞\(yùn)商進(jìn)行送貨。管理員根據(jù)市場(chǎng)需求為采購平臺(tái)上架采購商所需要的商品,上架之后需要進(jìn)行商品的審核操作,如果商品價(jià)格等因素不符合市場(chǎng)要求,可進(jìn)行商品駁回的操作,反之審核通過商品會(huì)在采購平臺(tái)上架,采購商可對(duì)上架的商品進(jìn)行采購的操作。圖2-1管理員業(yè)務(wù)流程圖采購商業(yè)務(wù)流程圖如圖2-2所示,首先采購商需要申請(qǐng)賬號(hào),申請(qǐng)成功之后采購商進(jìn)行賬號(hào)登錄的操作,采購商可以在導(dǎo)航欄進(jìn)行采購商品的檢索,對(duì)心儀的采購商品加入購物清單,購物清單可以修改采購商品的數(shù)量、刪除采購商品等操作,然后采購商挑選完采購的商品之后,可以在購物清單生成采購訂單,在移動(dòng)端可以查看訂單的實(shí)時(shí)狀態(tài)。采購商根據(jù)其采購需求可以進(jìn)行發(fā)布采購清單需求。圖2-2采購商業(yè)務(wù)流程圖2.3.3系統(tǒng)用例分析管理員用例分析:如圖2-3所示,管理員具有創(chuàng)建需求、挑選需求產(chǎn)品、審核需求、生成報(bào)價(jià)單、需求創(chuàng)建訂單、審核訂單、完善訂單信息、打印送貨單、上架商品、審核商品功能。圖2-3管理員用例圖采購商用例分析:如圖2-4所示,采購商具有采購商申請(qǐng)、采購商登錄、搜索采購商品、加入采購清單、生成采購訂單和發(fā)布采購清單的功能。圖2-4采購商用例圖2.3.4系統(tǒng)數(shù)據(jù)流分析(1)采購商申請(qǐng)采購商注冊(cè)賬號(hào):采購商填寫賬號(hào)、手機(jī)號(hào)碼、真實(shí)姓名、企業(yè)名稱、企業(yè)規(guī)模、所在部門、企業(yè)地址等信息,系統(tǒng)會(huì)校驗(yàn)游客信息合法性,校驗(yàn)成功之后,會(huì)在數(shù)據(jù)庫產(chǎn)生一條采購商的記錄,如圖2-5所示:圖2-5采購商申請(qǐng)數(shù)據(jù)流圖(2)采購商登錄采購商登錄:采購商在登錄界面填寫賬號(hào)、密碼,系統(tǒng)校驗(yàn)賬號(hào)、密碼是否匹配,匹配成功之后就登錄成功,反之反饋給錯(cuò)誤信息給用戶重新填寫,如圖2-6所示:圖2-6采購商登錄數(shù)據(jù)流圖(3)采購商采購數(shù)據(jù)流如圖2-7所示,采購商通過搜索的商品挑選適合企業(yè)采購的商品,然后加入采購清單系統(tǒng)會(huì)產(chǎn)生采購清單記錄,或發(fā)布采購需求,系統(tǒng)會(huì)產(chǎn)生采購需求訂單,然后在采購清單或從采購需求兩種途徑都可以生成采購訂單,系統(tǒng)會(huì)產(chǎn)生采購訂單的記錄。圖2-7采購商采購數(shù)據(jù)流圖(4)管理員數(shù)據(jù)流管理員可為采購商創(chuàng)建采購需求,創(chuàng)建成功之后,系統(tǒng)會(huì)產(chǎn)生需求記錄,然后管理員需要審核采購需求,審核通過或?qū)徍耸?,?huì)更新采購需求的狀態(tài),生成報(bào)價(jià)單需要查詢采購需求的信息,然后執(zhí)行生成報(bào)價(jià)單的動(dòng)作。管理員可以從需求生成訂單,然后審核訂單,系統(tǒng)會(huì)更新訂單的狀態(tài),完善訂單信息,系統(tǒng)會(huì)更新訂單相應(yīng)信息,打印送貨單系統(tǒng)會(huì)查詢訂單的信息然后執(zhí)行打印的操作。管理員可以在后臺(tái)上架商品,新增的商品處于待審核狀態(tài),系統(tǒng)會(huì)新增一條商品的記錄,執(zhí)行審核商品的動(dòng)作,如果商品審核成功,會(huì)更新商品上架的狀態(tài),審核失敗商品則改為審核失敗的狀態(tài),系統(tǒng)會(huì)更新商品的狀態(tài)信息,如圖2-8所示:圖2-8管理員數(shù)據(jù)流圖

第3章系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)體系結(jié)構(gòu)本采購系統(tǒng)的系統(tǒng)結(jié)構(gòu)是按照自上而下的結(jié)構(gòu)設(shè)計(jì)的。系統(tǒng)分為采購商與管理員兩個(gè)部分,首先是管理員上傳采購商品,審核采購商商品進(jìn)行上架、上架商品,審核成功之后上架到采購平臺(tái),采購商可以在采購平臺(tái)申請(qǐng)成為采購商,在采購平臺(tái)搜索合適的商品,發(fā)布采購需求或管理員為采購商定制需求,管理員會(huì)在后臺(tái)審核需求,為采購需求定制適合采購商的商品,然后可以生成報(bào)價(jià)單發(fā)送給客戶,需求進(jìn)而轉(zhuǎn)換成訂單,或采購商可以根據(jù)自身需要在采購平臺(tái)把合適的商品加入采購清單然后自助下單,管理員需要審核采購訂單,完善訂單的財(cái)務(wù)信息、配送信息,最后打印打送貨單,訂單成交,如圖3-1所示:圖3-1系統(tǒng)體系結(jié)構(gòu)圖3.2系統(tǒng)功能模塊設(shè)計(jì)3.2.1管理員主要功能模塊本管理員模塊可分為以下功能模塊,如圖3-2、圖3-3和圖3-4所示,具體為:1、新建采購需求:管理員根據(jù)采購商的采購預(yù)算、采購需求,在后臺(tái)為采購商新建采購需求。2、挑選需求產(chǎn)品:管理員可以為采購需求定制采購商所需要的采購商品。3、審核采購需求:管理員為采購商新建的采購需求或采購商發(fā)布的采購需求,為采購商挑選后合適的采購商品之后,審核采購需求的操作,審批成功之后采購需求才生效。4、生成報(bào)價(jià)單:審核通過的采購需求,管理員可以生成報(bào)價(jià)單,可以預(yù)覽和導(dǎo)出報(bào)價(jià)單。5、需求生成訂單:審核成功之后的采購需求可以生成采購訂單。圖3-2采購需求功能結(jié)構(gòu)圖6、審核采購訂單:管理員從采購需求生成訂單或采購商從采購平臺(tái)自助下單的采購訂單,管理員需要進(jìn)行審核,審核成功之后采購訂單才會(huì)生效。7、完善訂單信息:生效的訂單需要完善訂單的承運(yùn)商、財(cái)務(wù)、支付等信息。8、打印送貨單:完善好訂單信息之后,管理員可以進(jìn)行預(yù)覽送貨單與導(dǎo)出的操作。圖3-3采購訂單功能結(jié)構(gòu)圖9、上架商品:管理員經(jīng)過市場(chǎng)調(diào)研選擇適合采購商的產(chǎn)品,在后臺(tái)進(jìn)行上架商品的操作。10、審核商品:管理員上架完產(chǎn)品之后需要對(duì)上架的商品審核的操作,審核通過的商品才可以在采購平臺(tái)展示。圖3-4采購商品功能結(jié)構(gòu)圖3.2.2采購商主要功能模塊本采購商模塊可分為以下功能模塊,如圖3-5所示,具體為:1、采購商申請(qǐng):采購商在采購之前,進(jìn)行采購商申請(qǐng)的操作,需要填寫企業(yè)名稱、企業(yè)規(guī)模、部門名稱、企業(yè)地址、真實(shí)姓名、手機(jī)號(hào)碼。2、采購商登錄:采購商根據(jù)申請(qǐng)的賬號(hào)進(jìn)行登錄。3、搜索商品:采購商可以在導(dǎo)航欄對(duì)關(guān)鍵字進(jìn)行檢索,系統(tǒng)會(huì)返回匹配度較高的商品給采購商。4、商品加入采購清單:采購商根據(jù)自身的采購需求挑選完商品之后可以把商品放入采購清單。5、采購商下單:采購商在確認(rèn)采購清單符合自身的采購需求之后,可以在平臺(tái)自助下單。6、發(fā)布采購需求:采購商可以根據(jù)采購預(yù)算、發(fā)放人數(shù)、選購的要求、心愿品項(xiàng)發(fā)布需求,管理員會(huì)根據(jù)采購商的采購需求為采購商定制合適的商品。圖3-5采購商功能結(jié)構(gòu)圖3.3數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3.3.1系統(tǒng)實(shí)體關(guān)系描述1、全局E-R圖全局E-R圖包含采購商品、商品貨品、商品分類、采購清單、需求需求、采購需求商品、采購訂單商品、采購訂單。如圖3-6所示:圖3-6全局E-R圖2、采購商實(shí)體關(guān)系圖采購商實(shí)體包括采購商名稱、企業(yè)名稱、手機(jī)號(hào)碼、部門名稱、企業(yè)地址、企業(yè)規(guī)模。采購商實(shí)體E-R圖如圖3-7所示:圖3-7采購商實(shí)體E-R圖3、采購商品實(shí)體關(guān)系圖采購商品實(shí)體包括商品名稱、品牌編號(hào)、商品描述、商品關(guān)鍵字、商品狀態(tài)。采購商品實(shí)體E-R圖如圖3-8所示:圖3-8采購商品實(shí)體E-R圖4、商品貨品實(shí)體關(guān)系圖商品貨品實(shí)體包括商品編號(hào)、商品進(jìn)貨價(jià)、商品分銷價(jià)、商品集采價(jià)、商品市場(chǎng)價(jià)、商品起訂量、商品庫存。商品貨品實(shí)體E-R圖如圖3-9所示:圖3-9商品貨品實(shí)體E-R圖5、采購清單實(shí)體關(guān)系圖采購清單實(shí)體包括采購商編號(hào)、商品編號(hào)、貨品編號(hào)、商品價(jià)格、采購數(shù)量。采購清單實(shí)體E-R圖如3-10圖所示:圖3-10采購清單實(shí)體E-R圖6、商品分類實(shí)體關(guān)系圖商品分類實(shí)體包括=分類名稱、分類圖片、分類父級(jí)編號(hào)。商品分類實(shí)體E-R圖如圖3-11所示:圖3-11商品分類實(shí)體E-R圖7、采購需求實(shí)體關(guān)系圖采購需求實(shí)體包括采購預(yù)算、發(fā)放人數(shù)、特殊要求、心愿單、采購商編號(hào)、狀態(tài)。采購需求實(shí)體E-R圖如圖3-12所示:圖3-12采購需求實(shí)體實(shí)體E-R圖8、采購需求商品實(shí)體關(guān)系圖采購需求商品實(shí)體包括采購采購商編號(hào)、商品編號(hào)、貨品編號(hào)、采購需求編號(hào)、商品價(jià)格、采購數(shù)量、采購價(jià)格。采購需求實(shí)體E-R圖如3-13圖所示:圖3-13采購需求商品實(shí)體E-R圖9、采購訂單實(shí)體關(guān)系圖采購訂單實(shí)體包括采購商編號(hào)、訂單編號(hào)、訂單狀態(tài)、訂單費(fèi)用、付款時(shí)間、送貨時(shí)間、承運(yùn)商編號(hào)。采購訂單實(shí)體E-R圖如圖3-14所示:圖3-14采購訂單商品實(shí)體實(shí)體E-R圖10、采購訂單商品實(shí)體關(guān)系圖采購訂單實(shí)體包括訂單編號(hào)、商品編號(hào)、采購數(shù)量、商品價(jià)格。采購訂單商品實(shí)體E-R圖如圖3-15所示:圖3-15采購訂單商品實(shí)體實(shí)體E-R圖3.3.2數(shù)據(jù)表設(shè)計(jì)1、采購商表采購商user表用來存儲(chǔ)采購商的基本信息。采購商表結(jié)構(gòu)如表3-1所示:表3-1采購商表屬性類型大小約束備注IDvarchar11主鍵編號(hào)usernamevarchar50Notnull用戶賬號(hào)passwordvarchar50Notnull登錄密碼gendertinyint3Notnull性別:0未知,1男,1女birthdaydate0Notnull生日last_login_timedatetime50Notnull最近一次登錄時(shí)間user_leveltinyint3Notnull0普通用戶,1VIP用戶,2高級(jí)VIP用戶mobilevarchar20Notnull手機(jī)號(hào)碼real_namevarchar50Notnull真實(shí)姓名departmentvarchar255Notnull部門addressvarchar255Notnull企業(yè)地址enterprise_scalevarchar255Notnull公司規(guī)模corporate_namevarchar255Notnull企業(yè)名稱2、管理員表管理員admin表用來存儲(chǔ)管理員的基本信息。管理員表結(jié)構(gòu)如表3-2所示:表3-2管理員表屬性類型大小約束備注IDvarchar11主鍵編號(hào)usernamevarchar63Notnull管理員賬號(hào)passwordvarchar50Notnull登錄密碼real_namevarchar50Notnull真實(shí)姓名mobilevarchar255Notnull手機(jī)號(hào)碼last_login_ipvarchar63Notnull最近一次登錄IP地址avatarvarchar255Notnull頭像圖片3、搜索歷史表搜索歷史表search_history表用來存儲(chǔ)采購商的搜索歷史。采購商表結(jié)構(gòu)如表3-3所示:表3-3搜索歷史表屬性類型大小約束備注IDvarchar11主鍵編號(hào)user_idint11Notnull用戶編號(hào)keywordvarchar63Notnull搜索關(guān)鍵字fromvarchar63Notnull搜索來源,如pc、wx、appmobilevarchar255Notnull手機(jī)號(hào)碼add_timedatetime0Notnull搜索時(shí)間4、訂單操作表訂單操作表order_operate_log表用來存儲(chǔ)管理員操作訂單的記錄。訂單操作表結(jié)構(gòu)如表3-4所示:表3-4訂單操作表屬性類型大小約束備注IDvarchar11主鍵編號(hào)operator_idint11Notnull操作員編號(hào)operator_namevarchar63Notnull操作員名稱operatevarchar63Notnull操作typetinyint3Notnull操作類型type_idint11Notnull訂單編號(hào)ipvarchar255Notnull操作者Ip地址5、訂單商品表訂單商品表order_goods表用來存儲(chǔ)采購訂單商品的記錄。訂單商品表結(jié)構(gòu)如表3-5所示:表3-5訂單商品表屬性類型大小約束備注IDvarchar11主鍵編號(hào)order_idint11Notnull訂單IDgoods_idint11Notnull商品IDgoods_namevarchar127Notnull商品名稱goods_snvarchar63Notnull商品編號(hào)numberint11Notnull貨品的購買數(shù)量specificationsvarchar1000Notnull商品規(guī)格6、采購訂單表采購訂單表order表用來存儲(chǔ)采購訂單的記錄。采購訂單表結(jié)構(gòu)如表3-6所示:表3-6采購訂單表屬性類型大小約束備注IDvarchar11主鍵編號(hào)user_idint11Notnull采購商IDorder_snvarchar255Notnull訂單編號(hào)order_statussmallint6Notnull訂單狀態(tài)consigneevarchar63Notnull收貨人名稱addressvarchar255Notnull收貨地址mobilevarchar63Notnull收貨人手機(jī)號(hào)碼messagevarchar512Notnull訂單留言order_pricedecimal10Notnull訂單費(fèi)用actual_pricedecimal10Notnull實(shí)付費(fèi)用ship_timedatetime0Notnull發(fā)貨時(shí)間confirm_timedatetime0Notnull確認(rèn)收貨時(shí)間end_timedatetime0Notnull訂單結(jié)束時(shí)間demand_idint11Notnull需求idbusiness_licensevarchar255Notnull營業(yè)執(zhí)照billing_informationvarchar255Notnull開票資料logistics_vouchervarchar255Notnull物流憑證logistics_picvarchar255Notnull物流單order_typeint11Notnull訂單類型operator_idint11Notnull操作人編號(hào)operator_namevarchar255Notnull操作人姓名carrier_idint11Notnull承運(yùn)商編號(hào)7、商品貨品表商品貨品表good_product表用來存儲(chǔ)采購商品貨品的記錄。商品貨品表結(jié)構(gòu)如表3-7所示:表3-7商品貨品表屬性類型大小約束備注IDint11主鍵編號(hào)goods_idint11Notnull商品IDbuying_pricedecimal10Notnull貨品進(jìn)貨價(jià)distribution_pricedecimal10Notnull貨品分銷價(jià)sale_pricedecimal10Notnull貨品集采價(jià)retail_pricedecimal10Notnull貨品市場(chǎng)價(jià)numint11Notnull起訂量numberint11Notnull貨品庫存urlvarchar255Notnull貨品圖片8、采購商品表采購商品表goods表用來存儲(chǔ)采購商品貨品的記錄。采購商品表結(jié)構(gòu)如表3-8所示:表3-8采購商品表屬性類型大小約束備注IDint11主鍵編號(hào)goods_snvarchar63Notnull商品IDnamevarchar20Notnull商品名稱category_idint11Notnull類目IDbrand_idint11Notnull品牌IDgalleryvarchar255Notnull輪播圖brieftext0Notnull商品簡(jiǎn)介numberint11Notnull貨品庫存urlvarchar255Notnull貨品圖片is_on_saleint11Notnull是否上架pic_urlvarchar255Notnull商品圖片statusint11Notnull商品狀態(tài)0:審核中1:上架9、采購需求表采購需求表demand表用來存儲(chǔ)采購購需求的記錄。購需求表結(jié)構(gòu)如表3-9所示:表3-9采購需求表屬性類型大小約束備注IDint11主鍵編號(hào)budgetdecimal10Notnull采購預(yù)算peopleint11Notnull發(fā)放人數(shù)demandvarchar255Notnull特殊要求wishvarchar255Notnull心愿單user_idint11Notnull采購商編號(hào)update_timedatetime0Notnull更新時(shí)間10、采購需求商品表采購需求表demand_goods表用來存儲(chǔ)管理員為采購商需求定制的商品的記錄。采購需求商品結(jié)構(gòu)如表3-10所示:表3-10采購需求商品表屬性類型大小約束備注IDint11主鍵編號(hào)user_idint11Notnull采購商iddemand_idint11Notnull需求idproduct_idint11Notnull商品貨品IDgoods_idint11Notnull商品IDpricedecimal11Notnull采購價(jià)格numbersmallint5Notnull采購數(shù)量pic_urlvarchar255Notnull商品圖片11、商品類目表類目表category表用來存儲(chǔ)管采購商品的類目的記錄。商品類目表結(jié)構(gòu)如表3-11所示:表3-11商品類目表屬性類型大小約束備注IDint11主鍵編號(hào)nameint11Notnull類目名稱pic_urlvarchar255Notnull類目圖片pidint11Notnull父類目ID12、采購清單表采購清單表cart表用來存儲(chǔ)采購清單的記錄。采購清單表結(jié)構(gòu)如表3-12所示:表3-12采購清單表屬性類型大小約束備注IDint11主鍵編號(hào)user_idint11Notnull采購商idgoods_idint11Notnull商品IDproduct_idint11Notnull貨品IDpricedecimal10Notnull貨品價(jià)格numberint11Notnull采購數(shù)量pic_urlvarchar255Notnull貨品圖片13、承運(yùn)商表承運(yùn)商carrier表用來存儲(chǔ)承運(yùn)商的記錄。承運(yùn)商結(jié)構(gòu)如表3-13所示:表3-13承運(yùn)商表屬性類型大小約束備注IDint11主鍵編號(hào)namevarchar255Notnull承運(yùn)商名稱principalvarchar255Notnull負(fù)責(zé)人名稱product_idint11Notnull貨品IDpricedecimal10Notnull貨品價(jià)格areavarchar255Notnull地區(qū)addressvarchar255Notnull地址14、品牌商表品牌商brand表用來存儲(chǔ)品牌商的記錄。品牌商結(jié)構(gòu)如表3-14所示:表3-14品牌商表屬性類型大小約束備注IDint11主鍵編號(hào)namevarchar255Notnull品牌商名稱descvarchar255Notnull品牌商簡(jiǎn)介pic_urlvarchar255Notnull品牌商圖片

第4章系統(tǒng)詳細(xì)設(shè)計(jì)4.1系統(tǒng)開發(fā)技術(shù)簡(jiǎn)介項(xiàng)目基于前后臺(tái)分離架構(gòu),完全剝離了前端與后端,界面通過VUE進(jìn)行渲染,數(shù)據(jù)通過接口進(jìn)行交互,業(yè)務(wù)層分為采購商管理、采購需求管理、訂單管理、商品類目、承運(yùn)商管理、商品管理、品牌管理、管理員管理、權(quán)限管理,持久化數(shù)據(jù)儲(chǔ)存在MySQL數(shù)據(jù)庫中,緩存存儲(chǔ)在分布式緩存Redis,商品的索引數(shù)據(jù)存儲(chǔ)在ElasticSearch分片上,圖片掛載在云存儲(chǔ),項(xiàng)目運(yùn)行在CentOS7.2云服務(wù)器上。圖4-1技術(shù)架構(gòu)圖1.Java簡(jiǎn)介Java是一種面向?qū)ο蟮拈_發(fā)語言,具有性能高、安全性高、面向?qū)ο蟆⒅С侄嗥脚_(tái)、開源、版本API迭代迅速等諸多優(yōu)點(diǎn),適合企業(yè)應(yīng)用的開發(fā)、B/S架構(gòu)系統(tǒng)的開發(fā)。2.Spring簡(jiǎn)介Spring的出現(xiàn)極大的簡(jiǎn)化了軟件開發(fā)的復(fù)雜性,它以控制反轉(zhuǎn)和面向切片編程為內(nèi)核使得系統(tǒng)開發(fā)的模塊更集中、更具有獨(dú)立性且其具有比較好的兼容性能較好的兼容其他優(yōu)秀的框架。3.運(yùn)行環(huán)境采購平臺(tái)在運(yùn)行環(huán)境是JDK1.8,部署在X86架構(gòu)的CentOS7.2服務(wù)器上,部署的容器是ApacheTomcat9.22,tomcat容器部署的內(nèi)存是2G,應(yīng)用緩存存儲(chǔ)在存儲(chǔ)Redis上,商品緩存存儲(chǔ)在ElasticSearch分片上,能極大的提升應(yīng)用的性能,應(yīng)用的靜態(tài)資源存儲(chǔ)在公網(wǎng)的云存儲(chǔ)上,提高了采購商訪問平臺(tái)的速度。4.2系統(tǒng)功能實(shí)現(xiàn)4.2.1采購需求模塊采購需求作為采購系統(tǒng)的核心,供應(yīng)商可以根據(jù)采購商的采購商需求,為其定制適合采購商的需求產(chǎn)品,供應(yīng)商會(huì)根據(jù)采購商的采購預(yù)算以及心愿產(chǎn)品等為其定制采購清單,審核采購需求清單,審核通過的需求清單生成報(bào)價(jià)單發(fā)送給采購商,最后采購需求清單生成采購訂單。(1)采購商發(fā)布需求采購商可以結(jié)合自身的采購需求,在平臺(tái)發(fā)布填寫采購預(yù)算、發(fā)放人數(shù)、特殊要求、心愿品項(xiàng)。填寫的時(shí)候會(huì)校驗(yàn)填寫的信息是否為空。填寫完成發(fā)布需求之后會(huì)返回上一個(gè)界面。采購商發(fā)布采購需求如下圖4-2所示:圖4-2發(fā)布需求圖(2)管理員新建采購需求管理員可以為采購商新建采購需求,需要填寫采購商的人均采購商預(yù)算、發(fā)放人數(shù)、特殊的要求、心愿品項(xiàng)分類、采購商用戶、需求登錄以及采購需求備注。如圖4-3所示圖4-3管理員新建采購需求校驗(yàn)采購需求是否符合要求的代碼:privateObjectvalidate(MallDemanddemand){//預(yù)算if(null==demand.getBudget()){returnResponseUtil.badArgument();}...returnnull;}(3)管理員挑選采購需求產(chǎn)品管理員創(chuàng)建完采購需求之后,可以根據(jù)采購商需求挑選需求產(chǎn)品??梢愿鶕?jù)商品名稱、商品分類搜索商品,挑選完商品之后可以選擇采購商品的數(shù)量以及采購商的成交價(jià),管理員還可以查看商品的毛利。圖4-4選擇商品圖4-5管理員挑選需求產(chǎn)品(4)審核采購需求采購商挑選完產(chǎn)品之后,采購需求處于審核中的狀態(tài),需要勾選該需求之后,點(diǎn)擊審核通過,采購需求狀態(tài)就變成審核通過的狀態(tài)。如圖4-6所示:圖4-6管理員挑選需求產(chǎn)品如下圖所示,需要校驗(yàn)需求的信息是否完整以及校驗(yàn)挑選的商品是否有庫存,如果校驗(yàn)通過才會(huì)把需求的狀態(tài)改為審核通過。List<MallDemand>demands=demandService.findByIds(ids);//修改狀態(tài)demands.forEach(mallDemand->{List<MallDemandCart>demandCarts=demandCartService.findByDemandId(mallDemand.getId());if(CollectionUtils.isEmpty(demandCarts)){thrownewBusinessException(mallDemand.getUserRealName()+"的需求清單編號(hào)["+mallDemand.getId()+"]商品為空,請(qǐng)完善信息");}else{//不為空,判斷是否有庫存demandCarts.forEach(mallDemandCart->{IntegerproductId=mallDemandCart.getProductId();MallGoodsProductproduct=productService.findById(productId);IntegerremainNumber=product.getNumber()-mallDemandCart.getNumber();if(remainNumber<0){thrownewBusinessException("需求采購清單的商品貨品數(shù)量大于庫存量,請(qǐng)重新選擇數(shù)量");}});}});demandService.updateStatus(status,demands);(5)生成報(bào)價(jià)單審核通過的采購需求可以進(jìn)行報(bào)價(jià)單的預(yù)覽與下載操作。如圖4-7所示:圖4-7生成報(bào)價(jià)單如下圖所示,查詢采購需求的信息以及采購采購需求的產(chǎn)品通過預(yù)覽的方式顯示,或下載到本地查看,預(yù)覽是使用POI技術(shù),將查詢出來的采購需求數(shù)據(jù)通過html格式輸出,并顯示到前端界面。Map<String,Object>map=newHashMap<String,Object>();TemplateExportParamsparams=newTemplateExportParams(newClassPathResource(PathUtils.PATH+"template/delivery.xlsx").getPath());map.put("list",demandPOIS);map.put("corporateName",mallDemand.getUserCompany());map.put("time",DateTimeUtil.getDateTimeDisplayString(LocalDateTime.now()));Workbookworkbook=ExcelExportUtil.exportExcel(params,map);Stringhtml=ExcelXorHtmlUtil.toAllHtml(workbook);returnResponseUtil.ok(html);下載也是通過POI技術(shù),將查詢出來的采購需求數(shù)據(jù)寫入字節(jié)流,并執(zhí)行下載的操作。Map<String,Object>map=newHashMap<String,Object>();TemplateExportParamsparams=newTemplateExportParams(newClassPathResource(PathUtils.PATH+"template/quotation.xlsx").getPath());map.put("list",demandPOIS);map.put("corporateName",mallDemand.getUserCompany());map.put("time",DateTimeUtil.getDateTimeDisplayString(LocalDateTime.now()));Workbookworkbook=ExcelExportUtil.exportExcel(params,map);ByteArrayOutputStreamos=newByteArrayOutputStream();try{workbook.write(os);Stringdate=DateUtils.format(newDate(),DateUtils.DATE_TIME_PATTERN);newDownloadUtils().download(os,response,date+"卓薈需求報(bào)表."+EasyPoiUtils.EXCEL_XLS);}catch(IOExceptione){e.printStackTrace();}returnnull;(6)需求生成訂單管理員為采購商的采購需求或采購商在采購平臺(tái)發(fā)布的采購需求,可以為采購需求生成訂單,需要填寫訂單的支付方式、支付期限、電子合同、選擇采購商收貨地址、送貨時(shí)間、送貨備注、訂單備注之后,就可以生成采購訂單。如圖4-8、4-9所示:圖4-8需求生成訂單圖4-9需求創(chuàng)建訂單4.2.2訂單模塊訂單模塊屬于業(yè)務(wù)銷售的一部分,客戶可從采購平臺(tái)自助下單,或管理員從采購需求生成采購訂單,訂單會(huì)經(jīng)過管理員審核訂單、完善訂單物流、財(cái)務(wù)信息、預(yù)覽送貨單過程。(1)采購商下單采購商可以在采購清單界面結(jié)算采購商品,選擇收貨地址與支付方式,即可自助下單。如圖4-10所示:圖4-10采購商下單圖下單的時(shí)候存在一個(gè)技術(shù)問題:在高并發(fā)的情況下如何保證解決訂單編號(hào)重復(fù)。一般通過UUID算法保證編號(hào)全局唯一,或通過雪花算法,或通過Redis原子遞增,本項(xiàng)目是使用當(dāng)前時(shí)間+隨機(jī)數(shù)+用戶編號(hào)的方式生成訂單編號(hào),生成時(shí)會(huì)判斷訂單編號(hào)是否存在,若存在會(huì)重新生成保證訂單唯一性。publicintcountByOrderSn(IntegeruserId,StringorderSn){MallOrderExampleexample=newMallOrderExample();example.or().andUserIdEqualTo(userId).andOrderSnEqualTo(orderSn).andDeletedEqualTo(false);return(int)MallOrderMapper.countByExample(example);}publicStringgenerateOrderSn(IntegeruserId){DateTimeFormatterdf=DateTimeFormatter.ofPattern("yyyyMMdd");Stringnow=df.format(LocalDate.now());StringorderSn=now+userId+getRandomNum(6);while(countByOrderSn(userId,orderSn)!=0){orderSn=now+userId+getRandomNum(6);}returnorderSn;}為解決采購平臺(tái)未付款訂單占庫存的問題,采購平臺(tái)會(huì)每半小時(shí)查詢未支付的訂單,將訂單占庫存的商品,并添加訂單商品添加相對(duì)應(yīng)的庫存并取消訂單。@Scheduled(fixedDelay=30*60*1000)@TransactionalpublicvoidcheckOrderUnpaid(){("系統(tǒng)開啟任務(wù)檢查訂單是否已經(jīng)超期自動(dòng)取消訂單");List<MallOrder>orderList=orderService.queryUnpaid();for(MallOrderorder:orderList){LocalDateTimeadd=order.getAddTime();LocalDateTimenow=LocalDateTime.now();LocalDateTimeexpired=add.plusMinutes(30);if(expired.isAfter(now)){continue;}//設(shè)置訂單已取消狀態(tài)order.setOrderStatus(OrderUtil.STATUS_AUTO_CANCEL);order.setEndTime(LocalDateTime.now());if(orderService.updateWithOptimisticLocker(order)==0){thrownewRuntimeException("更新數(shù)據(jù)已失效");}//商品貨品數(shù)量增加IntegerorderId=order.getId();List<MallOrderGoods>orderGoodsList=orderGoodsService.queryByOid(orderId);for(MallOrderGoodsorderGoods:orderGoodsList){IntegerproductId=orderGoods.getProductId();MallGoodsProductproduct=productService.findById(productId);Shortnumber=orderGoods.getNumber();if(productService.addStock(productId,number)==0){thrownewRuntimeException("商品貨品庫存增加失敗");}}("訂單ID="+order.getId()+"已經(jīng)超期自動(dòng)取消訂單");}}(2)需求生成訂單管理員為采購商的采購需求或采購商在采購平臺(tái)發(fā)布的采購需求,可以為采購需求生成訂單,需要填寫訂單的支付方式、支付期限、電子合同、選擇采購商收貨地址、送貨時(shí)間、送貨備注、訂單備注之后,就可以生成采購訂單。如圖4-11、4-12所示:圖4-11需求生成訂單圖4-12需求創(chuàng)建訂單下單的時(shí)候需要判斷采購商品的貨品數(shù)量是否大于庫存量,以及通過庫存限制條件方式來扣減庫存避免高并發(fā)場(chǎng)景下的“超賣”現(xiàn)象。for(MallCartcheckGoods:checkedGoodsList){IntegerproductId=checkGoods.getProductId();MallGoodsProductproduct=productService.findById(productId);IntegerremainNumber=product.getNumber()-checkGoods.getNumber();if(remainNumber<0){thrownewRuntimeException("下單的商品貨品數(shù)量大于庫存量");}if(productService.reduceStock(productId,checkGoods.getNumber())==0){thrownewRuntimeException("商品貨品庫存減少失敗");}}更新數(shù)據(jù)庫減庫存的時(shí)候,對(duì)貨品的庫存限制條件的SQL代碼實(shí)現(xiàn)<updateid="reduceStock"parameterType="map">updatemall_goods_productsetnumber=number-#{num,jdbcType=INTEGER},update_time=now()whereid=#{id,jdbcType=INTEGER}andnumber>=#{num,jdbcType=INTEGER}</update>(3)審核采購訂單管理員從采購需求生成的訂單或采購商自助下單的訂單,管理員可以進(jìn)行審核訂單,訂單才會(huì)生效,訂單的狀態(tài)變?yōu)閷徍送ㄟ^的狀態(tài)。如圖4-13所示:圖4-13審核采購訂單審核訂單狀態(tài)的時(shí)候,使用數(shù)據(jù)庫的樂觀鎖,每次更新訂單狀態(tài)前先根據(jù)訂單的更新時(shí)間查詢一下訂單信息,然后執(zhí)行更新語句并且更新訂單更新時(shí)間publicintupdateWithOptimisticLocker(MallOrderorder){LocalDateTimepreUpdateTime=order.getUpdateTime();order.setUpdateTime(LocalDateTime.now());returnorderMapper.updateWithOptimisticLocker1(preUpdateTime,order);}<updateid="updateWithOptimisticLocker1"parameterType="map">updatemall_order<set><iftest="order.id!=null">id=#{order.id,jdbcType=INTEGER},</if><iftest="order.orderStatus!=null">order_status=#{order.orderStatus,jdbcType=SMALLINT},</if></set>whereid=#{order.id,jdbcType=INTEGER}andupdate_time=#{lastUpdateTime,jdbcType=INTEGER}</update>(4)完善訂單信息管理員審核成功完訂單之后,需要填寫采購商的財(cái)務(wù)稅務(wù)號(hào)、承運(yùn)商、財(cái)務(wù)信息,完善完相關(guān)信息之后,訂單的狀態(tài)會(huì)變?yōu)榇l(fā)貨。如圖4-14、4-15所示:圖4-14完善稅務(wù)號(hào)、承運(yùn)商信息圖4-15完善財(cái)務(wù)信息(5)預(yù)覽送貨單采購訂單處于待發(fā)貨狀態(tài),管理員可以預(yù)覽送貨單并下載。如圖4-16所示:圖4-16預(yù)覽打印送貨單4.2.3供應(yīng)管理模塊(1)商品上架管理員可以在后臺(tái)進(jìn)行商品的上架操作。需要填寫商品的名稱、分類、圖片、價(jià)格、規(guī)格等信息。圖4-17商品上架圖4-18商品上架(2)商品審核管理員在進(jìn)行商品上架的操作之后,商品處于待審核狀態(tài)。管理員需要進(jìn)行審核通過和駁回商品的操作,審核通過的商品會(huì)在采購平臺(tái)出現(xiàn),反之駁回商品則會(huì)下在采購平臺(tái)下架。圖4-19商品審核通過獲取前端的多選框的值,以及商品狀態(tài),實(shí)現(xiàn)批量上架、下架的功能。publicObjectreview(@RequestBodyStringbody){Integerstatus=JacksonUtil.parseInteger(body,"status");List<Integer>ids=JacksonUtil.parseIntegerList(body,"ids");List<MallGoods>goods=adminGoodsService.findByIds(ids);//修改為上架狀態(tài)adminGoodsService.updateStatus(status,goods);returnResponseUtil.ok();}4.2.4采購商模塊采購商可以在采購平臺(tái)申請(qǐng)以及登錄操作。(1)采購商申請(qǐng)采購商在采購之前,必須得先進(jìn)行采購商賬號(hào)的申請(qǐng),需要填寫用戶名、密碼、手機(jī)、真實(shí)姓名、企業(yè)名稱、企業(yè)規(guī)模、所在部門、企業(yè)地址信息。填寫的時(shí)候會(huì)校驗(yàn)信息填寫的準(zhǔn)確性,校驗(yàn)手機(jī)號(hào)碼,注冊(cè)成功之后會(huì)返回登錄界面。采購商申請(qǐng)如下圖4-20所示:圖4-20采購商申請(qǐng)圖(2)采購商登錄采購商在申請(qǐng)完賬號(hào)之后,填寫賬號(hào)、密碼進(jìn)行登錄,登錄成功之后可以進(jìn)行采購商品的選購、搜索、自助下單。所圖4-21所示:圖4-21采購商登錄圖(3)搜索商品采購商在導(dǎo)航欄上對(duì)關(guān)鍵字進(jìn)行搜索,系統(tǒng)會(huì)返回匹配度較高的商品給采購商。如圖4-22所示:圖4-22搜索采購商品為實(shí)現(xiàn)通過關(guān)鍵字實(shí)現(xiàn)商品的快速檢索,項(xiàng)目采用了基于Lucene底層的分布式全文搜索引擎ElasticSearch極大加快了搜索速度。首先需要構(gòu)建搜索字段以及聚合字段,對(duì)返回的結(jié)果做分頁以及排序,最終解析結(jié)果返回給前端publicSearchResultsearch(SearchRequestsearchRequest){...NativeSearchQueryBuilderqueryBuilder=newNativeSearchQueryBuilder();//通過sourceFilter字段過濾只要我們需要的數(shù)據(jù)queryBuilder.withSourceFilter(newFetchSourceFilter(newString[]{"id","name","skus","goodsSn","price","picUrl"},null));//分頁和排序searchWithPageAndSort(queryBuilder,searchRequest);//基本搜索條件QueryBuilderbasicQuery=buildBasicQuery(searchRequest);queryBuilder.withQuery(basicQuery);//對(duì)分類和品牌聚合StringcategoryAggName="categoryAgg";queryBuilder.addAggregation(AggregationBuilders.terms(categoryAggName).field("category3Id"));//查詢,獲取結(jié)果AggregatedPage<Goods>result=template.queryForPage(queryBuilder.build(),Goods.class);//解析聚合結(jié)果Aggregationsaggs=result.getAggregations();//解析分類聚合List<MallCategory>categories=handleCategoryAgg(aggs.get(categoryAggName));//解析分頁結(jié)果longtotal=result.getTotalElements();inttotalPage=result.getTotalPages();List<Goods>items=result.getContent();returnnewSearchResult(total,totalPage,items,categories,brands,specs);}(4)商品加入采購清單采購商選購?fù)戤a(chǎn)品之后,可以將采購商品加入采購清單。如圖4-23、4-24所示:圖4-23采購商品加入采購清單圖4-24采購清單圖

第5章系統(tǒng)的測(cè)試5.1測(cè)試目的和意義1、通過系統(tǒng)的功能測(cè)試,檢驗(yàn)需求是否能滿足規(guī)定的需求以及能否達(dá)到預(yù)期的效果。2、通過性能測(cè)試檢驗(yàn)是否符合采購平臺(tái)的健壯性。3、通過界面測(cè)試檢驗(yàn)是否符合人性化的交互效果。5.2測(cè)試方法系統(tǒng)采用自下往上的測(cè)試方法,先進(jìn)行模塊的單元測(cè)試,將功能模塊集成在一起測(cè)試,驗(yàn)證模塊的正確性以及接口的準(zhǔn)確性,接著針對(duì)整個(gè)系統(tǒng)進(jìn)行系統(tǒng)測(cè)試,上線部署完之后,經(jīng)過驗(yàn)收測(cè)試,最后在軟件的維護(hù)階段進(jìn)行回歸測(cè)試,防止產(chǎn)生新的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論