mybatis 一對多collection結合PageHelper分頁

PageHelper分頁組件

 

public class PageParam {
    /**
     * 當前頁數(初始頁面不用傳)
     */
    private Integer pageNum;

    /**
     * 分頁顯示數目(初始頁面不用傳)
     */
    private Integer pageSize;

}

/**
     * 設置請求分頁數據
     */
    protected void startPage(PageParam page) {
        if (StringUtils.isNotNull(page.getPageNum()) && StringUtils.isNotNull(page.getPageSize())) {
            PageHelper.startPage(page.getPageNum(), page.getPageSize());
        }
    }

 

controller

/**
     * 調貨列表 
     * 
     * @param pageNum  當前頁數
     * @param pageSize 分頁數目
     * @return
     */
    @ApiOperation(value = "調貨查詢")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(PageParam page) {
        startPage(page);
        List<RobOrders> list = robOrdersService.selectRobOrdersList();
        return getDataTable(list);
    }

 

 

/**
     * 響應請求分頁數據
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    protected TableDataInfo getDataTable(List<?> list) {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(0);
        rspData.setRows(list);
        rspData.setTotal(new PageInfo(list).getTotal());
        return rspData;
    }

 

實體類

/**
 * 調貨對象 rob_orders
 * 
 * @author ruoyi
 * @date 2020-05-14
 */
public class RobOrders extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 訂單號 */
    private String orderNum;

    /** 收件人姓名 */
    private String receiverName;

    /** 收件人聯繫電話 */
    private String phone;

    /** 收件人省主鍵 */
    private Integer province;

    /** 收件人市主鍵 */
    private Integer city;

    /** 收件人區主鍵 */
    private Integer area;

    /** 收件人省 */
    private String provinceName;

    /** 收件人市 */
    private String cityName;

    /** 收件人區 */
    private String areaName;

    /** 收件人地址 */
    private String address;

    /** 訂單狀態 */
    private Integer orderStatus;

    /** 訂單總價格 */
    private Double price;

    /** 是否被搶0搶單1已搶 */
    private Integer isGrab;

    /** 關聯sys_user的主鍵 */
    private Integer userId;
    /** 失效時間 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date failureTime;

    /** 支付時間 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 有效時間標識 */
    private Integer timeType = 24;

    /** 訂單詳情list */
    private List<RodOrderDetail> RodOrderDetailList;

}

 

 

/**
 * 調貨訂單詳情對象 rod_order_detail
 * 
 * @author ruoyi
 * @date 2020-05-14
 */
public class RodOrderDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Integer id;

    /** 訂單號 */
    private String orderNum;

    /** 書本編號 */
    private String bookId;

    /** 書本isbn */
    private String isbn;

    /** 書本名稱 */
    private String title;

    /** 出版社 */
    private String press;

    /** 作者 */
    private String author;

    /** 定價 */
    private Double price;

    /** 銷售價 */
    private Double salePrice;

    /** 購買數量 */
    private Integer count;

    /** 書本備註 */
    private String remake;

    /** 書本備註 */
    private String url;

}
 

 

service  和dao層就不寫了  自己寫方法就行

 

xml:

  <!--子調貨詳情  -->
    <resultMap type="RodOrderDetail" id="RodOrderDetailResult">
                <result property="id"    column="detail_id"    />
                <result property="orderNum"    column="detail_order_num"    />
                <result property="bookId"    column="book_id"    />
                <result property="isbn"    column="isbn"    />
                <result property="title"    column="title"    />
                <result property="press"    column="press"    />
                <result property="author"    column="author"    />
                <result property="price"    column="detail_price"    />
                <result property="salePrice"    column="sale_price"    />
                <result property="count"    column="count"    />
                <result property="remake"    column="remake"    />
                <result property="url"    column="url"    />     
        </resultMap>
        
     <!--調貨表實體  -->
    <resultMap type="RobOrders" id="RobOrdersResult">
        <result property="id"    column="id"    />
        <result property="orderNum"    column="order_num"    />
        <result property="receiverName"    column="receiver_name"    />
        <result property="phone"    column="phone"    />
        <result property="province"    column="province"    />
        <result property="city"    column="city"    />
        <result property="area"    column="area"    />
        <result property="address"    column="address"    />
        <result property="orderStatus"    column="order_status"    />
        <result property="price"    column="price"    />
        <result property="createTime"    column="create_time"    />
        <result property="isGrab"    column="is_grab"    />
        <result property="userId"    column="user_id"    />
        <result property="provinceName"    column="province_name"    />
        <result property="cityName"    column="city_name"    />
        <result property="areaName"    column="area_name"    />
        <result property="failureTime"    column="failure_time"    />
        <result property="payTime"    column="pay_time"    />
        
        <collection property="RodOrderDetailList" ofType="RodOrderDetailResult" javaType="java.util.List"                                column="order_num" select="queryRobOrderDetailByOrderNum">
        </collection>


    </resultMap>
    
    
    
       <!--調貨sql  -->

    <sql id="selectRobOrdersVo">
        select a.id, a.order_num, a.receiver_name, a.phone, a.province, a.city, a.area, a.address, a.order_status, a.price,                     a.create_time,a.is_grab, a.user_id,p.name as province_name,c.name as city_name,ar.name as area_name from rob_orders a
        left join province p on p.id=a.province
        left join city c on c.id=a.city
        left join area ar on ar.id=a.area
    </sql>
    
    <!--調貨池詳情  -->
    <select id="queryRobOrderDetailByOrderNum" parameterType="java.lang.String" resultMap="RodOrderDetailResult">
     select b.id as detail_id, b.order_num as detail_order_num, b.book_id, b.isbn, b.title, b.press, b.author, b.price as detail_price, b.sale_price, b.count, b.remake,b.url from rod_order_detail b where b.order_num=#{orderNum}
    </select>
    
    
    <!-- 調貨池列表 -->
    <select id="selectRobOrdersList"  resultMap="RobOrdersResult">
        <include refid="selectRobOrdersVo"/>
        order by a.create_time desc
    </select>

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章