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>

猜你喜欢

转载自blog.csdn.net/qq_37557563/article/details/106141866