資料庫查詢語句,追加條件的寫法。
阿新 • • 發佈:2019-02-06
本篇完全為專案中摘抄下來的,僅為本人記錄之用。外人看到,僅做參考。
@Override
public PagedResult<InspPointResultDto> getPointPaged(PointCretiria tQuery) {
String sql = "select p.*,t.id pointTypeId,t.pointTypeName from insp_point p left join insp_point_type t on p.pointTypeId=t.id where p.is_active = 1 ";
//名稱 型別 部門
Map<String , Object> params=new HashMap<>();
if(!StringUtil.isEmpty(tQuery.getPointName())){
sql+=" and pointName like :pointName";
params.put("pointName" , "%"+tQuery.getPointName()+"%");
}
if(!StringUtil.isEmpty(tQuery.getPointTypeId())){
sql+=" and pointTypeId=:poinetTypeId";
params.put("pointTypeId" , tQuery.getPointTypeId());
}
if(!StringUtil.isEmpty(tQuery.getDeptName())){
sql+=" and pointDept like :pointDept";
params.put("pointDept" ,"%"+ tQuery.getDeptName()+"%");
}
if(!StringUtil.isEmpty(tQuery.getPointNo())){
sql+=" and p.pointNo like :pointNo";
params.put("pointNo" ,"%"+ tQuery.getPointNo()+"%");
}
sql+=" order by create_datetime desc";
PagedResult<InspPointResultDto> inspPointDtoPagedResult = this.pagingBySql(tQuery.getPageIndex(), tQuery.getPageSize(), InspPointResultDto.class, sql, params);
inspPointDtoPagedResult.getResult().stream().forEach(x -> {
x.setQrcode(WebSettingContext.getHostName() + x.getQrcode());
x.setPointImage(excuteImageUrl(x.getPointImage()));
});
return inspPointDtoPagedResult;
}