|
@@ -20,13 +20,27 @@ public class SortUtil {
|
|
|
String col = spec.get("column");
|
|
String col = spec.get("column");
|
|
|
if (!StringUtils.hasText(col)) continue;
|
|
if (!StringUtils.hasText(col)) continue;
|
|
|
boolean asc = !"desc".equalsIgnoreCase(spec.get("order"));
|
|
boolean asc = !"desc".equalsIgnoreCase(spec.get("order"));
|
|
|
- sb.append(col.replaceAll("([A-Z])", "_$1").toLowerCase())
|
|
|
|
|
- .append(asc ? " asc" : " desc");
|
|
|
|
|
|
|
+ sb.append(toSnake(col)).append(asc ? " asc" : " desc");
|
|
|
}
|
|
}
|
|
|
if (sb.length() > 11) wrapper.last(sb.toString());
|
|
if (sb.length() > 11) wrapper.last(sb.toString());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static <T> void applySort(LambdaQueryWrapper<T> wrapper) {
|
|
public static <T> void applySort(LambdaQueryWrapper<T> wrapper) {
|
|
|
- applySort((QueryWrapper<T>) wrapper);
|
|
|
|
|
|
|
+ List<Map<String, String>> sortSpecs = SortContext.get();
|
|
|
|
|
+ if (sortSpecs == null || sortSpecs.isEmpty() || wrapper == null) return;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder(" order by ");
|
|
|
|
|
+ for (int i = 0; i < sortSpecs.size(); i++) {
|
|
|
|
|
+ if (i > 0) sb.append(", ");
|
|
|
|
|
+ Map<String, String> spec = sortSpecs.get(i);
|
|
|
|
|
+ String col = spec.get("column");
|
|
|
|
|
+ if (!StringUtils.hasText(col)) continue;
|
|
|
|
|
+ boolean asc = !"desc".equalsIgnoreCase(spec.get("order"));
|
|
|
|
|
+ sb.append(toSnake(col)).append(asc ? " asc" : " desc");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (sb.length() > 11) wrapper.last(sb.toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static String toSnake(String camel) {
|
|
|
|
|
+ return camel.replaceAll("([A-Z])", "_$1").toLowerCase();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|