mybatis-plus -- 條件構造器之拼接 and(a =? or b=?) 條件

1、參考圖片

在這裏插入圖片描述

2、參考示例

/**
     * TODO    分頁查詢
     */
    @Override
    public Result<IPage<OrderInfoVO>> findPage(@RequestParam(required = false) String shopId,
                                               @RequestParam(required = false) String houseId,
                                               @RequestParam(required = false) String orderNo,
                                               @RequestParam(required = false) String formFullName,
                                               @RequestParam(required = false) String formPhone,
                                               @RequestParam(required = false) String commodityName,
                                               @RequestParam(required = false) LocalDateTime startTime,
                                               @RequestParam(required = false) LocalDateTime entTime,
                                               @RequestParam(required = false) OrderPayTypeEnum payType,
                                               @RequestParam(required = false) OrderStatusEnum orderStatus) {
        Page<OrderInfo> page = this.page(this.getPage(), new LambdaQueryWrapper<OrderInfo>()
                .orderByAsc(OrderInfo::getCreateTime)
                .eq(StringUtils.isNotBlank(shopId), OrderInfo::getShopId, shopId)
                .eq(StringUtils.isNotBlank(houseId), OrderInfo::getHouseId, houseId)
                .eq(StringUtils.isNotBlank(orderNo), OrderInfo::getOrderNo, orderNo)
                .like(StringUtils.isNotBlank(formFullName), OrderInfo::getFormFullName, formFullName)
                .like(StringUtils.isNotBlank(formPhone), OrderInfo::getFormPhone, formPhone)
                .and(StringUtils.isNotBlank(commodityName),
                        i -> i.like(OrderInfo::getHouseName, commodityName)
                                .or()
                                .like(OrderInfo::getHouseRoomName, commodityName)
                )
                .between(startTime != null && entTime != null, OrderInfo::getPayTime, startTime, entTime)
                .eq(payType != null, OrderInfo::getPayType, payType)
                .eq(orderStatus != null, OrderInfo::getOrderStatus, orderStatus)
        );
        IPage<OrderInfoVO> orderInfoVOIPage = BeanDtoVoUtil.pageVo(page, OrderInfoVO.class);
        return Result.successFind(orderInfoVOIPage);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章