Order订单的多表增删改查及基于Msql和SSM的分页代码附带批量删除

本文详细介绍了一种基于Java的订单管理系统中分页查询的实现方法,包括自定义分页工具类(Page)、实体类(Order)及其实现的Mapper、Service、Controller层代码,展示了如何在Web应用中进行高效的数据分页展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要一个分页工具类(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">&nbsp;&nbsp;</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" />全选&nbsp;
										<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>&nbsp;&nbsp; <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>&nbsp;&nbsp;  <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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值