mybatis-plus小课堂:多表查询【案例篇】

时间:2025-04-09 11:38:13
LambdaQueryWrapper<RiskEquipmentPosition> lambda = new LambdaQueryWrapper<>(); lambda.orderByDesc(TRiskEquipmentPosition::getCreateTime); if (input.getStartTime() != null) { lambda.ge(RiskEquipmentPosition::getCreateTime, input.getStartTime()); } if (input.getEndTime() != null) { lambda.lt(RiskEquipmentPosition::getCreateTime, input.getEndTime()); } if (input.getState() != null) { lambda.eq(RiskEquipmentPosition::getState, input.getState()); } // 终端SN、商户号本表查询,其他关键词需要关联商户表进行查询。 if (null != input.getKeywordType() && StringUtils.isNotBlank(input.getKeyword())) { var keyWordTypes = new ArrayList<String>(); keyWordTypes.add(ERiskEquipmentPositionKeyWord.MER_ID.getCode()); keyWordTypes.add(ERiskEquipmentPositionKeyWord.FAC_ID.getCode()); keyWordTypes.add(ERiskEquipmentPositionKeyWord.TOP_ID.getCode()); Long longKeyWord = 0L; if (keyWordTypes.contains(input.getKeywordType())) { try { longKeyWord = Long.parseLong(input.getKeyword()); } catch (Exception ex) { throw CommonException.create(ServerResponse.createByError("无效的编号")); } } switch (BaseEnum.getEnum(ERiskEquipmentPositionKeyWord.class, input.getKeywordType())) { case SN: lambda.eq(RiskEquipmentPosition::getEquipmentSn, input.getKeyword()); break; case MER_ID: lambda.apply("r.merchant_id = {0}",input.getKeyword()); break; case MER_NAME: lambda.apply("m.merchant_name = {0}",input.getKeyword()); break; case FAC_ID: //apply方法用于拼接自定义的条件判断,如果自定义的条件判断是需要独立的结果,就必须记得加括号。 lambda.apply("m.facilitator_id = {0}",input.getKeyword()); break; case FAC_NAME: lambda.apply("m.facilitator_name = {0}",input.getKeyword()); break; case TOP_ID: lambda.apply("m.faclitator_top_id= {0}",input.getKeyword()); break; case TOP_NAME: lambda.apply("m.facilitator_top_name= {0}",input.getKeyword()); break; } } // 分页查询 PageHelper.startPage(input.getPageNum(), input.getPageSize()); List<RiskEquipmentPositionDto> positionList = tRiskEquipmentPositionService.getlist(lambda); PageInfo pageInfo = new PageInfo(positionList); PageHelper.clearPage(); return pageInfo;