版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
汽車銷售網(wǎng)站設(shè)計與實現(xiàn)──詳細設(shè)計與代碼實現(xiàn)摘 要:網(wǎng)絡(luò)是現(xiàn)代經(jīng)營和管理的重要媒介。我們手工記錄汽車銷售詳情的時代已經(jīng)過去。隨著市場經(jīng)濟的迅速發(fā)展,面對汽車銷售業(yè)嚴酷競爭的形勢,對于加強經(jīng)營管理、提高工作效率和改善服務(wù)質(zhì)量成為了急待解決的問題。而解決這些問題的關(guān)鍵措施之一就是建立使用先進、高效的汽車銷售網(wǎng)站系統(tǒng),引進創(chuàng)新的經(jīng)營機制,適應(yīng)新形勢下企業(yè)的生存和發(fā)展。關(guān)鍵詞: 經(jīng)營管理; 汽車銷售; 系統(tǒng)Abstract:Thecomputeismodernmanagementmustmedium.Beforewehandcarsalesrecordsofproductdetailispast.Long withtherapiddevelopmentofmarketeconomy,thefaceoftheincreasinglyharshcompetitionsellingcars,strengthenoperatingmanagement,realworkandimproveefficiencyandimprovethequalityofservicehasbecometheproblemtobesolved.Tosolvetheseestablishment,advancedandefficientuseofcarsalessystem,theintroductionofinnovativemanagementmechanism,andadapttothenewsituationofthesurvivalanddevelopmentofenterprises.Keywords:management;carsales;system緒論1.1 課題背景,目的和意義1.1.1 課題背景隨著internet的普及和電子商務(wù)的興起,網(wǎng)上汽車銷售是 Internet電子商務(wù)在汽車銷售行業(yè)發(fā)展的必然結(jié)果, 這種新型的汽車銷售形式,與傳統(tǒng)4s或5s店利用線下進行銷售的方式相比擁有許多優(yōu)勢:一是同比降低了汽車銷售成本;二是利用網(wǎng)絡(luò)作為交易平臺來改變傳統(tǒng)的交易方式,使得交易的活動不受空間和時間限制;三是銷售信息的傳遞更迅速靈活1.1.1 課題目的和意義有了《圍田汽車銷售網(wǎng)站》就不需要客戶到書城手工查詢需要的汽車,而只需在自家的電腦前輸入查詢條件,快速而準確的找到汽車,大大加快了查詢速度。第1頁(共49頁)可行性分析2.1 技術(shù)可行性本系統(tǒng)采用的是Struts1,Hibernate+Jpa規(guī)范+Spring和MySQL作為數(shù)據(jù)庫開發(fā)。由于Struts1訪問速度和開發(fā)效率快,采用Spring做事務(wù)管理和組件容器,再加上MySQL靈活易維護并且開發(fā)方面具有方便快捷、使用靈活的特點,以及目前的廣泛實際應(yīng)用,因此使用SSH+JPA+MySQL是開發(fā)javaweb平臺的最佳組合,從而說明本系統(tǒng)在技術(shù)方面可行。硬件方面,最低配置需要 2G內(nèi)存和100G硬盤,CPU最低酷睿i3。2.2 操作可行性目前,大多數(shù)個人電腦都能運行本系統(tǒng)。該系統(tǒng)的安裝、運行不會改變原計算機系統(tǒng)的默認設(shè)置和布局,再加上系統(tǒng)界面精簡,提示信息完整,經(jīng)過相關(guān)人員指導便能夠方便的操作此軟件。2.3系統(tǒng)的技術(shù)介紹2.3.1 javascriptJavaScript是一種具有面向?qū)ο竽芰Φ?、解釋型的程序腳本設(shè)計語言。更具體一點,它是基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言。因為他不需要在一個語言環(huán)境下運行,而只需要支持它的瀏覽器即可。它的主要目的是,驗證發(fā)往服務(wù)器端的數(shù)據(jù)、增加 Web互動、加強用戶體驗度等。2.3.2 JqueryjQuery
是一個可兼容多瀏覽器的
javascript
庫,其核心理念是
writeless,domore。jQuery
于
2006
年在美國紐約發(fā)布,此舉吸引了來自世界各地的
JavaScript高手加入。如今,
jQuery
已發(fā)展成為最流行的
javascript框架。在世界前
15000個訪問最多的網(wǎng)站中,超過
55%的開發(fā)者在使用
jQuery。2.3.3 mysqlMySQL是一個開源數(shù)據(jù)庫,它起源于瑞典 ADB公司。Mysql和市面上其他數(shù)據(jù)庫相比具有體積小,使用靈活,速度快,可橫向集群的優(yōu)勢。自從阿里巴巴第2頁(共49頁)的去Oracle化,把數(shù)據(jù)移植到MySql中浪潮的興起,MySql的使用越來越受大眾的歡迎。2.3.4 luncenceLucene是一個由java編寫的開源全文索引項目,隨著網(wǎng)站站內(nèi)索引廣泛使用和hadoop大數(shù)據(jù)集群對Lucene的支持,免費、靈活、高效Lucene越來越受開發(fā)者的歡迎。Lucene先把要檢索的資源集合放到本地,并使用某種特定的結(jié)構(gòu)存儲,稱為索引,這個索引的集合稱為索引庫。對索引庫的檢索遠優(yōu)于數(shù)據(jù)庫模糊查詢。2.3.5 Jpajpa是sun公式提出一套ORM持久成規(guī)范,其本身并圖示套技術(shù)。知識定義了一套數(shù)據(jù)持久層接口規(guī)范,Hibernate,Toplink等其他ORM層工具是實現(xiàn)了其接口規(guī)范,讓開發(fā)者在用jpa開發(fā)是感覺不到底層產(chǎn)品的差異。其強大的注解功能更是為了解決開發(fā)人員在配置繁瑣的XML文件帶來的不變,所提供的開發(fā)的web項目的必選技術(shù)2.3.6 SpringSpring是一套性能非常優(yōu)越的輕量級容器。它提供 AOC控制反轉(zhuǎn)的方式管理所有的JavaBean對象,Action對象,底層持久Service。有了Spring的管理,編程人員就再也不用在構(gòu)建自己的Bean對象帶來的繁瑣的代碼構(gòu)造。2.3.7 Jmailjmail是使用java代碼實現(xiàn)的一套郵箱規(guī)范,它對開發(fā)人員來說具有靈活、輕便的特性。用戶在使用javamail發(fā)送郵箱時,只需要調(diào)用jmail的相應(yīng)接口,就可以使用面向?qū)ο蟮姆绞綐?gòu)造郵件并發(fā)送郵件信息到指定的郵箱。2.4系統(tǒng)開發(fā)平臺和運行環(huán)境2.4.1 系統(tǒng)開發(fā)平臺系統(tǒng)的開發(fā)是在 MyEclipse8.5編碼Tomcat最為服務(wù)器中間件的環(huán)境下進行的。Tomcat的環(huán)境主要有以下幾方面技術(shù)優(yōu)勢:1.Tomcat不僅僅是一個 Servlet容器,它也具有傳統(tǒng)的 Web服務(wù)器的功能:處理html頁面。2.Tomcat也可以與其它一些軟件集成起來實現(xiàn)更多的功能。2.4.2 操作系統(tǒng)操作系統(tǒng):Windows7以上版本。第3頁(共49頁)服務(wù)器軟件:Tomcat6.0以上版本。瀏覽器:IE9、FireFox、GoogleChrome。后臺詳細設(shè)計與實現(xiàn)圍田科技汽車銷售網(wǎng),主要圍繞需求所定義的系統(tǒng)結(jié)構(gòu)圖作依次功能模塊的詳細設(shè)計與實現(xiàn),系統(tǒng)結(jié)構(gòu)圖如下,我主要負責編寫的代碼模塊為:商品管理、商城用戶管理和購物車這三個模塊,圖 3-1:汽車銷售網(wǎng)品類買售最預商城購收約牌型用戶家后物藏新試管管指服活駕管理車夾商理理南務(wù)動品管訂理單新用預添刪清用禁添查模加載戶約加除空增戶用加看塊活活動預管購購購登用收收動列表約理物物物添刪修搜陸戶用藏藏項項車加除改索戶商商商商注查刪品品品品冊詢除個生提在查預預條全人產(chǎn)交線詢約約件文中提交郵訂訂支訂查索心箱單單付單注冊詢引激信息活賬購我戶買的管記收理錄藏修改修改刪評查刪除價看除收貨登陸記商收收地址信息錄品藏藏1)圖3-1系統(tǒng)結(jié)構(gòu)圖3.1商品管理3.1.1 程序描述此模塊為未網(wǎng)站的商品管理模塊, 管理所有車輛信息在前端的顯示信息。 管理商品價格,商品展示圖片,商品樣式管理,商品詳細信息描述。此模塊把類型管理和品牌管理放在一起來說明,原因產(chǎn)品,品牌,類型的關(guān)聯(lián)性和依耐性強,所以放在一起來做詳細設(shè)計更為合適。3.1.2 程序功能①后臺添加商品信息第4頁(共49頁)②后臺修改商品信息③按入庫時間,商品名稱,品牌,類型查詢相應(yīng)商品④前端搜索框搜商品,此收索使用全文索引 Lucene3.1.3 操作系統(tǒng)①添加商品輸入項:車名:productNameString長度不能超過 100品牌id:brandIdInteger類型id:typeIdInteger定金:barginMoneyFloat價格區(qū)間:上區(qū)間:fromSellPrice Float下區(qū)間:toSellPrice Float是否活動車型:isActivity Boolean是否最新車型:isNew Boolean首頁展示圖片路徑:frontImageViewPathString長度不能超過兩個產(chǎn)品詳細頁輪播圖片路徑:viewImages Set<ProductImgGroup>ProductImgGroup對象屬性長度不能超過 200款式style:款式名稱:styleName報價:sellPriceFloat庫存:inventoryInteger產(chǎn)品詳細描述:descript②修改商品輸入項:
StringStriing(數(shù)據(jù)庫類型為
Blob)
長度為
text類型長度車名:productNameString長度不能超過100品牌id:brandIdInteger類型id:typeIdInteger定金:barginMoneyFloat價格區(qū)間:上區(qū)間:fromSellPrice Float下區(qū)間:toSellPrice Float第5頁(共49頁)是否活動車型:isActivity Boolean是否最新車型:isNew Boolean首頁展示圖片路徑:frontImageViewPathString長度不能超過兩個產(chǎn)品詳細頁輪播圖片路徑:viewImages Set<ProductImgGroup>ProductImgGroup對象 屬性長度不能超過 200款式style:款式名稱:styleName String報價:sellPriceFloat庫存:inventoryInteger產(chǎn)品詳細描述:descript Striing(數(shù)據(jù)庫類型為Blob) 長度為③刪除商品輸入項:點擊刪除超鏈接,附帶產(chǎn)品 id作為參數(shù)商品編號:productCodeString系統(tǒng)約束的固定長度,36位④產(chǎn)品條件查詢輸入項:車名:productNameString長度不能超過 100品牌id:brandIdInteger類型id:typeIdInteger入庫時間,上下區(qū)間上區(qū)間:fromDate java.util.Date下區(qū)間:toDate java.util.Date⑤全文索引產(chǎn)品輸入項關(guān)鍵字:keyWordString 長度不能超過100⑥添加品牌品牌名稱:brandName Sting長度不能超過32品牌logol圖標路徑:String長度不能超過200⑦修改品牌品牌名稱:brandName Sting長度不能超過32
text類型長度品牌logol圖標路徑:String長度不能超過200⑧添加類型類型名稱:styleName Sting長度不能超過32⑨修改類型第6頁(共49頁)類型名稱:styleName Sting長度不能超過324.2 用戶模塊注冊用戶是構(gòu)成網(wǎng)站主體的一個重要組成部分,網(wǎng)站設(shè)置注冊用戶的目的之一在于方便3.1.4 程序出項①添加產(chǎn)品輸出向:無直接輸出項,跳轉(zhuǎn)到產(chǎn)品列表頁②刪除產(chǎn)品輸出項:無直接輸出項,跳轉(zhuǎn)到產(chǎn)品列表頁③修改產(chǎn)品輸出項:無直接輸出項,跳轉(zhuǎn)到產(chǎn)品列表頁④查看產(chǎn)品詳情輸出項:產(chǎn)品實體:productProductInfo實體包含其他項:款式列表:styleList<Style>評價列表:commentsList<Comment>⑤查看產(chǎn)品列表輸出項:產(chǎn)品分頁列表:pageViewPageView<ProductInfo>pageView中包含其他項:總頁數(shù):totalRcordsInteger當前頁:currentPageInteger每頁顯示最大數(shù)量:maxResult Integer⑥刪除品牌輸出項:無直接輸出項, Action跳轉(zhuǎn)到產(chǎn)品列表頁⑦修改品牌輸出項:無直接輸出項, Action跳轉(zhuǎn)到產(chǎn)品列表頁⑧刪除類型輸出項:無直接輸出項, Action跳轉(zhuǎn)到產(chǎn)品列表頁⑨修改類型輸出項:無直接輸出項, Action跳轉(zhuǎn)到產(chǎn)品列表頁3.1.5 設(shè)計算法①產(chǎn)品主鍵code存放,采用UUID進行加密生成/**返回一個不重復的字符串@return*/publicstaticStringuuid(){returnUUID.randomUUID().toString().replace("-","").toUpperCase();第7頁(共49頁)}②產(chǎn)品圖片的存儲路徑采用如下算法進行生成SimpleDateFormatdateformat=newSimpleDateFormat("yyyy-MM-dd");Stringlogopathdir="/upload/product/"+dateformat.format(newDate());//構(gòu)建圖片保存的目錄得到圖片保存目錄的真實路徑Stringlogorealpathdir=request.getSession().getServletContext().getRealPath(logopathdir);Filelogosavedir=newFile(logorealpathdir);Stringext=BaseForm.getExt(imagefile);構(gòu)建文件名稱Stringimagename=UUID.randomUUID().toString()+"."+ext;3.1.6 實體類的設(shè)計①產(chǎn)品實體ProductInfo:@Entity @SearchablepublicclassProductInfoimplementsSerializable{privatestaticfinallongserialVersionUID=-8860864584425256200L;/** 商品編號,也是主鍵**/privateStringcode;/** 產(chǎn)品名稱**/privateStringname;/** 品牌**/privateBrandbrand;/** 產(chǎn)品簡介**/privateStringdescription;/**產(chǎn)品亮點**/privateStringhighlight;/** 價格區(qū)間**/privateStringinnerSellPrice;第8頁(共49頁)/**定金**/privateFloat barginMoney;/** 是否可見**/privateBooleanvisible=true;/** 產(chǎn)品類型(大型車,中型車)**/privateProductTypetype;/** 上架日期**/privateDatecreatedate=newDate();/** 人氣指數(shù)**/privateIntegerclickcount=1;/** 銷售量**/privateIntegersellcount=0;/**是否最新車型**/privateBooleanisNew=false;/**是否熱銷車型**/privateBooleanisHot=false;/** 是否推薦(活動車型)**/privateBooleanisActivity=false;/** 產(chǎn)品樣式**/privateSet<ProductStyle>styles=newHashSet<ProductStyle>();/**產(chǎn)品首頁圖片展示**/privateStringviewImagePathFront;/**產(chǎn)品詳細頁圖片組**/private Set<ProductImgGroup> viewImages=newHashSet<ProductImgGroup>();/**產(chǎn)品評價**/privateSet<Comment>comments=newHashSet<Comment>();publicProductInfo(){}第9頁(共49頁)publicProductInfo(StringproductCode){this.code=productCode;}@OneToMany(cascade={CascadeType.ALL},mappedBy="product")@SearchableComponentpublicSet<ProductStyle>getStyles(){returnstyles;}publicvoidsetStyles(Set<ProductStyle>styles){this.styles=styles;}/**從樣式集合中刪除指定樣式@paramstyle*/publicvoidremoveProductStyle(ProductStylestyle){if(this.styles.contains(style)){this.styles.remove(style);style.setProduct(null);}}/**添加樣式到樣式集合@paramstyle*/publicvoidaddProductStyle(ProductStylestyle){if(!this.styles.contains(style)){this.styles.add(style);第10頁(共49頁)style.setProduct(this);}}/**添加圖片組到集合@paramstyle*/publicvoidaddImageGroup(ProductImgGroupgroup){if(!this.viewImages.contains(group)){this.viewImages.add(group);group.setProduct(this);}}@Id@SearchableIdpublicStringgetCode(){returncode;}publicvoidsetCode(Stringcode){this.code=code;}@Column(length=50,nullable=false)@SearchableProperty(boost=2,name="productName")publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}@ManyToOne(cascade=CascadeType.REFRESH)第11頁(共49頁)@JoinColumn(name="brandid")@SearchableComponentpublicBrandgetBrand(){returnbrand;}publicvoidsetBrand(Brandbrand){this.brand=brand;}@Column(nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)publicStringgetInnerSellPrice(){returninnerSellPrice;}@Transient@SearchableProperty(index=Index.NO,store=Store.YES)publicIntegergetInventory(){Integerinventory=0;for(ProductStylestyle:getStyles()){inventory+=style.getInventory();}returninventory;}publicvoidsetInnerSellPrice(StringinnerSellPrice){this.innerSellPrice=innerSellPrice;}@Lob@Column(nullable=false)@SearchablePropertypublicStringgetDescription(){returndescription;}publicvoidsetDescription(Stringdescription){this.description=description;第12頁(共49頁)}@Column(nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)publicBooleangetVisible(){returnvisible;}publicvoidsetVisible(Booleanvisible){this.visible=visible;}@ManyToOne(cascade=CascadeType.REFRESH,optional=false)@JoinColumn(name="typeid")@SearchableComponentpublicProductTypegetType(){returntype;}publicvoidsetType(ProductTypetype){this.type=type;}@Temporal(TemporalType.DATE)publicDategetCreatedate(){returncreatedate;}publicvoidsetCreatedate(Datecreatedate){this.createdate=createdate;}@Column(nullable=false)publicIntegergetClickcount(){returnclickcount;}publicvoidsetClickcount(Integerclickcount){this.clickcount=clickcount;第13頁(共49頁)}@Column(nullable=false)publicIntegergetSellcount(){returnsellcount;}publicvoidsetSellcount(Integersellcount){this.sellcount=sellcount;}@ColumnpublicBooleangetIsNew(){returnisNew;}publicvoidsetIsNew(BooleanisNew){this.isNew=isNew;}@Column@SearchableProperty(store=Store.YES)publicStringgetHighlight(){returnhighlight;}publicvoidsetHighlight(Stringhighlight){this.highlight=highlight;}@ColumnpublicBooleangetIsHot(){returnisHot;}publicvoidsetIsHot(BooleanisHot){this.isHot=isHot;第14頁(共49頁)}@ColumnpublicBooleangetIsActivity(){returnisActivity;}publicvoidsetIsActivity(BooleanisActivity){this.isActivity=isActivity;}@Column@SearchableProperty(index=Index.NO,store=Store.YES)publicFloatgetBarginMoney(){returnbarginMoney;}publicvoidsetBarginMoney(FloatbarginMoney){this.barginMoney=barginMoney;}@Column(nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)publicStringgetViewImagePathFront(){returnviewImagePathFront;}publicvoidsetViewImagePathFront(StringviewImagePathFront){this.viewImagePathFront=viewImagePathFront;}@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER,mappedBy="product")publicSet<ProductImgGroup>getViewImages(){returnviewImages;}第15頁(共49頁)@OneToMany(cascade={CascadeType.ALL},mappedBy="product")publicSet<Comment>getComments(){returncomments;}publicvoidsetComments(Set<Comment>comments){ments=comments;}publicvoidsetViewImages(Set<ProductImgGroup>viewImages){this.viewImages=viewImages;}獲取價格區(qū)間組合后的字竄(11.4萬-16萬)@TransientpublicStringgetCompSellPrice(){String[]strs=innerSellPrice.split(";");returnstrs[0]+"萬-"+strs[1]+"萬";}//拆分價格區(qū)間成兩個參數(shù) 11.4;15-->11.415publicString[]splitSellPrice(){returninnerSellPrice.split(";");}publicvoidaddComment(Commentcomment){ments.add(comment);comment.setProduct(this);}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+((code==null)?0:code.hashCode());第16頁(共49頁)returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalProductInfoother=(ProductInfo)obj;if(code==null){if(other.code!=null)returnfalse;}elseif(!code.equals(other.code))returnfalse;returntrue;}}②產(chǎn)品款式實體ProductStyle:@Entity@Searchable(root=false)publicclassProductStyleimplementsSerializable{privatestaticfinallongserialVersionUID=-4926119953511144279L;privateStringid;/** 樣式的名稱**/privateStringname;/** 銷售價(報價)**/privateFloatsellprice=0.0f;第17頁(共49頁)/**庫存**/privateIntegerinventory=0;privateProductInfoproduct;publicProductStyle(){}publicProductStyle(Stringid,Stringname){this.id=id;=name;}publicProductStyle(Stringname){=name;}@ManyToOne(cascade=CascadeType.REFRESH,optional=false)@JoinColumn(name="productcode") @SearchableReferencepublicProductInfogetProduct(){returnproduct;}publicvoidsetProduct(ProductInfoproduct){duct=product;}@Id@Column()@SearchableProperty(index=Index.NO,store=Store.YES)publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}第18頁(共49頁)@Column(length=30,nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES,name="styleName")publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}@Column(nullable=false)@SearchableProperty(index=Index.NO,store=Store.YES)publicFloatgetSellprice(){returnsellprice;}publicvoidsetSellprice(Floatsellprice){this.sellprice=sellprice;}@ColumnpublicIntegergetInventory(){returninventory;}publicvoidsetInventory(Integerinventory){this.inventory=inventory;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;第19頁(共49頁)result=prime*result+((id==null)?0:id.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalProductStyleother=(ProductStyle)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;returntrue;}}③產(chǎn)品圖片組實體/**用戶存放產(chǎn)品展示頁圖片的實體@authorAndy**/@EntitypublicclassProductImgGroupimplementsSerializable{privatestaticfinallongserialVersionUID=-9044933716673525360L;第20頁(共49頁)privateStringid;/**小圖,130px**/privateStringsmallImagePath;/** 畫廊上顯示的圖片,753px**/privateStringmidImagePath;/** 放大后的圖片效果 900px**/privateStringbigImagePath;/** 圖片對應(yīng)產(chǎn)品**/privateProductInfoproduct;publicProductImgGroup(){}publicProductImgGroup(Stringid){super();this.id=id;}@Id@Column(length=36)publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}@Column(length=200)publicStringgetSmallImagePath(){returnsmallImagePath;}publicvoidsetSmallImagePath(StringsmallImagePath){this.smallImagePath=smallImagePath;第21頁(共49頁)}@Column(length=200)publicStringgetMidImagePath(){returnmidImagePath;}publicvoidsetMidImagePath(StringmidImagePath){this.midImagePath=midImagePath;}@Column(length=200)publicStringgetBigImagePath(){returnbigImagePath;}publicvoidsetBigImagePath(StringbigImagePath){this.bigImagePath=bigImagePath;}@ManyToOne(cascade=CascadeType.REFRESH,optional=false)@JoinColumn(name="productcode")publicProductInfogetProduct(){returnproduct;}publicvoidsetProduct(ProductInfoproduct){duct=product;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+((id==null)?0:id.hashCode());第22頁(共49頁)returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalProductImgGroupother=(ProductImgGroup)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;returntrue;}}④品牌實體/**品牌**/@Entity@Searchable(root=false)publicclassBrandimplementsSerializable{privatestaticfinallongserialVersionUID=-4540465642606278764L;/**主鍵**/privateIntegerid;/** 品牌名稱**/privateStringname;/**logo圖片路徑如:/images/brand/2015/12/12/ooo.gif"**/privateStringlogopath;第23頁(共49頁)publicBrand(){}publicBrand(Stringname,Stringlogopath){=name;this.logopath=logopath;}@Id@GeneratedValue@SearchableProperty(index=Index.NO,store=Store.YES)publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}@Column(length=40,nullable=false)@SearchableProperty(index=Index.NOT_ANALYZED,store=Store.YES,name="brandName")publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}@Column(length=80)publicStringgetLogopath(){returnlogopath;}publicvoidsetLogopath(Stringlogopath){第24頁(共49頁)this.logopath=logopath;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+((id==null)?0:id.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalBrandother=(Brand)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;returntrue;}}⑤產(chǎn)品類型實體:/**車型第25頁(共49頁)@authorAndy*/@Entity@Searchable(root=false)publicclassProductTypeimplementsSerializable{/****/privatestaticfinallongserialVersionUID=6716659825995228537L;/**主鍵**/privateIntegerid;/**車型名稱**/privateStringtypeName;/** 產(chǎn)品類型下的所有產(chǎn)品**/privateSet<ProductInfo>products=newHashSet<ProductInfo>();publicProductType(){}publicProductType(StringtypeName){super();this.typeName=typeName;}@OneToMany(mappedBy="type",cascade=CascadeType.REMOVE)publicSet<ProductInfo>getProducts(){returnproducts;}publicvoidsetProducts(Set<ProductInfo>products){ducts=products;}@Id @GeneratedValue@SearchableProperty(index=Index.NO,store=Store.YES)第26頁(共49頁)publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}@Column(length=36,nullable=false)@SearchableProperty(index=Index.NOT_ANALYZED,store=Store.YES,name="typeName")publicStringgetTypeName(){returntypeName;}publicvoidsetTypeName(StringtypeName){this.typeName=typeName;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+((id==null)?0:id.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())第27頁(共49頁)returnfalse;finalProductTypeother=(ProductType)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;returntrue;}3.2商城用戶管理3.2.1 程序描述此模塊主要功能用戶用戶登陸注冊,用戶查看個人中心管理訂單和個人信息。同時在后臺,管理對用戶信息進行維護,查看用戶信息,或禁用用戶。3.2.2 程序功能①用戶注冊:包括提交注冊信息和郵箱驗證②用戶登陸③后臺禁用用戶④個人中心:模塊是用戶對個人信息的維護,包括 :賬戶管理,購買記錄管理,收藏夾3.2.3 程序輸入項①用戶登陸輸入項用戶名或郵箱:email String不能為空,長度不能超過 100密碼:passwordString不能為空 長度不能超過30②用戶注冊輸入項郵箱:emailString長度不能超過50手機號碼:telString長度不能超過 13用戶名:userNameString密碼:passwordString長度不能超過30所在城市:city String長度不能超過50詳細地址:addressString長度不能超過100第28頁(共49頁)郵編:postalcodeString長度固定為6個字符③郵箱激活激活碼:activityCodeString 長度72位④禁用或啟用用戶用戶id:idStringc長度為36位禁用或啟用項:visiableBoolean⑤修改個人信息用戶名:userNameString長度不超過32位聯(lián)系電話:telString長度為11位密碼:passwordString長度不超過30⑥修改地址薄收貨地址:addressString長度不超過100郵編:postalcodeString長度固定為6⑦刪除搜藏搜藏家id:favoriteIdString長度固定32位⑧評價商品評價內(nèi)容:contentString數(shù)據(jù)庫中長度不能超過 100滿意度:satisfyString長度為不超過43.2.4 程序輸出項①用戶登陸:Action控制跳轉(zhuǎn)到產(chǎn)品顯示頁面②用戶注冊:Action控制跳轉(zhuǎn)到郵箱激活頁面③郵箱激活:返回到本站用戶登陸頁面④啟用或禁用用戶:Action控制跳轉(zhuǎn)到用戶列表頁⑤查看用戶信息列表:Action控制跳轉(zhuǎn)到用戶列表頁⑥查看用戶個人詳細信息: Action控制跳轉(zhuǎn)到用戶詳細頁⑦修改個人信息:Action控制跳轉(zhuǎn)到個人中心首頁⑧修改地址?。篈ction控制跳轉(zhuǎn)到個人中心首頁⑨刪除搜藏:Action控制跳轉(zhuǎn)到搜藏頁3.2.5 涉及算法①用戶注冊密碼的保存采用 MD5加密,java代碼算法如下第29頁(共49頁)**MD5加密工具包@authorAndy**/publicclassMD5{privatefinalstaticString[]hexDigits={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};/**轉(zhuǎn)換字節(jié)數(shù)組為16進制字串**@paramb*
字節(jié)數(shù)組*
@return16進制字串*/publicstaticStringbyteArrayToHexString(byte[]b){StringBufferresultSb=newStringBuffer();for(inti=0;i<b.length;i++){resultSb.append(byteToHexString(b[i]));}returnresultSb.toString();}privatestaticStringbyteToHexString(byteb){intn=b;if(n<0)n=256+n;intd1=n/16;第30頁(共49頁)intd2=n%16;returnhexDigits[d1]+hexDigits[d2];}publicstaticStringMD5Encode(Stringorigin){StringresultString=null;try{resultString=newString(origin);MessageDigestmd=MessageDigest.getInstance("MD5");resultString=byteArrayToHexString(md.digest(resultString.getBytes()));}catch(Exceptionex){}returnresultString;}}3.2.6 實體類設(shè)計①網(wǎng)站用戶Buyer實體@EntitypublicclassBuyerimplementsSerializable{privatestaticfinallongserialVersionUID=8394979715028899027L;/**主鍵**/privateStringid=CommonUtils.uuid();/** 用戶名**/privateStringuserName;//只允許字母/數(shù)字/下劃線/** 密碼**/privateStringpassword;//采用MD5加密第31頁(共49頁)/** 電子郵箱**/privateStringemail;/** 是否激活,如果為true,表示已激活**/privateBooleanvisible=false;/**是否啟用**/privateBooleancanUse=true;/**激活碼,它是唯一值,即每個用戶的激活碼是不同的 **/privateStringactivationCode;/** 注冊時間**/privateDateregTime=newDate();/** 所在省*/privateStringprovince;/** 聯(lián)系信息**/privateContactInfocontactInfo=newContactInfo();/** 所在市**/privateStringcity;/** 收藏夾**/privateSet<Favorite>favorites=newHashSet<Favorite>();@Temporal(TemporalType.TIMESTAMP)@Column(nullable=false)publicDategetRegTime(){returnregTime;}publicvoidsetRegTime(DateregTime){this.regTime=regTime;}publicBuyer(){}第32頁(共49頁)publicBuyer(StringuserName){this.userName=userName;}@OneToOne(cascade=CascadeType.ALL)@JoinColumn(name="contactid")publicContactInfogetContactInfo(){returncontactInfo;}publicvoidsetContactInfo(ContactInfocontactInfo){this.contactInfo=contactInfo;}publicBuyer(StringuserName,Stringpassword){this.userName=userName;this.password=password;}publicBuyer(StringuserName,Stringpassword,Stringemail){this.userName=userName;this.password=password;this.email=email;}@IdpublicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}第33頁(共49頁)@Column(length=18)publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}@Column(length=32,nullable=false)publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}@Column(length=50,nullable=false)publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}@Column(nullable=false)publicBooleangetCanUse(){returncanUse;}publicvoidsetCanUse(BooleancanUse){this.canUse=canUse;}第34頁(共49頁)@Column(nullable=false)publicBooleangetVisible(){returnvisible;}publicvoidsetVisible(Booleanvisible){this.visible=visible;}@Column(unique=true)publicStringgetActivationCode(){returnactivationCode;}publicvoidsetActivationCode(StringactivationCode){this.activationCode=activationCode;}@ColumnpublicStringgetProvince(){returnprovince;}publicvoidsetProvince(Stringprovince){vince=province;}@ColumnpublicStringgetCity(){returncity;}publicvoidsetCity(Stringcity){this.city=city;第35頁(共49頁)}@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER,mappedBy="buyer")publicSet<Favorite>getFavorites(){returnfavorites;}publicvoidsetFavorites(Set<Favorite>favorites){this.favorites=favorites;}publicvoidaddFavorite(Favoritefavorite){if(!this.favorites.contains(favorite)){this.favorites.add(favorite);favorite.setBuyer(this);}}@TransientpublicintgetFavoriteSize(){returnfavorites.size();}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result((userName==null)?0:userName.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)第36頁(共49頁)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalBuyerother=(Buyer)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;returntrue;}}②用戶聯(lián)系信息實體@EntitypublicclassContactInfoimplementsSerializable{privatestaticfinallongserialVersionUID=-4336182674133849896L;privateIntegercontactid;/** 地址**/privateStringaddress;/** 郵編**/privateStringpostalcode;/** 手機**/privateStringmobile;/** 所屬用戶**/privateBuyerbuyer;@Id@GeneratedValue第37頁(共49頁)publicIntegergetContactid(){returncontactid;}publicvoidsetContactid(Integercontactid){this.contactid=contactid;}@Column(length=100,nullable=false)publicStringgetAddress(){returnaddress;}publicvoidsetAddress(Stringaddress){this.address=address;}@Column(length=6)publicStringgetPostalcode(){returnpostalcode;}publicvoidsetPostalcode(Stringpostcode){this.postalcode=postcode;}@Column(length=11)publicStringgetMobile(){returnmobile;}publicvoidsetMobile(Stringmobile){this.mobile=mobile;}@OneToOne(mappedBy="contactInfo",cascade=CascadeType.REFRESH)publicBuyergetBuyer(){returnbuyer;第38頁(共49頁)}publicvoidsetBuyer(Buyerbuyer){this.buyer=buyer;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result((contactid==null)?super.hashCode():contactid.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalContactInfoother=(ContactInfo)obj;if(contactid==null){if(other.contactid!=null)returnfalse;}elseif(!contactid.equals(other.contactid))returnfalse;returntrue;}}第39頁(共49頁)③收藏夾實體@EntitypublicclassFavoriteimplementsSerializable{privatestaticfinallongserialVersionUID=4166920429932834707L;privateStringid;privateProductInfoproduct;privateBuyerbuyer;publicFavorite(){}publicFavorite(Stringid,ProductInfoproduct){this.id=id;duct=product;}@IdpublicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}@OneToOne(cascade={CascadeType.REFRESH,CascadeType.REMOVE})publicProductInfogetProduct(){returnproduct;}publicvoidsetProduct(ProductInfoproduct){duct=product;}@ManyToOne(cascade=CascadeType.REFRESH,optional=false)@JoinColumn(name="buyerid")第40頁(共49頁)publicBuyergetBuyer(){returnbuyer;}publicvoidsetBuyer(Buyerbuyer){this.buyer=buyer;}@OverridepublicinthashCode(){Stringresult=product.getCode()+"_";returnresult.hashCode();}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;finalFavoriteother=(Favorite)obj;if(product==null){if(duct!=null)returnfalse;}elseif(!product.equals(duct))returnfalse;returntrue;}}3.3 購物車第41頁(共49頁)3.3.1 程序描述用戶在瀏覽商品時,把需要購買的商品添加到購物車中。 購物車生成商品列表信息。用戶在購物車確認要購買的商品,則可以直接購買。購物車的存在,一直存放在session中。使用購物車時,用戶可以刪除購物車中的一項商品,還可以清空購物車中的所有商品。3.3.2 程序功能①添加商品進入購物車②刪除購物車中的購物項③清空session中的購物車3.3.3 程序輸入項①添加商品到購物車輸入項商品編號:productCodeString固定長度32位商品對應(yīng)的款式編號:styleIdString固定長度32位②刪除購車中某物項輸入項購物項編號:itemidString固定長度32位③清空購物車輸入項:無3.3.4 程序輸出項①添加購物車輸出項Action控制跳轉(zhuǎn)到購物車列表: itemsList<BuyItem>②刪除購物項輸出項Action控制跳轉(zhuǎn)購物車列表:itemsList<BuyItem>③清空購物車輸出項:無3.3.5 涉及算法在購物車中添加商品,相同商品相同款式如果添加進來,購物車不會繼續(xù)增加一條購物項,只會把原先有的購物項購物數(shù)量加上相應(yīng)的購物數(shù)量加上重新要購買的購物數(shù)量。如果添加的購物項不存在在購物車中,購物車就會新增一條購物項。這樣的實現(xiàn)需
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育培訓合同3篇
- 旅游區(qū)塊鏈技術(shù)勞動合同模板3篇
- 放心奶粉代購協(xié)議3篇
- 房屋買賣安全承諾3篇
- 新版醫(yī)患糾紛協(xié)議書3篇
- 擋水墻工程承包協(xié)議范本3篇
- 教育課程設(shè)計師勞動合同3篇
- 生態(tài)環(huán)境保護定向捐贈協(xié)議
- 照明設(shè)備租用合同
- 保障性住房轉(zhuǎn)讓合同范例
- 中小學生反恐防暴安全教育課件
- 速凍水餃項目立項報告
- 信陽市光山縣2023-2024學年七年級上學期期末數(shù)學測試卷(含答案)
- 物業(yè)工程維修作業(yè)安全操作指南
- 昆山通海中學小升初考試試卷
- SA8000-2014社會責任績效委員會SPT組織架構(gòu)、職責和定期檢討及評審會議記錄
- MMPI14個量表得分題目號碼
- 汽車維修服務(wù)實施方案
- 大田縣2023-2024學年數(shù)學四年級第一學期期末質(zhì)量跟蹤監(jiān)視模擬試題含答案
- 倒閘操作票的填寫教學課件
- 年處理噸玄參提取車間初步設(shè)計
評論
0/150
提交評論