【網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第1頁
【網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第2頁
【網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第3頁
【網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第4頁
【網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

[2]。2.1.2經(jīng)濟(jì)可行性本系統(tǒng)的項(xiàng)目規(guī)模不大,因此不需要過多的人力資源,某些模塊功能可能需要些許的經(jīng)濟(jì)投入。但是經(jīng)濟(jì)因素并不會(huì)影響本系統(tǒng)的開發(fā),因此,具備經(jīng)濟(jì)可行性。2.1.3操作可行性本系統(tǒng)的前后端界面簡單大方,布局明了合理,操作非常簡單易懂,用戶不需要觀看教程,也無需經(jīng)過培訓(xùn)就可以獨(dú)立使用,完全具備操作可行性。2.2需求分析根據(jù)近幾年網(wǎng)上拍賣業(yè)的發(fā)展,以及大眾對(duì)網(wǎng)上購物拍賣的關(guān)注度和關(guān)注的方向,得出本網(wǎng)上拍賣管理系統(tǒng)的功能需求和性能需求。2.2.1功能需求(1)用戶信息模塊廣大用戶們使用本拍賣管理系統(tǒng)之前必須要登錄或者注冊(cè)用戶信息,只有在登錄或者注冊(cè)后才能進(jìn)行拍賣商品的瀏覽和挑選、競購商品、參與支付、商品收藏和商品評(píng)價(jià)等一系列操作。管理員可查看會(huì)員用戶的信息(例如姓名、密碼等等);也可以對(duì)競價(jià)商品的信息、競價(jià)商品的分類和競價(jià)成功的商品的訂單進(jìn)行管理。(2)拍賣商品模塊發(fā)布拍賣商品。只有管理員才可以發(fā)布拍賣物品,在系統(tǒng)網(wǎng)站上發(fā)布競購商品。設(shè)置好競拍起始價(jià)、時(shí)間限制、加價(jià)幅度等等,填寫關(guān)于物品的信息(例如商品品牌、新舊程度、商品價(jià)格等等)點(diǎn)擊保存即可。(3)競購商品模塊用戶可以根據(jù)自己的需求,在拍賣系統(tǒng)中搜索自己心儀想要的商品。搜索到用戶想要的商品,就可在登錄注冊(cè)之后對(duì)商品進(jìn)行競拍,根據(jù)管理員設(shè)置的加價(jià)幅度,參加競拍活動(dòng),然后判斷是否競價(jià)成功,商品詳情模塊可以看到參與競拍過程用戶的用戶名及其競拍價(jià)格和時(shí)間。(4)支付模塊虛擬支付功能。登錄或注冊(cè)后,購買者挑選好需要的商品后便可以直接用虛擬支付功能結(jié)算提交訂單。該模塊將模擬真實(shí)的支付環(huán)境,使支付業(yè)務(wù)更加完善,系統(tǒng)更加完整。(5)拍賣商品訂單模塊用戶在登陸或者注冊(cè)后都可以通過訂單查看自己的購買記錄,包括競拍成功或者失敗。管理員則可以在后臺(tái)更清楚直觀的查看訂單競拍情況,給競拍成功的用戶發(fā)貨,競拍未成功的用戶則退款,拍賣成功的用戶還可以對(duì)該商品進(jìn)行評(píng)價(jià),給下一次參加該商品拍賣的人提供參考意見。(6)拍賣商品收藏模塊商品收藏功能。用戶碰見喜愛或者感興趣的競拍商品即可在特定時(shí)間內(nèi)進(jìn)行收藏與取消收藏操作。點(diǎn)擊收藏,商品將收藏成功出現(xiàn)在收藏清單里,并且圖標(biāo)變成已收藏;點(diǎn)擊取消收藏,則取消對(duì)該競價(jià)商品的收藏。2.2.2性能需求因?yàn)楸鞠到y(tǒng)面向全體大眾,需要在絕大多數(shù)用戶的電腦上流暢運(yùn)行,所以兼容各大主流瀏覽器,以滿足用戶需求。3開發(fā)技術(shù)介紹該小節(jié)是對(duì)網(wǎng)上拍賣管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行的架構(gòu)框架方面的詳細(xì)分析以及得出相關(guān)的結(jié)論。2.1SpringBoot2018年3月SpringBoot的版本正式從1.x升級(jí)到了2.x。其內(nèi)容包含全注解下的SpringIoC和AOP、數(shù)據(jù)庫編程(JDBC、JPA和MyBatis)、數(shù)據(jù)庫事務(wù)、NoSQL(Redis和MongoDB)技術(shù)、SpringMVC、Spring5新一代響應(yīng)式框架WebFlux、互聯(lián)網(wǎng)搶購業(yè)務(wù)、部署與監(jiān)控、REST風(fēng)格和SpringCloud分布式開發(fā)等。2.2MybatisMybatis是優(yōu)秀的持久層框架,它能夠支持普通的SQL查詢、存儲(chǔ)過程和高級(jí)映射,對(duì)于JDBC代碼、參數(shù)以及結(jié)果集的檢索Mybatis都不用再去手工設(shè)置,Mybatis通過使用注解或簡單的XML來進(jìn)行配置與原始映射,能夠?qū)⒔涌诤蚃ava中的POJOs映射成數(shù)據(jù)庫中的記錄。Mybatis的功能架構(gòu)可以分為三層:(1)API接口層:供給外部使用的接口API,項(xiàng)目開發(fā)人員能夠通過這些本地API接口來操作數(shù)據(jù)庫。當(dāng)其接收到調(diào)用請(qǐng)求時(shí)就會(huì)去調(diào)用數(shù)據(jù)處理層來完成相應(yīng)的數(shù)據(jù)處理過程。(2)數(shù)據(jù)處理層:它的主要作用是根據(jù)調(diào)用的請(qǐng)求完成對(duì)數(shù)據(jù)庫的操作。負(fù)責(zé)具體的SQL查找、解析、執(zhí)行以及執(zhí)行結(jié)果的映射處理等。(3)基礎(chǔ)支撐層:為數(shù)據(jù)處理層提供最基礎(chǔ)的功能支撐,比如連接和事務(wù)管理、配置加載及緩存處理,能將這些公用的部分抽取出來作為最基礎(chǔ)的組件。2.3EChartsECharts的設(shè)計(jì)是面向數(shù)據(jù)的,基于數(shù)據(jù)來驅(qū)動(dòng)圖形的生成,通過改變數(shù)據(jù)來改變圖表的表現(xiàn)形式。通過合理的數(shù)據(jù)組織后,通過一個(gè)參數(shù)的變化就可以改變圖表的表現(xiàn)形式。所謂的樣式只是定義圖形的點(diǎn)線面狀態(tài),數(shù)據(jù)組織才是關(guān)鍵。比如折柱餅圖,甚至地圖在ECharts里完全數(shù)據(jù)。4數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)4.1E-R圖設(shè)計(jì)通過對(duì)本網(wǎng)上拍賣系統(tǒng)的需求與系統(tǒng)設(shè)計(jì)的分析,設(shè)計(jì)出網(wǎng)上拍賣系統(tǒng)所用的用戶實(shí)體,管理員實(shí)體,商品類別實(shí)體,競拍商品實(shí)體,商品訂單實(shí)體,收貨地址實(shí)體,評(píng)論實(shí)體,收藏實(shí)體。本網(wǎng)上拍賣系統(tǒng)的E-R圖,具體如圖3-2所示。圖3-2E-R圖4.2數(shù)據(jù)表設(shè)計(jì)(1)本網(wǎng)上拍賣系統(tǒng)的用戶表,用于記錄廣大用戶的信息,如表3-1所示。表3-1用戶表(user)字段類型備注約束user_idint(10)用戶編號(hào)主鍵,自增user_namevarchar(25)用戶名notnulluser_nicknamevarchar(50)用戶昵稱notnulluser_passwordvarchar(50)用戶密碼notnulluser_realnamevarchar(20)真實(shí)姓名user_gendertinyint(1)用戶性別notnulluser_birthdayuser_addressuser_homeplaceuser_profile_picture_srcidentitydatechar(6)char(6)varchar(100)varchar(255)出生日期地址編碼居住地址用戶頭像身份證號(hào)notnullnotnullnotnull(2)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)商品類別表,用于區(qū)分商品的種類,如表3-2所示。表3-2競價(jià)商品類別表(category)字段類型備注約束category_idint(10)類別編號(hào)主鍵,自增category_namecategory_image_srcvarchar(20)varchar(255)類別名稱類別圖片notnullnotnull(3)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)地址表,用于用戶注冊(cè)時(shí)家庭住址的填寫以及用戶競拍商品成功后,發(fā)貨地址的填寫,如表3-3所示。表3-3地址表(address)字段類型備注約束address_areaIdchar(6)地址編號(hào)主鍵,自增address_nameaddress_regionIdvarchar(50)char(6)地區(qū)名郵政編碼notnullnotnull(4)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)管理員表,用于儲(chǔ)存管理員的信息,如表3-4所示。表3-4管理員表(admin)字段類型備注約束admin_idint(10)管理員編號(hào)主鍵,自增admin_nameadmin_nicknameadmin_passwordadmin_profile_picture_srcvarchar(25)varchar(50)varchar(50)varchar(255)用戶名昵稱管理員密碼管理員頭像notnullnotnullnotnull(5)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)收藏表,用于記錄用戶收藏的感興趣的競拍商品,如表3-5所示。表3-5收藏表(collection)字段類型備注約束idint(11)收藏編號(hào)主鍵,自增user_idproduct_idstatuscreate_dateint(11)int(11)varchar(255)varchar(50)用戶編號(hào)商品編號(hào)收藏狀態(tài)創(chuàng)建時(shí)間(6)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)商品表,用于儲(chǔ)存競拍商品的信息,如表3-6所示。表3-6商品表(product)字段類型備注約束product_idint(10)商品編號(hào)主鍵,自增product_nameproduct_titleproduct_priceproduct_sale_priceproduct_create_dateproduct_category_idproduct_isEnabledstart_dateend_datestepcurrent_priceuser_idpm_statusvarchar(100)varchar(100)decimal(10)decimal(10)datetimeint(10)tinyint(1)varchar(50)varchar(50)int(11)decimal(10)int(11)varchar(255)商品名稱商品標(biāo)題商品價(jià)格商品售價(jià)創(chuàng)建時(shí)間商品分類編號(hào)是否在售競價(jià)開始時(shí)間競價(jià)結(jié)束時(shí)間價(jià)格增幅當(dāng)前價(jià)格最后加價(jià)人id是否停止拍賣notnullnotnullnotnullnotnull(7)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)商品圖片表,用于儲(chǔ)存競拍商品的圖片信息,如表3-7所示。表3-7商品表(product_image)字段類型備注約束productimage_idint(10)圖片編號(hào)主鍵,自增productimage_typeproductimage_srcproductimage_product_idtinyint(1)varchar(255)int(10)圖片類型商品圖片所屬的商品編號(hào)notnullnotnullnotnull(8)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的一個(gè)訂單表,用于儲(chǔ)存競拍商品的訂單信息,如表3-8所示。表3-8訂單表(product_order)字段類型備注約束productorder_idint(10)訂單編號(hào)主鍵,自增productorder_codeproductorder_addressproductorder_detail_addressproductorder_postvarchar(30)char(6)varchar(255)char(6)商品訂單編號(hào)收貨地址詳細(xì)地址郵政編碼notnullnotnullnotnull續(xù)表3-8字段類型備注約束productorder_receivervarchar(20)收貨人姓名notnullproductorder_mobileproductorder_pay_dateproductorder_delivery_dateproductorder_confirm_datechar(11)datetimedatetimetinyint手機(jī)號(hào)碼成交時(shí)間發(fā)貨時(shí)間確認(rèn)時(shí)間notnullproductorder_statusint(10)訂單狀態(tài)notnull(9)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的訂單詳情表,用于儲(chǔ)存訂單詳情信息,是用戶在付款前對(duì)競拍商品的確認(rèn),用戶還可以在訂單詳情中可對(duì)商家進(jìn)行留言,如表3-9所示。表3-9競價(jià)商品訂單詳情表(product_order_item)字段類型備注約束productorderitem_idint(10)訂單詳情編號(hào)主鍵,自增productorderitem_numbersmallint(5)訂單數(shù)量notnullproductorderitem_pricedecimal(10)訂單價(jià)格notnullproductorderitem_product_idint(10)商品編號(hào)notnullproductorderitem_order_idint(10)訂單編號(hào)productorderitem_user_idint(10)用戶編號(hào)notnullproductorderitem_userMessagecurrent_pricestatusvarchar(255)decimal(10)varchar(255)用戶留言當(dāng)前價(jià)格狀態(tài)(10)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的分類屬性表,用于儲(chǔ)存分類屬性信息,如表3-10所示。表3-10分類屬性表(property)字段類型備注約束property_idint(10)分類屬性編號(hào)主鍵,自增property_namevarchar(25)屬性名稱notnullproperty_category_idint(10)分類編號(hào)notnull(11)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的商品屬性表,用于儲(chǔ)存商品屬性信息,如表3-11所示。表3-11商品屬性表(propertyvalue)字段類型備注約束propertyvalue_idint(10)商品屬性編號(hào)主鍵,自增propertyvalue_valuevarchar(100)商品屬性notnullpropertyvalue_property_idpropertyvalue_product_idint(10)int(10)分類屬性編號(hào)商品編號(hào)notnullnotnull(12)本網(wǎng)上拍賣系統(tǒng)設(shè)計(jì)的評(píng)價(jià)表,用于儲(chǔ)存用戶對(duì)競拍商品的評(píng)價(jià),只有競拍到商品且確認(rèn)收貨的用戶才能進(jìn)行評(píng)價(jià),因此表中設(shè)置了用戶編號(hào)。如表3-12所示。表3-12評(píng)價(jià)表(review)字段類型備注約束review_idint(10)評(píng)價(jià)編號(hào)主鍵,自增review_contentmediumtext評(píng)價(jià)內(nèi)容notnullreview_createdatereview_user_idreview_product_idreview_orderItem_iddatetimeint(10)int(10)int(10)評(píng)價(jià)時(shí)間用戶編號(hào)商品編號(hào)訂單詳情編號(hào)notnullnotnullnotnull

5網(wǎng)上拍賣管理系統(tǒng)概要設(shè)計(jì)5.1系統(tǒng)功能和數(shù)據(jù)設(shè)計(jì)在對(duì)網(wǎng)上拍賣系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)時(shí),需要對(duì)網(wǎng)上拍賣管理系統(tǒng)進(jìn)行整體性的詳細(xì)分析。本系統(tǒng)分為前后臺(tái)系統(tǒng),前后臺(tái)系統(tǒng)都有若干個(gè)功能模塊,本系統(tǒng)的每個(gè)模塊之間或多或少的有所關(guān)聯(lián)。將網(wǎng)上拍賣系統(tǒng)的前臺(tái)系統(tǒng)分為7個(gè)模塊來實(shí)現(xiàn),后臺(tái)系統(tǒng)分為5個(gè)模塊來實(shí)現(xiàn),使項(xiàng)目的整個(gè)架構(gòu)更加完整,有利于代碼的編寫,便于后期人員的維護(hù)。本系統(tǒng)的整體功能結(jié)構(gòu)如圖3-1所示。圖3-1整體功能結(jié)構(gòu)圖5.2系統(tǒng)用例圖設(shè)計(jì)通過對(duì)網(wǎng)上拍賣系統(tǒng)的需求分析,規(guī)定了適合網(wǎng)上拍賣系統(tǒng)的角色。(1)用戶角色的用例圖主要是用來搜索商品信息、瀏覽商品信息、參與競拍并評(píng)論和收藏操作、管理收藏信息和修改個(gè)人信息,具體信息如圖3-3所示。圖3-3用戶用例圖(2)管理員角色的用例圖主要具有競價(jià)商品詳情管理、競價(jià)商品分類管理、競價(jià)商品訂單狀態(tài)管理、用戶的信息查看以及管理員賬戶修改等等,具體信息如圖3-4所示。圖3-4管理員用例圖5.3系統(tǒng)類圖設(shè)計(jì)網(wǎng)上拍賣系統(tǒng)的類圖主要描述了用戶、商品類別、競拍商品、競價(jià)成功后的評(píng)論、收藏、后臺(tái)管理員,商品訂單,收貨地址等實(shí)體類結(jié)構(gòu)。(1)競價(jià)商品類別類圖,如圖3-5所示。圖3-5競價(jià)商品類別類圖(2)會(huì)員用戶類圖,如圖3-6所示。圖3-6會(huì)員用戶類圖(3)競價(jià)商品類圖,如圖3-7所示。圖3-7競價(jià)商品類圖(4)競價(jià)商品收藏類圖,如圖3-8所示。圖3-8競價(jià)商品收藏類圖(5)管理員類圖,如圖3-9所示。圖3-9管理員類圖(6)地址類圖,如圖3-10所示。圖3-10地址類圖(7)競價(jià)商品訂單類圖,如圖3-11所示。圖3-11競價(jià)商品訂單類圖6網(wǎng)上拍賣系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)6.1用戶信息模塊的設(shè)計(jì)與實(shí)現(xiàn)6.1.1管理員后臺(tái)商品管理(1)算法設(shè)計(jì)思路管理員在后臺(tái)系統(tǒng)可以隨時(shí)添加商品,成功添加商品后,商品會(huì)在前臺(tái)上架顯示,若添加失敗,則在后臺(tái)controller事務(wù)回滾;管理員也可以更新商品的信息,比如重新設(shè)置商品的價(jià)格增幅、競價(jià)開始時(shí)間和競價(jià)結(jié)束時(shí)間,在后臺(tái)用List整合需要更新的產(chǎn)品屬性;管理員也可以按商品的名字和競價(jià)商品的標(biāo)題來查詢商品信息;管理員按ID刪除商品圖片并返回最新結(jié)果。(2)實(shí)現(xiàn)代碼@RequestMapping(value="admin/product/{product_id}")publicStringupdateProduct(@RequestParamStringproduct_name){JSONObjectjsonObject=newJSONObject();Productproduct=newProduct().setProduct_id(product_id).setProduct_name(product_name).setProduct_sale_price(product_sale_price).setProduct_create_date(newDate());if(!StringUtils.isEmpty(userId)){product.setUserId(Integer.valueOf(userId));}if(!StringUtils.isEmpty(currentPrice)){product.setCurrentPrice(Double.valueOf(currentPrice));}product.setStartDate(startDate);product.setEndDate(endDate);booleanem=productService.update(product)}6.1.2管理員后臺(tái)商品分類管理(1)算法設(shè)計(jì)思路管理員在后臺(tái)系統(tǒng)可以隨時(shí)添加商品分類并且按照條件查詢分類。使用ajax整合添加商品分類后,分類會(huì)在前臺(tái)主頁面用輪播圖顯示,若添加失敗,則在后臺(tái)controller事務(wù)回滾;管理員在后臺(tái)系統(tǒng)可以更新競價(jià)商品的分類信息,例如重新設(shè)置競價(jià)商品分類的類別及名稱;管理員可以通過ajax上傳分類文件圖片,獲取文件圖片的上傳路徑。(2)實(shí)現(xiàn)代碼@RequestMapping(value="admin/category",method=RequestMethod.POST")publicStringaddCategory(@RequestParamStringcategory_mname,){JSONObjectjsonObject=newJSONObject();Categorycategory=newCategory().setCategory_mname(category_mname).setCategory_uimage_src(category_uimage_src.substring(category_uimage_src.lastIndexOf("/")+1));booleanen=categoryService.add(category);if(en){intcategory_uid=lastIDService.selectLastID();jsonObject.put("category_uid",category_uid);}else{thrownewRuntimeException();}returnjsonObject.toJSONString();}6.1.3用戶注冊(cè)功能(1)算法設(shè)計(jì)思路用戶在網(wǎng)上拍賣管理系統(tǒng)的前臺(tái)填寫好用戶名、登錄密碼的信息等等,并且選擇性別之后,點(diǎn)擊注冊(cè)按鈕,若確認(rèn)密碼和密碼不一致則不能注冊(cè),反之,向后臺(tái)發(fā)送請(qǐng)求,請(qǐng)求參數(shù)包含了用戶填好的個(gè)人信息,后臺(tái)對(duì)應(yīng)的controller方法接收頁面?zhèn)鬟f過來的參數(shù),利用方法判斷用戶填寫的用戶名是否存在,若存在則在用戶名框右側(cè)進(jìn)行提醒;若不存在,調(diào)用service中添加會(huì)員用戶的方法,service調(diào)用mapper中的方法往數(shù)據(jù)庫中添加會(huì)員用戶信息,最后后臺(tái)將注冊(cè)成功信息轉(zhuǎn)發(fā)至登錄頁面,并提示用戶登錄。(2)實(shí)現(xiàn)代碼@RequestMapping(value="register/doRegister")publicStringregister(@RequestParam(value="user_mname")Stringuser_mname,@RequestParam(value="user_mnickname")Stringuser_mnickname,@RequestParam(value="user_mpassword")Stringuser_mpassword,)throwsParseException{Integercount=userService.getTotal(newUser().setUser_mname(user_mname));if(count>0){returnobject.toJSONString();}Useruser=newUser().setUser_mname(user_mname).setUser_mnickname(user_mnickname).setUser_mpassword(user_mpassword).setUser_mgender(Byte.valueOf(user_mgender)).setUser_maddress(newAddress().setAddress_areaId(user_maddress)).setUser_mhomeplace(newAddress().setAddress_areaId("140000"));user.setIdentity(identity);if(userService.add(user)){//注冊(cè)成功returnobject.toJSONString();}else{thrownewRuntimeException();}}6.2拍賣商品模塊的設(shè)計(jì)與實(shí)現(xiàn)(1)算法設(shè)計(jì)思路只有管理員才可以發(fā)布拍賣商品,在后臺(tái)系統(tǒng)網(wǎng)站上發(fā)布競購商品。設(shè)置好競拍起始價(jià)、時(shí)間限制、加價(jià)幅度等等,填寫關(guān)于物品的信息(例如商品品牌、商品屬性、商品價(jià)格等等),數(shù)據(jù)傳遞到controller,整合商品預(yù)覽圖片、詳情圖片和產(chǎn)品屬性等等,若商品發(fā)布成功,則在后臺(tái)顯示新增商品的ID值,添加失敗,則事務(wù)回滾。(2)實(shí)現(xiàn)代碼@RequestMapping(value="admin/product")publicStringaddProduct(@RequestParamStringproduct_mname,){Productproduct=newProduct().setProduct_mname(product_mname).setProduct_mtitle(product_mtitle).setProduct_mcategory(newCategory().setCategory_mid(product_category_mid)).setProduct_create_date(newDate());product.setStartDate(startDate);product.setEndDate(endDate);product.setCurrentPrice(product_price);booleanem=productService.add(product);intproduct_id=lastIDService.selectLastID();JSONObjectobject=JSON.parseObject(propertyJson);Set<String>propertyIdSet=object.keySet();if(propertyIdSet.size()>0){List<PropertyValue>propertyValueList=newArrayList<>(5);for(Stringkey:propertyIdSet){Stringvalue=object.getString(key);PropertyValuepropertyValue=newPropertyValue().setPropertyValue_value(value).setPropertyValue_property(newProperty().setProperty_mid(Integer.valueOf(key))).setPropertyValue_product(newProduct().setProduct_mid(product_mid));propertyValueList.add(propertyValue);}em=propertyValueService.addList(propertyValueList);}("商品信息及其子信息添加成功!");jsonObject.put("product_mid",product_mid);returnok;}6.3競購商品模塊的設(shè)計(jì)與實(shí)現(xiàn)6.3.1用戶競價(jià)功能(1)算法設(shè)計(jì)思路用戶可以根據(jù)自己的需求,在拍賣系統(tǒng)中搜索自己心儀想要的商品。搜索到用戶想要的商品,就可在登錄注冊(cè)之后對(duì)商品進(jìn)行競拍,參加拍賣活動(dòng),然后判斷是否競價(jià)成功。在后臺(tái)的service里,用for循環(huán)和和list獲取所有付款沒有結(jié)束的商品,并判斷當(dāng)前的商品是否競價(jià)結(jié)束;競價(jià)結(jié)束后,在訂單處理數(shù)據(jù),用if語句判斷商品是否符合發(fā)貨要求,將符合的改為“等待商家發(fā)貨”,不符合的改為“已退款”。(2)實(shí)現(xiàn)代碼@Override@Scheduled(cron="0/1****?")publicvoiddealPay(){//獲取所有付款沒結(jié)束的貨物L(fēng)ist<String>list=productOrderMapper.orderList();for(Stringid:list){//判斷當(dāng)前貨物是否結(jié)束Integerover=productOrderMductIsOver(id);if(over!=0){ProductOrderorder=productOrderMductOrder(id);if(ObjectUtils.isEmpty(order)){continue;}ProductOrderproductOrder=newProductOrder().setProductOrder_id(order.getProductOrder_id()).setProductOrder_status((byte)1);productOrderMapper.updateOne(productOrder);ProductOrderrefund=newProductOrder().setProductOrder_id(order.getProductOrder_id()).setProductOrder_status((byte)8);refund.setProduct_id(id);productOrderMapper.updateNotIn(refund);}}}6.3.2獲取商品最新價(jià)(1)算法設(shè)計(jì)思路當(dāng)?shù)谝粋€(gè)用戶參與競拍,填寫收貨信息,支付成功之后,商品價(jià)格數(shù)值傳到后臺(tái)controller,用get方法獲取產(chǎn)品ID和價(jià)格數(shù)據(jù),界面刷新后,競拍商品的價(jià)格會(huì)根據(jù)后臺(tái)管理員設(shè)置的價(jià)格增幅自動(dòng)提升,更新成為當(dāng)前的最新價(jià)格。當(dāng)下一位用戶參與競拍時(shí),則會(huì)以當(dāng)前最新價(jià)格參與競拍,往復(fù)循環(huán),直到后臺(tái)管理員設(shè)置的競拍時(shí)間結(jié)束。(2)實(shí)現(xiàn)代碼@RequestMapping(value="currentPrice/{pid}")publicStringdetailWhoBy(HttpSessionsession,@PathVariable("pid")Stringpid){if(userId!=null){Useruser=userService.get(Integer.parseInt(userId.toString()));}Integerproduct_mid=Integer.parseInt(pid);Stringproduct=productService.getCurrentPrice(product_mid);JSONObjectjsonObject=newJSONObject();jsonObject.put("curPrice",product);returnjsonObject.toJSONString();}6.3.3顯示參與競拍的用戶(1)算法設(shè)計(jì)思路每當(dāng)一個(gè)用戶參與競拍,支付成功之后,競拍商品的詳情頁自動(dòng)更新,顯示出每一個(gè)用戶參與競拍的昵稱、競拍時(shí)間以及競購價(jià)格,競拍過程完全公開透明,拒絕暗箱操作,使拍賣系統(tǒng)更加完善合理,用戶的競購體驗(yàn)升級(jí)。在后臺(tái)controller層下,用if語句判斷用戶是否付款,查詢支付成功的用戶,將其競購信息顯示到前臺(tái)界面。(2)實(shí)現(xiàn)代碼@RequestMapping(value="whoBy/{pid}/{time}")publicStringwhoBy(HttpSessionsession,@PathVariable("pid")Stringpid,){Integerproduct_id=Integer.parseInt(pid);List<ProductOrder>productList=productService.whoBy(product_id,time);Stringbig=null;if(null!=productList&&0!=productList.size()){big=productList.get(0).getProductOrder_pay_date();for(inti=0;i<productList.size();i++){if(productList.get(i).getProductOrder_pay_date().compareTo(big)>0){big=productList.get(i).getProductOrder_pay_date();}}}if(null==big&&null!=time&&!"".equals(time)){big=time;}jsonObject.put("productOrder",JSONArray.parseArray(JSON.toJSONString(productList)));jsonObject.put("maxTime",big);returnjsonObject.toJSONString();}6.4支付模塊的設(shè)計(jì)與實(shí)現(xiàn)(1)算法設(shè)計(jì)思路用戶挑選好需要競價(jià)的商品后便可以直接用虛擬支付功能結(jié)算提交訂單。該功能將模擬真實(shí)的支付環(huán)境,使支付業(yè)務(wù)更加完善,系統(tǒng)更加。支付成功后通過訂單項(xiàng)ID數(shù)組獲取訂單信息,檢查訂單項(xiàng)的合法建立,驗(yàn)證通過后用戶才能填寫收貨地址,將收貨地址等相關(guān)信息存入Cookie中,獲取省份信息。填寫個(gè)人信息之后,點(diǎn)擊“支付”按鈕將會(huì)跳轉(zhuǎn)到支付頁面,點(diǎn)擊確認(rèn)支付,即可支付成功。(2)實(shí)現(xiàn)代碼@RequestMapping(value="order/pay/{order_ucode}")publicStringgoToOrderPayPage(Map<String,Object>map,HttpSessionsession,@PathVariable("order_ucode")Stringorder_ucode){ObjectuserId=checkUser(session);order.setProductOrderItemList(productOrderItemService.getListByOrderId(order.getProductOrder_mid(),null));if(order.getProductOrderItemList().size()==1){ProductOrderItemproductOrderItem=order.getProductOrderItemList().get(0);Productproduct=productService.get(productOrderItem.getProductOrderItem_mproduct().getProduct_mid());product.setProduct_category(categoryService.get(product.getProduct_category().getCategory_mid()));productOrderItem.setProductOrderItem_mproduct(product);orderTotalPrice=product.getCurrentPrice()+product.getProduct_sale_price();}else{for(ProductOrderItemproductOrderItem:order.getProductOrderItemList()){if(!StringUtils.isEmpty(productOrderItem.getStatus())&&productOrderItem.getStatus().equals("0")){orderTotalPrice+=productOrderItem.getProductOrderItem_uprice();}}}orderTotalPrice=Double.parseDouble(String.format("%.2f",orderTotalPrice));map.put("orderTotalPrice",orderTotalPrice);return"fore/productPayPage";}6.5拍賣商品訂單模塊的設(shè)計(jì)與實(shí)現(xiàn)6.5.1管理員管理訂單功能(1)算法設(shè)計(jì)思路管理員可以在后臺(tái)查看到用戶的訂單,可以按照自動(dòng)生成的訂單號(hào)或用戶填寫的郵政編碼查詢訂單信息,也可以根據(jù)訂單的不同狀態(tài)查詢訂單信息,該模塊還設(shè)置了ECharts統(tǒng)計(jì)圖,在后臺(tái)統(tǒng)計(jì)當(dāng)月的拍賣總數(shù)量;管理員可以在后臺(tái)給訂單狀態(tài)為“等待賣家發(fā)貨”的買家用戶發(fā)貨,即參與競拍出價(jià)最高的買家;競拍未成功的買家則顯示“交易關(guān)閉”或“競價(jià)失敗,已退款”的字樣,且管理員無法為其發(fā)貨。(2)實(shí)現(xiàn)代碼@RequestMapping(value="admin/order/{order_mid}")publicStringupdateOrder(@PathVariable("order_mid")Stringorder_mid){ProductOrderproductOrder=newProductOrder().setProductOrder_delivery_date(newDate());booleanem=productOrderService.update(productOrder);if(em){jsonObject.put("success",true);}else{jsonObject.put("success",false);thrownewRuntimeException();}jsonObject.put("order_mid",order_mid);returnjsonObject.toJSONString();}@RequestMapping(value="admin/order/{index}/{count}")publicStringgetOrderBySearch(@PathVariableIntegercount){if(productOrder_status_array!=null&&(productOrder_status_array.length<=0||productOrder_status_array.length>=5)){productOrder_status_array=null;}if(productOrder_code!=null){productOrder_code="".equals(productOrder_code)?null:productOrder_code;}if(productOrder_post!=null){productOrder_post="".equals(productOrder_post)?null:productOrder_post;}ProductOrderproductOrder=newProductOrder().setProductOrder_code(productOrder_code).setProductOrder_post(productOrder_post);OrderUtilorderUtil=null;returnobject.toJSONString();}6.5.2用戶查看訂單功能(1)算法設(shè)計(jì)思路用戶轉(zhuǎn)到前臺(tái)可以清楚直觀的看見自己的訂單信息,包括競價(jià)成功、交易成功和確認(rèn)收貨等狀態(tài)。用戶參與競拍后,在商品最后的競拍時(shí)間之內(nèi),顯示“已競拍”;在競拍活動(dòng)結(jié)束后,若用戶成功拍下商品,則在訂單業(yè)面顯示“等待賣家發(fā)貨”;若未拍下商品,則顯示“競價(jià)失敗,已退款”;若商家已發(fā)貨,則會(huì)在用戶訂單頁面顯示“確認(rèn)收貨”按鈕;用戶確認(rèn)收貨后,則顯示“交易成功”的字樣。(2)實(shí)現(xiàn)代碼@RequestMapping(value="order/{index}/{count}")publicStringgoToPage(HttpSessionsession,Map<String,Object>map){if(userId!=null){//獲取會(huì)員用戶信息user=userService.get(Integer.parseInt(userId.toString()));}else{return"redirect:/login";}Byte[]status_array=null;if(status!=null){status_array=newByte[]{status};}PageUtilpageUtil=newPageUtil(index,count);("根據(jù)用戶ID:{}獲取訂單列表",userId);6.6拍賣商品收藏模塊的設(shè)計(jì)與實(shí)現(xiàn)(1)算法設(shè)計(jì)思路商品收藏功能。用戶碰見喜愛或者感興趣的競拍商品即可進(jìn)行收藏與取消收藏操作。點(diǎn)擊收藏,將商品收藏成功,并且圖標(biāo)變成已收藏。點(diǎn)擊移除,則取消對(duì)該商品的收藏。點(diǎn)擊“☆”進(jìn)行收藏,通過controller判斷用戶是否收藏過該商品信息,若已收藏,將出現(xiàn)在收藏列表,若未收藏,則移除出列表;用戶添加收藏或取消收藏時(shí),頁面都會(huì)彈出對(duì)應(yīng)的提示信息,提高用戶的體驗(yàn)感。(2)實(shí)現(xiàn)代碼@RequestMapping("/add/{productId}")publicStringadd(HttpSessionsession){if(user!=null){List<Collect>list=collectionService.selectByProductId(user.getUser_id(),productId);if(list!=null&&!list.isEmpty()){return"0";}else{Collectclt=newCollect();clt.setUserId(user.getUser_id());clt.setProductId(productId);clt.setStatus("0");clt.setCreateDate(format.format(newDate()));collectionService.save(clt);}return"0";}else{return"-1";}@RequestMapping("/delete")publicStringupdate(Integerid){collectionService.update(id);return"0";}

7系統(tǒng)測(cè)試7.1系統(tǒng)測(cè)試目的在我們每完成一個(gè)小節(jié)代碼的撰寫時(shí),都要進(jìn)行測(cè)試,并且及時(shí)的改正。首先是因?yàn)槲易陨淼乃讲粔蚋撸谕瓿烧麄€(gè)代碼編寫后再去測(cè)試,我可能無法找出錯(cuò)誤所在,進(jìn)而無法進(jìn)行修改。其次,小節(jié)測(cè)試可以給我節(jié)省很多時(shí)間,能保證系統(tǒng)代碼的正確率。網(wǎng)上拍賣系統(tǒng)的受眾十分廣泛,所以我們必須保證系統(tǒng)的完整性以及可操作性,如果系統(tǒng)bug很多的話,會(huì)影響競買者和拍賣者的使用感受,因此也可斷定這并不是一個(gè)成功的系統(tǒng)。另一方面,要對(duì)我們?cè)O(shè)計(jì)的功能進(jìn)行測(cè)試,測(cè)試是否可以實(shí)現(xiàn)各個(gè)功能,使拍賣系統(tǒng)變成具有真正實(shí)用意義的系統(tǒng)。關(guān)于網(wǎng)上拍賣系統(tǒng)的測(cè)試,我們使用了測(cè)試用得最多的測(cè)試方法,即黑盒測(cè)試進(jìn)行網(wǎng)上拍賣系統(tǒng)的測(cè)試。7.2測(cè)試用例用戶登錄功能測(cè)試,如下表5.1所示。表5.用戶登錄功能測(cè)試用例表用例名稱測(cè)試功能操作操作過程預(yù)期結(jié)構(gòu)測(cè)試結(jié)果用戶登錄模塊測(cè)試正確輸入用戶信息

溫馨提示

  • 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)論