首先DTO继承TableBaseSearchVO
这里有一个private List<Map<String, Object>> twhere;
前端会将数据传给你,如:
{
"twhere": [
{
"type": "text",
"bracketLeft": "",
"fieldName": "deviceNo",
"expression": "like",
"value": "123",
"bracketRight": "",
"logic": "and"
},
{
"type": "text",
"bracketLeft": "",
"fieldName": "deviceName",
"expression": "like",
"value": "123",
"bracketRight": "",
"logic": ""
}
]
}
其中fieldName是要表头查询的列,value为值,list中有几组数据代表需要查询多少表头
在后端可以这样接受数值:
List<Map<String, Object>> twhere = pageSelectDTO.getTwhere();if (!twhere.isEmpty()){for (Map<String, Object> map : twhere) {String fieldName = map.get("fieldName").toString();if ("deviceNo".equals(fieldName)){pageSelectDTO.setDeviceNo(map.get("value").toString());}if ("deviceName".equals(fieldName)){pageSelectDTO.setDeviceName(map.get("value").toString());}}}
这段代码的作用是将list中的每一个map拿出来,找到其中的fieldName,看看此时是哪个表头,把数据取出放到DTO里,之后进行动态sql模糊查询即可