首先需要一个分页工具类(Page),和实体类(Order),中间内容基本不需要改动,您可以根据需要改动每页显示的记录条数。
Page类
package cn.kgc.util;
import java.io.Serializable;
/**
* Created by CHIPOK_CHONG on 2018/11/17.
*/
public class Page implements Serializable{
private static final long serialVersionUID = -3198048449643774660L;
private int pageNow = 1; // 当前页数
private int pageSize = 5; // 每页显示记录的条数
private int totalCount; // 总的记录条数
private int totalPageCount; // 总的页数
@SuppressWarnings("unused")
private int startPos; // 开始位置,从0开始
@SuppressWarnings("unused")
private boolean hasFirst;// 是否有首页
@SuppressWarnings("unused")
private boolean hasPre;// 是否有前一页
@SuppressWarnings("unused")
private boolean hasNext;// 是否有下一页
@SuppressWarnings("unused")
private boolean hasLast;// 是否有最后一页
/**
* 通过构造函数 传入 总记录数 和 当前页
* @param totalCount
* @param pageNow
*/
public Page(int totalCount, int pageNow) {
this.totalCount = totalCount;
this.pageNow = pageNow;
}
/**
* 取得总页数,总页数=总记录数/总页数
* @return
*/
public int getTotalPageCount() {
totalPageCount = getTotalCount() / getPageSize();
return (totalCount % pageSize == 0) ? totalPageCount : totalPageCount + 1;
}
public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
/**
* 取得选择记录的初始位置
* @return
*/
public int getStartPos() {
return (pageNow - 1) * pageSize;
}
public void setStartPos(int startPos) {
this.startPos = startPos;
}
/**
* 是否是第一页
* @return
*/
public boolean isHasFirst() {
return (pageNow == 1) ? false : true;
}
public void setHasFirst(boolean hasFirst) {
this.hasFirst = hasFirst;
}
/**
* 是否有首页
* @return
*/
public boolean isHasPre() {
// 如果有首页就有前一页,因为有首页就不是第一页
return isHasFirst() ? true : false;
}
public void setHasPre(boolean hasPre) {
this.hasPre = hasPre;
}
/**
* 是否有下一页
* @return
*/
public boolean isHasNext() {
// 如果有尾页就有下一页,因为有尾页表明不是最后一页
return isHasLast() ? true : false;
}
public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}
/**
* 是否有尾页
* @return
*/
public boolean isHasLast() {
// 如果不是最后一页就有尾页
return (pageNow == getTotalCount()) ? false : true;
}
public void setHasLast(boolean hasLast) {
this.hasLast = hasLast;
}
}
Order类
package cn.kgc.entity;
import java.util.Date;
import java.util.List;
/**
* Created by CHIPOK_CHONG on 2018/10/24.
*/
public class Order {
private Integer orderId; //订单编号 自增
private Integer userId; //对应用户表中用户Id
private Integer bookId; //对应图书类中的bookId
private Integer bookCount; //图书数量
private Double bookPriceTotal; //图书总价
private Date createdTime; //创建时间
private Date tradeTime; //交易时间
private Integer orderStateInt; //订单状态(0已完成1待付款2待发货3待收货4待评论)
private Integer addressId; //地址ID
private Address addresses;
private Book books;
public Order() {
}
public Order(Integer orderId, Integer userId, Integer bookId, Integer bookCount, Double bookPriceTotal, Date createdTime, Date tradeTime, Integer orderStateInt, Integer addressId, Address addresses, Book books) {
this.orderId = orderId;
this.userId = userId;
this.bookId = bookId;
this.bookCount = bookCount;
this.bookPriceTotal = bookPriceTotal;
this.createdTime = createdTime;
this.tradeTime = tradeTime;
this.orderStateInt = orderStateInt;
this.addressId = addressId;
this.addresses = addresses;
this.books = books;
}
public Integer getOrderId() {
return orderId;
}
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getBookId() {
return bookId;
}
public void setBookId(Integer bookId) {
this.bookId = bookId;
}
public Integer getBookCount() {
return bookCount;
}
public void setBookCount(Integer bookCount) {
this.bookCount = bookCount;
}
public Double getBookPriceTotal() {
return bookPriceTotal;
}
public void setBookPriceTotal(Double bookPriceTotal) {
this.bookPriceTotal = bookPriceTotal;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Date getTradeTime() {
return tradeTime;
}
public void setTradeTime(Date tradeTime) {
this.tradeTime = tradeTime;
}
public Integer getOrderStateInt() {
return orderStateInt;
}
public void setOrderStateInt(Integer orderStateInt) {
this.orderStateInt = orderStateInt;
}
public Integer getAddressId() {
return addressId;
}
public void setAddressId(Integer addressId) {
this.addressId = addressId;
}
public Address getAddresses() {
return addresses;
}
public void setAddresses(Address addresses) {
this.addresses = addresses;
}
public Book getBooks() {
return books;
}
public void setBooks(Book books) {
this.books = books;
}
@Override
public String toString() {
return "Order{" +
"orderId=" + orderId +
", userId=" + userId +
", bookId=" + bookId +
", bookCount=" + bookCount +
", bookPriceTotal=" + bookPriceTotal +
", createdTime=" + createdTime +
", tradeTime=" + tradeTime +
", orderStateInt=" + orderStateInt +
", addressId=" + addressId +
", addresses=" + addresses +
", books=" + books +
'}';
}
}
OrderMapper接口
package cn.kgc.mapper;
import cn.kgc.entity.Order;
import cn.kgc.util.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* Created by CHIPOK_CHONG on 2018/10/25.
*/
@Repository
public interface OrderMapper {
/*取得订单条数信息,通过当前用户的userId查询*/
int getCountById(@Param("userId") Integer userId);
/*取得订单条数信息,通过当前用户的userId查询*/
int getCountByIdAndOrderstateInt(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt);
//查询所有订单
public List<Order> getAllOrderById(Integer userId);
//查询所有订单(分页)
public List<Order> getAllOrder(@Param("userId") Integer userId,
@Param("page")Page page);
//根据订单状态查询(分页)
public List<Order> getOrderByIdAndOrderStateInts(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt,
@Param("page")Page page);
//根据订单状态查询
public List<Order> getOrderByIdAndOrderStateInt(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt);
//查询单条订单
public Order getOrderByIdAndOrderId(@Param("userId") Integer userId,
@Param("orderId") Integer orderId);
//删除订单
public Integer deleteOrder(Integer orderId);
// 向数据库中插入一条订单信息
public int saveOrder(Order order);
//更新订单信息
public int updateOrder(Order order);
}
编写Mybatis的OrderMapper.xml配置文件,编写sql语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "http://mybatis.org/dtd/mybatis-3-mapper.dtd" "mybatis-3-mapper.dtd" >
<mapper namespace="cn.kgc.mapper.OrderMapper">
<!--根据书id查询返回-->
<select id="getBookById" parameterType="Integer" resultType="Book">
SELECT * FROM `book` WHERE bookId = #{bookId}
</select>
<!--根据地址id查询返回-->
<select id="getAddressById" parameterType="Integer" resultType="Address">
SELECT * FROM `address` WHERE addressId = #{addressId}
</select>
<!--查询总记录条数-->
<select id="getCountById" resultType="Integer">
select count(*) from `order` where userId = #{userId}
</select>
<!--查询总记录条数根据用户Id和订单状态-->
<select id="getCountByIdAndOrderstateInt" resultType="Integer">
select count(*) from `order` where userId = #{userId} and orderStateInt=#{orderStateInt}
</select>
<!--根据用户ID查询所有订单-->
<resultMap type="Order" id="OrderMaps">
<id column="orderId" property="orderId"/>
<result column="userId" property="userId"/>
<result column="note" property="note"/>
<result column="bookId" property="bookId"/>
<result column="bookCount" property="bookCount"/>
<result column="bookPriceTotal" property="bookPriceTotal"/>
<result column="createdTime" property="createdTime"/>
<result column="tradeTime" property="tradeTime"/>
<result column="orderStateInt" property="orderStateInt"/>
<association property="books" javaType="cn.kgc.entity.Book" select="getBookById" column="bookId">
</association>
<association property="addresses" javaType="cn.kgc.entity.Address" select="getAddressById" column="addressId">
</association>
</resultMap>
<select id="getAllOrderById" parameterType="Integer" resultMap="OrderMaps">
select * from `order` as o where userId = #{userId} order by createdTime desc
</select>
<!--根据用户ID查询所有订单(分页)-->
<resultMap type="Order" id="OrdersMap">
<id column="orderId" property="orderId"/>
<result column="userId" property="userId"/>
<result column="note" property="note"/>
<result column="bookId" property="bookId"/>
<result column="bookCount" property="bookCount"/>
<result column="bookPriceTotal" property="bookPriceTotal"/>
<result column="createdTime" property="createdTime"/>
<result column="tradeTime" property="tradeTime"/>
<result column="orderStateInt" property="orderStateInt"/>
<association property="books" javaType="cn.kgc.entity.Book" select="getBookById" column="bookId">
</association>
<association property="addresses" javaType="cn.kgc.entity.Address" select="getAddressById" column="addressId">
</association>
</resultMap>
<select id="getAllOrder" resultMap="OrdersMap">
select * from `order` as o where userId = #{userId} order by createdTime desc limit #{page.startPos},#{page.pageSize}<!--startPos开始页 , pageSize每页显示的记录条数-->
</select>
<!--根据用户ID和订单状态查询-->
<resultMap type="Order" id="OrderMapses">
<id column="orderId" property="orderId"/>
<result column="userId" property="userId"/>
<result column="bookId" property="bookId"/>
<result column="bookCount" property="bookCount"/>
<result column="bookPriceTotal" property="bookPriceTotal"/>
<result column="createdTime" property="createdTime"/>
<result column="tradeTime" property="tradeTime"/>
<result column="orderStateInt" property="orderStateInt"/>
<association property="books" javaType="cn.kgc.entity.Book" select="getBookById" column="bookId">
</association>
<association property="addresses" javaType="cn.kgc.entity.Address" select="getAddressById" column="addressId">
</association>
</resultMap>
<select id="getOrderByIdAndOrderStateInt" resultMap="OrderMapses">
select * from `order` where userId = #{userId} and orderStateInt=#{orderStateInt} order by createdTime desc
</select>
<!--根据用户ID和订单状态查询(分页)-->
<resultMap type="Order" id="OrderMap">
<id column="orderId" property="orderId"/>
<result column="userId" property="userId"/>
<result column="bookId" property="bookId"/>
<result column="bookCount" property="bookCount"/>
<result column="bookPriceTotal" property="bookPriceTotal"/>
<result column="createdTime" property="createdTime"/>
<result column="tradeTime" property="tradeTime"/>
<result column="orderStateInt" property="orderStateInt"/>
<association property="books" javaType="cn.kgc.entity.Book" select="getBookById" column="bookId">
</association>
<association property="addresses" javaType="cn.kgc.entity.Address" select="getAddressById" column="addressId">
</association>
</resultMap>
<select id="getOrderByIdAndOrderStateInts" resultMap="OrderMap">
select * from `order` where userId = #{userId} and orderStateInt=#{orderStateInt} order by createdTime desc limit #{page.startPos},#{page.pageSize}<!--startPos开始页 , pageSize每页显示的记录条数-->
</select>
<!-- 根据用户ID和订单ID查询-->
<resultMap type="Order" id="Order">
<id column="orderId" property="orderId"/>
<result column="userId" property="userId"/>
<result column="bookId" property="bookId"/>
<result column="bookCount" property="bookCount"/>
<result column="bookPriceTotal" property="bookPriceTotal"/>
<result column="createdTime" property="createdTime"/>
<result column="tradeTime" property="tradeTime"/>
<result column="orderStateInt" property="orderStateInt"/>
<association property="books" javaType="cn.kgc.entity.Book" select="getBookById" column="bookId">
</association>
<association property="addresses" javaType="cn.kgc.entity.Address" select="getAddressById" column="addressId">
</association>
</resultMap>
<select id="getOrderByIdAndOrderId" resultMap="Order">
select * from `order` where userId = #{userId} and orderId=#{orderId}
</select>
<!--删除订单-->
<delete id="deleteOrder" parameterType="Integer" >
delete from `order` where orderId = #{orderId}
</delete>
<!--添加订单-->
<insert id="saveOrder" parameterType="cn.kgc.entity.Order">
insert into `order`(orderId,userId,bookId,bookCount,bookPriceTotal,createdTime,tradeTime,orderStateInt)
values(#{orderId},#{userId},#{bookId},#{bookCount},#{bookPriceTotal},#{createdTime},#{tradeTime},#{orderStateInt})
</insert>
<!--更新订单-->
<update id="updateOrder" parameterType="cn.kgc.entity.Order">
update `order` set userId=#{userId},bookId=#{bookId},bookCount=#{bookCount},bookPriceTotal=#{bookPriceTotal},createdTime=#{createdTime},orderStateInt=#{orderStateInt} where orderId=#{orderId}
</update>
</mapper>
OrderService接口
package cn.kgc.service;
import cn.kgc.entity.Order;
import cn.kgc.util.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* Created by CHIPOK_CHONG on 2018/11/7.
*/
public interface OrderService {
/*取得订单条数信息,通过当前用户的userId查询*/
int getCountById(@Param("userId") Integer userId);
/*取得订单条数信息,通过当前用户的userId查询*/
int getCountByIdAndOrderstateInt(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt);
//查询所有订单
public List<Order> getAllOrderById(Integer userId);
//查询所有订单(分页)
public List<Order> getAllOrder(@Param("userId") Integer userId,
@Param("page")Page page);
//根据订单状态查询(分页)
public List<Order> getOrderByIdAndOrderStateInts(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt,
@Param("page")Page page);
//根据订单状态查询
public List<Order> getOrderByIdAndOrderStateInt(@Param("userId") Integer userId,
@Param("orderStateInt") Integer orderStateInt);
//查询单条订单
public Order getOrderByIdAndOrderId(@Param("userId") Integer userId,
@Param("orderId") Integer orderId);
//删除订单
public Integer deleteOrder(Integer orderId);
// 向数据库中插入一条订单信息
public int saveOrder(Order order);
//更新订单信息
public int updateOrder(Order order);
}
OrderServiceImpl实现类
package cn.kgc.service.impl;
import cn.kgc.entity.Order;
import cn.kgc.mapper.OrderMapper;
import cn.kgc.service.OrderService;
import cn.kgc.util.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Created by CHIPOK_CHONG on 2018/11/7.
*/
@Service
@Transactional
public class OrderServiceImpl implements OrderService {
@Autowired
OrderMapper orderMapper;
//查询订单数量id(分页)
@Override
public int getCountById(Integer userId) {
return orderMapper.getCountById(userId);
}
//查询订单数量Id和状态(分页)
@Override
public int getCountByIdAndOrderstateInt(Integer userId, Integer orderStateInt) {
return orderMapper.getCountByIdAndOrderstateInt(userId,orderStateInt);
}
//查询所有订单
@Override
public List<Order> getAllOrderById(Integer userId) {
return orderMapper.getAllOrderById(userId);
}
@Override
public List<Order> getAllOrder(Integer userId, Page page) {
return orderMapper.getAllOrder(userId,page);
}
//根据订单状态查询(分页)
@Override
public List<Order> getOrderByIdAndOrderStateInts(Integer userId, Integer orderStateInt, Page page) {
return orderMapper.getOrderByIdAndOrderStateInts(userId,orderStateInt,page);
}
//根据订单状态查询
@Override
public List<Order> getOrderByIdAndOrderStateInt(Integer userId, Integer orderStateInt) {
return orderMapper.getOrderByIdAndOrderStateInt(userId,orderStateInt);
}
//查询单条订单
@Override
public Order getOrderByIdAndOrderId(@Param("id")Integer id , @Param("orderId") Integer orderId){
return orderMapper.getOrderByIdAndOrderId(id ,orderId);
}
//删除订单
@Override
public Integer deleteOrder(Integer orderId) {
return orderMapper.deleteOrder(orderId);
}
// 向数据库中插入一条订单信息
@Override
public int saveOrder(Order order) {
return orderMapper.saveOrder(order);
}
//更新订单信息
@Override
public int updateOrder(Order order) {
return orderMapper.updateOrder(order);
}
}
OrderController
先获取到当前页和用户名,然后调用Mapper接口查询数据库,获得总记录条数,把总记录条数和当前页传入到page的构造方法中,page工具类会根据传入的参数,算出共几页。然后查出当前用户的所有操作记录,存到recordList中并返回给页面,页面就可以显示了。
package cn.kgc.controller;
import cn.kgc.entity.Order;
import cn.kgc.service.OrderService;
import cn.kgc.util.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* Created by CHIPOK_CHONG on 2018/11/7.
*/
@Controller
public class OrderController {
@Autowired
OrderService orderService;
/*查询订单(分页)*/
@RequestMapping(value = "/getAll/{userId}/{orderStateInt}/{pageNow}",method = RequestMethod.GET)
public String getAll(@PathVariable("userId") Integer userId ,
@PathVariable("orderStateInt")Integer orderStateInt,
@PathVariable("pageNow") Integer pageNow,
HttpServletRequest request){
List<Order> recordList;
Page page=null;
Integer totalCount=0;
Integer State=0;
HttpSession session = request.getSession();
if (orderStateInt.equals(-1) ||orderStateInt.equals(0) ||orderStateInt.equals(5) ||orderStateInt.equals(6)){
totalCount = orderService .getCountById(userId);//获取当前用户总记录条数
}else{
totalCount = orderService .getCountByIdAndOrderstateInt(userId,orderStateInt);//获取当前用户总记录条数
}
if(pageNow != null ) {//防止出现空指针异常
page = new Page(totalCount, pageNow);//这样写的好处,判断完成外面可以继续调用
}else{
page = new Page(totalCount, 1);//这样写的好处,判断完成外面可以继续调用
}
if (orderStateInt.equals(-1) ||orderStateInt.equals(0) ||orderStateInt.equals(5) ||orderStateInt.equals(6) ){
recordList = orderService.getAllOrder(userId,page);
State=-1;
}else{
recordList = orderService.getOrderByIdAndOrderStateInts(userId,orderStateInt,page);//取得当前用户的所有操作记录
State= orderStateInt;
}
session.setAttribute("page",page);
session.setAttribute("State",State);
session.setAttribute("Order",recordList);
return "redirect:/fillnybookMaket/order/orderlist.jsp";
}
/*根据用户ID查询订单*/
@RequestMapping(value ="/getAllOrderById/{userId}" ,method = RequestMethod.GET)
public String getAllOrderById(@PathVariable("userId") Integer userId, HttpServletRequest request){
System.out.println(userId);
HttpSession session = request.getSession();
List<Order> allOrderById = orderService.getAllOrderById(userId);
session.setAttribute("Order",allOrderById);
return "redirect:/fillnybookMaket/order/orderlist.jsp";
}
/*根据订单状态和用户ID查询订单*/
@RequestMapping(value ="/getOrderByIdAndOrderStateInt/{userId}/{orderStateInt}" ,method = RequestMethod.GET)
public String getOrderByIdAndOrderStateInt(@PathVariable("userId") Integer userId,
@PathVariable("orderStateInt") Integer orderStateInt,
HttpServletRequest request){
HttpSession session = request.getSession();
List<Order> orderByIdAndOrderStateInt;
if (orderStateInt.equals(-1) ||orderStateInt.equals(0) ||orderStateInt.equals(5) ||orderStateInt.equals(6) ){
orderByIdAndOrderStateInt = orderService.getAllOrderById(userId);
}else{
orderByIdAndOrderStateInt = orderService.getOrderByIdAndOrderStateInt(userId, orderStateInt);
}
session.setAttribute("Order",orderByIdAndOrderStateInt);
return "redirect:/fillnybookMaket/order/orderlist.jsp";
}
/*查询单条订单信息*/
@RequestMapping(value = "/getOrderByIdAndOrderId/{userId}/{orderId}")
public String getOrderByIdAndOrderId(@PathVariable("userId")Integer userId,
@PathVariable("orderId") Integer orderId,
HttpServletRequest request){
HttpSession session = request.getSession();
Order order = orderService.getOrderByIdAndOrderId(userId, orderId);
session.setAttribute("Order",order);
return "redirect:/fillnybookMaket/order/settlement.jsp";
}
/*根据订单状态和用户ID删除订单*/
@RequestMapping("/del/{orderId}/{userId}/{orderStateInt}")
public String deleteOrder(@PathVariable("orderId") Integer orderId ,
@PathVariable("userId") Integer userId,
@PathVariable("orderStateInt")Integer orderStateInt){
orderService.deleteOrder(orderId);
return "redirect:/getOrderByIdAndOrderStateInt/"+userId+"/"+orderStateInt;
}
/*根据订单状态修改状态:确认收货*/
@RequestMapping(value ="/updates/{orderId}/{userId}/{orderStateInt}")
public String UpdatesOrderStateInt(@PathVariable("orderId") Integer orderId ,
@PathVariable("userId") Integer userId,
@PathVariable("orderStateInt")Integer orderStateInt){
Order order = orderService.getOrderByIdAndOrderId(userId, orderId);
Integer anInt = order.getOrderStateInt();
if (anInt.equals(3)){
order.setOrderStateInt(4);
}
orderService.updateOrder(order);
return "redirect:/getOrderByIdAndOrderStateInt/"+userId+"/"+orderStateInt;
}
/*根据订单状态修改状态:取消订单+申请退款*/
@RequestMapping(value ="/update/{orderId}/{userId}/{orderStateInt}")
public String UpdateOrderStateInt(@PathVariable("orderId") Integer orderId ,
@PathVariable("userId") Integer userId,
@PathVariable("orderStateInt")Integer orderStateInt){
Order order = orderService.getOrderByIdAndOrderId(userId, orderId);
Integer anInt = order.getOrderStateInt();
if (anInt.equals(1)){
order.setOrderStateInt(5);
}else {
order.setOrderStateInt(6);
}
orderService.updateOrder(order);
return "redirect:/getOrderByIdAndOrderStateInt/"+userId+"/"+orderStateInt;
}
/*批量删除*/
@ResponseBody
@RequestMapping(value="/deleteAll/{userId}")
public String deleteAll(@RequestParam("sid[]") Integer[] sid,
@PathVariable("userId") Integer userId){
for (int i = 0; i < sid.length; i++) {
System.out.println(sid[i]);
Order order = orderService.getOrderByIdAndOrderId(userId, sid[i]);
Integer orderStateInt = order.getOrderStateInt();
System.out.println(orderStateInt);
if (orderStateInt.equals(0) || orderStateInt.equals(5)) {
orderService.deleteOrder(sid[i]);
}
}
return "ok";
}
}
功能显示页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false" deferredSyntaxAllowedAsLiteral="true" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <!--数据格式化标签库-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<%@ include file="/include/base.jsp" %>
<title>订单列表</title>
<link type="text/css" rel="stylesheet" href="static/css/style.css" />
<style type="text/css">
#orderlist ul {
width: 1080px;
}
#ordernav li {
position: relative;
left: 150px;
font-size: 17px;
text-align: center;
display: inline-block;
height: 30px;
width: 190px;
padding: 10px;
border-radius: 10px;
background-color: gainsboro;
overflow: hidden;
}
table {
font-size: larger;
position: relative;
left: 150px;
width: 1065px;
text-align: center;
}
table tr{
height: 10px;
}
table td{
width: 150px;
}
section{
padding-left: 60px;
}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<header>
<div class="soubg">
<div class="sou fl">
<div class="s_city_b">
<span>送货至:南京</span>
</div>
</div>
<div class="fr top_right">
<div class="fl">
<%@ include file="/include/user_info.jsp" %>
</div>
<ul class="ss">
<li class="ss_list">
<a href="index.jsp">首页</a>
</li>
<li class="ss_list">
<a href="fillnybookMaket/user/Personal.jsp">个人中心</a>
</li>
<li class="ss_list">
<a href="fillnybookMaket/user/favorite.jsp">收藏夹</a>
</li>
<!--需要有向下的小箭头就添加ss_listBg-->
<li class="ss_list">
<a href="#">客户服务</a>
</li>
<li class="ss_list">
<a href="#">网站导航</a>
</li>
</ul>
</div>
</div>
<div class="top">
<div class="logo">
<a href="index.jsp">
<img src="static/images/fillnybook.png" style="width: 200px;height: 60px;" />
</a>
</div>
<div class="search">
<form action="getBookByNameByType" method="post" >
<input type="text" name="search" value="" placeholder="请输入关键字" class="s_ipt" />
<input type="submit" value="搜索" class="s_btn" />
</form>
<div class="fl">
<a href="#">明朝那些事</a>
<a href="#">中国近代史</a>
<a href="#">java核心技术</a>
<a href="#">活着</a>
<a href="#">傲慢与偏见</a>
<a href="#">java编程思想</a>
</div>
</div>
<div class="i_car">
<div class="car_t">
<a href="fillnybookMaket/cart/shoopingcar.jsp">购物车</a>
</div>
</div>
</header>
<section id="orderlist">
<div id="ordernav">
<ul>
<li >
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/-1/1">所有订单</a>
</li>
<li >
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/1/1">待付款</a>
</li>
<li >
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/1/2">待发货</a>
</li>
<li >
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/1/3">待收货</a>
</li>
<li >
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/1/4">待评论</a>
</li>
</ul>
</div>
<div >
<div >
<table border="0px" cellspacing="0px" cellpadding="2px">
<div id="order_all">
<c:if test="${empty sessionScope.Order}">
<tr style="background-color: gainsboro;">
<td colspan="6"> </td>
</tr>
<tr rowspan="10">
<td colspan="6" style="height: 250px"><h1 style="font-size: 30px;color: red">暂无订单!</h1></td>
</tr>
</c:if>
<c:if test="${!empty sessionScope.Order}">
<tr style="background-color: gainsboro;">
<td colspan="2">宝贝</td>
<td>单价</td>
<td>数量</td>
<td>实付款</td>
<td>交易状态</td>
</tr>
<tr>
<td colspan="7" style="text-align: start;"><input style="vertical-align: middle;zoom:150% ;font-size: 40px"type="Checkbox" id="all" />全选
<input style="zoom:110%" type="submit" id="del" value="批量删除订单" /></td>
</tr>
<c:forEach items="${sessionScope.Order}" var="book" >
<tr style="background-color: gainsboro;">
<td style="text-align: left;padding-left:20px" ><input style="vertical-align: middle;zoom:130% " type="Checkbox" class="box" name="id" value="${book.orderId}" /><input type="hidden" value="${book.orderStateInt}"></td>
<td class="time" colspan="2" style="text-align: left;padding-left:20px" >${book.createdTime}</td>
<td>订单号:${book.orderId}</td>
<td ></td>
<td >
<c:choose>
<c:when test="${book.orderStateInt eq 0}"> <a href="/del/${book.orderId}/${login.userId}/${book.orderStateInt}" onclick="return confirm('确定删除么?')">删除</a></c:when>
<c:when test="${book.orderStateInt eq 1}"> <a href="/getOrderByIdAndOrderId/${login.userId}/${book.orderId}">去付款</a> <a href="/update/${book.orderId}/${login.userId}/-1" onclick="return confirm('确定取消订单么?')">取消订单</a></c:when>
<c:when test="${book.orderStateInt eq 2}"> <a href="/update/${book.orderId}/${login.userId}/-1" >申请退款</a></c:when>
<c:when test="${book.orderStateInt eq 3}"> <a href="/updates/${book.orderId}/${login.userId}/${book.orderStateInt}" >确认收货</a> <a href="/update/${book.orderId}/${login.userId}/-1" >申请退款</a></c:when>
<c:when test="${book.orderStateInt eq 4}"> <a href="">去评论</a></c:when>
<c:when test="${book.orderStateInt eq 5}"> <a href="/del/${book.orderId}/${login.userId}/${book.orderStateInt}" onclick="return confirm('确定删除么?')">删除</a></c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</td>
<%--<td><a href="/del/${book.orderId}/${login.userId}/${book.orderStateInt}" onclick="return confirm('确定删除么?')">删除</a></td>--%>
</tr>
<tr>
<td><img src="${book.books.bookImagePath}" style="width: 70px;height: 80px;"></td>
<td>作者:${book.books.bookAuthor}</td>
<td>单价:¥${book.books.bookPrice}</td>
<td>数量:${book.bookCount}</td>
<td>合计:¥${book.bookPriceTotal}</td>
<td>
<c:choose>
<c:when test="${book.orderStateInt eq 0}"> 已完成</c:when>
<c:when test="${book.orderStateInt eq 1}"> 待付款</c:when>
<c:when test="${book.orderStateInt eq 2}"> 待发货</c:when>
<c:when test="${book.orderStateInt eq 3}"> 待收货</c:when>
<c:when test="${book.orderStateInt eq 4}"> 待评论</c:when>
<c:when test="${book.orderStateInt eq 5}"> 已取消</c:when>
<c:when test="${book.orderStateInt eq 6}"> 退款中</c:when>
</c:choose>
</td>
</tr>
</c:forEach>
<script type="text/javascript">
$(function(){
//给全选的复选框添加事件
$("#all").click(function(){
// this 全选的复选框
var userids=this.checked;
//获取name=box的复选框 遍历输出复选框
$(".box").each(function(){
this.checked=userids;
});
});
//给name=box的复选框绑定单击事件
$(".box").click(function(){
//获取选中复选框长度
var length=$("input[name=box]:checked").length;
//未选中的长度
var len=$(".box").length;
if(length==len){
$("#all").get(0).checked=true;
}else{
$("#all").get(0).checked=false;
}
});
$("#del").click(function(){
var sid = [];
$("input[name='id']:checked").each(function () {
//alert($(this).next("input[type=hidden]").val());
var flag = $(this).next("input[type=hidden]").val();
if (flag == 0 || flag == 5) {
sid.push($(this).val());
}
})
var url="${pageContext.request.contextPath }/deleteAll/${sessionScope.login.userId}";
var data = {sid:sid};
$.get(url,data,function(data){
if(data=="ok"){
$("input[name='id']:checked").each(function(){
var flag = $(this).next("input[type=hidden]").val();
if (flag == 0 || flag == 5) {
$(this).parents('tr').next('tr').remove();
$(this).parents('tr').remove();
}
if (flag != 0 || flag != 5) {
$(this).removeAttr("checked");
}
})
}
})
alert("删除成功");
})
});
</script>
<c:if test="true">
<script type="text/javascript">
var time = document.getElementsByClassName("time");
for(var i = 0; i < time.length; i++) {
var get = time[i].innerText;
var getTimes = new Date(get);
time[i].innerText ="订单时间:"+
getTimes.getFullYear()
+ "-"
+ (getTimes.getMonth()+1)
+ "-"
+ (getTimes.getDate()-1)
+ " "
+ (getTimes.getHours()+10)
+ ":"
+ getTimes.getMinutes()
+ ":"
+ getTimes.getSeconds();
}
</script>
</c:if>
<tr>
<td colspan="6">
</td>
</tr>
</c:if>
</div>
</table>
<form id="deleteForm" action="" method="post">
<input type="hidden" name="_method" value="DELETE" />
</form>
<!-- 分页功能 start -->
<div align="center">
共 ${page.totalPageCount} 页第
${page.pageNow} 页 <a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/1">首页</a>
<c:choose>
<c:when test="${page.pageNow - 1 > 0}">
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.pageNow - 1}">上一页</a>
</c:when>
<c:when test="${page.pageNow - 1 <= 0}">
<a href="javascript:alert('已经是第一页')">上一页</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.pageNow}">下一页</a>
</c:when>
<c:when test="${page.pageNow + 1 < page.totalPageCount}">
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.pageNow + 1}">下一页</a>
</c:when>
<c:when test="${page.pageNow + 1 == page.totalPageCount}">
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.totalPageCount}">下一页</a>
</c:when>
<c:when test="${page.pageNow + 1 > page.totalPageCount}">
<a href="javascript:alert('已经是最后一页')">下一页</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.pageNow}">尾页</a>
</c:when>
<c:otherwise>
<a href="${pageContext.request.contextPath}/getAll/${login.userId}/${State}/${page.totalPageCount}">尾页</a>
</c:otherwise>
</c:choose>
</div>
<!-- 分页功能 End -->
</div>
</div>
</section>
<footer>
<!-- Footer -->
<div id="bottom"><br />
<p>
<a href="#">服务条款</a>
<a href="#">广告服务</a>
<a href="#">招聘</a>
<a href="#">活动</a>
<a href="#">商务合作</a>
<a href="#">网站导航</a>
</p>
<p>COPYRIGHT ©right; 1990 – 2018 FILLNYBOOK. ALL RIGHTS RESERVED.</p>
<p>著作权人:FILLNYBOOK小组</p>
<p>全国文化市场统一举报电话:12318</p>
<p>
<a href="#">FILLNYBOOK小组 版权所有</a>
</p>
</div>
<!--Footer -->
</footer>
</body>
<script src="static/js/jquery-1.7.2.js"></script>
<script src="static/js/index.js"></script>
<script src="static/js/public.js"></script>
</body>
</html>