package org.springside.bookstore.admin.web; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.WebUtils; import org.springside.bookstore.admin.manager.OrderManager; import org.springside.bookstore.commons.domain.Order; import org.springside.core.commons.BaseManageController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; /** * 订单管理的CRUD Controller. * 继承于BaseManageController,对CRUD流程作了一定的封装. * 普通MultiActionController请见BookStoreController和CustomerController * * @author Water Ye * @author Calvin * @see BaseManageController * @see org.springside.core.commons.BaseController */ public class OrderManageController extends BaseManageController { private OrderManager orderManager; { listView = "/admin/order/listOrder.jsp"; showView = "/admin/order/showOrder.jsp"; successView = "redirect:/admin/order.do"; } public void setOrderManager(OrderManager orderManager) { this.orderManager = orderManager; } /** * 发货 */ public ModelAndView ship(HttpServletRequest request, HttpServletResponse response) throws Exception { Integer id = new Integer(request.getParameter("id")); Order order = orderManager.get(id); orderManager.shipOrder(order); saveMessage(request, "订单" + id + "发货成功!"); ModelAndView mav = new ModelAndView(successView); mav.addObject(referenceData(request)); return mav; } /** * 回调函数,订单列表 * * @see BaseManageController#list(HttpServletRequest, HttpServletResponse) */ protected void onList(HttpServletRequest request, HttpServletResponse response, ModelAndView mav) throws Exception { onQuery(request, response, mav); } /** * 回调函数,显示订单 * * @see BaseManageController#show(HttpServletRequest, HttpServletResponse) */ protected void onShow(HttpServletRequest request, HttpServletResponse response, ModelAndView mav) throws Exception { Integer id = new Integer(request.getParameter("id")); mav.addObject(orderManager.get(id)); } /** * 回调函数,查询订单 * * @see BaseManageController#query(HttpServletRequest, HttpServletResponse) */ protected void onQuery(HttpServletRequest request, HttpServletResponse response, ModelAndView mav) throws Exception { Map map = WebUtils.getParametersStartingWith(request, "search_"); mav.addObject("orders", orderManager.findBy(map)); } /** * 批量删除订单 * * @see BaseManageController#removeSelected(HttpServletRequest, HttpServletResponse) */ public void onRemoveSelected(HttpServletRequest request, HttpServletResponse response, ModelAndView mav) throws Exception { String[] ids = request.getParameterValues("itemlist"); if (ids != null) { int success = 0; //成功删除的订单数 for (String id : ids) { try { orderManager.removeOrder(new Integer(id)); success++; } catch (DataIntegrityViolationException e) { saveMessage(request, "订单" + orderManager.get(new Integer(id)).getId() + "与其他数据关联,删除失败"); } } saveMessage(request, "成功删除" + success + "条纪录!"); } } /** * @see BaseManageController#referenceData(HttpServletRequest) */ protected void referenceData(HttpServletRequest request, Map model) { model.put("statusEnum", Order.statusEnum); } }