confirmordercontroller.java

来自「spring+acegi编写的网上书城」· Java 代码 · 共 76 行

JAVA
76
字号
package net.livebookstore.web.user;

import java.util.*;

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

import net.livebookstore.domain.*;

import net.livebookstore.exception.OrderException;
import net.livebookstore.security.SecurityUtil;
import net.livebookstore.util.CookieUtil;
import net.livebookstore.util.HttpUtil;
import net.livebookstore.web.core.AbstractMvcController;

/**
 * Confirm user's order.
 * 
 * @author Xuefeng
 * 
 * @spring.bean name="/userConfirmOrder.jspx"
 */
public class ConfirmOrderController extends AbstractMvcController {

    @Override
    public Map getModel(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // first check all books:
        String[] bookIds = request.getParameterValues("bookIds");
        String[] numbers = request.getParameterValues("bookNumbers");
        if(bookIds==null || numbers==null)
            throw new OrderException("错误参数");
        if(bookIds.length!=numbers.length)
            throw new OrderException("错误参数");
        List<OrderItem> items = new ArrayList<OrderItem>(10);
        for(int i=0; i<bookIds.length; i++) {
            int number = 1;
            try {
                number = Integer.parseInt(numbers[i]);
            }
            catch(Exception e) {}
            if(number<1)
                number = 1;
            if(number>10)
                number = 10;
            try {
                Book book = (Book) businessService.query(Book.class, bookIds[i]);
                OrderItem item = new OrderItem();
                item.setBook(book);
                item.setNumber(number);
                items.add(item);
            }
            catch(Exception e) {
                // maybe the cookie has been expired!
                response.addCookie(CookieUtil.deleteBookCookie(bookIds[i]));
            }
        }
        if(items.size()==0)
            throw new OrderException("没有选择任何书籍");
        Order order = (Order) HttpUtil.createFormBean(request, Order.class);
        Account account = (Account) businessService.query(Account.class, SecurityUtil.getCurrentUsername());
        order.setAccount(account);
        order.setCreatedDate(new Date());
        businessService.createOrder(order, items);
        mailService.sendOrderMail(order);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("orderId", order.getId());
        return map;
    }

    @Override
    public String getView(HttpServletRequest request, HttpServletResponse response) {
        return "/confirmOrder.htm";
    }

}

⌨️ 快捷键说明

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