vue版本上线
This commit is contained in:
142
jshERP-boot/src/main/java/com/jsh/erp/utils/QueryUtils.java
Normal file
142
jshERP-boot/src/main/java/com/jsh/erp/utils/QueryUtils.java
Normal file
@@ -0,0 +1,142 @@
|
||||
package com.jsh.erp.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.jsh.erp.utils.Constants.CURRENT_PAGE;
|
||||
import static com.jsh.erp.utils.Constants.PAGE_SIZE;
|
||||
|
||||
/**
|
||||
* @author jishenghua qq752718920 2018-10-7 15:26:27
|
||||
*/
|
||||
public class QueryUtils {
|
||||
public static String filterSqlSpecialChar(String search) {
|
||||
return search != null ? search
|
||||
.replaceAll("_", "\\\\_")
|
||||
.replaceAll("!", "\\\\!")
|
||||
.replaceAll("\\[", "\\\\[")
|
||||
.replaceAll("\\]", "\\\\]")
|
||||
.replaceAll("\\^", "\\\\^") : null;
|
||||
}
|
||||
|
||||
public static <T> T list2One(List<T> list, String label) {
|
||||
Assert.notNull(label);
|
||||
Assert.notEmpty(list, label + "对应的记录不存在");
|
||||
Assert.isTrue(list.size() == 1, label + "对应的记录不止一个");
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
public static <T> T list2One(List<T> list, String label, T defaultValue) {
|
||||
Assert.notNull(list);
|
||||
Assert.notNull(label);
|
||||
if (list.isEmpty())
|
||||
return defaultValue;
|
||||
else {
|
||||
Assert.isTrue(list.size() == 1, label + "对应的记录不止一个");
|
||||
return list.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> search(Map<String, String> map) {
|
||||
List<String> search = null;
|
||||
|
||||
String str = map.get(Constants.SEARCH);
|
||||
if (StringUtil.isNotEmpty(str)) {
|
||||
search = StringUtil.searchCondition(str);
|
||||
}
|
||||
return search;
|
||||
}
|
||||
|
||||
public static int rows(Map<String, String> map) {
|
||||
return Integer.parseInt(map.get(PAGE_SIZE));
|
||||
}
|
||||
|
||||
public static int offset(Map<String, String> map) {
|
||||
return (currentPage(map) - 1) * pageSize(map);
|
||||
}
|
||||
|
||||
public static int pageSize(Map<String, String> map) {
|
||||
return Integer.parseInt(map.get(PAGE_SIZE));
|
||||
}
|
||||
|
||||
public static int currentPage(Map<String, String> map) {
|
||||
int val = Integer.parseInt(map.get(CURRENT_PAGE));
|
||||
if (val < 1)
|
||||
throw new RuntimeException("当前页数目:" + val + " 必须大于0");
|
||||
return val;
|
||||
}
|
||||
|
||||
public static String order(Map<String, String> map) {
|
||||
String orderString = OrderUtils.getOrderString(map.get(Constants.ORDER));
|
||||
return orderString.trim().isEmpty() ? null : orderString;
|
||||
}
|
||||
|
||||
public static Integer level(Map<String, String> map) {
|
||||
String levelString = map.get(Constants.LEVEL);
|
||||
return StringUtil.isEmpty(levelString) ? null : Integer.parseInt(levelString);
|
||||
}
|
||||
|
||||
public static boolean isRecursion(Map<String, String> map) {
|
||||
String isRecursion = map.get(Constants.IS_RECURSION);
|
||||
return StringUtil.isNotEmpty(isRecursion) && Constants.IS_RECURSION_VALUE.equals(isRecursion);
|
||||
}
|
||||
|
||||
public static int type(Map<String, String> map) {
|
||||
return Integer.parseInt(map.get(Constants.TYPE));
|
||||
}
|
||||
|
||||
public static String filter(Map<String, String> map) {
|
||||
if (map.containsKey(Constants.FILTER)) {
|
||||
JSONArray array = JSON.parseArray(map.get(Constants.FILTER));
|
||||
if (array.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
boolean first = true;
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int idx = 0; idx < array.size(); ++idx) {
|
||||
JSONObject object = array.getJSONObject(idx);
|
||||
if (object.get("value") instanceof JSONArray) {
|
||||
|
||||
JSONArray value = object.getJSONArray("value");
|
||||
|
||||
if (!value.isEmpty()) {
|
||||
if (!first) {
|
||||
builder.append(" AND ");
|
||||
} else {
|
||||
first = false;
|
||||
}
|
||||
|
||||
String key = object.getString("name");
|
||||
|
||||
builder.append("(");
|
||||
|
||||
builder.append("`").append(key).append("`");
|
||||
|
||||
builder.append(" IN ");
|
||||
|
||||
builder.append("(");
|
||||
|
||||
for (int vidx = 0; vidx < value.size(); ++vidx) {
|
||||
if (vidx != 0) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append(value.getString(vidx));
|
||||
}
|
||||
builder.append(")");
|
||||
|
||||
builder.append(")");
|
||||
}
|
||||
}
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user