/**
* 根据查询条件分页获取乡村民宿列表
*
* @param params
* @return
*/
@Override
public QueryWrapper<PhlyXcmsEntity> getWrapper(Map<String, Object> params) {
String szqy = StringUtils.checkObj2Str(params.get("szqy"));//所在区域(县级)
String lxr = StringUtils.checkObj2Str(params.get("lxr"));//联系人
String lxfs = StringUtils.checkObj2Str(params.get("lxfs"));//联系方式
String msbt = StringUtils.checkObj2Str(params.get("msbt"));//民宿标题
String status = StringUtils.checkObj2Str(params.get("status"));//状态
QueryWrapper<PhlyXcmsEntity> wrapper = new QueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(lxr), "lxr", lxr);
wrapper.eq(StringUtils.isNotBlank(lxfs), "lxfs", lxfs);
wrapper.like(StringUtils.isNotBlank(msbt), "msbt", msbt);
wrapper.eq(StringUtils.isNotBlank(status), "status", status);
wrapper.eq( "deleted", "0");
if (StringUtils.isNotBlank(szqy)) {//当所在区域不为空的时候,始终匹配省市县(or)
wrapper.and(wrapper2 -> wrapper2.eq("szprovince", szqy).or().eq("szcity", szqy).or().eq("szqy", szqy));
}
wrapper.orderByDesc("fbsj", Constant.CREATE_DATE);
return wrapper;
}
上述代码中
wrapper.and(wrapper2 -> wrapper2.eq("szprovince", szqy).or().eq("szcity", szqy).or().eq("szqy", szqy));
是and or 连用。
最终,此代码执行的sql语句是:
SELECT
id,updater,update_date,deleted,fbsj,status,
msbt,szprovince,szcity,szqy,lxr,lxfs,xxdz,
fwmj,yjrs,ws,kt,cf,wsj,fkfs,fwzj,fwlx,czlx,
czfs,dlwsj,gxms,nbqk,jtzk,zbpt,
pic_url1,pic_url2,pic_url3,pic_url4,pic_url5,pic_url6,creator,create_date
FROM tb_phly_xcms
WHERE (
lxr LIKE ?
AND lxfs = ?
AND msbt LIKE ?
AND status = ?
AND deleted = ?
AND (szprovince = ? OR szcity = ? OR szqy = ?)
)
ORDER BY fbsj DESC,create_date DESC