1、metaTable中加入字段主键设置
2、添加删除策略配置 3、列表配置中加入"HIDDEN"配置,以及预览中加入解析逻辑
This commit is contained in:
@@ -231,6 +231,22 @@ public final class MetaKit {
|
||||
.filter(y -> x.split("[.]")[1].equals(y.getName()))
|
||||
.findFirst().ifPresent(y -> _shows.add(Kv.of("col", x).set("order", true)));
|
||||
});*/
|
||||
List<Kv> _shows = shows.stream().map(x -> {
|
||||
Kv kv = Kv.of();
|
||||
kv.putAll(x);
|
||||
|
||||
if ("FUNC".equalsIgnoreCase(x.get("inType")) || "QTASK".equalsIgnoreCase(x.get("inType")) || "DICT".equalsIgnoreCase(x.get("inType"))) {
|
||||
kv.set("fmt", x.get("inType") + "|" + x.get("inExt"));
|
||||
} else if ("HIDDEN".equalsIgnoreCase(x.get("inType"))) {
|
||||
kv.set("fmt", "HIDDEN");
|
||||
} else {
|
||||
kv.set("fmt", "");
|
||||
}
|
||||
kv.remove("inType");
|
||||
kv.remove("inExt");
|
||||
return kv;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
//filters
|
||||
List<Map> _filters = new ArrayList<>();
|
||||
@@ -300,10 +316,28 @@ public final class MetaKit {
|
||||
_details.add(kv);
|
||||
});*/
|
||||
|
||||
//pk:业务主表的主键
|
||||
StringBuffer _pks = new StringBuffer();
|
||||
MetaTable mainTable = metaTables.get(metaService.getTable());
|
||||
mainTable.getItems().stream().filter(x -> x.getPk() != null && x.getPk()).forEach(x -> {
|
||||
_pks.append(String.format("%s.%s,", metaService.getTable(), x.getName()));
|
||||
});
|
||||
if (_pks.length() > 0) {
|
||||
_pks.deleteCharAt(_pks.length() -1);
|
||||
}
|
||||
if (_pks.length() == 0) { // 默认主键
|
||||
List<Field> items = metaTables.get(metaService.getTable()).getItems();
|
||||
//存在id字段,取id
|
||||
items.stream().filter(x -> x.getName().equalsIgnoreCase("id")).findAny().ifPresent(x -> {
|
||||
_pks.append(String.format("%s.%s", metaService.getTable(), x.getName()));
|
||||
});
|
||||
}
|
||||
|
||||
return Kv.of()
|
||||
.set("pk", _pks.toString())
|
||||
.set("title", comment)
|
||||
.set("items", _items2)
|
||||
.set("shows", shows)
|
||||
.set("shows", _shows)
|
||||
.set("filters", _filters)
|
||||
.set("edits", edits)
|
||||
.set("details", details);
|
||||
|
||||
@@ -2,6 +2,8 @@ package net.tccn.base;
|
||||
|
||||
import com.jfinal.plugin.activerecord.SqlPara;
|
||||
import com.jfinal.plugin.activerecord.sql.SqlKit;
|
||||
import com.jfinal.template.Engine;
|
||||
import com.jfinal.template.Template;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
@@ -131,4 +133,12 @@ public class TplKit {
|
||||
public void parseTpl() {
|
||||
kit.parseSqlTemplate();
|
||||
}
|
||||
|
||||
//---------------
|
||||
private static Engine engine = Engine.use();
|
||||
|
||||
public static String parseTpl(String tpl, Map data) {
|
||||
Template template = engine.getTemplateByString(tpl);
|
||||
return template.renderToString(data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import net.tccn.base.PageBean;
|
||||
import net.tccn.dbq.fbean.FBean;
|
||||
import net.tccn.dbq.jdbc.api.DbKit;
|
||||
import net.tccn.dbq.parser.ParseMysql;
|
||||
import net.tccn.dbq.parser.Parser;
|
||||
import net.tccn.meta.MetaService;
|
||||
import net.tccn.meta.MetaTable;
|
||||
|
||||
@@ -15,7 +14,7 @@ import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class DbExecutors {
|
||||
private final static Parser PARSER = new ParseMysql();
|
||||
private final static ParseMysql PARSER = new ParseMysql();
|
||||
|
||||
public static PageBean findPage(FBean fBean) throws ExecutionException, InterruptedException {
|
||||
//sql解析
|
||||
@@ -37,4 +36,15 @@ public class DbExecutors {
|
||||
|
||||
return PageBean.by(rows, total);
|
||||
}
|
||||
|
||||
public static void del(String name, Map data, String token) {
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
|
||||
MetaTable mainTable = MetaKit.getMetaTableByAlias(metaService.getTable());
|
||||
|
||||
DbKit dbKit = MetaKit.getDbKit(mainTable.getDbPlatId());
|
||||
|
||||
String delSql = PARSER.parseDel(name, data, token);
|
||||
dbKit.exetute(delSql);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ public class Field {
|
||||
private String type;
|
||||
private String inType;
|
||||
private String inExt;
|
||||
private Boolean pk; // 是否主键
|
||||
|
||||
public Field() {}
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ public class DbKit implements DbSource{
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T findfirst(String sql, Class<T> type) {
|
||||
return dbSource.findfirst(sql, type);
|
||||
public <T> T findFirst(String sql, Class<T> type) {
|
||||
return dbSource.findFirst(sql, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -72,7 +72,7 @@ public class DbKit implements DbSource{
|
||||
|
||||
// -----------------------------------------
|
||||
public <T> CompletableFuture<T> findfirstAsync(String sql, Class<T> type) {
|
||||
return CompletableFuture.supplyAsync(() -> findfirst(sql, type));
|
||||
return CompletableFuture.supplyAsync(() -> findFirst(sql, type));
|
||||
}
|
||||
public <T> CompletableFuture<List<T>> findListAsync(String sql, Class<T> type) {
|
||||
return CompletableFuture.supplyAsync(() -> findList(sql, type));
|
||||
|
||||
@@ -14,7 +14,7 @@ public interface DbSource extends IService {
|
||||
|
||||
<T> List<T> findList(String sql, Class<T> type);
|
||||
|
||||
<T> T findfirst(String sql, Class<T> type);
|
||||
<T> T findFirst(String sql, Class<T> type);
|
||||
|
||||
<T> T queryColumn(String sql, Class<T> type);
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ public class DbSourceMysql implements DbSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T findfirst(String sql, Class<T> type) {
|
||||
public <T> T findFirst(String sql, Class<T> type) {
|
||||
List<T> list = findList(sql, type);
|
||||
return list.size() > 0 ? list.get(0) : null;
|
||||
}
|
||||
@@ -146,14 +146,17 @@ public class DbSourceMysql implements DbSource {
|
||||
try (
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
){
|
||||
ps.executeUpdate();
|
||||
ps.execute();
|
||||
//ps.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
} finally {
|
||||
release(connection);
|
||||
}
|
||||
}
|
||||
|
||||
//fixme: lxy 处理连接超过8小时失效问题
|
||||
private Connection connection() {
|
||||
Connection connection = connection(0);
|
||||
if (connection != null && catalog != null) {
|
||||
@@ -178,6 +181,10 @@ public class DbSourceMysql implements DbSource {
|
||||
System.out.println("创建新的连接:" + x);
|
||||
} else {
|
||||
conn = queue.take();
|
||||
if (conn.isClosed()) {
|
||||
System.out.println("connetion had closed,");
|
||||
conn = connection(n);
|
||||
}
|
||||
}
|
||||
} catch (SQLException | InterruptedException e) {
|
||||
if (e instanceof InterruptedException) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.tccn.dbq.parser;
|
||||
|
||||
import net.tccn.base.Kv;
|
||||
import net.tccn.base.MetaKit;
|
||||
import net.tccn.base.TplKit;
|
||||
import net.tccn.dbq.fbean.*;
|
||||
import net.tccn.meta.MetaLink;
|
||||
import net.tccn.meta.MetaService;
|
||||
@@ -132,4 +133,22 @@ public class ParseMysql implements Parser {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String parseDel(String name, Map data, String token) {
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
Map<String, String> dels = metaService.getDels();
|
||||
MetaTable mainTable = MetaKit.getMetaTableByAlias(metaService.getTable());
|
||||
|
||||
String sql = "";
|
||||
if ("UP_FIELD".equalsIgnoreCase(dels.get("cate"))) {
|
||||
data.put("table", mainTable.getName());
|
||||
sql = TplKit.parseTpl("update #(table) set status=9 where id=#(id)", data);
|
||||
} else if ("SQL".equalsIgnoreCase(dels.get("cate"))) {
|
||||
sql = TplKit.parseTpl(dels.get("sql"), data);
|
||||
} else if ("QTASK".equalsIgnoreCase(dels.get("cate"))) {
|
||||
sql = TplKit.parseTpl("qtask", data);
|
||||
}
|
||||
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.tccn.base.arango.Doc;
|
||||
|
||||
import javax.persistence.Table;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -24,6 +25,7 @@ public class MetaService extends Doc<MetaService> {
|
||||
private List<Map<String,String>> shows = new ArrayList<>();
|
||||
private List<Map<String,String>> edits = new ArrayList<>();
|
||||
private List<Map<String,String>> details = new ArrayList<>();
|
||||
private Map<String, String> dels = new HashMap<>();
|
||||
private List<Filter> filters = new ArrayList<>();//{name:"", label:"", checked:true, }
|
||||
private List<Map<String,String>> exports = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -79,4 +79,14 @@ public class DataService extends BaseService {
|
||||
return HttpScope.refer("excel");
|
||||
}
|
||||
|
||||
@RestMapping(name = "del", auth = false, comment = "数据删除")
|
||||
public JBean del(String name, Map<String, String> data, @RestParam(name = "platToken") String token) {
|
||||
JBean jBean = new JBean();
|
||||
try {
|
||||
DbExecutors.del(name, data, token);
|
||||
} catch (Exception e) {
|
||||
jBean.set(-1, "删除数据失败!");
|
||||
}
|
||||
return jBean;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,6 +183,17 @@ public class MetadataService extends BaseService { //arango
|
||||
return JBean.OK;
|
||||
}
|
||||
|
||||
@RestMapping(name = "delsave", comment = "删除配置保存")
|
||||
public JBean delSave(String name, Map<String, String> dels, @RestParam(name = "platToken") String token) {
|
||||
if (dels == null || dels.size() == 0) return null;
|
||||
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
metaService.setDels(dels);
|
||||
|
||||
MetaKit.save(metaService);
|
||||
return JBean.OK;
|
||||
}
|
||||
|
||||
@RestMapping(name = "importsort", comment = "导入字段保存")
|
||||
public JBean importSort(String serviceKey, List<String> items, @RestParam(name = "platToken") String token) {
|
||||
if (isEmpty.test(items)) return null;
|
||||
|
||||
Reference in New Issue
Block a user