MPJQueryWrapper条件写法
MPJQueryWrapper<A>() .selectAll(A.class) .select("group_concat( DISTINCT s.name SEPARATOR '、') as `sample_name`") .select("group_concat( DISTINCT s.no SEPARATOR '、') as `sample_no`") .leftJoin("t_sample s on t.id = s.entrust_id") .like(StringUtils.isNotEmpty(sampleNo), "s.no", sampleNo) .between(beginSamplingDate != null, "t.sampling_date", beginSDate, enDate) .groupBy("t.id") .orderByDesc("t.create_time"); if (!roles.contains("管理员")) { queryWrapper.eq("sample_recipient_id", currentUserId) .or() .eq("task_recipient_id", currentUserId) .or(qw -> { qw.eq("t.is_has_outdoor_principal", "是") .eq("t.outdoor_principal_id", currentUserId); }); }
结果等同于
结果:
SELECT
t.id,
t.is_deleted,
GROUP_CONCAT( DISTINCT s.NAME SEPARATOR '、' ) AS `sample_name`,
GROUP_CONCAT( DISTINCT s.NO SEPARATOR '、' ) AS `sample_no`
FROM
t_indoor_detection_entrust t
LEFT JOIN t_sample s ON t.id = s.entrust_id
WHERE
t.is_deleted = 0
AND (
sample_recipient_id = '1559398872000839682'
OR task_recipient_id = '1559398872000839682'
OR ( t.is_has_outdoor_principal = '是' AND t.outdoor_principal_id = '1559398872000839682' ))
GROUP BY
t.id
ORDER BY
t.create_time DESC
) TOTAL