jsp做商城網站項目-DAY-01

package me.ilt.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import me.ilt.Bean.addressBean;
import me.ilt.Bean.goodsBean;
import me.ilt.Bean.orderBean;
import me.ilt.Bean.orderItemBean;
import me.ilt.Bean.shoppingCart;
import me.ilt.Dao.addressDao;
import me.ilt.Dao.goodsDao;
import me.ilt.Dao.orderDao;
import me.ilt.Dao.orderItemDao;
import me.ilt.Dao.shoppingCartDao;
import me.ilt.Dao.usersDao;

public class cartServlet extends HttpServlet {


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String MethodName = request.getServletPath();
		MethodName = MethodName.substring(1, MethodName.length() - 5);
		System.out.println("MethodName:"+MethodName);
		try {
			Method method = getClass().getDeclaredMethod(MethodName,
					HttpServletRequest.class, HttpServletResponse.class);
			method.invoke(this, request, response);
		} catch (Exception e) {
			 e.printStackTrace();
		}
	}
	public void index(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//獲取購物車
		String username = (String)request.getSession().getAttribute("username"); //獲取登錄的用戶名
		List<goodsBean> goodsList = new ArrayList<goodsBean>(); //購物車集合
		if(username==null){
			//用戶沒有登錄
			//獲取購物車
			HashMap<String, goodsBean> gwc = (HashMap)request.getSession().getAttribute("gwc");
			Set keyList = gwc.keySet();
			Iterator it = keyList.iterator();
			
			while(it.hasNext()){
				String hid = (String)it.next();
				goodsBean hgoods = gwc.get(hid);
				int num = hgoods.getNum(); //獲取這個商品的數量
				goodsBean hgoods2 = goodsDao.gwcGoodsIdSel(Integer.parseInt(hid)); //從數據庫查找
				hgoods2.setNum(num);
				goodsList.add(hgoods2);
			}
			
		}else{
			//用戶已經登錄
			int userId = usersDao.nameIsId(username);
			//獲取購物車中所有購物項目
			List<shoppingCart> list = shoppingCartDao.selList(userId);
			for(shoppingCart s: list){
				goodsBean hgoods2 = goodsDao.gwcGoodsIdSel(s.getGoodsId()); //從數據庫查找
				hgoods2.setNum(s.getNum());
				goodsList.add(hgoods2);
			}
		}
		request.setAttribute("gwcGoodsList", goodsList);
		request.getRequestDispatcher("cart.jsp").forward(request, response);  //轉發到jsp
		
	}
	
	public void tijiao(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HashMap<String, goodsBean> gwc = (HashMap)request.getSession().getAttribute("gwc");
		//獲取用戶名
		String username = (String)request.getSession().getAttribute("username");
		String id = request.getParameter("cartItemIds");
		int userId = usersDao.nameIsId(username);
		String [] ids = id.split(",");
		
		
		
		//獲取購物車
		
		List<goodsBean> goodsList = new ArrayList<goodsBean>();
		 DecimalFormat df = new DecimalFormat("#.00");  //防止價格出現異常
		 double ze = 0; //總額
		for(String j : ids){
			//根據 gwc集合判斷購物車中的購物項是在session中 還是在數據庫中
			int num = 0;
			if(gwc.size()==0){
				//購物項存放在數據庫中
				shoppingCart s = shoppingCartDao.goodsIdSel(userId, Integer.parseInt(j));
				num = s.getNum();
			}else{
				//購物項存放在session中
				goodsBean hgoods = gwc.get(j);
				num = hgoods.getNum(); //獲取這個商品的數量
			}
			
			
			
			goodsBean hgoods2 = goodsDao.gwcGoodsIdSel(Integer.parseInt(j)); //從數據庫查找
			hgoods2.setNum(num);
			double hj = num*hgoods2.getPrice();
			ze +=hj;
			hgoods2.setTotal(Double.parseDouble(df.format(hj)));
			System.out.println("處理之前總額:"+hj+"處理之後:"+df.format(hj));
			goodsList.add(hgoods2);
			if(gwc.size()==0){
				shoppingCartDao.del(userId, Integer.parseInt(j));
			}else{
				gwc.remove(j);//刪除商品  購物車
			}
			
		}
		//打印購物車
		System.out.println("打印訂單購物車");
		for (int i = 0; i < goodsList.size(); i++) {
			goodsBean gb = goodsList.get(i);
			System.out.println("ID="+gb.getId()+",name="+gb.getName()+",proce="+gb.getPrice()+",proPic="+gb.getProPic()+",num="+gb.getNum());
		}
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//插入一條訂單
		String orderId = sjs(); //生成訂單號
		orderBean or = new orderBean(orderId, userId, Double.parseDouble(df.format(ze)), 1, "", sdf.format(d), 1);
		orderDao.add(or);
		//插入到商品訂單表中
		for(goodsBean g : goodsList){
			orderItemBean o = new orderItemBean(g.getId(), g.getName(), g.getProPic(), g.getPrice(), g.getNum(), g.getTotal(), orderId);
			orderItemDao.add(o);
		}
		
		//根據用戶ID獲取地址信息
		List<addressBean> addressList= addressDao.selAll(userId); 
		
		request.setAttribute("addressList", addressList);
		request.setAttribute("addressId", orderId);
		request.setAttribute("ze", df.format(ze));
		request.setAttribute("gwcGoodsList", goodsList);
		request.getRequestDispatcher("order.jsp").forward(request, response);  //轉發到jsp
		
	}
	/**
	 * 立即購買
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void buy(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		List<goodsBean> goodsList = new ArrayList<goodsBean>();
		DecimalFormat df = new DecimalFormat("#.00");  //防止價格出現異常
		System.out.println("進入了立即購買");
		int goodsId = Integer.parseInt(request.getParameter("id"));
		int num = Integer.parseInt(request.getParameter("num"));
		String username = (String)request.getSession().getAttribute("username");
		goodsBean hgoods2 = goodsDao.gwcGoodsIdSel(goodsId); //從數據庫查找
		hgoods2.setNum(num);
		double hj = Double.parseDouble(df.format(num*hgoods2.getPrice()));
		hgoods2.setTotal(hj); //格式化並放入
		goodsList.add(hgoods2);
		
		
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//插入一條訂單
		String orderId = sjs(); //生成訂單號
		int userId = usersDao.nameIsId(username);
		orderBean or = new orderBean(orderId, userId, hj, 1, "", sdf.format(d), 1);
		orderDao.add(or);
		//插入到商品訂單表中
		for(goodsBean g : goodsList){
			orderItemBean o = new orderItemBean(g.getId(), g.getName(), g.getProPic(), g.getPrice(), g.getNum(), g.getTotal(), orderId);
			orderItemDao.add(o);
		}
		
		//根據用戶ID獲取地址信息
		List<addressBean> addressList= addressDao.selAll(userId); 
		
		request.setAttribute("addressList", addressList);
		request.setAttribute("addressId", orderId);
		request.setAttribute("ze", hj);
		request.setAttribute("gwcGoodsList", goodsList);
		request.getRequestDispatcher("order.jsp").forward(request, response);  //轉發到jsp
		
	}
	/**
	 * 生成訂單號  當前時間加上兩位隨機數
	 * @return
	 */
	public static String sjs() {
		String sjs = "";
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		int x=(int)(Math.random()*100);
		if(x<10){
			x=x+9;
		}else if(x==100){
			x--;
		}
		sjs=sdf.format(d)+x;
		return sjs;
	}

}

今天完成了這段購物車 carServlet.java對於購物車

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章