项目名称:易买网
指导老师:原玉明
总结一下最近团队开发的易买网的网上商城web系统。
主要负责了 1.购物车和2.后台的2.1.商品分类、2.2.商品管理。
前台购物车主要问题就是(思路)问题,只要把思路理清了,一切就好办了。
对于第一次书写购物车功能的我来说这一功能还是相当有难度的。
CartItem_zym citem=(CartItem_zym)request.getSession().getAttribute("CartItem"); totalmoneys=((float)citem.getOrdermoney()); try { dao.addOrder(o,0,1,totalmoneys,false,false); //add to order } catch (Exception e1) { e1.printStackTrace(); } for (String item : citem.getLmap().keySet()) { Cart_zym zym = citem.getLmap().get(item); try { o.setEO_COST((float) zym.getEp_money()); dao.addOrder(o,zym.getEp_id(),zym.getEp_num(),0,true,false); //add to orderdetail } catch (Exception e) { e.printStackTrace(); } continue ; } request.getSession().removeAttribute("CartItem");
内存中一直就只有一个购物车的实例,每次添加商品都要进行遍历购物车中所有商品来进行判断来操作内存中购物车对象的内容。
CartItem_zym citem=(CartItem_zym)request.getSession().getAttribute("CartItem"); String id= request.getParameter("pid");// boolean flag=true;//锟斤拷锟斤拷锟斤拷证锟斤拷前锟斤拷锟斤车锟斤拷锟角凤拷锟窖撅拷锟斤拷锟节革拷锟斤拷品锟斤拷牛锟斤拷锟斤拷屑蛹锟斤拷锟斤拷锟斤拷锟� if(citem==null){ citem = new CartItem_zym(); citem.setLmap(new LinkedHashMap<String, Cart_zym>()); } for (String item : citem.getLmap().keySet()) { Cart_zym cart_zym = citem.getLmap().get(item); Cart_zym cz=new Cart_zym(); cz.setEp_id(Integer.parseInt(id)); if(cart_zym.equals(cz)){ //锟叫断癸拷锟斤车锟斤拷锟角凤拷锟窖撅拷锟斤拷锟剿碉拷前锟斤拷品 citem.getLmap().get(item).setEp_num(citem.getLmap().get(item).getEp_num()+1); flag=false; break; } } if(flag){ Cart_zym cz=new Cart_zym(); //锟斤拷锟斤拷品未锟斤拷锟斤拷锟节癸拷锟斤车锟叫o拷锟斤拷锟斤拷锟铰碉拷实锟斤拷锟斤拷锟� Product proinfo = dao.getProInfoById(Integer.parseInt(id)); cz.setEp_id(proinfo.getEP_ID()); cz.setOrderName(proinfo.getEP_NAME()); cz.setEq_floatprice(proinfo.getEP_PRICE()); cz.setEp_num(1); cz.setEP_FILE_NAME(proinfo.getEP_FILE_NAME()); citem.getLmap().put(id,cz); } citem.setOrdermoney(); request.getSession().setAttribute("CartItem",citem);
后台倒是没什么难度就是简单的增删该查了。
不过前台添加购物车是使用ajax来实现的。
String oper=request.getParameter("oper"); String jqeqid=request.getParameter("jqeqid"); CartItem_zym citem= (CartItem_zym)session.getAttribute("CartItem"); LinkedHashMap<String,Cart_zym> lmap= citem.getLmap(); if(oper.equals("add")){ lmap.get(jqeqid).setEp_num(lmap.get(jqeqid).getEp_num()+1); }else if(oper.equals("delete")){ lmap.remove(jqeqid); }else if(oper.equals("reduce")){ lmap.get(jqeqid).setEp_num(lmap.get(jqeqid).getEp_num()-1); }else if(oper.equals("update")){ String val=request.getParameter("val"); lmap.get(jqeqid).setEp_num(Integer.parseInt(val)); } citem.setOrdermoney(); session.setAttribute("CartItem",citem);
中转页面来进行添加删除数据交互等工作。增强前台页面的体验效果。
项目的开发过程总是充满着各种困难。保持心态 ,端正态度,杨光总在风雨过后!