|
@@ -78,8 +78,55 @@ public class UpdateDataTableImpl extends GenericProvider implements UpdateDataTa
|
|
|
Map<String, Object> map = commonDao.queryOne(sql);
|
|
Map<String, Object> map = commonDao.queryOne(sql);
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
if (BeanUtils.isNotEmpty(map) && BeanUtils.isNotEmpty(map.get("sql_"))) {
|
|
if (BeanUtils.isNotEmpty(map) && BeanUtils.isNotEmpty(map.get("sql_"))) {
|
|
|
- Object[] params = queryDTO.getParams().toArray();
|
|
|
|
|
- list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString(), params);
|
|
|
|
|
|
|
+ if(BeanUtils.isNotEmpty(queryDTO.getType()) && "export".equals(queryDTO.getType())){
|
|
|
|
|
+ String build = build(queryDTO.getParamMap());
|
|
|
|
|
+ list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString() + build );
|
|
|
|
|
+ }else{
|
|
|
|
|
+ Object[] params = queryDTO.getParams().toArray();
|
|
|
|
|
+ list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString(), params);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Object> datas = new HashMap<>();
|
|
|
|
|
+ datas.put("data", list);
|
|
|
|
|
+ result.setVariables(datas);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ //旧版先放着,有问题再回滚
|
|
|
|
|
+// APIResult result = new APIResult();
|
|
|
|
|
+// if (BeanUtils.isEmpty(queryDTO) || BeanUtils.isEmpty(queryDTO.getKey())) {
|
|
|
|
|
+// throw new Exception("参数key不能为空!");
|
|
|
|
|
+// }
|
|
|
|
|
+// String sql = "select sql_ from t_sqlconfig where key_='%s'";
|
|
|
|
|
+// sql = String.format(sql, queryDTO.getKey());
|
|
|
|
|
+// Map<String, Object> map = commonDao.queryOne(sql);
|
|
|
|
|
+// List<Map<String, Object>> list = new ArrayList<>();
|
|
|
|
|
+// if (BeanUtils.isNotEmpty(map) && BeanUtils.isNotEmpty(map.get("sql_"))) {
|
|
|
|
|
+// Object[] params = queryDTO.getParams().toArray();
|
|
|
|
|
+// list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString(), params);
|
|
|
|
|
+// }
|
|
|
|
|
+// Map<String, Object> datas = new HashMap<>();
|
|
|
|
|
+// datas.put("data", list);
|
|
|
|
|
+// result.setVariables(datas);
|
|
|
|
|
+// return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public APIResult export(QueryDTO queryDTO) throws Exception {
|
|
|
|
|
+ APIResult result = new APIResult();
|
|
|
|
|
+ if (BeanUtils.isEmpty(queryDTO) || BeanUtils.isEmpty(queryDTO.getKey())) {
|
|
|
|
|
+ throw new Exception("参数key不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String sql = "select sql_ from t_sqlconfig where key_='%s'";
|
|
|
|
|
+ sql = String.format(sql, queryDTO.getKey());
|
|
|
|
|
+ Map<String, Object> map = commonDao.queryOne(sql);
|
|
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
|
|
+ if (BeanUtils.isNotEmpty(map) && BeanUtils.isNotEmpty(map.get("sql_"))) {
|
|
|
|
|
+ if(BeanUtils.isNotEmpty(queryDTO.getType()) && "export".equals(queryDTO.getType())){
|
|
|
|
|
+ String build = build(queryDTO.getParamMap());
|
|
|
|
|
+ list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString() + build );
|
|
|
|
|
+ }else{
|
|
|
|
|
+ Object[] params = queryDTO.getParams().toArray();
|
|
|
|
|
+ list = (List<Map<String, Object>>) commonDao.query( map.get("sql_").toString(), params);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
Map<String, Object> datas = new HashMap<>();
|
|
Map<String, Object> datas = new HashMap<>();
|
|
|
datas.put("data", list);
|
|
datas.put("data", list);
|
|
@@ -87,6 +134,36 @@ public class UpdateDataTableImpl extends GenericProvider implements UpdateDataTa
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public String build(List<Map<String,Object>> map){
|
|
|
|
|
+ if(BeanUtils.isEmpty(map)){
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+ List<String> conditions = new ArrayList<>();
|
|
|
|
|
+ for (Map<String,Object> item : map) {
|
|
|
|
|
+ String key = item.keySet().iterator().next();
|
|
|
|
|
+ Object value = item.get(key);
|
|
|
|
|
+
|
|
|
|
|
+ if("between".equals(key) && value instanceof Map){
|
|
|
|
|
+ Map<String, Object> values = (Map<String, Object>) value;
|
|
|
|
|
+ String fieldName = values.keySet().iterator().next();
|
|
|
|
|
+ List<String> list = (ArrayList) values.get(fieldName);
|
|
|
|
|
+
|
|
|
|
|
+ conditions.add(fieldName + " between '" + list.get(0) + "' and '" + list.get(1) + "'");
|
|
|
|
|
+ }
|
|
|
|
|
+ else if("find_in_set".equals(key) && value instanceof Map){
|
|
|
|
|
+ Map<String, Object> values = (Map<String, Object>) value;
|
|
|
|
|
+ String fieldName = values.keySet().iterator().next();
|
|
|
|
|
+ Object fieldValue = values.get(fieldName);
|
|
|
|
|
+ conditions.add("find_in_set(" + fieldName + ", '" + fieldValue + "') > 0");
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ // 普通字段
|
|
|
|
|
+ conditions.add(key + " like '%" + value.toString() + "%'");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return conditions.isEmpty() ? "" : " where " + String.join(" and ", conditions);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public APIResult<Void> upEmployee(String str){
|
|
public APIResult<Void> upEmployee(String str){
|
|
|
APIResult<Void> result = new APIResult<>();
|
|
APIResult<Void> result = new APIResult<>();
|