多条件查询时
如果使用这种的话,会出现只要这个条件成功了,不管你后面或者前面有没有and条件,它都成功,
可以看出来整个条件都在一个括号里面
//创建查询对象LambdaQueryWrapper<PublishWorksRemit> wrapper = new LambdaQueryWrapper();wrapper.eq(PublishWorksRemit::getMemberId, UserContext.getCurrentUser().getId());wrapper.eq(PublishWorksRemit::getDeleteFlag, false);wrapper.orderByDesc(PublishWorksRemit::getCreateTime);//模糊查询 产品名称/款式名称/创建人if (dto.getKeyword() != null && dto.getKeyword().length() > 0) {
// wrapper.like(PublishWorksRemit::getWorksName, dto.getKeyword())
// .or().like(PublishWorksRemit::getStyleNo, dto.getKeyword())
// .or().like(PublishWorksRemit::getCreateName, dto.getKeyword());wrapper.and(a -> a.like(PublishWorksRemit::getWorksName, dto.getKeyword()).or().like(PublishWorksRemit::getStyleNo, dto.getKeyword()).or().like(PublishWorksRemit::getCreateName, dto.getKeyword()));}//判断店铺id不为空if (dto.getOnlineShopManagerId() != null && dto.getOnlineShopManagerId().length() > 0) {wrapper.eq(PublishWorksRemit::getOnlineShopManagerId, dto.getOnlineShopManagerId());}//判断刊登状态不为空if (dto.getIsExport() != null && dto.getIsExport().length() > 0) {wrapper.eq(PublishWorksRemit::getIsExport, dto.getIsExport());}//判断款式id不为空if (dto.getStyleId() != null && dto.getStyleId().length() > 0) {//查询分类中间表List<QrRelationshipStyleCategory> qrRelationshipStyleCategories = qrRelationshipStyleCategoryMapper.selectList(new LambdaQueryWrapper<QrRelationshipStyleCategory>().eq(QrRelationshipStyleCategory::getCategoryId, dto.getStyleId()));//创建分类id集合List<Long> styleCategoryIds=new ArrayList<>();qrRelationshipStyleCategories.stream().forEach(item->{styleCategoryIds.add(item.getStyleId());//复制款式id});if(styleCategoryIds.size()>0){wrapper.in(PublishWorksRemit::getStyleId, styleCategoryIds);}else{wrapper.in(PublishWorksRemit::getStyleId, "");}}//判断开始时间和结束时间不为空if (dto.getStartTime() != null && dto.getEndTime() != null) {wrapper.between(PublishWorksRemit::getCreateTime, dto.getStartTime(), dto.getEndTime());}
但是使用这个的话,它会单独那这个条件括起来