一、查询功能详解
首先要创建测试订单以及测试用户等,然后可以进行下一步操作。
老方法,通过admin_order_list,可以调用OrderServlet中的list方法
package tmall.servlet;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import tmall.bean.Order;
import tmall.dao.OrderDAO;
import tmall.util.Page;
public class OrderServlet extends BaseBackServlet {
public String add(HttpServletRequest request, HttpServletResponse response, Page page) {
return null;
}
public String delete(HttpServletRequest request, HttpServletResponse response, Page page) {
return null;
}
public String delivery(HttpServletRequest request, HttpServletResponse response, Page page) {
int id = Integer.parseInt(request.getParameter("id"));
Order o = orderDAO.get(id);
o.setDeliveryDate(new Date());
o.setStatus(OrderDAO.waitConfirm);
orderDAO.update(o);
return "@admin_order_list";
}
public String edit(HttpServletRequest request, HttpServletResponse response, Page page) {
return null;
}
public String update(HttpServletRequest request, HttpServletResponse response, Page page) {
return null;
}
public String list(HttpServletRequest request, HttpServletResponse response, Page page) {
List<Order> os = orderDAO.list(page.getStart(),page.getCount());
orderItemDAO.fill(os);
int total = orderDAO.getTotal();
page.setTotal(total);
request.setAttribute("os", os);
request.setAttribute("page", page);
return "admin/listOrder.jsp";
}
}
先通过list,查询所有的order类,并且放到集合os中,(这是所有的集合,后面根据业务需求的不同,有着不同的查询方法,比如某个用户的所有order等)
再根据os,根据其中内容,一条订单一条订单的,将他们填充到orderItem中,返回beans,其中将总价加出来,然后上传到listorder.jsp页面当中。(这里只是查询,并没有添加到数据库中,添加到数据库中应该是前台做的事情)
订单状态显示:
通过EL表达式${o.statusDesc},可以自动调用Order类中getStatusDesc()方法,return了状态
public String getStatusDesc(){
String desc ="未知";
switch(status){
case OrderDAO.waitPay:
desc="待付款";
break;
case OrderDAO.waitDelivery:
desc="待发货";
break;
case OrderDAO.waitConfirm:
desc="待收货";
break;
case OrderDAO.waitReview:
desc="等评价";
break;
case OrderDAO.finish:
desc="完成";
break;
case OrderDAO.delete:
desc="刪除";
break;
default:
desc="未知";
}
return desc;
}
发货功能:
当订单状态是waitDelivery的时候,就会出现发货按钮
<c:if test="${o.status=='waitDelivery'}">
<a href="admin_order_delivery?id=${o.id}">
<button class="btn btn-primary btn-xs">发货</button>
</a>
</c:if>
老方法调用delivery方法,通过id把Order的发货时间改了并且update了Order类,然后再次跳转刷新页面。
public String delivery(HttpServletRequest request, HttpServletResponse response, Page page) {
int id = Integer.parseInt(request.getParameter("id"));
Order o = orderDAO.get(id);
o.setDeliveryDate(new Date());
o.setStatus(OrderDAO.waitConfirm);
orderDAO.update(o);
return "@admin_order_list";
}
点击查看详情按钮:
jQuery中的toggle方法,其实内容早就写好了,只不过隐藏了,点击toggle可以显示出来,jQuery中的样式默认是display:none。