項目名稱:易買網
指導老師:原玉明
總結一下最近團隊開發的易買網的網上商城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);
中轉頁面來進行添加刪除數據交互等工作。增強前台頁面的體驗效果。
項目的開發過程總是充滿着各種困難。保持心態 ,端正態度,楊光總在風雨過后!