📄 tradecontrol.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 + -