diff --git a/pom.xml b/pom.xml index f92fe0f..6987ebf 100644 --- a/pom.xml +++ b/pom.xml @@ -48,10 +48,17 @@ + org.projectlombok + lombok + 1.18.6 + provided + + + junit diff --git a/root/api/meta.js b/root/api/meta.js index 60a5a97..f1003f9 100644 --- a/root/api/meta.js +++ b/root/api/meta.js @@ -1,8 +1,8 @@ const meta = { - getTableList(callback) { + /*getTableList(callback) { red.getJSON("/meta/tablelist",{}, json => callback(json)); - }, + },*/ /*getTableDetail({name}, callback) { red.getJSON("/meta/tableinfo",{name}, json => callback(json)); },*/ @@ -72,6 +72,9 @@ const meta = { }, // Meta-Table + tableList() { + return red.postX('/meta/tablelist') + }, itemSort({alias, items}) { return red.postX('/meta/itemsort', {alias, items: JSON.stringify(items)}) }, diff --git a/root/metadata/metatable/metaTable.html b/root/metadata/metatable/metaTable.html index fe603f9..905adf6 100644 --- a/root/metadata/metatable/metaTable.html +++ b/root/metadata/metatable/metaTable.html @@ -137,7 +137,7 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/root/res/js/red.js b/root/res/js/red.js index a5e48a9..73bc60d 100644 --- a/root/res/js/red.js +++ b/root/res/js/red.js @@ -92,7 +92,19 @@ var red = { axios({ url, method: 'post', - params, + data: params, + transformRequest: [data => { + console.log(data) + let _data = '' + for (k in data) { + if (data[k] != undefined) { + _data += k + '=' + data[k] + '&' + } + } + console.log(_data) + return _data + } + ] }).then(res => { let data = res.data || {} red.loginCheck(data) diff --git a/src/main/java/net/tccn/base/MetaKit.java b/src/main/java/net/tccn/base/MetaKit.java index 3fc1e71..445dc13 100644 --- a/src/main/java/net/tccn/base/MetaKit.java +++ b/src/main/java/net/tccn/base/MetaKit.java @@ -1,10 +1,12 @@ package net.tccn.base; +import lombok.Getter; import net.tccn.base.arango.Doc; import net.tccn.dbq.Field; import net.tccn.dbq.fbean.FilterType; import net.tccn.dbq.jdbc.api.DbAccount; import net.tccn.dbq.jdbc.api.DbKit; +import net.tccn.meta.Filter; import net.tccn.meta.MetaLink; import net.tccn.meta.MetaService; import net.tccn.meta.MetaTable; @@ -14,7 +16,6 @@ import org.redkale.util.Comment; import java.util.*; import java.util.function.BiFunction; -import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -22,13 +23,18 @@ import java.util.stream.Collectors; * * Created by liangxianyou at 2019/1/7 13:31. */ -public class MetaKit { +public final class MetaKit { //基础数据缓存 + @Getter private static List metaTables; + @Getter private static List metaLinks; + @Getter private static List metaServices; + @Getter private static List dbPlats; + @Getter private static List sysPlats; static { @@ -57,47 +63,7 @@ public class MetaKit { // todo: 按照key 查询更新内存 } - //----- get/set ---- - public static List getMetaTables() { - return metaTables; - } - - public static void setMetaTables(List metaTables) { - MetaKit.metaTables = metaTables; - } - - public static List getMetaLinks() { - return metaLinks; - } - - public static void setMetaLinks(List metaLinks) { - MetaKit.metaLinks = metaLinks; - } - - public static List getMetaServices() { - return metaServices; - } - - public static List getDbPlats() { - return dbPlats; - } - - public static void setDbPlats(List dbPlats) { - MetaKit.dbPlats = dbPlats; - } - - public static List getSysPlats() { - return sysPlats; - } - - public static void setSysPlats(List sysPlats) { - MetaKit.sysPlats = sysPlats; - } - - //----------------------------------- - public static void setMetaServices(List metaServices) { - MetaKit.metaServices = metaServices; - } + // ----------------------------------- /** * 通过 别名 查询 MetaTable @@ -150,12 +116,6 @@ public class MetaKit { */ public static MetaService getMetaService(String name, String token) { Optional service = metaServices.stream().filter(x -> x.getName().equals(name)).findAny(); - //处理业务逻辑 - service.ifPresent(x -> { - //x.setMetaTable(metaTableByAlias(x.getTable())); - //x.setMetaLinks(metaLinks(x.getLinks())); - //x.setTables(metaTables(x.getMetaLinks())); - }); return service.orElse(null); } @@ -185,83 +145,14 @@ public class MetaKit { return t; }; - public static Function getField = (n) -> { - String[] arr = n.split("[.]"); - MetaTable metaTable = getMetaTableByAlias(arr[0]); - return metaTable.getItems().stream().filter(x -> x.getName().equals(arr[1])).findAny().orElse(null); - }; - - //listcfg - /*public static Function builderCfg = (m) -> { - List shows = m.getShows(); - List filters = m.getFilters(); - - List _filters = new ArrayList<>(); - List _cols = new ArrayList<>(); - - //todo: 优化,批量操作 - //build shows - shows.forEach(x -> { - Field field = getField.apply(x); - if (field != null) { - Kv col = Kv.of(); - col.set("col", x.split("$]")[0] + field.showField());//a.createtime=dt - col.set("label", field.getLabel()); - col.set("order", 1);//dev 是否支持排序 - _cols.add(col); - } - }); - - //build filters - filters.forEach(x -> { - Kv filter = Kv.of(); - Field filed = getField.apply(x.get("name") + ""); - - if (filed != null) { - filter.set("name", x.get("name")); - filter.set("label", filed.getLabel()); - } - - filter.set("inType", filed.getInType()); - filter.set("inExt", filed.getInExt()); - - List types = new ArrayList<>(); - List list = (List) x.get("filterType"); - list.forEach(t -> { - FilterType type = FilterType.getFilterType(t); - if (type != null) { - types.add(Kv.of("name", t).set("remark", type.getRemark())); - } - }); - - filter.set("filterType", types); - Object checked = x.getOrDefault("checked", false); - filter.set("checked", checked instanceof Boolean ? checked : false); - _filters.add(filter); - }); - - *//*shows.forEach(x -> { - _shows.add(Kv.of("name", x).set("label", getFieldLabel(x))); - });*//* - - Kv cfg = Kv.of(); - cfg.set("title", m.getName())//业务名称 - //.set("url", getUrl()) - .set("cols", _cols)//展示的数据列 - //.set("conditionLabel", "") - .set("filters", _filters);//查询过滤条件 - - return cfg; - };*/ - public static Map cfg(String name, String token) { MetaService metaService = getMetaService(name, token); Kv metaTables = getMetaTables(metaService, false); List> shows = metaService.getShows(); - List edits = metaService.getEdits(); + //List edits = metaService.getEdits(); List details = metaService.getDetails(); - List filters = metaService.getFilters(); + List filters = metaService.getFilters(); String comment = metaService.getComment(); //List items = new ArrayList<>(); @@ -293,7 +184,7 @@ public class MetaKit { //filters List _filters = new ArrayList<>(); filters.forEach(x -> { - String col = String.valueOf(x.get("name")); + String col = String.valueOf(x.getName()); MetaTable metaTable = metaTables.get(col.split("[.]")[0]); // 表别名 Kv filter = Kv.of(); @@ -301,10 +192,10 @@ public class MetaKit { .filter(y -> col.split("[.]")[1].equals(y.getName())) .findFirst() .ifPresent(y -> { - filter.set("name", x.get("name")); - filter.set("label", x.get("label") != null ? x.get("label") : y.getLabel()); + filter.set("name", x.getName()); + filter.set("label", x.getLabel() != null ? x.getLabel() : y.getLabel()); List types = new ArrayList<>(); - List list = (List) x.get("filterType"); + List list = (List) x.getFilterType(); list.forEach(t -> { FilterType type = FilterType.getFilterType(t); if (type != null) { @@ -316,15 +207,14 @@ public class MetaKit { if (!types.isEmpty()) {//设置默认查询项 filter.set("type", types.get(0).get("name")); } - Object checked = x.getOrDefault("checked", false); - filter.set("checked", checked instanceof Boolean ? checked : false); + filter.set("checked", x.isChecked()); }); _filters.add(filter); }); //edits List _edits = new ArrayList();//edits; - edits.forEach(x -> { + /*edits.forEach(x -> { Kv kv = Kv.of(); kv.set("col", x); @@ -348,7 +238,7 @@ public class MetaKit { } _edits.add(kv); - }); + });*/ //details List _details = new ArrayList();//details; @@ -460,7 +350,7 @@ public class MetaKit { if (!all) { allAlias = Liangs.streamConcat( metaService.getFilters().stream().map(f -> { - String col = (String) f.get("name"); + String col = (String) f.getName(); String alias = col.split("[.]")[0]; return alias; }), diff --git a/src/main/java/net/tccn/base/MetaRender.java b/src/main/java/net/tccn/base/MetaRender.java index 98a9e1e..1866119 100644 --- a/src/main/java/net/tccn/base/MetaRender.java +++ b/src/main/java/net/tccn/base/MetaRender.java @@ -22,8 +22,9 @@ public class MetaRender implements HttpRender { @Override public void renderTo(HttpRequest request, HttpResponse response, Convert convert, V scope) { + String referid = scope.getReferid(); Map attr = scope.getAttributes(); - if ("excel".equals(scope.getReferid())) { + if ("excel".equals(referid)) { List list = (List) attr.get("data"); Kv heads = (Kv) attr.get("heads"); String fileName = (String) attr.get("fileName"); diff --git a/src/main/java/net/tccn/dbq/Field.java b/src/main/java/net/tccn/dbq/Field.java index 1f6ee47..f862c35 100644 --- a/src/main/java/net/tccn/dbq/Field.java +++ b/src/main/java/net/tccn/dbq/Field.java @@ -1,10 +1,12 @@ package net.tccn.dbq; +import lombok.Data; import net.tccn.dbq.table.Column; /** * @author: liangxianyou at 2018/10/17 17:24. */ +@Data public class Field { private String name; private String label; @@ -14,56 +16,6 @@ public class Field { private String inExt; public Field() {} - //============== getter/setter ============= - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getInType() { - return inType; - } - - public void setInType(String inType) { - this.inType = inType; - } - - public String getInExt() { - return inExt; - } - - public void setInExt(String inExt) { - this.inExt = inExt; - } - //------------------------------------ public enum InType { diff --git a/src/main/java/net/tccn/dbq/fbean/FBean.java b/src/main/java/net/tccn/dbq/fbean/FBean.java index 11da1c0..49a6a93 100644 --- a/src/main/java/net/tccn/dbq/fbean/FBean.java +++ b/src/main/java/net/tccn/dbq/fbean/FBean.java @@ -1,11 +1,14 @@ package net.tccn.dbq.fbean; +import lombok.Data; + import java.util.List; /** * 查询用实体 * @author: liangxianyou at 2018/10/25 14:49. */ +@Data public class FBean { private String platToken; // 平台token @@ -16,78 +19,6 @@ public class FBean { private List orders;//{f1: 1, f2: -1} private Limit limit;//{pn: 1, ps: 10} - //---------- getter/setter ------------ - - public void setPlatToken(String platToken) { - this.platToken = platToken; - } - - public String getPlatToken() { - return platToken; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public List getFilters() { - return filters; - } - - public void setFilters(List filters) { - this.filters = filters; - } - - public List getOrders() { - return orders; - } - - public void setOrders(List orders) { - this.orders = orders; - } - - public Limit getLimit() { - return limit; - } - - public void setLimit(Limit limit) { - this.limit = limit; - } - //----------------------------------- - //组装查询sql,[list, count] - @Deprecated - public String[] buildSqlFilter() { - //where 1=1 and x=1 and y=1 order by x,y limit 1,3; - String where = Filter.filter(filters); - String order = Order.order(orders, DbType.MYSQL); - if (limit == null) { - limit = new Limit(); - } - String limit = this.limit.limit(); - - String list = where + order + limit; - String count = where; - return new String[]{list, count}; - } - - @Deprecated - public void setLimit(int pn, int ps) { - limit.setPn(pn); - limit.setPs(ps); - } - } diff --git a/src/main/java/net/tccn/dbq/fbean/Filter.java b/src/main/java/net/tccn/dbq/fbean/Filter.java index 08b2979..bfa8f4d 100644 --- a/src/main/java/net/tccn/dbq/fbean/Filter.java +++ b/src/main/java/net/tccn/dbq/fbean/Filter.java @@ -1,15 +1,19 @@ package net.tccn.dbq.fbean; +import lombok.Data; + import java.util.List; /** * 查询条件实体 * Created by liangxianyou at 2018/12/14 15:34. */ +@Data public class Filter { private String col; private String value; private String type; + //---------------------- public static Filter by(String col, Object value) { return by(col, "==", value + "");//todo: == 不是mysql 语法,不具备通用性 @@ -61,29 +65,4 @@ public class Filter { return ""; } - - //---------- getter/setter ------------ - public String getCol() { - return col; - } - - public void setCol(String col) { - this.col = col; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } } diff --git a/src/main/java/net/tccn/dbq/fbean/Limit.java b/src/main/java/net/tccn/dbq/fbean/Limit.java index c25f465..92bacb0 100644 --- a/src/main/java/net/tccn/dbq/fbean/Limit.java +++ b/src/main/java/net/tccn/dbq/fbean/Limit.java @@ -1,8 +1,11 @@ package net.tccn.dbq.fbean; +import lombok.Data; + /** * Created by liangxianyou at 2018/12/14 15:36. */ +@Data public class Limit { private int pn; private int ps; @@ -15,6 +18,7 @@ public class Limit { this.ps = ps; } + //-------------------- public String limit() { if (pn < 1) { pn = 1; @@ -24,21 +28,5 @@ public class Limit { } return String.format(" LIMIT %s, %s", (pn - 1) * ps, ps); } - - //---- getter/setter ----- - public int getPn() { - return pn; - } - - public void setPn(int pn) { - this.pn = pn; - } - - public int getPs() { - return ps; - } - - public void setPs(int ps) { - this.ps = ps; - } } + diff --git a/src/main/java/net/tccn/dbq/fbean/Order.java b/src/main/java/net/tccn/dbq/fbean/Order.java index 56cd62b..21f8988 100644 --- a/src/main/java/net/tccn/dbq/fbean/Order.java +++ b/src/main/java/net/tccn/dbq/fbean/Order.java @@ -16,6 +16,7 @@ public class Order { this.col = col; this.desc = desc; } + // -------------------------------- public static String order(List orders, DbType dbType) { if (orders == null || orders.size() == 0) { @@ -38,21 +39,4 @@ public class Order { return buf.toString(); } - - //--- getter/setter --- - public String getCol() { - return col; - } - - public void setCol(String col) { - this.col = col; - } - - public int getDesc() { - return desc; - } - - public void setDesc(int desc) { - this.desc = desc; - } } diff --git a/src/main/java/net/tccn/dbq/jdbc/api/DbAccount.java b/src/main/java/net/tccn/dbq/jdbc/api/DbAccount.java index 9c1e342..89dcc6c 100644 --- a/src/main/java/net/tccn/dbq/jdbc/api/DbAccount.java +++ b/src/main/java/net/tccn/dbq/jdbc/api/DbAccount.java @@ -1,7 +1,7 @@ package net.tccn.dbq.jdbc.api; +import lombok.Data; import net.tccn.base.arango.Doc; -import org.redkale.convert.json.JsonConvert; import javax.persistence.Table; import java.util.List; @@ -10,7 +10,7 @@ import java.util.List; * 数据库平台 * @author: liangxianyou at 2018/11/14 12:58. */ -@SuppressWarnings("Duplicates") +@Data @Table(name = "db_plat", catalog = "db_dev") public class DbAccount extends Doc { public static DbAccount dao = dao(DbAccount.class); @@ -23,76 +23,7 @@ public class DbAccount extends Doc { private String pwd; //密码 private List catalogs; //库 - //private JdbcAccount jdbcAccount; - //------------- setter/getter --------------- - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getCate() { - return cate; - } - - public void setCate(String cate) { - this.cate = cate; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public String getPwd() { - return pwd; - } - - public void setPwd(String pwd) { - this.pwd = pwd; - } - - public List getCatalogs() { - return catalogs; - } - - public void setCatalogs(List catalogs) { - this.catalogs = catalogs; - } - - @Override - public String toString() { - return JsonConvert.root().convertTo(this); - } - //------------------------------------------------------------------------- - - /*protected Connection connection() throws SQLException { - if (jdbcAccount == null) { - jdbcAccount = new JdbcAccount(url, user, pwd); - } - return jdbcAccount.getConnection(); - }*/ + //---------------------------- public String accountKey() { int start = url.indexOf("//") + 2; diff --git a/src/main/java/net/tccn/dbq/jdbc/api/DbSourceMysql.java b/src/main/java/net/tccn/dbq/jdbc/api/DbSourceMysql.java index 9b0d78b..fdfc279 100644 --- a/src/main/java/net/tccn/dbq/jdbc/api/DbSourceMysql.java +++ b/src/main/java/net/tccn/dbq/jdbc/api/DbSourceMysql.java @@ -14,7 +14,6 @@ import java.util.concurrent.atomic.AtomicInteger; /** * Created by liangxianyou at 2019/3/12 14:20. */ -@SuppressWarnings("Duplicates") public class DbSourceMysql implements DbSource { private static ConcurrentHashMap> conns = new ConcurrentHashMap<>(); diff --git a/src/main/java/net/tccn/dbq/qtask/Qtask.java b/src/main/java/net/tccn/dbq/qtask/Qtask.java index abc586e..f93dc98 100644 --- a/src/main/java/net/tccn/dbq/qtask/Qtask.java +++ b/src/main/java/net/tccn/dbq/qtask/Qtask.java @@ -1,5 +1,6 @@ package net.tccn.dbq.qtask; +import lombok.Data; import net.tccn.base.arango.Doc; import javax.persistence.Table; @@ -7,6 +8,7 @@ import javax.persistence.Table; /** * @author: liangxianyou at 2018/11/13 14:59. */ +@Data @Table(name = "qtask", catalog = "db_dev") public class Qtask extends Doc { public static Qtask dao = dao(Qtask.class); @@ -22,84 +24,6 @@ public class Qtask extends Doc { private String catalog; //数据库名 private Integer status; //状态 1启用|0未启用|-1删除 - //------------- setter/getter ------------------------ - public String getQueryId() { - return queryId; - } + //------------------------------------- - public void setQueryId(String queryId) { - this.queryId = queryId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getSql() { - return sql; - } - - public void setSql(String sql) { - this.sql = sql; - } - - public String getPara() { - return para; - } - - public void setPara(String para) { - this.para = para; - } - - public String getCate() { - return cate; - } - - public void setCate(String cate) { - this.cate = cate; - } - - public Integer getSysPlatId() { - return sysPlatId; - } - - public void setSysPlatId(Integer sysPlatId) { - this.sysPlatId = sysPlatId; - } - - public Integer getPlatId() { - return platId; - } - - public void setPlatId(Integer platId) { - this.platId = platId; - } - - public String getCatalog() { - return catalog; - } - - public void setCatalog(String catalog) { - this.catalog = catalog; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } } diff --git a/src/main/java/net/tccn/dbq/table/Column.java b/src/main/java/net/tccn/dbq/table/Column.java index 6a31624..4bd3cec 100644 --- a/src/main/java/net/tccn/dbq/table/Column.java +++ b/src/main/java/net/tccn/dbq/table/Column.java @@ -1,9 +1,12 @@ package net.tccn.dbq.table; +import lombok.Data; + /** * 数据库表的列 * @author: liangxianyou at 2018/10/8 10:59. */ +@Data public class Column { private String field; //列名称 private String type; //列类型 @@ -20,38 +23,6 @@ public class Column { this.comment = comment; } - public String getField() { - return field; - } - - public void setField(String field) { - this.field = field; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public boolean getNotNull() { - return notNull; - } - - public void setNotNull(boolean notNull) { - this.notNull = notNull; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - //----------------------- public void setNull(String notNull) { this.notNull = "NO".equalsIgnoreCase(notNull) ? true : false; diff --git a/src/main/java/net/tccn/dbq/table/Table.java b/src/main/java/net/tccn/dbq/table/Table.java index c836941..e547d82 100644 --- a/src/main/java/net/tccn/dbq/table/Table.java +++ b/src/main/java/net/tccn/dbq/table/Table.java @@ -1,6 +1,8 @@ package net.tccn.dbq.table; +import lombok.Data; + import java.util.ArrayList; import java.util.List; @@ -8,6 +10,7 @@ import java.util.List; * 数据库表. * @author: liangxianyou at 2018/10/8 10:58. */ +@Data public class Table { private String catalog; //库名称 private String name; //表名称 @@ -20,40 +23,6 @@ public class Table { this.comment = comment; } - //------------ getter/setter ------------- - - public String getCatalog() { - return catalog; - } - - public void setCatalog(String catalog) { - this.catalog = catalog; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } - //------------------------------ //Dev diff --git a/src/main/java/net/tccn/meta/Filter.java b/src/main/java/net/tccn/meta/Filter.java new file mode 100644 index 0000000..3af5080 --- /dev/null +++ b/src/main/java/net/tccn/meta/Filter.java @@ -0,0 +1,16 @@ +package net.tccn.meta; + +import lombok.Data; + +import java.util.List; + +/** + * @author: liangxianyou + */ +@Data +public class Filter { + private String name; + private String label; + private boolean checked; + private List filterType; +} diff --git a/src/main/java/net/tccn/meta/MetaLink.java b/src/main/java/net/tccn/meta/MetaLink.java index 4bb32db..b47c42d 100644 --- a/src/main/java/net/tccn/meta/MetaLink.java +++ b/src/main/java/net/tccn/meta/MetaLink.java @@ -1,5 +1,6 @@ package net.tccn.meta; +import lombok.Data; import net.tccn.base.arango.Doc; import javax.persistence.Table; @@ -8,29 +9,11 @@ import java.util.Map; /** * Created by liangxianyou at 2018/12/25 16:22. */ +@Data @Table(name = "MetaLink", catalog = "db_demo") public class MetaLink extends Doc { public static MetaLink dao = Doc.dao(MetaLink.class); private String[] tables; private Map link; - - //------------------------------------------- - - - public String[] getTables() { - return tables; - } - - public void setTables(String[] tables) { - this.tables = tables; - } - - public Map getLink() { - return link; - } - - public void setLink(Map link) { - this.link = link; - } } diff --git a/src/main/java/net/tccn/meta/MetaService.java b/src/main/java/net/tccn/meta/MetaService.java index e5d5222..3771d8d 100644 --- a/src/main/java/net/tccn/meta/MetaService.java +++ b/src/main/java/net/tccn/meta/MetaService.java @@ -1,5 +1,6 @@ package net.tccn.meta; +import lombok.Data; import net.tccn.base.arango.Doc; import javax.persistence.Table; @@ -10,6 +11,7 @@ import java.util.Map; /** * Created by liangxianyou at 2018/12/24 16:15. */ +@Data @Table(name = "MetaService", catalog = "db_demo") public class MetaService extends Doc { public static MetaService dao = Doc.dao(MetaService.class); @@ -20,82 +22,11 @@ public class MetaService extends Doc { private String sysPlatId; //平台id private List> shows = new ArrayList<>(); - private List edits = new ArrayList<>(); + private List> edits = new ArrayList<>(); private List details = new ArrayList<>(); - private List filters = new ArrayList<>(); + private List filters = new ArrayList<>();//{name:"", label:"", checked:true, } private List> exports = new ArrayList<>(); - //------------------------------------------- + //------ - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getTable() { - return table; - } - - public void setTable(String table) { - this.table = table; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getSysPlatId() { - return sysPlatId; - } - - public void setSysPlatId(String sysPlatId) { - this.sysPlatId = sysPlatId; - } - - public List> getShows() { - return shows; - } - - public void setShows(List> shows) { - this.shows = shows; - } - - public List getEdits() { - return edits; - } - - public void setEdits(List edits) { - this.edits = edits; - } - - public List getDetails() { - return details; - } - - public void setDetails(List details) { - this.details = details; - } - - public List getFilters() { - return filters; - } - - public void setFilters(List filters) { - this.filters = filters; - } - - public List> getExports() { - return exports; - } - - public void setExports(List> exports) { - this.exports = exports; - } } diff --git a/src/main/java/net/tccn/meta/MetaTable.java b/src/main/java/net/tccn/meta/MetaTable.java index 4c058b9..df5a3c1 100644 --- a/src/main/java/net/tccn/meta/MetaTable.java +++ b/src/main/java/net/tccn/meta/MetaTable.java @@ -1,5 +1,6 @@ package net.tccn.meta; +import lombok.Data; import net.tccn.base.arango.Doc; import net.tccn.dbq.Field; @@ -13,6 +14,7 @@ import java.util.stream.Collectors; * * @author: liangxianyou at 2018/10/17 12:58. */ +@Data @Table(name = "MetaTable", catalog = "db_demo") public class MetaTable extends Doc implements Serializable { public static final MetaTable dao = MetaTable.dao(MetaTable.class); @@ -26,72 +28,6 @@ public class MetaTable extends Doc implements Serializable { private String catalog; //所在database private Integer hv;//临时 - //=============== getter/setter ============ - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - - public String getSysPlatId() { - return sysPlatId; - } - - public void setSysPlatId(String sysPlatId) { - this.sysPlatId = sysPlatId; - } - - public String getDbPlatId() { - return dbPlatId; - } - - public void setDbPlatId(String dbPlatId) { - this.dbPlatId = dbPlatId; - } - - public String getCatalog() { - return catalog; - } - - public void setCatalog(String catalog) { - this.catalog = catalog; - } - - public Integer getHv() { - return hv; - } - - public void setHv(Integer hv) { - this.hv = hv; - } - // ------------------------------------------------ public static MetaTable toAs(net.tccn.dbq.table.Table table) { List fields = table.getColumns().stream().map(Field::toAs).collect(Collectors.toList()); diff --git a/src/main/java/net/tccn/plat/DbPlat.java b/src/main/java/net/tccn/plat/DbPlat.java index bc9f3b4..476dbd9 100644 --- a/src/main/java/net/tccn/plat/DbPlat.java +++ b/src/main/java/net/tccn/plat/DbPlat.java @@ -1,7 +1,7 @@ package net.tccn.plat; +import lombok.Data; import net.tccn.base.arango.Doc; -import org.redkale.convert.json.JsonConvert; import javax.persistence.Table; import java.util.List; @@ -10,6 +10,7 @@ import java.util.List; * 数据库平台 * @author: liangxianyou at 2018/11/14 12:58. */ +@Data @Table(name = "db_plat", catalog = "db_dev") public class DbPlat extends Doc { public static DbPlat dao = dao(DbPlat.class); @@ -22,75 +23,4 @@ public class DbPlat extends Doc { private String pwd; //密码 private List catalogs; //库 private Integer status;//状态 1启用, 0 未启用 - - //------------- setter/getter --------------- - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getCate() { - return cate; - } - - public void setCate(String cate) { - this.cate = cate; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public String getPwd() { - return pwd; - } - - public void setPwd(String pwd) { - this.pwd = pwd; - } - - public List getCatalogs() { - return catalogs; - } - - public void setCatalogs(List catalogs) { - this.catalogs = catalogs; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - return JsonConvert.root().convertTo(this); - } - //------------------------------------------------------------------------- } diff --git a/src/main/java/net/tccn/plat/SysPlat.java b/src/main/java/net/tccn/plat/SysPlat.java index 8de8283..5e7b0db 100644 --- a/src/main/java/net/tccn/plat/SysPlat.java +++ b/src/main/java/net/tccn/plat/SysPlat.java @@ -1,5 +1,6 @@ package net.tccn.plat; +import lombok.Data; import net.tccn.base.arango.Doc; import javax.persistence.Table; @@ -7,6 +8,7 @@ import javax.persistence.Table; /** * @author: liangxianyou at 2018/11/26 17:46. */ +@Data @Table(name = "sys_plat", catalog = "db_dev") public class SysPlat extends Doc { public static SysPlat dao = dao(SysPlat.class); @@ -21,19 +23,4 @@ public class SysPlat extends Doc { this.token = token; } - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getToken() { - return token; - } - - public void setToken(String token) { - this.token = token; - } } diff --git a/src/main/java/net/tccn/qtask/Task.java b/src/main/java/net/tccn/qtask/Task.java index 4ea2945..8e79335 100644 --- a/src/main/java/net/tccn/qtask/Task.java +++ b/src/main/java/net/tccn/qtask/Task.java @@ -1,19 +1,17 @@ package net.tccn.qtask; +import lombok.Data; import net.tccn.base.Kv; import net.tccn.dbq.jdbc.api.DbAccount; /** + * |- dbp: 调用谁, 参数, + * |- 谁:谁(干什么) => dbPlatId + content (在程序的世界每个个体,往往都有其明确的职责) + * |- * 任务对象 */ +@Data public class Task { - /* - |- dbp: 调用谁, 参数, - |- 谁:谁(干什么) => dbPlatId + content (在程序的世界每个个体,往往都有其明确的职责) - |- - - */ - private String name; // 任务名,同一系统唯一 private String dbPlatId; // 数据源id @@ -25,60 +23,4 @@ public class Task { private DbAccount dbAccount; - //------------------ - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDbPlatId() { - return dbPlatId; - } - - public void setDbPlatId(String dbPlatId) { - this.dbPlatId = dbPlatId; - } - - public String getCatalog() { - return catalog; - } - - public void setCatalog(String catalog) { - this.catalog = catalog; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public Kv getPara() { - return para; - } - - public void setPara(Kv para) { - this.para = para; - } - - public DbAccount getDbAccount() { - return dbAccount; - } - - public void setDbAccount(DbAccount dbAccount) { - this.dbAccount = dbAccount; - } } diff --git a/src/main/java/net/tccn/qtask/TaskEntity.java b/src/main/java/net/tccn/qtask/TaskEntity.java index 8a17a7f..230f667 100644 --- a/src/main/java/net/tccn/qtask/TaskEntity.java +++ b/src/main/java/net/tccn/qtask/TaskEntity.java @@ -1,5 +1,6 @@ package net.tccn.qtask; +import lombok.Data; import net.tccn.base.arango.Doc; import javax.persistence.Table; @@ -7,6 +8,7 @@ import javax.persistence.Table; /** * Created by liangxianyou at 2019/4/20 20:04. */ +@Data @Table(name = "qtask", catalog = "db_demo") public class TaskEntity extends Doc { public static TaskEntity dao = dao(TaskEntity.class); @@ -22,61 +24,4 @@ public class TaskEntity extends Doc { private String sysPlatId; // 平台id // --------------------- - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDbPlatId() { - return dbPlatId; - } - - public void setDbPlatId(String dbPlatId) { - this.dbPlatId = dbPlatId; - } - - public String getCatalog() { - return catalog; - } - - public void setCatalog(String catalog) { - this.catalog = catalog; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getPara() { - return para; - } - - public void setPara(String para) { - this.para = para; - } - - public String getSysPlatId() { - return sysPlatId; - } - - public void setSysPlatId(String sysPlatId) { - this.sysPlatId = sysPlatId; - } - - //------------ } diff --git a/src/main/java/net/tccn/qtask/TaskKit.java b/src/main/java/net/tccn/qtask/TaskKit.java index 70450a9..7f90bd9 100644 --- a/src/main/java/net/tccn/qtask/TaskKit.java +++ b/src/main/java/net/tccn/qtask/TaskKit.java @@ -1,8 +1,8 @@ package net.tccn.qtask; -import com.google.gson.Gson; import net.tccn.base.Kv; import net.tccn.base.MetaKit; +import org.redkale.convert.json.JsonConvert; import java.util.List; import java.util.Map; @@ -13,6 +13,7 @@ import java.util.Optional; * Created by liangxianyou at 2019/4/20 19:59. */ public class TaskKit { + static final JsonConvert convert = JsonConvert.root(); private static List taskEntities; static { @@ -35,7 +36,7 @@ public class TaskKit { Kv _para = Kv.of().putAll(para); if (taskEntity.getPara() != null) { try { - Map map = new Gson().fromJson(taskEntity.getPara(), Map.class); + Map map = convert.convertFrom(JsonConvert.TYPE_MAP_STRING_STRING, taskEntity.getPara()); map.forEach((k,v) -> _para.put(k, v)); } catch (Exception e) { new IllegalArgumentException(String.format("fromJson error:[%s]",taskEntity.getPara()), e); diff --git a/src/main/java/net/tccn/service/BaseService.java b/src/main/java/net/tccn/service/BaseService.java index 48af24e..8d9cc38 100644 --- a/src/main/java/net/tccn/service/BaseService.java +++ b/src/main/java/net/tccn/service/BaseService.java @@ -1,10 +1,10 @@ package net.tccn.service; import com.arangodb.Predicate; -import com.google.gson.Gson; import net.tccn.base.FileKit; import net.tccn.base.MetaKit; import net.tccn.base.TplKit; +import org.redkale.convert.json.JsonConvert; import org.redkale.net.http.RestMapping; import org.redkale.service.Service; import org.redkale.source.CacheSource; @@ -26,10 +26,12 @@ import java.util.logging.Logger; */ public class BaseService implements Service { + protected final static JsonConvert convert = JsonConvert.root(); + @Resource(name = "SERVER_ROOT") protected File webroot; - public static Gson gson = new Gson(); + public Logger logger = Logger.getLogger(this.getClass().getSimpleName()); public static Predicate isEmpty = (x) -> { diff --git a/src/main/java/net/tccn/service/MetadataService.java b/src/main/java/net/tccn/service/MetadataService.java index 1785afa..84cdfb3 100644 --- a/src/main/java/net/tccn/service/MetadataService.java +++ b/src/main/java/net/tccn/service/MetadataService.java @@ -4,6 +4,7 @@ import net.tccn.base.JBean; import net.tccn.base.Kv; import net.tccn.base.MetaKit; import net.tccn.dbq.Field; +import net.tccn.meta.Filter; import net.tccn.meta.MetaLink; import net.tccn.meta.MetaService; import net.tccn.meta.MetaTable; @@ -27,24 +28,22 @@ public class MetadataService extends BaseService { //arango public JBean tableList(@RestParam(name = "platToken") String token, String catalog, String dbPlatId, String name) { JBean jBean = new JBean(); - List list = - MetaKit.getMetaTables().stream().filter(x -> - (isEmpty.test(catalog) || catalog.equals(x.getCatalog())) && + List list = MetaKit.getMetaTables().stream().filter(x -> + (isEmpty.test(catalog) || catalog.equals(x.getCatalog())) && (isEmpty.test(dbPlatId) || dbPlatId.equals(x.getDbPlatId())) && (isEmpty.test(name) || x.getName().contains(name)) && (isEmpty.test(token) || x.getSysPlatId().equals(platId(token))) - ).map(x -> Kv.of("name", x.getName()) - .set("comment", x.getComment()) - .set("catalog", x.getCatalog()) - .set("alias", x.getAlias()) - .set("dbPlatId", x.getDbPlatId()) - .set("linkCount", MetaKit.getMetaLinks().stream().filter(link -> { // 关联表数量 - String[] tables = link.getTables(); - return x.getAlias().equals(tables[0]) || x.getAlias().equals(tables[1]); - }).count()) - ).collect(Collectors.toList()); - jBean.setBody(list); - return jBean; + ).map(x -> Kv.of("name", x.getName()) + .set("comment", x.getComment()) + .set("catalog", x.getCatalog()) + .set("alias", x.getAlias()) + .set("dbPlatId", x.getDbPlatId()) + .set("linkCount", MetaKit.getMetaLinks().stream().filter(link -> { // 关联表数量 + String[] tables = link.getTables(); + return x.getAlias().equals(tables[0]) || x.getAlias().equals(tables[1]); + }).count()) + ).collect(Collectors.toList()); + return jBean.setBody(list); } @@ -76,11 +75,8 @@ public class MetadataService extends BaseService { //arango } @RestMapping(name = "service_save", comment = "service信息保存") - public JBean serviceSave(@RestParam(name = "platToken") String token, @RestParam(name = "service") String serviceBean) { + public JBean serviceSave(@RestParam(name = "platToken") String token, @RestParam(name = "service") MetaService service) { JBean jBean = new JBean(); - - MetaService service = gson.fromJson(serviceBean, MetaService.class); - do { // 标识码非空校验 if (isEmpty.test(service.getTable())) { @@ -196,12 +192,9 @@ public class MetadataService extends BaseService { //arango } @RestMapping(name = "filter_update", comment = "查询配置修改") - public JBean filterUpdate(@RestParam(name = "name") String name, - @RestParam(name = "filters") String filters, - @RestParam(name = "platToken") String token) { - List _filters = gson.fromJson(filters, List.class); + public JBean filterUpdate(String name, List filters, @RestParam(name = "platToken") String token) { MetaService metaService = MetaKit.getMetaService(name, token); - metaService.setFilters(_filters); + metaService.setFilters(filters); metaService.update(); return JBean.by(0, ""); diff --git a/src/main/java/net/tccn/servlet/BaseServlet.java b/src/main/java/net/tccn/servlet/BaseServlet.java index 8a9eadd..001607c 100644 --- a/src/main/java/net/tccn/servlet/BaseServlet.java +++ b/src/main/java/net/tccn/servlet/BaseServlet.java @@ -1,7 +1,6 @@ package net.tccn.servlet; import com.arangodb.ArangoDBException; -import com.google.gson.Gson; import net.tccn.base.JBean; import net.tccn.base.Kv; import net.tccn.base.arango.ArangoSource; @@ -9,7 +8,6 @@ import net.tccn.service.UserService; import net.tccn.user.User; import org.redkale.net.http.HttpRequest; import org.redkale.net.http.HttpResponse; -import org.redkale.net.http.HttpScope; import org.redkale.net.http.HttpServlet; import javax.annotation.Resource; @@ -26,7 +24,6 @@ public class BaseServlet extends HttpServlet { private UserService userService; public Logger logger = Logger.getLogger(this.getClass().getSimpleName()); - protected static Gson gson = new Gson(); @Override protected void preExecute(HttpRequest request, HttpResponse response) throws IOException { @@ -50,10 +47,13 @@ public class BaseServlet extends HttpServlet { protected void authenticate(HttpRequest request, HttpResponse response) throws IOException { //fixme: 权限拦截 if (request.currentUser() == null) { - if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){ + String accept = request.getHeader("Accept"); + if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With")) || (accept != null && accept.contains("application/json"))) { response.finish(JBean.by(-2, "未登陆")); - }else { - response.finish(HttpScope.refer("/user/login.html")); + } else { + response.setStatus(302); + response.setHeader("location", "/user/login.html"); + response.finish(); } return; } diff --git a/src/main/java/net/tccn/user/User.java b/src/main/java/net/tccn/user/User.java index a6d7202..1a3821d 100644 --- a/src/main/java/net/tccn/user/User.java +++ b/src/main/java/net/tccn/user/User.java @@ -1,10 +1,10 @@ package net.tccn.user; +import lombok.Data; import net.tccn.base.JBean; import net.tccn.base.arango.Doc; import org.redkale.convert.ConvertColumn; import org.redkale.convert.ConvertType; -import org.redkale.convert.json.JsonConvert; import org.redkale.util.Utility; import javax.persistence.Table; @@ -12,11 +12,13 @@ import javax.persistence.Table; /** * @author: liangxianyou at 2018/11/22 17:37. */ +@Data @Table(name = "sys_user", catalog = "db_dev") public class User extends Doc { public static User dao = dao(User.class); private String username; + @ConvertColumn(ignore = true,type = ConvertType.JSON) private String pwd; private Long createTime; private Long loginTime; @@ -29,61 +31,6 @@ public class User extends Doc { public User(String sessionid) { this.sessionid = sessionid; } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - @ConvertColumn(ignore = true,type = ConvertType.JSON) - public String getPwd() { - return pwd; - } - - public void setPwd(String pwd) { - this.pwd = pwd; - } - - public Long getCreateTime() { - return createTime; - } - - public void setCreateTime(Long createTime) { - this.createTime = createTime; - } - - public Long getLoginTime() { - return loginTime; - } - - public void setLoginTime(Long loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public String getSessionid() { - return sessionid; - } - - public void setSessionid(String sessionid) { - this.sessionid = sessionid; - } - - @Override - public String toString() { - return JsonConvert.root().convertTo(this); - } - //------------------------------- public static String md5IfNeed(String password){ diff --git a/src/test/java/RunTest.java b/src/test/java/RunTest.java index 967ff21..5966f2a 100644 --- a/src/test/java/RunTest.java +++ b/src/test/java/RunTest.java @@ -1,4 +1,3 @@ -import com.google.gson.Gson; import net.tccn.base.FileKit; import net.tccn.base.Kv; import net.tccn.base.MetaKit; @@ -7,11 +6,13 @@ import net.tccn.dbq.fbean.FBean; import net.tccn.dbq.jdbc.api.DbAccount; import net.tccn.dbq.jdbc.api.DbKit; import net.tccn.dbq.parser.ParseMysql; +import net.tccn.meta.MetaService; import net.tccn.meta.MetaTable; import net.tccn.qtask.TaskEntity; import net.tccn.qtask.TaskKit; import net.tccn.user.User; import org.junit.Test; +import org.redkale.convert.json.JsonConvert; import java.io.File; import java.util.Date; @@ -25,6 +26,7 @@ import static java.util.Arrays.asList; * @author: liangxianyou at 2019/1/20 12:43. */ public class RunTest { + JsonConvert convert = JsonConvert.root(); /*public static Task A = new Task("mysql", "select * from user where userid=#(userid)", "查询用户列表", Kv.of("userid", 1)); public static Task B = new Task("method", "User.say", "user调用", Kv.of("name", "张三").set("age", 13)); @@ -48,7 +50,11 @@ public class RunTest { ParseMysql parser = new ParseMysql(); //@Test public void parseFBeanTest() { - FBean fBean = new Gson().fromJson("{name:'user_service', filters:[{col:'a.username',type:'like',value:'lxy'}], orders:[{col:a.`id`,desc: -1},{col:a.`deptName`,desc: 1}], limit:{ps:2,pn:10}}", FBean.class); + String str = "{name:'user_service', filters:[{col:'a.username',type:'like',value:'lxy'}], orders:[{col:a.`id`,desc: -1},{col:a.`deptName`,desc: 1}], limit:{ps:2,pn:10}}"; + + + //FBean fBean = new Gson().fromJson(str, FBean.class); + FBean fBean = convert.convertFrom(FBean.class, str); String[] parse = parser.parse(fBean); @@ -228,8 +234,27 @@ public class RunTest { TaskEntity entity = TaskEntity.dao.findByKey("23074420"); if (entity != null) { - System.out.printf("------------------------%n%s%n------------------------%n", new Gson().toJson(TaskKit.taskRun(entity))); + System.out.printf("------------------------%n%s%n------------------------%n", convert.convertTo(TaskKit.taskRun(entity))); } } + @Test + public void dataToFileTest() { + + List metaServices = MetaService.dao.find(); + + + JsonConvert convert = JsonConvert.root(); + System.out.println(convert.convertTo(metaServices)); + + MetaService metaService = new MetaService(); + + + /*try { + FileKit.strToFile(gson.toJson(metaServices), file); + } catch (IOException e) { + e.printStackTrace(); + }*/ + } + }