浏览代码

新增功能,修复若干bug

周浩 9 年之前
父节点
当前提交
95920eb5ad

+ 23 - 1
hsweb-web-bean/src/main/java/org/hsweb/web/bean/common/Term.java

@@ -34,6 +34,8 @@ public class Term {
      */
     private List<Term> terms = new LinkedList<>();
 
+    private boolean nest = false;
+
     public Term or(String term, Object value) {
         Term queryTerm = new Term();
         queryTerm.setField(term);
@@ -52,20 +54,29 @@ public class Term {
         return this;
     }
 
+    public Term nest() {
+        return nest(null, null);
+    }
+    public Term orNest() {
+        return orNest(null, null);
+    }
+
     public Term nest(String term, Object value) {
         Term queryTerm = new Term();
         queryTerm.setField(term);
         queryTerm.setValue(value);
         queryTerm.setType(Type.and);
+        queryTerm.setNest(true);
         terms.add(queryTerm);
         return queryTerm;
     }
 
-    public Term nestOr(String term, Object value) {
+    public Term orNest(String term, Object value) {
         Term queryTerm = new Term();
         queryTerm.setField(term);
         queryTerm.setValue(value);
         queryTerm.setType(Type.or);
+        queryTerm.setNest(true);
         terms.add(queryTerm);
         return queryTerm;
     }
@@ -75,6 +86,7 @@ public class Term {
     }
 
     public void setField(String field) {
+        if(field==null)return;
         setTermType(TermType.fromString(field));
         if (field.contains("$")) {
             field = field.split("[\\$]")[0];
@@ -114,6 +126,14 @@ public class Term {
         this.terms = terms;
     }
 
+    public void setNest(boolean nest) {
+        this.nest = nest;
+    }
+
+    public boolean isNest() {
+        return nest;
+    }
+
     public enum Type {
         or, and;
 
@@ -125,4 +145,6 @@ public class Term {
             }
         }
     }
+
+
 }

+ 19 - 3
hsweb-web-bean/src/main/java/org/hsweb/web/bean/common/TermType.java

@@ -1,7 +1,6 @@
 package org.hsweb.web.bean.common;
 
 /**
- *
  * Created by zhouhao on 16-5-9.
  */
 public enum TermType {
@@ -17,6 +16,7 @@ public enum TermType {
      * like
      */
     like,
+    notlike,
     /**
      * >
      */
@@ -33,6 +33,14 @@ public enum TermType {
      * notin
      */
     notin,
+    /**
+     * =''
+     */
+    empty,
+    /**
+     * !=''
+     */
+    notempty,
     /**
      * is null
      */
@@ -40,10 +48,18 @@ public enum TermType {
     /**
      * not null
      */
-    notnull;
+    notnull,
+    /**
+     * between
+     */
+    btw,
+    /**
+     * not between
+     */
+    notbtw;
 
     public static TermType fromString(String str) {
-        if (!str.contains("$")) {
+        if (str == null || !str.contains("$")) {
             return eq;
         } else {
             try {

+ 34 - 8
hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/config/Config.java

@@ -1,10 +1,11 @@
 package org.hsweb.web.bean.po.config;
 
+import com.alibaba.fastjson.JSON;
 import org.hsweb.web.bean.po.GenericPo;
 
 import java.io.IOException;
 import java.io.StringReader;
-import java.util.Properties;
+import java.util.*;
 
 /**
  * 系统配置
@@ -26,6 +27,9 @@ public class Config extends GenericPo<String> {
     //最后一次修改日期
     private java.util.Date update_date;
 
+    //配置类型: properties,json
+    private String type;
+
     /**
      * 获取 备注
      *
@@ -94,13 +98,35 @@ public class Config extends GenericPo<String> {
         this.update_date = update_date;
     }
 
-    public Properties toMap() {
-        Properties properties = new Properties();
-        try {
-            properties.load(new StringReader(getContent()));
-        } catch (IOException e) {
-            e.printStackTrace();
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Map<Object, Object> toMap() {
+        switch (type) {
+            case "properties":
+                Properties properties = new Properties();
+                try {
+                    properties.load(new StringReader(getContent()));
+                } catch (IOException e) {
+                }
+                return properties;
+            case "json":
+                if (getContent().trim().startsWith("[")) {
+                    Map<Object, Object> map = new LinkedHashMap<>();
+                    List<Map> arr = JSON.parseArray(getContent(), Map.class);
+                    for (int i = 0; i < arr.size(); i++) {
+                        map.put(String.valueOf(i), arr.get(i));
+                    }
+                    return map;
+                }
+                return JSON.parseObject(getContent(), Map.class);
+            default:
+                return new HashMap<>();
         }
-        return properties;
     }
 }

+ 70 - 0
hsweb-web-bean/src/main/java/org/hsweb/web/bean/po/module/ModuleMeta.java

@@ -0,0 +1,70 @@
+package org.hsweb.web.bean.po.module;
+
+import org.hsweb.web.bean.po.GenericPo;
+
+/**
+ * 模块配置信息
+ * Created by zhouhao on 16-5-10.
+ */
+public class ModuleMeta extends GenericPo<String> {
+
+    private String key;
+
+    private String remark;
+
+    private String module_id;
+
+    private String role_id;
+
+    private String meta;
+
+    private int status;
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public String getModule_id() {
+        return module_id;
+    }
+
+    public void setModule_id(String module_id) {
+        this.module_id = module_id;
+    }
+
+    public String getRole_id() {
+        return role_id;
+    }
+
+    public void setRole_id(String role_id) {
+        this.role_id = role_id;
+    }
+
+    public String getMeta() {
+        return meta;
+    }
+
+    public void setMeta(String meta) {
+        this.meta = meta;
+    }
+}

+ 19 - 0
hsweb-web-bean/src/main/resources/system/install/sql/h2/install.sql

@@ -117,6 +117,24 @@ COMMENT ON COLUMN "S_MODULES"."REMARK" IS '备注';
 COMMENT ON COLUMN "S_MODULES"."STATUS" IS '状态';
 COMMENT ON COLUMN "S_MODULES"."M_OPTION" IS '可选权限';
 COMMENT ON COLUMN "S_MODULES"."SORT_INDEX" IS '排序';
+
+CREATE TABLE "S_MODULE_META" (
+  "U_ID"      VARCHAR2(32)   NOT NULL,
+  "KEY"       VARCHAR2(256)  NOT NULL,
+  "MODULE_ID" VARCHAR2(32)   NULL,
+  "ROLE_ID"   VARCHAR2(32)   NOT NULL,
+  "REMARK"    VARCHAR2(1024) NULL,
+  "META"      CLOB           NULL,
+  "STATUS"    NUMBER(4)      NULL
+);
+COMMENT ON TABLE "S_MODULE_META" IS '系统模块配置';
+COMMENT ON COLUMN "S_MODULE_META"."U_ID" IS 'UID';
+COMMENT ON COLUMN "S_MODULE_META"."KEY" IS '名称';
+COMMENT ON COLUMN "S_MODULE_META"."MODULE_ID" IS '模块ID';
+COMMENT ON COLUMN "S_MODULE_META"."ROLE_ID" IS '角色ID';
+COMMENT ON COLUMN "S_MODULE_META"."META" IS '内容';
+COMMENT ON COLUMN "S_MODULE_META"."REMARK" IS '备注';
+COMMENT ON COLUMN "S_MODULE_META"."STATUS" IS '状态';
 -- ----------------------------
 -- Records of S_MODULES
 -- ----------------------------
@@ -271,6 +289,7 @@ CREATE TABLE "S_HISTORY"
 ALTER TABLE "S_CONFIG" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE "S_LOGGER" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE "S_MODULES" ADD PRIMARY KEY ("U_ID");
+ALTER TABLE "S_MODULE_META" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE "S_RESOURCES" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE "S_ROLE" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE "S_ROLE_MODULES" ADD PRIMARY KEY ("U_ID");

+ 19 - 0
hsweb-web-bean/src/main/resources/system/install/sql/mysql/install.sql

@@ -61,6 +61,25 @@ CREATE TABLE `s_modules` (
 );
 ALTER TABLE `s_modules` COMMENT '系统模块';
 
+
+CREATE TABLE `s_module_meta` (
+  `u_id`      VARCHAR(256)  NOT NULL PRIMARY KEY
+  COMMENT 'uid',
+  `key`       VARCHAR(256)  NOT NULL
+  COMMENT '标识',
+  `module_id` VARCHAR(1024) NULL
+  COMMENT '模块ID',
+  `remark` VARCHAR(1024) NULL
+  COMMENT '备注',
+  `role_id`   VARCHAR(256)  NULL
+  COMMENT '图标',
+  `status`    INT(4)        NULL
+  COMMENT '状态',
+  `meta`      TEXT          NOT NULL
+  COMMENT '定义内容'
+);
+ALTER TABLE `s_modules` COMMENT '系统模块配置';
+
 -- ----------------------------
 -- Records of S_MODULES
 -- ----------------------------

+ 108 - 90
hsweb-web-bean/src/main/resources/system/install/sql/oracle/install.sql

@@ -2,11 +2,11 @@
 -- Table structure for S_CONFIG
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_CONFIG" (
-  "U_ID"        VARCHAR2(256) NOT NULL,
-  "CONTENT"     CLOB          NOT NULL,
-  "REMARK"      VARCHAR2(512) NULL,
-  "CREATE_DATE" DATE          NOT NULL,
-  "UPDATE_DATE" DATE          NULL
+"U_ID" VARCHAR2(256) NOT NULL,
+"CONTENT" CLOB NOT NULL,
+"REMARK" VARCHAR2(512) NULL,
+"CREATE_DATE" DATE NOT NULL,
+"UPDATE_DATE" DATE NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_CONFIG" IS '系统配置文件表';
 COMMENT ON COLUMN ${jdbc.username}."S_CONFIG"."U_ID" IS 'UID';
@@ -19,16 +19,16 @@ COMMENT ON COLUMN ${jdbc.username}."S_CONFIG"."UPDATE_DATE" IS '修改日期';
 -- Table structure for S_FORM
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_FORM" (
-  "U_ID"        VARCHAR2(256) NOT NULL,
-  "NAME"        VARCHAR2(256) NOT NULL,
-  "HTML"        CLOB          NULL,
-  "META"        CLOB          NULL,
-  "CONFIG"      CLOB          NULL,
-  "VERSION"     NUMBER(32)    NULL,
-  "USING"       NUMBER(4)     NULL,
-  "CREATE_DATE" DATE          NOT NULL,
-  "UPDATE_DATE" DATE          NULL,
-  "REMARK"      VARCHAR2(200) NULL
+"U_ID" VARCHAR2(256) NOT NULL,
+"NAME" VARCHAR2(256) NOT NULL,
+"HTML" CLOB NULL,
+"META" CLOB NULL,
+"CONFIG" CLOB NULL,
+"VERSION" NUMBER(32)    NULL,
+"USING" NUMBER(4)     NULL,
+"CREATE_DATE" DATE NOT NULL,
+"UPDATE_DATE" DATE NULL,
+"REMARK" VARCHAR2(200) NULL
 );
 COMMENT ON COLUMN ${jdbc.username}."S_FORM"."U_ID" IS 'UID';
 COMMENT ON COLUMN ${jdbc.username}."S_FORM"."NAME" IS '名称';
@@ -44,27 +44,27 @@ COMMENT ON COLUMN ${jdbc.username}."S_FORM"."UPDATE_DATE" IS '修改日期';
 -- Table structure for S_LOGGER
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_LOGGER" (
-  "U_ID"             VARCHAR2(256)  NOT NULL,
-  "CLIENT_IP"        VARCHAR2(256)  NULL,
-  "REQUEST_URI"      VARCHAR2(1024) NOT NULL,
-  "REQUEST_URL"      VARCHAR2(2048) NOT NULL,
-  "REQUEST_METHOD"   VARCHAR2(512)  NOT NULL,
-  "RESPONSE_CONTENT" CLOB           NOT NULL,
-  "USER_ID"          VARCHAR2(64)   NOT NULL,
-  "REQUEST_TIME"     DATE           NULL,
-  "RESPONSE_TIME"    DATE           NULL,
-  "USER_AGENT"       CLOB           NULL,
-  "REFERER"          VARCHAR2(64)   NOT NULL,
-  "RESPONSE_CODE"    CLOB           NULL,
-  "REQUEST_HEADER"   CLOB           NULL,
-  "CLASS_NAME"       VARCHAR2(512)  NULL,
-  "MODULE_DESC"      VARCHAR2(256)  NULL,
-  "REQUEST_PARAM"    CLOB           NULL,
-  "EXCEPTION_INFO"   CLOB           NULL,
-  "CACHE_KEY"        CLOB           NULL,
-  "SERVER_IP"        VARCHAR2(64)   NULL,
-  "APP_NAME"         VARCHAR2(128)  NULL,
-  "USE_TIME"         NUMBER(32)     NULL
+"U_ID" VARCHAR2(256)  NOT NULL,
+"CLIENT_IP" VARCHAR2(256)  NULL,
+"REQUEST_URI" VARCHAR2(1024) NOT NULL,
+"REQUEST_URL" VARCHAR2(2048) NOT NULL,
+"REQUEST_METHOD" VARCHAR2(512)  NOT NULL,
+"RESPONSE_CONTENT" CLOB NOT NULL,
+"USER_ID" VARCHAR2(64)   NOT NULL,
+"REQUEST_TIME" DATE NULL,
+"RESPONSE_TIME" DATE NULL,
+"USER_AGENT" CLOB NULL,
+"REFERER" VARCHAR2(64)   NOT NULL,
+"RESPONSE_CODE" CLOB NULL,
+"REQUEST_HEADER" CLOB NULL,
+"CLASS_NAME" VARCHAR2(512)  NULL,
+"MODULE_DESC" VARCHAR2(256)  NULL,
+"REQUEST_PARAM" CLOB NULL,
+"EXCEPTION_INFO" CLOB NULL,
+"CACHE_KEY" CLOB NULL,
+"SERVER_IP" VARCHAR2(64)   NULL,
+"APP_NAME" VARCHAR2(128)  NULL,
+"USE_TIME" NUMBER(32)     NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_LOGGER" IS '日志表';
 COMMENT ON COLUMN ${jdbc.username}."S_LOGGER"."U_ID" IS 'UID';
@@ -97,15 +97,15 @@ COMMENT ON COLUMN ${jdbc.username}."S_LOGGER"."USE_TIME" IS '请求耗时';
 -- Table structure for S_MODULES
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_MODULES" (
-  "U_ID"       VARCHAR2(256)  NOT NULL,
-  "NAME"       VARCHAR2(256)  NOT NULL,
-  "URI"        VARCHAR2(1024) NULL,
-  "ICON"       VARCHAR2(256)  NULL,
-  "P_ID"       VARCHAR2(256)  NOT NULL,
-  "REMARK"     VARCHAR2(512)  NULL,
-  "STATUS"     NUMBER(4)      NULL,
-  "M_OPTION"   CLOB           NOT NULL,
-  "SORT_INDEX" NUMBER(32)     NOT NULL
+"U_ID" VARCHAR2(256)  NOT NULL,
+"NAME" VARCHAR2(256)  NOT NULL,
+"URI" VARCHAR2(1024) NULL,
+"ICON" VARCHAR2(256)  NULL,
+"P_ID" VARCHAR2(256)  NOT NULL,
+"REMARK" VARCHAR2(512)  NULL,
+"STATUS" NUMBER(4)      NULL,
+"M_OPTION" CLOB NOT NULL,
+"SORT_INDEX" NUMBER(32)     NOT NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_MODULES" IS '系统模块';
 COMMENT ON COLUMN ${jdbc.username}."S_MODULES"."U_ID" IS 'UID';
@@ -118,6 +118,23 @@ COMMENT ON COLUMN ${jdbc.username}."S_MODULES"."STATUS" IS '状态';
 COMMENT ON COLUMN ${jdbc.username}."S_MODULES"."M_OPTION" IS '可选权限';
 COMMENT ON COLUMN ${jdbc.username}."S_MODULES"."SORT_INDEX" IS '排序';
 
+CREATE TABLE ${jdbc.username}."S_MODULE_META" (
+"U_ID" VARCHAR2(32)  NOT NULL,
+"KEY" VARCHAR2(256) NOT NULL,
+"MODULE_ID" VARCHAR2(32)  NULL,
+"ROLE_ID" VARCHAR2(32)  NOT NULL,
+"REMARK" VARCHAR2(1024) NULL,
+"META" CLOB NULL,
+"STATUS" NUMBER(4)     NULL
+);
+COMMENT ON TABLE ${jdbc.username}."S_MODULE_META" IS '系统模块配置';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."U_ID" IS 'UID';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."KEY" IS '名称';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."MODULE_ID" IS '模块ID';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."ROLE_ID" IS '角色ID';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."META" IS '定义内容';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."REMARK" IS '备注';
+COMMENT ON COLUMN ${jdbc.username}."S_MODULE_META"."STATUS" IS '状态';
 -- ----------------------------
 -- Records of S_MODULES
 -- ----------------------------
@@ -132,14 +149,14 @@ INSERT INTO "S_MODULES" VALUES ('s_logger', '日志管理', 'admin/logger/list.h
 -- Table structure for S_RESOURCES
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_RESOURCES" (
-  "U_ID"        VARCHAR2(256)  NOT NULL,
-  "NAME"        VARCHAR2(256)  NOT NULL,
-  "PATH"        VARCHAR2(1024) NOT NULL,
-  "TYPE"        VARCHAR2(256)  NOT NULL,
-  "MD5"         VARCHAR2(256)  NOT NULL,
-  "STATUS"      NUMBER(4)      NULL,
-  "CREATE_DATE" DATE           NOT NULL,
-  "CREATOR_ID"  VARCHAR2(256)  NOT NULL
+"U_ID" VARCHAR2(256)  NOT NULL,
+"NAME" VARCHAR2(256)  NOT NULL,
+"PATH" VARCHAR2(1024) NOT NULL,
+"TYPE" VARCHAR2(256)  NOT NULL,
+"MD5" VARCHAR2(256)  NOT NULL,
+"STATUS" NUMBER(4)      NULL,
+"CREATE_DATE" DATE NOT NULL,
+"CREATOR_ID" VARCHAR2(256)  NOT NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_RESOURCES" IS '资源表';
 COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."U_ID" IS 'UID';
@@ -155,10 +172,10 @@ COMMENT ON COLUMN ${jdbc.username}."S_RESOURCES"."CREATOR_ID" IS '创建人';
 -- Table structure for S_ROLE
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_ROLE" (
-  "U_ID"   VARCHAR2(256) NOT NULL,
-  "NAME"   VARCHAR2(256) NOT NULL,
-  "TYPE"   VARCHAR2(50)  NULL,
-  "REMARK" VARCHAR2(512) NULL
+"U_ID" VARCHAR2(256) NOT NULL,
+"NAME" VARCHAR2(256) NOT NULL,
+"TYPE" VARCHAR2(50)  NULL,
+"REMARK" VARCHAR2(512) NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_ROLE" IS '角色表';
 COMMENT ON COLUMN ${jdbc.username}."S_ROLE"."U_ID" IS 'UID';
@@ -175,10 +192,10 @@ INSERT INTO "S_ROLE" VALUES ('admin', '超级管理员', NULL, '初始数据');
 -- Table structure for S_ROLE_MODULES
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_ROLE_MODULES" (
-  "U_ID"      VARCHAR2(256) NOT NULL,
-  "MODULE_ID" VARCHAR2(256) NOT NULL,
-  "ROLE_ID"   VARCHAR2(256) NOT NULL,
-  "O_LEVEL"   CLOB          NULL
+"U_ID" VARCHAR2(256) NOT NULL,
+"MODULE_ID" VARCHAR2(256) NOT NULL,
+"ROLE_ID" VARCHAR2(256) NOT NULL,
+"O_LEVEL" CLOB NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_ROLE_MODULES" IS '角色模块绑定表';
 COMMENT ON COLUMN ${jdbc.username}."S_ROLE_MODULES"."U_ID" IS 'UID';
@@ -190,13 +207,13 @@ COMMENT ON COLUMN ${jdbc.username}."S_ROLE_MODULES"."O_LEVEL" IS '可操作权
 -- Table structure for S_SCRIPT
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_SCRIPT" (
-  "U_ID"    VARCHAR2(256)  NOT NULL,
-  "NAME"    VARCHAR2(256)  NOT NULL,
-  "PATH"    VARCHAR2(1024) NOT NULL,
-  "TYPE"    VARCHAR2(256)  NOT NULL,
-  "CONTENT" CLOB           NOT NULL,
-  "REMARK"  VARCHAR2(512)  NULL,
-  "STATUS"  NUMBER(4)      NULL
+"U_ID" VARCHAR2(256)  NOT NULL,
+"NAME" VARCHAR2(256)  NOT NULL,
+"PATH" VARCHAR2(1024) NOT NULL,
+"TYPE" VARCHAR2(256)  NOT NULL,
+"CONTENT" CLOB NOT NULL,
+"REMARK" VARCHAR2(512)  NULL,
+"STATUS" NUMBER(4)      NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_SCRIPT" IS '脚本';
 COMMENT ON COLUMN ${jdbc.username}."S_SCRIPT"."U_ID" IS 'UID';
@@ -215,16 +232,16 @@ COMMENT ON COLUMN ${jdbc.username}."S_SCRIPT"."STATUS" IS '状态';
 -- Table structure for S_USER
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_USER" (
-  "U_ID"        VARCHAR2(64)  NOT NULL,
-  "USERNAME"    VARCHAR2(64)  NOT NULL,
-  "PASSWORD"    VARCHAR2(64)  NOT NULL,
-  "NAME"        VARCHAR2(64)  NULL,
-  "EMAIL"       VARCHAR2(512) NULL,
-  "PHONE"       VARCHAR2(64)  NULL,
-  "STATUS"      NUMBER(4)     NULL,
-  "CREATE_DATE" DATE          NOT NULL,
-  "UPDATE_DATE" DATE          NULL,
-  "ENT_ID"      VARCHAR2(64)  NULL
+"U_ID" VARCHAR2(64)  NOT NULL,
+"USERNAME" VARCHAR2(64)  NOT NULL,
+"PASSWORD" VARCHAR2(64)  NOT NULL,
+"NAME" VARCHAR2(64)  NULL,
+"EMAIL" VARCHAR2(512) NULL,
+"PHONE" VARCHAR2(64)  NULL,
+"STATUS" NUMBER(4)     NULL,
+"CREATE_DATE" DATE NOT NULL,
+"UPDATE_DATE" DATE NULL,
+"ENT_ID" VARCHAR2(64)  NULL
 );
 COMMENT ON TABLE ${jdbc.username}."S_USER" IS '用户表';
 COMMENT ON COLUMN ${jdbc.username}."S_USER"."U_ID" IS 'ID';
@@ -246,22 +263,22 @@ INSERT INTO "S_USER" VALUES ('admin', 'admin', '23ec59e119da971084cbd0ba72d230a0
 -- Table structure for S_USER_ROLE
 -- ----------------------------
 CREATE TABLE ${jdbc.username}."S_USER_ROLE" (
-  "U_ID"    VARCHAR2(256) NOT NULL,
-  "USER_ID" VARCHAR2(256) NOT NULL,
-  "ROLE_ID" VARCHAR2(256) NOT NULL
+"U_ID" VARCHAR2(256) NOT NULL,
+"USER_ID" VARCHAR2(256) NOT NULL,
+"ROLE_ID" VARCHAR2(256) NOT NULL
 );
 -- CREATE TABLE
 CREATE TABLE ${jdbc.username}."S_HISTORY"
 (
-  "U_ID"              VARCHAR2(32) NOT NULL,
-  "TYPE"              VARCHAR2(64) NOT NULL,
-  "DESCRIBE"          VARCHAR2(512),
-  "PRIMARY_KEY_NAME"  VARCHAR2(32),
-  "PRIMARY_KEY_VALUE" VARCHAR2(64),
-  "CHANGE_BEFORE"     CLOB,
-  "CHANGE_AFTER"      CLOB,
-  "CREATE_DATE"       DATE         NOT NULL,
-  "CREATOR_ID"        VARCHAR2(32)
+"U_ID" VARCHAR2(32) NOT NULL,
+"TYPE" VARCHAR2(64) NOT NULL,
+"DESCRIBE" VARCHAR2(512),
+"PRIMARY_KEY_NAME" VARCHAR2(32),
+"PRIMARY_KEY_VALUE" VARCHAR2(64),
+"CHANGE_BEFORE" CLOB,
+"CHANGE_AFTER" CLOB,
+"CREATE_DATE" DATE NOT NULL,
+"CREATOR_ID" VARCHAR2(32)
 );
 
 COMMENT ON COLUMN ${jdbc.username}."S_USER_ROLE"."U_ID" IS 'UID';
@@ -272,6 +289,7 @@ COMMENT ON COLUMN ${jdbc.username}."S_USER_ROLE"."ROLE_ID" IS '角色ID';
 ALTER TABLE ${jdbc.username}."S_CONFIG" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE ${jdbc.username}."S_LOGGER" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE ${jdbc.username}."S_MODULES" ADD PRIMARY KEY ("U_ID");
+ALTER TABLE ${jdbc.username}."S_MODULE_META" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE ${jdbc.username}."S_RESOURCES" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE ${jdbc.username}."S_ROLE" ADD PRIMARY KEY ("U_ID");
 ALTER TABLE ${jdbc.username}."S_ROLE_MODULES" ADD PRIMARY KEY ("U_ID");