|
|
@@ -100,6 +100,8 @@ public class StSettingService {
|
|
|
|
|
|
private List<Map<String, String>> getQuerySData(StQueryMain singleQueryMain, String query, String queryMapField) {
|
|
|
String sql = sqlGenerator.getQueryConcatSql(singleQueryMain.getQuerySql().replaceAll("\\s+$", "").replaceAll(";+$", ""), query);
|
|
|
+ //将所有连续的空白字符替换为一个空格
|
|
|
+ sql = sql.replaceAll("\\s{2,}", " ");
|
|
|
if (StString.isNotEmpty(queryMapField)) {
|
|
|
JSONArray jsonArray = JSONArray.parseArray(queryMapField);
|
|
|
for (Object item : jsonArray) {
|
|
|
@@ -111,9 +113,26 @@ public class StSettingService {
|
|
|
value = StUserInfo.getUserCode();
|
|
|
}
|
|
|
if (value == null) {
|
|
|
- value = "";
|
|
|
+ //value可能非必填,需要进行设置
|
|
|
+ String fieldCode = key.replace("$", "").replace("{", "").replace("}", "");
|
|
|
+ if (sql.contains("'%" + key + "%'") || sql.contains("'" + key + "%'") || sql.contains("'%" + key + "'")) {
|
|
|
+ //like的情况
|
|
|
+ value = "";
|
|
|
+ sql = sql.replace(key, value);
|
|
|
+ } else {
|
|
|
+ if (sql.contains("'" + key + "'")) {
|
|
|
+ key = "'" + key + "'";
|
|
|
+ }
|
|
|
+ sql = sql.replace(key, fieldCode);
|
|
|
+ sql = sql.replace(fieldCode + "=" + fieldCode, "1=1")
|
|
|
+ .replace(fieldCode + " = " + fieldCode, "1=1")
|
|
|
+ .replace(fieldCode + " =" + fieldCode, "1=1")
|
|
|
+ .replace(fieldCode + "= " + fieldCode, "1=1");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //有值,直接替换
|
|
|
+ sql = sql.replace(key, value);
|
|
|
}
|
|
|
- sql = sql.replace(key, value);
|
|
|
}
|
|
|
}
|
|
|
return commonMapper.getQueryDataList(sql);
|