版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽工业大学软件开发技术报告课题名称购物商城系统的设计与实现学院工商学院专业班级软件工程1041班组长XXX成员XXXXXX指导教师XXX二Ο一三年九月二十日摘要网页,购物商城,拍单,发货。 目录1.绪论11.1概述11.2开发环境与工具介绍11.2.1网上商城工程的研究状况12.可行性研究22.1技术可行性22.2经济可行性22.3操作可行性22.4结论23.系统需求分析33.1用户需求分析33.1.1用户需求33.1.2系统功能需求33.1.3系统性能需求33.1.4数据分析33.2系统E-R图34.系统设计44.1数据库逻辑结构设计44.2功能模块图及分模块功能描述44.2.1系统的功能模块图44.2.2系统功能模块简介45.系统实施55.1建立数据库55.2数据库连接55.3主要模块实施55.3.1登录模块的业务开发55.3.2管理员模块的业务开发55.4系统测试55.4.1软件测试的对象55.4.2软件测试的结果56.系统说明66.1开发环境66.2系统安装与配置6总结7参考文献81绪论1.1概述电子商务在当今已经不再是一种新兴产业,但是在早期由于网站企业的信誉度难以认证、网上交易的法律不健全、物流不兴旺等一系列原因,一定程度上制约了电子商务开展。进入21世纪以来,随着整个互联网的开展,限制电子商务的各种问题根本上都已经被解决,致使越来越多的企业进入电子商务的洪潮中,到目前为止,国内已经有近1000万的中小企业开始尝试通过互联网来增加对企业的影响力及销售额。传统的购物方式虽然仍处于市场的主导地位,但是这种方式并不具备便捷、随意、时尚等网络购物具有的优势,所以电子商务不仅正在以迅猛之势席卷整个网络,而且还为购物市场做了一次革命性的改变。1.2开发环境与工具介绍此系统用到的软件如下:EclipseMySQL数据库Web应用效劳器:Tomcat1.2.2网上商城工程的研究状况 随着社会的不断进步,网络的不断开展,越来越多的网上商城相继出现。列入亚马逊网上书店,当当网,淘宝,京东等,现在的客户足不出户便可以购置商品,从而节约大量的时间。传统的商店存在许多弊端,最显著的就是商品种类少,经营本钱高,相比之下,网上商城具有以下优势:商品种类多,信息量大;方便快捷;本钱低;节约客户时间。网上购物,就是通过互联网检索商品信息,并通过电子订购发出购物请求,然后填上私人账号或信用卡,厂商通过邮购的方式发货,或者是通过快递的方式送货上门。2可行性研究2.1技术可行性该系统必须包含顾客对商品的查询,购置,下订单,管理人员对商品的管理,对订单的管理,对管理员的管理,该系统采用Tomcat+MySQL,严格按照MVC的模式完成。网络应用根底设施完善,由于信息技术全面开展,网站的开发采用比拟广泛的JSP+SQLServer数据库架构。2.2经济可行性传统的销售方式是商家把商品放在商店里供消费者挑选,店铺的规模和位置等客观因素影响着商店的客流量,并且商品的存放与销售需要人力进行管理,雇员的工资、店面的租金等又增加了本钱,消费者也不能迅速找到自己需要的商品,而一个网络购物商城只需要一个存放商品的仓库,比租用一个店面节省很多,也不需要太多的人力来管理,更不会因为店面的面积影响客流量,客户足不出户就能够买到自己所需要的商品。2.3操作可行性该工程需在三个礼拜时间内完成,由于前期只需要做出框架,实现简单的业务操作,因此只要我们做出详细的时间规划,可以完成该工程的开发。2.4结论根据以上分析,技术上没问题,时间也充裕,而且还可以锻炼我们的实际操作动手能力,搞好团队内部的合作。3系统需求分析3.1用户需求分析用户需求统一友好的操作界面,保证系统的易用性,方便用户操作。具备商品信息的展示功能,方便浏览者对商品信息进行浏览与比拟。标准的商品分类,方便浏览者分类查找商品。完美的购物车功能与用户结账功能。订单信息查询功能,商品信息查询功能。全面的后台管理功能,以方便管理员对网站的信息进行更新与管理。3.1.2系统功能需求客户端功能:用户的注册,修改,登录;商品的购置,搜索,查看;购物车里面商品的删除与修改;然后就是订单的提交,以及收货人的信息。后台功能:管理员的登录与修改密码;商品的增删改查;订单的管理;管理管理员。3.1.3系统性能需求通过相关调查发现,在编写网上购物商城系统时,登陆者分为两种角色用户和管理员。用户在登陆进入该网上购物商城后,可以选择查看各种商品的详细信息并选择购置。此外,用户还能通过输入订单编号查看自己的详细订货信息。管理员登陆后,不仅可以查看商品销售情况,还可以管理会员、商品、仓库和其自身的信息。管理员可以根据实际情况添加其他管理员以维护该网上购物商城的购物环境和平安。3.1.4数据分析淘宝网——亚洲最大、最平安的网上交易平台,提供各类服饰、美容、家居、数码、话费/点卡充等等,与人们生活所需息息相关商品、效劳。淘宝网现在业务跨越C2C〔个人对个人〕、B2C〔商家对个人〕两大局部。截止2023年12月31日,淘宝网注册会员超9800万人,覆盖了中国绝大局部网购人群;2023年交易额为999.6亿元,占中国网购市场80%的份额。淘宝网8月20日公布了截至2023年6月30日的上半年业绩报告。报告显示,2023年上半年淘宝实现交易额809亿元,逼近去年全年999.6亿成交。比照国家统计局公布的上半年社会消费品零售总额58711亿元。3.2系统E-R图 1)用户的E-R图用户用户用户名密码E-mail用户ID 2)管理员E-R图管理员管理员管理员名管理员ID管理员级别热管理员密码 3)商品E-R图商品商品商品编号商品名称所属类别上架日期商品简介图片URL商品说明商品数量浏览量商品价格 4)订单E-R图订单订单订单号订单接收者订单处理人ID订购总价订单接收者地址订单产生日期订购人ID订单接收者订单发送状态4系统设计4.1数据库逻辑结构设计 (1)用户根本信息表: 用于记录用户的根本信息,其主要字段为用户名和密码,具体设计如下表所示。字段名称数据类型字段大小是否主键是否为空说明UidintN/A是否用户IDUnamevarchar50否否用户名Upwdvarchar20否否密码Uemailvarchar100否是用户Email建立本表的SQL语句如下。CreatetableUserInfo(Uidintprimarykey,Unamevarchar(50)notnull,Upwdvarchar(20)notnull,Uemailvarchar(100));管理员根本信息表:用于记录管理员的用户名、密码及级别,详细情况如下表。字段名称数据类型字段大小是否主键是否为空说明AidintN/A是否管理员IDAnamevarchar50否否管理员名Apwdvarchar20否否管理员密码Alevelvarchar10否是管理员级别建立本表的SQL语句如下。CreatetableAdminInfo(Aidintprimarykey,Anamevarchar(50)notnull,Apwdvarchar(20)notnull,Alevelvarchar(10)defalut‘普通’);商品根本信息表:该表用于记录商品的根本信息,其具体实现如下表所示。字段名称数据类型字段大小是否主键是否为空说明GidintN/A是否商品IDGnamevarchar100否否商品名称GpricedoubleN/A否否商品价格Gclassvarchar50否是商品类型GamountintN/A否否商品数量GdatedatetimeN/A否是上架日期Gimgurlvarchar100否是图片URLGlookintN/A否是商品浏览量GintrotextN/A否是商品说明GbrieftextN/A否是商品简介建立本表的SQL语句如下。CreatetableGoodsInfo(Gidintprimarykey,Gnamevarchar(100)notnull,Gpricedoublenotnullxx,Gclassvarchar(50〕default’杂货’,Gamountintnotnull,Gdatedatetime,Gimgurlvarchar(100)defalut‘img/default.jpg’,Glookintdefalut0,Gintotext,Gbrieftext);订单根本信息表:该表用来记录用户所下订单的根本信息,包括收货人及订单的根本信息,其各字段的详细信息如下表。字段名称数据类型字段大小是否主键是否为空说明OidIntN/A是否订单号OdatedatetimeN/A否否订单生产日期AidintN/A否是订单处理人IDOstatevarchar20否是订单发送状态Orecnamevarchar50否否订单接收者Orecadrvarchar200否否订单接受者地址Orectlevarchar20否是订单接受者UidintN/A否是订购人IDOtotalpricedoubleN/A否是订购总价建立本表的SQL语句如下。CreatetableOrderInfo〔Oidintprimarykey,Odatedatetimenotnull,AidintreferencesAdminInfo(Aid),Ostatevarchar(20),Orecnamevarchar(50)notnull,Orecadrvarchar(200)notnull,Oreclevarchar(20),UidintreferencesUserInfo(Uid),Ototalpricedouble);订单明细表:该表用来记录用户订单中物品的信息,包括商品的ID和商品的数量等。具体设计如下表。字段名称数据类型字段大小是否主键是否为空说明OGidintN/A是否订单明细表IDOidintN/A否否订单号UidintN/A否否订购人IDGidintN/A否否商品IDOGamountintN/A否否商品数量OGtotalpricedoubleN/A否否商品总价建立本表的SQL语句如下。CreatetableOrderGoods(OGidintprimarykey,OidintnotnullreferencesOrderInfo(Oid),UidintnotnullreferencesUserInfo(Uid),GidintnotnullreferencesGoodsInfo(Gid),OGamountintnotnull,OGtotalpricedoublenotnull);4.2功能模块图及分模块功能描述4.2.1系统的功能模块图1)购物商城用户功能模块图购物商城用户功能模块图购物商城用户功能模块图用户登录用户注册修改信息购物车订单修改删除结账收货人信息确认订单 2)购物商城管理员功能模块图购物商城管理员功能模块图购物商城管理员功能模块图商品管理订单管理管理员查询 添加修改删除查找删除订单添加删除查看重置密码4.2.2系统功能模块简介用户翻开网页之后,首先是登录自己的个人账号,如果没有,可以注册,登录之后,用户也可以修改自己的个人注册信息。然后就是用户浏览商品,选择自己想要买的,然后参加购物车,在购物车里面,用户可以修好购置商品的数量,也可以删除商品,然后就是点击结算,提交订单,这里要填写自己收货人的地址,然后确认信息,提交订单信息交给管理员。 管理员登陆之后,首先可以管理自己的商品,可以添加商品,删除商品,修改商品信息,等等。其次就是可以查看订单,管理订单,确认发货和删除订单也可以查看发送状态,是否发货。还有一个管理员功能,就是管理管理员,有一个超级管理员,可以管理一般的管理员,重置密码等。 以上就是该系统的功能简介。5系统实施5.1建立数据库1)创立数据库Createdatabaseshopping;Useshopping; 2)管理员信息表createtableAdminInfo(Aidintprimarykey,Anamevarchar(50)notnull,Apwdvarchar(20)notnull,Alevelvarchar(10)default'普通'); 3)商品信息表createtableGoodsInfo(Gidintprimarykey,Gnamevarchar(100)notnull,Gpricedoublenotnull,Gclassvarchar(50)default'杂货',Gamountintnotnull,GdateDatetime,Gimgurlvarchar(100)default'img/default.jpg',Glookintdefault0,Gintrotext,Gbrieftext); 4)物品排序表createtableOrderGoods(OGidintprimarykey,OidintnotnullreferencesOrderInfo(Oid),UidintnotnullreferencesUserInfo(Uid),GidintnotnullreferencesGoodsInfo(Gid),OGamountintnotnull,OGtotalpricedoublenotnull); 5)排序信息表createtableOrderInfo(Oidintprimarykey,OdateDatetimenotnull,AidintreferencesAdminInfo(Aid),Ostatevarchar(20),Orecnamevarchar(50)notnull,Orecadrvarchar(200)notnull,Orectelvarchar(20),UidintreferencesUserInfo(Uid),Ototalpricedouble); 6)用户信息表createtableUserInfo(Uidintprimarykey,Unamevarchar(50)notnull,Upwdvarchar(20)notnull,Uemailvarchar(100));5.2数据库连接1)在Tomcat安装目录下conf目录下server.xml中最后的“</Host>〞标记之前添加如下配置: <Contextpath="/mycart"docBase="mycart" debug="5"reloadable="true"crossContext="true"workDir=""> <Resourcename="jdbc/cartds" auth="Container" type="javax.sql.DataSource" maxActive="100"maxIdle="30"maxWait="10000" username="root"password="" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/shopping"/> </Context> 2)在本应用的WEB-INF目录下web.xml文件中添加如下配置<resource-ref><description>DBConnection</description><res-ref-name>jdbc/cartds</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>5.3主要模块实施5.3.1登录模块的业务处理开发1)登录局部if(action.equals("login")) {//当动作为登录动作时//获得用户名和密码 Stringuid=request.getParameter("uid").trim(); Stringpwd=request.getParameter("pwd").trim(); Stringuname=newString(uid.getBytes(),"ISO-8859-1"); Stringsql="selectUidfromUserInfowhereUname='"+uname+"'andUpwd='"+pwd+"'";booleanflag=DBcart.isLegal(sql);if(flag) {//当该用户存在时//将用户名存入session中 session.setAttribute("user",uid);//页面重定向到首页 response.sendRedirect("index.jsp"); }else { Stringmsg="对不起,登录失败,请重新登录!!!"; pageForward(msg,request,response); } }2)注册局部elseif(action.equals("register")) {//用户注册 Stringuname=request.getParameter("uname").trim(); Stringfpwd=request.getParameter("fpwd").trim(); Stringemail=request.getParameter("email").trim(); Stringsql="selectUidfromUserInfowhereUname='"+uname+"'";booleanflag=DBcart.isLegal(sql);if(flag) {//该用户名已经被注册时 Stringmsg="对不起,该用户名已经存在,请重新注册!!!"; pageForward(msg,request,response); }else {intuid=DBcart.getID("UserInfo","Uid");//将编码gb2312转码为ISO-8859-1 uname=newString(uname.getBytes(),"ISO-8859-1"); fpwd=newString(fpwd.getBytes(),"ISO-8859-1");//插入用户注册信息 Stringtemp="insertintoUserInfo(Uid,Uname,Upwd,Uemail)"+"values("+uid+",'"+uname+"','"+fpwd+"','"+email+"')";inti=DBcart.updateTable(temp);if(i==0) {//没有插入数据库 Stringmsg="对不起,注册失败,请重新注册!!!"; pageForward(msg,request,response); }else { Stringmsg="恭喜您,注册成功!!!"; pageForward(msg,request,response); } } } 3)用户修改个人信息elseif(action.equals("uinfomodify")) {//用户修改个人信息//得到用户修改后的信息 Stringupwd=request.getParameter("upwd").trim(); Stringuemail=request.getParameter("uemail").trim(); Stringuname=(String)session.getAttribute("user");//将汉字转码 uname=newString(uname.getBytes(),"ISO-8859-1");//更新数据库用户信息 Stringsql="updateUserInfosetupwd='"+upwd +"',uemail='"+uemail+"'whereuname='"+uname+"'";inti=DBcart.updateTable(sql);if(i==0) {//更改信息失败 Stringmsg="对不起,信息修改失败!!!"; pageForward(msg,request,response); }else {//信息修改成功 Stringmsg="恭喜您,信息修改成功!!!"; pageForward(msg,request,response); } }5.3.2管理员模块的业务处理开发1)登录局部if(action.equals("login")) {//管理员登陆时//得到登陆的用户名和密码 Stringapwd=request.getParameter("apwd").trim(); Stringaname=request.getParameter("aname").trim(); Stringsql="selectAidfromAdminInfowhereAname='"+ aname+"'andApwd='"+apwd+"'"; sql=newString(sql.getBytes(),"ISO-8859-1");//判断该用户是否正确booleanflag=DBcart.isLegal(sql);if(flag) {//管理员登陆成功 session.setAttribute("admin",aname); response.sendRedirect("adminindex.jsp"); }else {//登陆失败 Stringmsg="对不起,登陆失败,请重新登陆!!!"; Stringurl="/error.jsp"; pageForward(msg,url,request,response); } }2)商品管理局部elseif(action.equals("goodsManage")) {//管理商品时//得到要修改或删除商品的ID Stringgid=request.getParameter("gid").trim(); Stringsql="selectGid,Gname,Gprice,Gamount,Gclass,Gdate,Gimgurl,"+"Gintro,GbrieffromGoodsInfowhereGid="+Integer.parseInt(gid);//得到该商品的信息 Vector<String[]>vgoods=DBcart.getInfoArr(sql); request.setAttribute("vgoods",vgoods); ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher("/modifygoods.jsp"); rd.forward(request,response); }elseif(action.equals("addgoods")) {//增加商品//接受新添加商品的各个属性 Stringgname=request.getParameter("gname").trim(); Stringgprice=request.getParameter("gprice").trim(); Stringgamount=request.getParameter("gamount").trim(); Stringgclass=request.getParameter("gclass").trim(); Stringgurl=request.getParameter("gurl").trim(); Stringgintro=request.getParameter("gintro").trim(); Stringgbrief=request.getParameter("gbrief").trim();intgid=DBcart.getID("GoodsInfo","Gid"); Stringsql="";if(!gclass.equals("")&&!gurl.equals("")) {//均输入商品类别和图片URL//组合成sql语句 sql="insertintoGoodsInfo(Gid,Gname,Gprice,"+"Gamount,Gdate,Gclass,Gimgurl,Gintro,Gbrief)"+"values("+gid+",'"+gname+"',"+Double.parseDouble(gprice)+","+Integer.parseInt(gamount)+",now(),'"+gclass+"','"+gurl+"','"+gintro+"','"+gbrief+"')"; }elseif(!gclass.equals("")&&gurl.equals("")) {//输入商品类别,但图片URL没有输入 sql="insertintoGoodsInfo(Gid,Gname,Gprice,"+"Gamount,Gdate,Gclass,Gintro,Gbrief)"+"values("+gid+",'"+gname+"',"+Double.parseDouble(gprice)+","+Integer.parseInt(gamount)+",now(),'"+gclass+"','"+gintro+"','"+gbrief+"')"; }elseif(gclass.equals("")&&!gurl.equals("")) {//输入图片URL,但没有商品类别 sql="insertintoGoodsInfo(Gid,Gname,Gprice,"+"Gamount,Gdate,Gimgurl,Gintro,Gbrief)"+"values("+gid+",'"+gname+"',"+Double.parseDouble(gprice)+","+Integer.parseInt(gamount)+",now(),'"+ gurl+"','"+gintro+"','"+gbrief+"')"; }else {//商品类别和图片URL均没有输入 sql="insertintoGoodsInfo(Gid,Gname,Gprice,"+"Gamount,Gdate,Gintro,Gbrief)"+"values("+gid+",'"+gname+"',"+Double.parseDouble(gprice)+","+Integer.parseInt(gamount)+",now(),'"+gintro+"','"+gbrief+"')"; }//将gb2312转码为iso-8859-1并更新数据库 sql=newString(sql.getBytes(),"ISO-8859-1");inti=DBcart.updateTable(sql); Stringmsg="";if(i==1) { msg="恭喜您,商品添加成功!!!"; }else { msg="对不起,商品添加失败!!!"; } pageForward(msg,"/error.jsp",request,response); }elseif(action.equals("modify")) {//修改商品信息//接受修改后商品的各个属性值 Stringgid=request.getParameter("gid").trim(); Stringgname=request.getParameter("gname").trim(); Stringgprice=request.getParameter("gprice").trim(); Stringgamount=request.getParameter("gamount").trim(); Stringgclass=request.getParameter("gclass").trim(); Stringgdate=request.getParameter("gdate").trim(); Stringgurl=request.getParameter("gurl").trim(); Stringgintro=request.getParameter("gintro").trim(); Stringgbrief=request.getParameter("gbrief").trim();//将字符串转换为数值型intid=Integer.parseInt(gid);doubleprice=Double.parseDouble(gprice);intamount=Integer.parseInt(gamount);//得到要更新的Sql语句 Stringsql="updateGoodsInfosetgname=\""+gname+"\","+"gprice="+price+",gamount="+amount+",gclass='"+ gclass+"',gdate='"+gdate+"',gimgurl='"+gurl+"',"+"gintro='"+gintro+"',gbrief='"+gbrief+"'wheregid="+id;//将sql转码,并执行更新 sql=newString(sql.getBytes(),"ISO-8859-1");inti=DBcart.updateTable(sql); Stringmsg="";if(i==1) { msg="恭喜您,商品修改成功!!!"; }else { msg="对不起,商品修改失败!!!"; } pageForward(msg,"/error.jsp",request,response); }elseif(action.equals("delete")) {//删除商品//得到要删除商品的ID Stringgid=request.getParameter("gid");//将ID转换为数值型intid=Integer.parseInt(gid);//当删除商品时,只将该商品数量置为0 Stringsql="updateGoodsInfosetgamount=0whereGid="+id;inti=DBcart.updateTable(sql); Stringmsg="";if(i==1) { msg="恭喜您,商品修改成功!!!"; }else { msg="对不起,商品修改失败!!!"; } pageForward(msg,"/error.jsp",request,response); }5.3.3订单模块的业务处理开发 1)用户订单业务elseif(action.equals("saveRec")) {//保存收货人信息放入session//收到各参数 Stringrecname=request.getParameter("recname"); Stringrecadr=request.getParameter("recadr"); Stringrectel=request.getParameter("rectel"); String[]recMsg=newString[3]; recMsg[0]=recname.trim(); recMsg[1]=recadr.trim(); recMsg[2]=rectel.trim();//放入session并重定向到订单页 session.setAttribute("recMsg",recMsg); response.sendRedirect("order.jsp"); }elseif(action.equals("recModify")) {//用户修改收货人信息时 Stringrecname=request.getParameter("recname").trim(); Stringrecadr=request.getParameter("recadr").trim(); Stringrectel=request.getParameter("rectel").trim(); String[]recMsg=(String[])session.getAttribute("recMsg");//当收货人信息为空时if(recMsg==null) {//重定向到首页 response.sendRedirect("index.jsp"); }else {//修改session里面收货人的信息recMsg[0]=recname;recMsg[1]=recadr;recMsg[2]=rectel; session.setAttribute("recMsg",recMsg); response.sendRedirect("order.jsp"); } }elseif(action.equals("orderConfirm")) {//当用户确认订单动作时 CartBeanmycart=(CartBean)session.getAttribute("mycart");//该对象为空,那么返回首页if(mycart==null) { response.sendRedirect("index.jsp"); }else {//得到向订单根本信息表中插入数据的sql String[]recMsg=(String[])session.getAttribute("recMsg");doubleoprice=mycart.getAccount();intoid=DBcart.getID("OrderInfo","Oid"); Stringuname=(String)session.getAttribute("user"); Stringsql="selectUidfromUserInfowhereUname='"+uname+"'";intuid=DBcart.getSelectId(sql); Stringupsql="insertintoOrderInfo(Oid,Odate,Ostate,Orecname,"+"Orecadr,Orectel,Uid,Ototalprice)values("+oid+",now(),'未发货','"+recMsg[0]+"','"+recMsg[1]+"','"+ recMsg[2]+"',"+uid+","+oprice+")"; //得到向订单货物表中插入数据的sql Vector<String[]>vgoods=mycart.getCartContent();intogid=DBcart.getID("OrderGoods","OGid"); String[]sqlarr=newString[vgoods.size()+1];for(inti=0;i<vgoods.size();i++) { String[]ginfo=vgoods.get(i);intgid=Integer.parseInt(ginfo[3]);intgamount=Integer.parseInt(ginfo[2]);doublegprice=Double.parseDouble(ginfo[1]);doubletotalprice=gprice*gamount; Stringtemp="insertintoOrderGoods(OGid,Oid,Uid,Gid,OGamount,"+"OGtotalprice)values("+ogid+","+oid+","+uid+","+gid+","+gamount+","+totalprice+")"; sqlarr[i]=temp; ogid++; } sqlarr[vgoods.size()]=upsql;//执行该事务booleanflag=DBcart.batchSql(sqlarr); Stringmsg="";if(!flag) { msg="对不起,订单提交失败"; }else { msg="恭喜你,订单提交成功"; }//将收货人信息和javaBean对象设为空 session.setAttribute("recMsg",null); session.setAttribute("mycart",null); pageForward(msg,request,response); } } 2)管理员订单业务elseif(action.equals("orderPageChange")) {//订单换页时//得到javaBean对象 AdminBeanadBean=(AdminBean)session.getAttribute("adBean");if(adBean==null) { adBean=newAdminBean(); }//接受参数 StringcurPage=request.getParameter("curPage"); StringselPage=request.getParameter("selPage");//设置当前页记录条数为10 DBcart.setSpan(10);if(curPage!=null) {//用户通过点击上,下一页按钮时intpage=Integer.parseInt(curPage.trim());//记住当前页 adBean.setCurPage(page); }else {//当用户点击下拉列表框时intpage=Integer.parseInt(selPage.trim()); adBean.setCurPage(page); }//得到当前换页所执行的sql Stringsql=adBean.getSql();//得到换页后页面的内容 Vector<String[]>vorder=DBcart.getPageContent(adBean.getCurPage(),sql); request.setAttribute("vorder",vorder); session.setAttribute("adBean",adBean);//恢复记录跨度为2 DBcart.setSpan(2);//forward到修改的主页面 Stringurl="/ordermanage.jsp"; ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); }elseif(action.equals("orderSearch")) {//订单搜索//得到javaBean对象 AdminBeanadBean=(AdminBean)session.getAttribute("adBean");if(adBean==null) { adBean=newAdminBean(); } Stringtxtsearch=request.getParameter("txtsearch"); Stringtype=request.getParameter("type"); Stringsql="";//将每页记录数定为10 DBcart.setSpan(10); adBean.setCurPage(1);if(txtsearch!=null) {//用户在文本框中输入内容搜索intoid=Integer.parseInt(txtsearch.trim()); sql="selectOid,Uname,Odate,OstatefromOrderInfo,UserInfo"+"whereOid="+oid+"andOrderInfo.Uid=UserInfo.Uid"; adBean.setSql(sql);//设置总页数 adBean.setTotalPage(1); }else { Stringsqlpage="";if(type.trim().equals("all")) {//查询所有定单 sql="selectOid,Uname,Odate,OstatefromOrderInfo,UserInfo"+"whereOrderInfo.Uid=UserInfo.Uid"; sqlpage="selectcount(*)fromOrderInfo"; }elseif(type.trim().equals("yes")) {//查询所有已发货定单 sql="selectOid,Uname,Odate,OstatefromOrderInfo,UserInfo"+"whereOstate='已发货'andOrderInfo.Uid=UserInfo.UidorderbyOid"; sqlpage="selectcount(*)fromOrderInfowhereOstate='已发货'"; }elseif(type.trim().equals("no")) {//查询所有未发货定单 sql="selectOid,Uname,Odate,OstatefromOrderInfo,UserInfo"+"whereOstate='未发货'andOrderInfo.Uid=UserInfo.UidorderbyOid"; sqlpage="selectcount(*)fromOrderInfowhereOstate='未发货'"; }//转码 sqlpage=newString(sqlpage.getBytes(),"ISO-8859-1"); sql=newString(sql.getBytes(),"ISO-8859-1");inttotalpage=DBcart.getTotalPage(sqlpage); adBean.setSql(sql);//记住当前总页数 adBean.setTotalPage(totalpage); } session.setAttribute("adBean",adBean);//得到第一页的内容 Vector<String[]>vorder=DBcart.getPageContent(1,sql); DBcart.setSpan(2);if(vorder.size()==0) {//没有搜索到用户要找的商品 Stringmsg="对不起,没有搜到你要查询的定单!!!"; Stringurl="/error.jsp"; pageForward(msg,url,request,response); }else {//搜索到信息并返回 request.setAttribute("vorder",vorder); Stringurl="/ordermanage.jsp"; ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); } }elseif(action.equals("ordermanage")) {//点击查看/管理时 Stringoid=request.getParameter("oid").trim();intid=Integer.parseInt(oid);//得到订单的根本信息 Stringosql="selectOrecname,Orecadr,Orectel,Odate,Ostate,OidfromOrderInfo"+"whereOid="+id; Vector<String[]>vorderinfo=DBcart.getInfoArr(osql);//得到订单中货物信息 Stringogsql="selectGname,OGamount,OGtotalpricefromGoodsInfo,"+"OrderGoodswhereGoodsInfo.Gid=OrderGoods.Gid"+"andOid="+id; Vector<String[]>vordergoods=DBcart.getInfoArr(ogsql); request.setAttribute("vorderinfo",vorderinfo); request.setAttribute("vordergoods",vordergoods); Stringurl="/ordermodify.jsp"; ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); }elseif(action.equals("orderEnsure")) {//某订单确认时 Stringoid=request.getParameter("oid");intid=Integer.parseInt(oid); Stringaname=(String)session.getAttribute("admin");intaid=DBcart.getSelectId("selectAidfromAdminInfowhereAname='"+aname+"'"); Stringsql="updateOrderInfosetAid="+aid+",Ostate='已发货'whereOid="+id; Stringtemp="selectGid,OGamountfromOrderGoodswhereOid="+id; Vector<String[]>vtemp=DBcart.getInfoArr(temp); String[]str=newString[vtemp.size()+1];for(inti=0;i<vtemp.size();i++) { String[]arr=vtemp.get(i); str[i]="updateGoodsInfosetGamount=Gamount-"+ Integer.parseInt(arr[1])+"whereGid="+arr[0]; } str[vtemp.size()]=sql;booleanflag=DBcart.batchSql(str); Stringmsg="";if(flag) { msg="恭喜您,订单确定成功!!!"; }else { msg="对不起,订单确定失败!!!"; } pageForward(msg,"/error.jsp",request,response); }elseif(action.equals("orderDelete")) {//删除某订单时 Stringoid=request.getParameter("oid");intid=Integer.parseInt(oid); String[]str=newString[2]; str[0]="deletefromOrderGoodswhereOid="+id; str[1]="deletefromOrderInfowhereOid="+id;booleanflag=DBcart.batchSql(str); Stringmsg="";if(flag) { msg="恭喜您,订单删除成功!!!"; }else { msg="对不起,订单删除失败!!!"; } pageForward(msg,"/error.jsp",request,response); }5.3.4购物车模块的业务开发elseif(action.equals("buy")) {//用户点击购置时 CartBeanmycart=(CartBean)session.getAttribute("mycart");if(mycart==null) { mycart=newCartBean(); }//得到要购置东西的ID Stringgid=request.getParameter("gid").trim();//判断是在那儿点的购置,0-在缩略图中买,1-在详细信息中买的 Stringflag=request.getParameter("flag").trim(); mycart.buy(gid);//得到搜索当前内容的sql Stringsql=mycart.getSql();intpage=mycart.getCurPage(); session.setAttribute("mycart",mycart); Stringurl="";if(flag.equals("0")) { url="/index.jsp"; }else { url="/goodsdetail.jsp"; sql="selectGimgurl,Gname,Gintro,Gclass,Gprice,"+"Glook,Gid,GbrieffromGoodsInfowhereGid="+gid; page=1; }//返回后,得到页面内容 Vector<String[]>vgoods=DBcart.getPageContent(page,sql);if(vgoods.size()==0) {//没有搜索到用户要找的商品 Stringmsg=; pageForward(msg,request,response); } request.setAttribute("vgoods",vgoods);//forward到要去的页面 ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); }elseif(action.equals("changeNum")) {//用户修改购物车中商品数量时//得到修改物品的ID和修改后的数量 Stringgnum=request.getParameter("gnum").trim(); Stringgid=request.getParameter("gid").trim();intnum=0;try { num=Integer.parseInt(gnum); }catch(Exceptione) {//修改的数量不合法时 Stringmsg="对不起,数量修改错误!!!"; pageForward(msg,request,response); }intid=Integer.parseInt(gid);//得到库存数量 Stringsql="selectGamountfromGoodsInfowhereGid="+id;intcount=DBcart.getSelectId(sql);if(count<num) {//当库存少于修改的值时 Stringmsg="对不起,库存不够,库存数量只有"+count; pageForward(msg,request,response); }else {//当库存够时 CartBeanmycart=(CartBean)session.getAttribute("mycart");if(mycart==null) { mycart=newCartBean(); }
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024广告代理合同模板下载
- 2024女职工特殊权益保护专项集体合同公司女职工特殊权益保护专项集体合同
- 2024个人耐用消费品贷款合作合同范本
- 2024鸡场租赁合同
- 分期还款协议书样本
- 吉林省吉林市七年级上学期语文期中试卷2套【附答案】
- 2024商品购销合同书版范本
- 上海临时仓库租赁合同
- 音乐会场地租赁合同范本
- 标准汽车租赁合同样式
- 医学类-教学查房异位妊娠(宫外孕)
- 眼视光技术职业生涯规划大赛
- 《第八课 我的身体》参考课件
- 肥料创业计划书
- 信息通信网络运行管理员(高级)理论考试题库(学员用)
- 公司卷烟物流管理规范
- 报告医疗器械不良事件
- 物联网安全分析报告
- 黄芪对慢性疲劳综合征康复中的临床应用及相关机制探究
- 物业管理工作量化细则
- 2024市场营销学教师资格证试讲授课教案
评论
0/150
提交评论