⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tradecontrol.java

📁 基于J2EE技术的 电子购物商城系统
💻 JAVA
字号:

package controls;

import java.io.IOException;
import java.io.PrintWriter;

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



import dataservice.GoodService;
import dataservice.TradeService;
import dataservice.UserService;
import domain.Cart;
import domain.Goods;
import domain.List;
import domain.Trade;
import domain.User;
import domain.Counter;

@SuppressWarnings("serial")
public class TradeControl extends HttpServlet {

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
//		out.println("TradeControl doGet-><br>");
		
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
//		out.println("TradeControl doPost-><br>");
		
		request.setCharacterEncoding("gb2312");
		String action = request.getParameter("action");
		
		if (action.equals("order")) {
			String goodsId = request.getParameter("id").trim();
			HttpSession session = request.getSession();
			User user = (User)session.getAttribute("user");
			Cart cart = (Cart)session.getAttribute("cart");
			List list = new List();
			if (goodsId.equals("000000buythemall")) {
				for (int i = 0; i < cart.size(); i++) {
					Trade trade = new Trade();
					trade.setBuyer(user);
					trade.setGood(cart.getGoods(i));
					trade.setGoodCount(cart.getGoodsCount(i));
					trade.setListId(list.getId());
					trade.setSaler(cart.getSaler(i));
					list.addTrade(trade);
				}
			}
			else {
				int index = cart.indexOf(new Goods(goodsId));
				Goods goods = cart.getGoods(index);
				Trade trade = new Trade();
				trade.setBuyer(user);
				trade.setGood(goods);
				trade.setGoodCount(cart.getGoodsCount(index));
				trade.setListId(list.getId());
				trade.setSaler(cart.getSaler(index));
				list.addTrade(trade);
			}
			order(request, response, user, cart, list);
		}
		else if (action.equals("pay")) {
			String[] tradeIds = request.getParameterValues("tradeid");
			List list = new List();
			if (tradeIds != null && tradeIds.length > 0) {
				for (int i = 0; i < tradeIds.length; i++) {
					Trade trade = ts.getTrade(tradeIds[i]);
					list.addTrade(trade);
				}
				HttpSession session = request.getSession();
				User user = (User)session.getAttribute("user");
				pay(request, response, user, list);
			}
		}
	}
	
	public void order(HttpServletRequest request, HttpServletResponse response,
			User user, Cart cart, List list) throws ServletException, IOException {
		PrintWriter out = response.getWriter();
//		out.println("TradeControl order-><br>");
		
		for (int i = 0; i < list.count(); i++) {
			Trade trade = list.get(i);
			errorMsg = ts.newTrade(list.getId(), trade.getBuyer().getId(),
					trade.getSaler().getId(), trade.getGood().getId(),
					trade.getGoodCount(), "普通商品");
			
			if (errorMsg == null) {
				UserService us = new UserService();
				errorMsg = us.removeGoodFromCart(user.getId(),
						user.getPassword(), trade.getGood().getId(), "普通商品");
				if (errorMsg == null)
					cart.removeGood(trade.getGood());
				else {
					errorMsg = "定购失败2: " + errorMsg;
					error(request, response);
				}
			}
			else {
				errorMsg = "定购失败1: " + errorMsg;
				error(request, response);
			}
		}

		out.println("<body bgcolor=00aaff>");
		out.println("定购成功!<br>");
		out.println("<a href=\"./trade/pay.jsp\">现在支付</a><br>");
	}
	
	public void pay(HttpServletRequest request, HttpServletResponse response,
			User user, List list) throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
//		out.println("TradeControl pay-><br>");
		
		GoodService gs = new GoodService();
		
		for (int i = 0; i < list.count(); i++) {
			Trade trade = list.get(i);
			errorMsg = ts.transferGood(user.getId(), trade.getSaler().getId(),
					trade.getGood().getId(), trade.getGoodCount());
			if (errorMsg == null) {
				double price = gs.getGood(trade.getGood().getId()).getPrice();
				double balance = price * trade.getGoodCount();
				errorMsg = ts.remit(user.getId(), trade.getSaler().getId(), balance);
				if (errorMsg == null) {
					errorMsg = ts.setPayed(trade.getId());
					if (errorMsg == null) {
						errorMsg = ts.setTradeSuccessful(trade.getId());
						if (errorMsg == null) {
							HttpSession session = request.getSession();
							Counter counter = (new UserService()).getCounter(user.getId());
							session.setAttribute("counter", counter);
							
							out.println("<body bgcolor=00aaff>");
							out.println("支付成功!<br>");
							out.println("<a href=\"./user/mylist.jsp\">查看我的定单.</a>");
						}
						else {
							errorMsg = "支付失败4: " + errorMsg;
							error(request, response);
						}
					}
					else {
						errorMsg = "支付失败3: " + errorMsg;
						error(request, response);
					}
					
				}
				else {
					errorMsg = "支付失败2: " + errorMsg;
					error(request, response);
				}
			}
			else {
				errorMsg = "支付失败1: " + errorMsg;
				error(request, response);
			}
		}
	}

	public void error(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		request.setAttribute("errorMsg", errorMsg);
		dispatcher = this.getServletContext().getRequestDispatcher("/error.jsp");
		dispatcher.forward(request, response);
	}
	
	String errorMsg = new String();
	TradeService ts = new TradeService();
	RequestDispatcher dispatcher = null;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -