?pfbNF)>(|Sz^
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
diff --git a/zo-app/src/main/resources/init/oob/environment/zo.data.member.xlsx b/zo-app/src/main/resources/init/oob/environment/zo.data.member.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..977dd91fcbba62b8f88ed44f61181eb1550ad368
GIT binary patch
literal 13143
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
literal 0
HcmV?d00001
diff --git a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.DEVELOPER.json b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.DEVELOPER.json
index eed72c0..44beb84 100644
--- a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.DEVELOPER.json
+++ b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.DEVELOPER.json
@@ -169,6 +169,9 @@
"zero.personal.info",
"zero.personal.password",
"zero.personal.company",
- "zero.personal.logout"
+ "zero.personal.logout",
+ "zo.member",
+ "zo.member.info",
+ "zo.member.card"
]
}
diff --git a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SUPERVISOR.json b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SUPERVISOR.json
index 5902769..a50379f 100644
--- a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SUPERVISOR.json
+++ b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SUPERVISOR.json
@@ -97,6 +97,9 @@
"zero.personal.info",
"zero.personal.password",
"zero.personal.company",
- "zero.personal.logout"
+ "zero.personal.logout",
+ "zo.member",
+ "zo.member.info",
+ "zo.member.card"
]
}
diff --git a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SYSTEM.json b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SYSTEM.json
index 295fbfc..b3c3fb5 100644
--- a/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SYSTEM.json
+++ b/zo-app/src/main/resources/init/permission/ui.menu/ADMIN.SYSTEM.json
@@ -68,6 +68,9 @@
"zero.personal.info",
"zero.personal.password",
"zero.personal.company",
- "zero.personal.logout"
+ "zero.personal.logout",
+ "zo.member",
+ "zo.member.info",
+ "zo.member.card"
]
}
diff --git a/zo-app/src/main/resources/init/permission/ui.menu/ZERO_MENU_SYSTEM.json b/zo-app/src/main/resources/init/permission/ui.menu/ZERO_MENU_SYSTEM.json
index 33ab30e..e230e73 100644
--- a/zo-app/src/main/resources/init/permission/ui.menu/ZERO_MENU_SYSTEM.json
+++ b/zo-app/src/main/resources/init/permission/ui.menu/ZERO_MENU_SYSTEM.json
@@ -61,9 +61,9 @@
" 新建工单,zero.wf.vendor.hour.open",
" 处理/审批工单,zero.wf.vendor.hour.approval",
" 历史工单,zero.wf.vendor.hour.done",
- " 会员中心,hotel.member",
- " 会员设置,hotel.member.info",
- " 会员卡管理,hotel.member.card",
+ " 会员中心,zo.member",
+ " 会员设置,zo.member.info",
+ " 会员卡管理,zo.member.card",
"资源管理器,zero.resource",
" 公告管理,zero.notification",
" 发送公告,zero.notification.publish",
diff --git a/zo-app/src/main/resources/logback.xml b/zo-app/src/main/resources/logback.xml
index 28b87af..3760d71 100644
--- a/zo-app/src/main/resources/logback.xml
+++ b/zo-app/src/main/resources/logback.xml
@@ -61,5 +61,5 @@
-
+
diff --git a/zo-app/src/main/resources/plugin/annal/infix.xml b/zo-app/src/main/resources/plugin/zo/annal/infix.xml
similarity index 100%
rename from zo-app/src/main/resources/plugin/annal/infix.xml
rename to zo-app/src/main/resources/plugin/zo/annal/infix.xml
diff --git a/zo-app/src/main/resources/vertx-deployment.yml b/zo-app/src/main/resources/vertx-deployment.yml
index e69de29..afdd70e 100644
--- a/zo-app/src/main/resources/vertx-deployment.yml
+++ b/zo-app/src/main/resources/vertx-deployment.yml
@@ -0,0 +1,69 @@
+# 「路由配置」-----------------------------------------------------------------------
+## 动态路由配置部署
+router:
+ wall: /api
+ worker:
+ instances: 64
+ agent:
+ instances: 32
+ unity: io.vertx.tp.optic.environment.UnityAmbient
+
+## 静态路由配置部署
+deployment:
+ mode: CONFIG
+ delivery:
+ # 30 time
+ timeout: 180000
+ options:
+ io.vertx.up.verticle.ZeroHttpAgent:
+ instances: 64
+ io.vertx.up.verticle.ZeroHttpWorker:
+ instances: 64
+ workerPoolSize: 128
+
+
+# 「跨域配置」-----------------------------------------------------------------------
+# Cross Domain
+cors:
+ credentials: true
+ methods:
+ - DELETE
+ - GET
+ - POST
+ - PUT
+ - OPTIONS
+ headers:
+ - Authorization
+ - Accept
+ - Content-Disposition
+ - Content-Encoding
+ - Content-Length
+ - Content-Type
+ - X-App-Id
+ - X-App-Key
+ - X-Sigma
+ - X-Lang
+ - X-Session-Id
+ origin:
+ - "http://ox.server.cn:7005"
+
+
+# 「开发配置」-----------------------------------------------------------------------
+# 1. 调试诊断选项直接使用环境变量名,优先从环境变量中提取信息
+# 2. 外置设置了环境变量时,配置的环境变量失效
+development:
+ # 环境变量默认值设置
+ ENV:
+ # 缓存
+ # Z_CACHE_UI: false # UI界面缓存
+ # Z_CACHE_ADMIT: false # 安全管理缓存
+
+ # 开发
+ Z_DEV_JOOQ_COND: true # Jooq日志
+ Z_DEV_EXPR_BIND: true # 表达式引擎
+ # Z_DEV_EXCEL_RANGE: true # Excel扫描日志
+ # Z_DEV_JOB_BOOT: true # Job启动日志
+ Z_DEV_JVM_STACK: true # JVM Stack日志
+ # Z_DEV_WEB_URI: true # Web URI检测日志
+ # Z_DEV_DAO_BIND: true # CRUD执行日志
+ # Z_DEV_AUTHORIZED: true # 安全认证授权
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-detect.yml b/zo-app/src/main/resources/vertx-detect.yml
index e69de29..28c50b4 100644
--- a/zo-app/src/main/resources/vertx-detect.yml
+++ b/zo-app/src/main/resources/vertx-detect.yml
@@ -0,0 +1,97 @@
+# 「数据库」-----------------------------------------------------------------------
+jooq:
+ provider:
+ driverClassName: "com.mysql.cj.jdbc.Driver"
+ username: zero
+ password: V49fhu1/B9D4iKb6aROSQKuySO/m499W0wEvaLOYYTxWAnhPU878kIbUh0JYFBUQPX3IG+Ocw/Ywz4Gxj1PzXOzSyxSfl16tqjh81m/0qWwKAmJFJ0hrvmzEIzb11YqesDjh1i5qk3VSoEuR3DE1cpoSRYE6a5LZVmwlTi33aSY=
+ instance: DB_SCAFFOLD
+ port: 3306
+ hostname: "ox.engine.cn"
+ jdbcUrl: "jdbc:mysql://${hostname}:${port}/${instance}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&useSSL=false&allowPublicKeyRetrieval=true"
+
+
+# 「工作流」-----------------------------------------------------------------------
+## 工作流配置
+workflow:
+ name: ZO-WORKFLOW-ENGINE
+ builtIn:
+ - workflow/workflow-erp.xlsx # 办公类流程
+ resource:
+ - process.oa.assignment # 工作交接流程
+ - process.oa.training # 培训管理流程
+ - process.oa.trip # 出差申请流程
+ - process.oa.vacation # 休假申请流程
+ - process.vendor.assessment # 三方员工考核流程
+ - process.vendor.check-in # 三方员工入场流程
+ - process.vendor.check-out # 三方员工离场流程
+ - process.vendor.hour # 工时补签流程
+ database:
+ driverClassName: "com.mysql.cj.jdbc.Driver"
+ username: zero
+ password: g77KhUYXACWmnFyOuAPZ8sC6H90JF7mwcbjFzBDPypFS4idbzY+7wSIHoMxUNzU2t7AUcL446yZ2thowNzaUKD+FT/8/w/gWZrJyZwD94Y/cn9RCXSgpCsg0ixgba3YZKDljHhuDxCYBgT451kF9qrjs/+OjC1d7dsiEYQqIyEE=
+ instance: DB_SCAFFOLD_WF
+ port: 3306
+ hostname: "ox.engine.cn"
+ jdbcUrl: "jdbc:mysql://${hostname}:${port}/${instance}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&useSSL=false&allowPublicKeyRetrieval=true"
+
+
+ # 「缓存」-----------------------------------------------------------------------
+ # cache:
+ # L1 Cache between Dao and Database
+ # l1:
+ # component: "io.vertx.tp.plugin.redis.cache.L1"
+ # worker: "io.vertx.tp.plugin.redis.cache.L1Worker"
+ # subscribe: "EVENT://L1-CACHE/FOR/DAO"
+ # options:
+ # Definition for spec situations
+ # matrix:
+ #
+ # L2 Cache between Service and Dao
+
+ # L3 Cache between Api and Service
+
+
+ # 「Redis」-----------------------------------------------------------------------
+ # Redis
+ # redis:
+ # host: ox.engine.cn
+ # port: 6379
+
+
+ # 「Trash」-----------------------------------------------------------------------
+ # trash:
+ # keepDay: -1
+
+
+ # 「ES」-----------------------------------------------------------------------
+ # Redis
+ # elasticsearch:
+ # hostname: ox.integration.cn
+ # port: 9200
+ # scheme: http
+ # index: cmdb
+ # username: elastic
+ # password: xxx
+
+
+ # 「Neo4j」-----------------------------------------------------------------------
+ # 图引擎库
+ # neo4j:
+ # port: 7687
+ # protocol: bolt
+ # hostname: ox.integration.cn
+ # username: neo4j
+ # password: "xxx"
+
+
+ # 「监控」-----------------------------------------------------------------------
+ # monitor:
+ # 打开安全模式的监控
+ # secure: /api
+ # 监控组件
+ # quota:
+ # - path: rbac/permission
+ # component: io.vertx.tp.rbac.meansure.PermissionQuota
+ # - path: rbac/resource
+ # component: io.vertx.tp.rbac.meansure.ResourceQuota
+
diff --git a/zo-app/src/main/resources/vertx-dock.yml b/zo-app/src/main/resources/vertx-dock.yml
index e69de29..c4a2991 100644
--- a/zo-app/src/main/resources/vertx-dock.yml
+++ b/zo-app/src/main/resources/vertx-dock.yml
@@ -0,0 +1,57 @@
+# 「模块配置导入」-----------------------------------------------------------------------
+boot:
+ - executor: io.vertx.tp.ke.booter.AmbientOOB
+ - executor: io.vertx.tp.ke.booter.RbacOOB
+ - executor: io.vertx.tp.ke.booter.ErpOOB
+ - executor: io.vertx.tp.ke.booter.PsiOOB
+ - executor: io.vertx.tp.ke.booter.FmOOB
+ - executor: io.vertx.tp.ke.booter.UiOOB
+ - executor: io.vertx.tp.ke.booter.JetOOB
+ - executor: io.vertx.tp.ke.booter.GraphicOOB
+ - executor: io.vertx.tp.ke.booter.AtomOOB
+ - executor: io.vertx.tp.ke.booter.LbsOOB
+ - executor: io.vertx.tp.ke.booter.WfOOB
+ - executor: io.vertx.tp.ke.booter.IsOOB
+ - executor: io.vertx.tp.ke.booter.BatteryOOB
+ - executor: io.vertx.tp.ke.booter.TplOOB
+ - executor: cn.vertxup.zo.ke.booter.ZoOob # 测试模块
+
+
+# 「模块初始化」-----------------------------------------------------------------------
+init:
+ # 初始化Crud
+ - component: io.vertx.tp.crud.init.IxPin
+ # 初始化Rbac
+ - component: io.vertx.tp.rbac.init.ScPin
+ # 初始化Ambient
+ - component: io.vertx.tp.ambient.init.AtPin
+ # 初始化Ui
+ - component: io.vertx.tp.ui.init.UiPin
+ # 初始化Workflow
+ - component: io.vertx.tp.workflow.init.WfPin
+ # 初始化目录
+ - component: io.vertx.tp.is.init.IsPin
+ # 初始化Atom
+ - component: io.vertx.tp.atom.init.AoPin
+ # 初始化Api
+ - component: io.vertx.tp.jet.init.JtPin
+ async: true
+
+
+# 「模块化加载」-----------------------------------------------------------------------
+## 模块化架构(License管理)
+module:
+ builtIn:
+
+
+# 「扩展组件」-----------------------------------------------------------------------
+extension:
+ region:
+ component: io.vertx.tp.rbac.extension.DataRegion
+ config:
+ prefix: /api/
+ auditor:
+ component: io.vertx.tp.rbac.extension.AuditorPin
+ config:
+ include:
+ - /api/mcard/publish # 会员发卡
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-error.yml b/zo-app/src/main/resources/vertx-error.yml
index e69de29..e843a4c 100644
--- a/zo-app/src/main/resources/vertx-error.yml
+++ b/zo-app/src/main/resources/vertx-error.yml
@@ -0,0 +1 @@
+# Workflow专用错误
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-excel.yml b/zo-app/src/main/resources/vertx-excel.yml
index 91649ee..cc8a7fe 100644
--- a/zo-app/src/main/resources/vertx-excel.yml
+++ b/zo-app/src/main/resources/vertx-excel.yml
@@ -1,5 +1,23 @@
excel:
pen: "io.vertx.tp.plugin.excel.tpl.BlueTpl"
+ environment:
+ - name: environment.ambient.xlsx
+ path: "init/oob/environment.ambient.xlsx"
+ alias:
+ - /src/main/resources/init/oob/environment.ambient.xlsx
temp: /tmp/
tenant: "init/environment.json"
mapping:
+ # 会员/会员卡
+ - pojoFile: zo-member
+ dao: cn.commerce.domain.tables.daos.ZoMemberDao
+ key: key
+ unique:
+ - mobile
+ - sigma
+ - pojoFile: zo-card
+ dao: cn.commerce.domain.tables.daos.ZoCardDao
+ key: key
+ unique:
+ - number
+ - sigma
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-extension.yml b/zo-app/src/main/resources/vertx-extension.yml
deleted file mode 100644
index 0c84517..0000000
--- a/zo-app/src/main/resources/vertx-extension.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# 启动连接器
-boot:
- - executor: io.vertx.tp.ke.booter.AmbientOOB
- - executor: io.vertx.tp.ke.booter.RbacOOB
- - executor: io.vertx.tp.ke.booter.ErpOOB
- - executor: io.vertx.tp.ke.booter.PsiOOB
- - executor: io.vertx.tp.ke.booter.FmOOB
- - executor: io.vertx.tp.ke.booter.UiOOB
- - executor: io.vertx.tp.ke.booter.JetOOB
- - executor: io.vertx.tp.ke.booter.GraphicOOB
- - executor: io.vertx.tp.ke.booter.AtomOOB
- - executor: io.vertx.tp.ke.booter.LbsOOB
- - executor: io.vertx.tp.ke.booter.WfOOB
- - executor: io.vertx.tp.ke.booter.IsOOB
- - executor: io.vertx.tp.ke.booter.BatteryOOB
-init:
- # 初始化Crud
- - component: io.vertx.tp.crud.init.IxPin
- # 初始化Rbac
- - component: io.vertx.tp.rbac.init.ScPin
- # 初始化Ambient
- - component: io.vertx.tp.ambient.init.AtPin
- # 初始化Ui
- - component: io.vertx.tp.ui.init.UiPin
- # 初始化Workflow
- - component: io.vertx.tp.workflow.init.WfPin
- # 初始化目录
- - component: io.vertx.tp.is.init.IsPin
-
-## 模块化架构(License管理)
-module:
- builtIn:
- - modulat/zero-f.document.xlsx # ZERO-F, 文档管理
- - modulat/zero-f.logging.xlsx # ZERO-F, 日志管理
- - modulat/zero-f.notification.xlsx # ZERO-F, 提醒模块
- - modulat/zero-f.is.xlsx # ZERO-F, 第三方集成
- - modulat/zero-e.security.xlsx # ZERO-E, 安全管理
- - modulat/zero-e.organization.xlsx # ZERO-E, 组织架构管理
- - modulat/zero-e.customer.xlsx # ZERO-E, 客户管理
- - modulat/zero-e.employee.xlsx # ZERO-E, 员工管理
-
- # monitor:
- # 打开安全模式的监控
- # secure: /api
- # 监控组件
- # quota:
- # - path: rbac/permission
- # component: io.vertx.tp.rbac.meansure.PermissionQuota
- # - path: rbac/resource
- # component: io.vertx.tp.rbac.meansure.ResourceQuota
-
-extension:
- region:
- component: io.vertx.tp.rbac.extension.DataRegion
- config:
- prefix: /api/
- auditor:
- component: io.vertx.tp.rbac.extension.AuditorPin
- config:
-
-# database:
-# sql.debug: true
-
-# Debugger 模块
-debug:
- # (默认打开)Restful的路径扫描检查日志,规范检查专用
- web.uri.detecting: false
- # (默认关闭)Job任务启动时的日志打印
- # job.booting: true
- # (默认关闭)隐藏初始密码,后台账号可以在日志中看到初始密码
- # password.hidden: true
- # (默认关闭)打印底层Stack Trace的调试信息
- # stack.tracing: true
- # Jooq 条件日志(默认关闭)
- jooq.condition: true
- # Excel 扫描区域日志(默认关闭)
- # excel.ranging: true
-
- # Extension Module
- # crud.dao.file: false # IxDao 文件读取日志(默认关闭)
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-inject.yml b/zo-app/src/main/resources/vertx-inject.yml
index 0449e2b..4bbfdf7 100644
--- a/zo-app/src/main/resources/vertx-inject.yml
+++ b/zo-app/src/main/resources/vertx-inject.yml
@@ -1,11 +1,41 @@
-# mysql: io.vertx.up.plugin.jdbc.MySqlInfix
+# 「核心插件」-----------------------------------------------------------------------
+# Jooq: 数据库Jooq静态访问专用插件
jooq: io.vertx.tp.plugin.jooq.JooqInfix
-# rpc: io.vertx.tp.plugin.rpc.RpcInfix
-# 共享SharedMap专用插件
+
+# Cache: 缓存专用,内存级缓存,共享SharedMap专用插件
shared: io.vertx.tp.plugin.shared.MapInfix
-# Excel导入导出专用插件
+
+# Excel: 导入导出专用插件
excel: io.vertx.tp.plugin.excel.ExcelInfix
-# Redis
-# redis: io.vertx.tp.plugin.redis.RedisInfix
\ No newline at end of file
+
+
+
+
+# 「接口/任务插件」--------------------------------------------------------------------
+# Router: 动态路由插件,直接关联到 jet 中的启动器
+router: io.vertx.tp.jet.JetPollux
+
+
+# Job: 任务插件
+# job: io.vertx.up.uca.job.plugin.JobInfix
+
+
+
+
+# 「可插拔组件插件」-------------------------------------------------------------------
+# Trash: 历史库启用插件(删除备份回收站逻辑)
+# trash: io.vertx.tp.plugin.history.TrashInfix
+
+
+# Es: ES专用插件
+# elasticsearch: io.vertx.tp.plugin.elasticsearch.ElasticSearchInfix
+
+
+# Neo4j: 图引擎数据库专用
+# neo4j: io.vertx.tp.plugin.neo4j.Neo4jInfix
+
+
+# Redis: 连接Redis专用插件
+# redis: io.vertx.tp.plugin.redis.RedisInfix
diff --git a/zo-app/src/main/resources/vertx-jet.yml b/zo-app/src/main/resources/vertx-jet.yml
deleted file mode 100644
index a2f4c11..0000000
--- a/zo-app/src/main/resources/vertx-jet.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# 路由配置
-router:
- wall: /api
- worker:
- instances: 64
- agent:
- instances: 32
- unity: io.vertx.tp.optic.environment.UnityAmbient
-
-## 配置
-deployment:
- mode: CONFIG
- delivery:
- # 30 time
- timeout: 180000
- options:
- io.vertx.up.verticle.ZeroHttpAgent:
- instances: 64
- io.vertx.up.verticle.ZeroHttpWorker:
- instances: 64
- workerPoolSize: 128
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-jooq.yml b/zo-app/src/main/resources/vertx-jooq.yml
deleted file mode 100644
index 27fc244..0000000
--- a/zo-app/src/main/resources/vertx-jooq.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-jooq:
- provider:
- driverClassName: "com.mysql.cj.jdbc.Driver"
- username: zero
- password: "pl,okmijn123"
- hostname: "ox.engine.cn"
- instance: DB_SCAFFOLD
- jdbcUrl: "jdbc:mysql://ox.engine.cn:3306/DB_SCAFFOLD?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&useSSL=false&allowPublicKeyRetrieval=true"
-## 工作流配置
-workflow:
- name: ZO-WORKFLOW-ENGINE
- builtIn:
- # 文件管理工作流
- - workflow/process.file.management/workflow.xlsx
- database:
- driverClassName: "com.mysql.cj.jdbc.Driver"
- username: zero
- password: "pl,okmijn123"
- instance: DB_SCAFFOLD_WF
- hostname: "ox.engine.cn"
- jdbcUrl: "jdbc:mysql://ox.engine.cn:3306/DB_SCAFFOLD_WF?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&useSSL=false"
-
-# Cross Domain
-cors:
- credentials: true
- methods:
- - DELETE
- - GET
- - POST
- - PUT
- - OPTIONS
- headers:
- - Authorization
- - Accept
- - Content-Disposition
- - Content-Encoding
- - Content-Length
- - Content-Type
- - X-App-Id
- - X-App-Key
- - X-Sigma
- - X-Lang
- - X-Session-Id
- origin: "http://ox.server.cn:6001"
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-secure.yml b/zo-app/src/main/resources/vertx-secure.yml
index 284f34f..7659f37 100644
--- a/zo-app/src/main/resources/vertx-secure.yml
+++ b/zo-app/src/main/resources/vertx-secure.yml
@@ -10,9 +10,8 @@ secure:
- # Session
- # session:
- # config:
- # category: DEFINED
- # store: io.vertx.tp.plugin.redis.RedisStore
-# session:
\ No newline at end of file
+# Session
+# session:
+# config:
+# category: DEFINED
+# store: io.vertx.tp.plugin.redis.RedisStore
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx-server.yml b/zo-app/src/main/resources/vertx-server.yml
new file mode 100644
index 0000000..f92a9bf
--- /dev/null
+++ b/zo-app/src/main/resources/vertx-server.yml
@@ -0,0 +1,28 @@
+server:
+ - name: ht-web
+ type: http
+ config:
+ port: 7085
+ host: 0.0.0.0
+ - name: ht-ws
+ type: sock
+ config:
+ port: 7085
+ webSocketSubProtocols:
+ - v12.stomp
+ - v11.stomp
+ - v10.stomp
+ websocket:
+ # publish: /ws/ # Whether Enable Publish Channel ( Non Secure )
+ component: io.vertx.tp.plugin.stomp.websocket.AresStomp
+ # Ares component for Extenstion ( STOMP )
+ config:
+ stomp:
+ port: -1
+ secured: true # Enable Security Provider
+ websocketBridge: true
+ websocketPath: /api/web-socket/stomp
+ # stomp: # STOMP Handler Configuration
+ # bridge: # Bridge Configuration about `PermittedOptions`
+ # handler: # Handler Configuration ( Different Handler Maybe )
+ ## server: # Sock Server / Stomp Server ( The Port Must be not conflict with HTTP )
diff --git a/zo-app/src/main/resources/vertx-shell.yml b/zo-app/src/main/resources/vertx-shell.yml
index e69de29..f00e281 100644
--- a/zo-app/src/main/resources/vertx-shell.yml
+++ b/zo-app/src/main/resources/vertx-shell.yml
@@ -0,0 +1,29 @@
+shell:
+ debug: false # 是否开启命令行的Debug模式,Debug模式可以查看堆栈信息
+ welcome:
+ banner: "Zero Command Toolkit ( γραμμή εντολών )"
+ version: "1.0"
+ message:
+ environment: "[ {0} ]"
+ wait: "请输入命令,使用 h 可查看帮助文档"
+ quit: "您已经成功推出控制台!Successfully"
+ back: "您已经退出当前子系统:{0}!Successfully"
+ header: "参数选项表:"
+ help: "命令表:"
+ footer: "版权: silentbalanceyh@126.com Ver.1.0"
+ empty: "[ Error ] 您还没有输入任何命令,请输入合法命令!"
+ invalid: "对不起,该命令无法识别 \"{0}\",请输入合法命令!"
+ previous: "执行命令:\"{0}\", \"{1}\""
+ usage: "基本语法: [options...]
+ \t命令名称:{0}, 命令类型:{1}
+ \t参数格式: [-opt1 value1 -opt2 value2]"
+ commands:
+ default: "environment/commands.default.json"
+ defined: "environment/commands.json"
+ validate:
+ input:
+ required: "参数缺失或者长度不匹配(长度必须大于1),请输入合法参数!"
+ existing: "请输入合法的参数,参数列表:{0},当前输入:`{1}`"
+ args:
+ - start
+ - config
\ No newline at end of file
diff --git a/zo-app/src/main/resources/vertx.yml b/zo-app/src/main/resources/vertx.yml
index 073e72a..74f1afb 100644
--- a/zo-app/src/main/resources/vertx.yml
+++ b/zo-app/src/main/resources/vertx.yml
@@ -33,7 +33,7 @@
# extension 扩展组件
zero:
- lime: jet, jooq, secure, extension, excel
+ lime: excel, secure, shell, deployment, detect, dock
vertx:
instance:
- name: zero-scaffold
diff --git a/zo-module/pom.xml b/zo-module/pom.xml
index 8eff99f..f60fe29 100644
--- a/zo-module/pom.xml
+++ b/zo-module/pom.xml
@@ -26,6 +26,10 @@
${netty.version}
runtime
+
+ cn.vertxup.scaffold
+ zo-zero
+
cn.vertxup
diff --git a/zo-module/zo-commerce/init.db.sh b/zo-module/zo-commerce/init.db.sh
index 94a51c8..b8401f9 100644
--- a/zo-module/zo-commerce/init.db.sh
+++ b/zo-module/zo-commerce/init.db.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-/usr/local/mysql/bin/mysql -u root -p -P 3306 -h ox.engine.cn < script/database/database-reinit.sql
+# /usr/local/mysql/bin/mysql -u root -p -P 3306 -h ox.engine.cn < script/database/database-reinit.sql
mvn install -DskipTests=true -Dmaven.javadoc.skip=true
mvn liquibase:update
echo "数据库初始化完成!"
\ No newline at end of file
diff --git a/zo-module/zo-commerce/script/@configuration/menu/APP-80015-5730$-zo.member-SIDE.xlsx b/zo-module/zo-commerce/script/@configuration/menu/APP-80015-5730$-zo.member-SIDE.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..8074e846f6dc45f279dd3cbc8e81783349cffc33
GIT binary patch
literal 10071
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
literal 0
HcmV?d00001
diff --git a/zo-module/zo-commerce/script/code/config/zero.jooq.xml b/zo-module/zo-commerce/script/code/config/zero.jooq.xml
index a81375d..7e2062e 100644
--- a/zo-module/zo-commerce/script/code/config/zero.jooq.xml
+++ b/zo-module/zo-commerce/script/code/config/zero.jooq.xml
@@ -28,7 +28,7 @@
true
- cn.vertxup.zo.domain
+ cn.commerce.domain
../../src/main/java
diff --git a/zo-module/zo-commerce/script/database/database.reinit.sh b/zo-module/zo-commerce/script/database/database.reinit.sh
index 63c03c0..f5fdae2 100644
--- a/zo-module/zo-commerce/script/database/database.reinit.sh
+++ b/zo-module/zo-commerce/script/database/database.reinit.sh
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
-/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1 < database-reinit.sql
+mysql -u root -P 3306 -h 127.0.0.1 < database-reinit.sql
# /usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1 < init.account.sql
echo "[OX] 重建数据库成功!";
\ No newline at end of file
diff --git a/zo-module/zo-commerce/script/database/init.account.sql b/zo-module/zo-commerce/script/database/init.account.sql
index 13fb1f0..ffd4b1a 100644
--- a/zo-module/zo-commerce/script/database/init.account.sql
+++ b/zo-module/zo-commerce/script/database/init.account.sql
@@ -1,3 +1,3 @@
-CREATE USER IF NOT EXISTS 'zero'@'%' IDENTIFIED BY 'HBQ8yKBz3JB95OOSiVRQjmLh6KLKJzH7NBIa2hltk9OGq7D4xyxK9WgAHwYRhUJ9Xi1Zs3lwNL+0YwUjpZMQKlkAUK4BqL8CkoKZGgKMKn2P2D35M3n5lu3uE1BDx7aumJ4dGJ91f1Jk+dv2EDn+R+w0wpZX/gd/Qz00StS5CDw=';
+CREATE USER IF NOT EXISTS 'zero'@'%' IDENTIFIED BY 'pl,okmijn123';
GRANT ALL PRIVILEGES ON *.* TO 'zero'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
\ No newline at end of file
diff --git a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Db.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Db.java
similarity index 68%
rename from zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Db.java
rename to zo-module/zo-commerce/src/main/java/cn/commerce/domain/Db.java
index cf8f8cd..e162d14 100644
--- a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Db.java
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Db.java
@@ -1,10 +1,11 @@
/*
* This file is generated by jOOQ.
*/
-package cn.vertxup.zo.domain;
+package cn.commerce.domain;
-import cn.vertxup.zo.domain.tables.ZoRoom;
+import cn.commerce.domain.tables.ZoCard;
+import cn.commerce.domain.tables.ZoMember;
import java.util.Arrays;
import java.util.List;
@@ -29,9 +30,14 @@ public class Db extends SchemaImpl {
public static final Db DB_SCAFFOLD = new Db();
/**
- * The table DB_SCAFFOLD.ZO_ROOM .
+ * The table DB_SCAFFOLD.ZO_CARD .
*/
- public final ZoRoom ZO_ROOM = ZoRoom.ZO_ROOM;
+ public final ZoCard ZO_CARD = ZoCard.ZO_CARD;
+
+ /**
+ * The table DB_SCAFFOLD.ZO_MEMBER .
+ */
+ public final ZoMember ZO_MEMBER = ZoMember.ZO_MEMBER;
/**
* No further instances allowed
@@ -49,7 +55,8 @@ public class Db extends SchemaImpl {
@Override
public final List> getTables() {
return Arrays.asList(
- ZoRoom.ZO_ROOM
+ ZoCard.ZO_CARD,
+ ZoMember.ZO_MEMBER
);
}
}
diff --git a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/DefaultCatalog.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/DefaultCatalog.java
similarity index 97%
rename from zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/DefaultCatalog.java
rename to zo-module/zo-commerce/src/main/java/cn/commerce/domain/DefaultCatalog.java
index 79d4e0b..f6e9487 100644
--- a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/DefaultCatalog.java
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/DefaultCatalog.java
@@ -1,7 +1,7 @@
/*
* This file is generated by jOOQ.
*/
-package cn.vertxup.zo.domain;
+package cn.commerce.domain;
import java.util.Arrays;
diff --git a/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Keys.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Keys.java
new file mode 100644
index 0000000..4244687
--- /dev/null
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Keys.java
@@ -0,0 +1,35 @@
+/*
+ * This file is generated by jOOQ.
+ */
+package cn.commerce.domain;
+
+
+import cn.commerce.domain.tables.ZoCard;
+import cn.commerce.domain.tables.ZoMember;
+import cn.commerce.domain.tables.records.ZoCardRecord;
+import cn.commerce.domain.tables.records.ZoMemberRecord;
+
+import org.jooq.TableField;
+import org.jooq.UniqueKey;
+import org.jooq.impl.DSL;
+import org.jooq.impl.Internal;
+
+
+/**
+ * A class modelling foreign key relationships and constraints of tables in
+ * DB_SCAFFOLD.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Keys {
+
+ // -------------------------------------------------------------------------
+ // UNIQUE and PRIMARY KEY definitions
+ // -------------------------------------------------------------------------
+
+ public static final UniqueKey KEY_ZO_CARD_PRIMARY = Internal.createUniqueKey(ZoCard.ZO_CARD, DSL.name("KEY_ZO_CARD_PRIMARY"), new TableField[] { ZoCard.ZO_CARD.PK_ID }, true);
+ public static final UniqueKey KEY_ZO_CARD_UK_ZO_CARD_S_CODE_Z_SIGMA = Internal.createUniqueKey(ZoCard.ZO_CARD, DSL.name("KEY_ZO_CARD_UK_ZO_CARD_S_CODE_Z_SIGMA"), new TableField[] { ZoCard.ZO_CARD.S_CODE, ZoCard.ZO_CARD.Z_SIGMA }, true);
+ public static final UniqueKey KEY_ZO_CARD_UK_ZO_CARD_S_NUMBER_Z_SIGMA = Internal.createUniqueKey(ZoCard.ZO_CARD, DSL.name("KEY_ZO_CARD_UK_ZO_CARD_S_NUMBER_Z_SIGMA"), new TableField[] { ZoCard.ZO_CARD.S_NUMBER, ZoCard.ZO_CARD.Z_SIGMA }, true);
+ public static final UniqueKey KEY_ZO_MEMBER_PRIMARY = Internal.createUniqueKey(ZoMember.ZO_MEMBER, DSL.name("KEY_ZO_MEMBER_PRIMARY"), new TableField[] { ZoMember.ZO_MEMBER.PK_ID }, true);
+ public static final UniqueKey KEY_ZO_MEMBER_UK_ZO_MEMBER_S_CODE_Z_SIGMA = Internal.createUniqueKey(ZoMember.ZO_MEMBER, DSL.name("KEY_ZO_MEMBER_UK_ZO_MEMBER_S_CODE_Z_SIGMA"), new TableField[] { ZoMember.ZO_MEMBER.S_CODE, ZoMember.ZO_MEMBER.Z_SIGMA }, true);
+ public static final UniqueKey KEY_ZO_MEMBER_UK_ZO_MEMBER_S_MOBILE_Z_SIGMA = Internal.createUniqueKey(ZoMember.ZO_MEMBER, DSL.name("KEY_ZO_MEMBER_UK_ZO_MEMBER_S_MOBILE_Z_SIGMA"), new TableField[] { ZoMember.ZO_MEMBER.S_MOBILE, ZoMember.ZO_MEMBER.Z_SIGMA }, true);
+}
diff --git a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Tables.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Tables.java
similarity index 36%
rename from zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Tables.java
rename to zo-module/zo-commerce/src/main/java/cn/commerce/domain/Tables.java
index 0aed843..9a05ca7 100644
--- a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/Tables.java
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/Tables.java
@@ -1,10 +1,11 @@
/*
* This file is generated by jOOQ.
*/
-package cn.vertxup.zo.domain;
+package cn.commerce.domain;
-import cn.vertxup.zo.domain.tables.ZoRoom;
+import cn.commerce.domain.tables.ZoCard;
+import cn.commerce.domain.tables.ZoMember;
/**
@@ -14,7 +15,12 @@ import cn.vertxup.zo.domain.tables.ZoRoom;
public class Tables {
/**
- * The table DB_SCAFFOLD.ZO_ROOM .
+ * The table DB_SCAFFOLD.ZO_CARD .
*/
- public static final ZoRoom ZO_ROOM = ZoRoom.ZO_ROOM;
+ public static final ZoCard ZO_CARD = ZoCard.ZO_CARD;
+
+ /**
+ * The table DB_SCAFFOLD.ZO_MEMBER .
+ */
+ public static final ZoMember ZO_MEMBER = ZoMember.ZO_MEMBER;
}
diff --git a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/tables/ZoRoom.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoCard.java
similarity index 37%
rename from zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/tables/ZoRoom.java
rename to zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoCard.java
index 4625d30..b5a12e8 100644
--- a/zo-module/zo-commerce/src/main/java/cn/vertxup/zo/domain/tables/ZoRoom.java
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoCard.java
@@ -1,13 +1,14 @@
/*
* This file is generated by jOOQ.
*/
-package cn.vertxup.zo.domain.tables;
+package cn.commerce.domain.tables;
-import cn.vertxup.zo.domain.Db;
-import cn.vertxup.zo.domain.Keys;
-import cn.vertxup.zo.domain.tables.records.ZoRoomRecord;
+import cn.commerce.domain.Db;
+import cn.commerce.domain.Keys;
+import cn.commerce.domain.tables.records.ZoCardRecord;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
@@ -35,148 +36,146 @@ import org.jooq.impl.TableImpl;
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
-public class ZoRoom extends TableImpl {
+public class ZoCard extends TableImpl {
private static final long serialVersionUID = 1L;
/**
- * The reference instance of DB_SCAFFOLD.ZO_ROOM
+ * The reference instance of DB_SCAFFOLD.ZO_CARD
*/
- public static final ZoRoom ZO_ROOM = new ZoRoom();
+ public static final ZoCard ZO_CARD = new ZoCard();
/**
* The class holding records for this type
*/
@Override
- public Class getRecordType() {
- return ZoRoomRecord.class;
+ public Class getRecordType() {
+ return ZoCardRecord.class;
}
/**
- * The column DB_SCAFFOLD.ZO_ROOM.PK_ID . uniqueId,PK_ID
+ * The column DB_SCAFFOLD.ZO_CARD.PK_ID . uniqueId,PK_ID
*/
- public final TableField PK_ID = createField(DSL.name("PK_ID"), SQLDataType.VARCHAR(36).nullable(false), this, "uniqueId,PK_ID");
+ public final TableField PK_ID = createField(DSL.name("PK_ID"), SQLDataType.VARCHAR(36).nullable(false), this, "uniqueId,PK_ID");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.T_ROOMATTRS .
- * attrs,T_ROOMATTRS
+ * The column DB_SCAFFOLD.ZO_CARD.D_AMOUNT . 卡余额,amount,D_AMOUNT
*/
- public final TableField T_ROOMATTRS = createField(DSL.name("T_ROOMATTRS"), SQLDataType.CLOB, this, "attrs,T_ROOMATTRS");
+ public final TableField D_AMOUNT = createField(DSL.name("D_AMOUNT"), SQLDataType.DECIMAL(10, 2).nullable(false), this, "卡余额,amount,D_AMOUNT");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.S_CODE . code,S_CODE
+ * The column DB_SCAFFOLD.ZO_CARD.D_EXPIRED_TIME .
+ * 过期时间,expiredTime,D_EXPIRED_TIME
*/
- public final TableField S_CODE = createField(DSL.name("S_CODE"), SQLDataType.VARCHAR(36), this, "code,S_CODE");
+ public final TableField D_EXPIRED_TIME = createField(DSL.name("D_EXPIRED_TIME"), SQLDataType.LOCALDATETIME(0), this, "过期时间,expiredTime,D_EXPIRED_TIME");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.S_ROOM_NUM . number,S_ROOM_NUM
+ * The column DB_SCAFFOLD.ZO_CARD.L_POINT . 积分,point,L_POINT
*/
- public final TableField S_ROOM_NUM = createField(DSL.name("S_ROOM_NUM"), SQLDataType.VARCHAR(16).nullable(false), this, "number,S_ROOM_NUM");
+ public final TableField L_POINT = createField(DSL.name("L_POINT"), SQLDataType.BIGINT, this, "积分,point,L_POINT");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.J_CONFIG . config,J_CONFIG
+ * The column DB_SCAFFOLD.ZO_CARD.S_CODE . 编号,code,S_CODE
*/
- public final TableField J_CONFIG = createField(DSL.name("J_CONFIG"), SQLDataType.CLOB, this, "config,J_CONFIG");
+ public final TableField S_CODE = createField(DSL.name("S_CODE"), SQLDataType.VARCHAR(36), this, "编号,code,S_CODE");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.J_FEATURES .
- * features,J_FEATURES
+ * The column DB_SCAFFOLD.ZO_CARD.S_BATCH . 批次,batch,S_BATCH
*/
- public final TableField J_FEATURES = createField(DSL.name("J_FEATURES"), SQLDataType.CLOB, this, "features,J_FEATURES");
+ public final TableField S_BATCH = createField(DSL.name("S_BATCH"), SQLDataType.VARCHAR(32), this, "批次,batch,S_BATCH");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.R_FLOOR_ID . floor,R_FLOOR_ID
+ * The column DB_SCAFFOLD.ZO_CARD.S_NUMBER . 卡号,number,S_NUMBER
*/
- public final TableField R_FLOOR_ID = createField(DSL.name("R_FLOOR_ID"), SQLDataType.VARCHAR(36), this, "floor,R_FLOOR_ID");
+ public final TableField S_NUMBER = createField(DSL.name("S_NUMBER"), SQLDataType.VARCHAR(64).nullable(false), this, "卡号,number,S_NUMBER");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.R_HOTEL_ID .
- * hotelId,R_HOTEL_ID
+ * The column DB_SCAFFOLD.ZO_CARD.RLT_CARD_TYPE .
+ * 类型,cardType,RLT_CARD_TYPE
*/
- public final TableField R_HOTEL_ID = createField(DSL.name("R_HOTEL_ID"), SQLDataType.VARCHAR(36), this, "hotelId,R_HOTEL_ID");
+ public final TableField RLT_CARD_TYPE = createField(DSL.name("RLT_CARD_TYPE"), SQLDataType.VARCHAR(36), this, "类型,cardType,RLT_CARD_TYPE");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.R_ROOM_TYPE_ID .
- * roomTypeId,R_ROOM_TYPE_ID
+ * The column DB_SCAFFOLD.ZO_CARD.IS_MAJOR . 主卡,major,IS_MAJOR
*/
- public final TableField R_ROOM_TYPE_ID = createField(DSL.name("R_ROOM_TYPE_ID"), SQLDataType.VARCHAR(36), this, "roomTypeId,R_ROOM_TYPE_ID");
+ public final TableField IS_MAJOR = createField(DSL.name("IS_MAJOR"), SQLDataType.BIT, this, "主卡,major,IS_MAJOR");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.R_TENT_ID . tent,R_TENT_ID
+ * The column DB_SCAFFOLD.ZO_CARD.J_CONFIG . config,J_CONFIG
*/
- public final TableField R_TENT_ID = createField(DSL.name("R_TENT_ID"), SQLDataType.VARCHAR(36), this, "tent,R_TENT_ID");
+ public final TableField J_CONFIG = createField(DSL.name("J_CONFIG"), SQLDataType.CLOB, this, "config,J_CONFIG");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.IS_ACTIVE . active,IS_ACTIVE
+ * The column DB_SCAFFOLD.ZO_CARD.IS_ACTIVE . active,IS_ACTIVE
*/
- public final TableField IS_ACTIVE = createField(DSL.name("IS_ACTIVE"), SQLDataType.BIT, this, "active,IS_ACTIVE");
+ public final TableField IS_ACTIVE = createField(DSL.name("IS_ACTIVE"), SQLDataType.BIT, this, "active,IS_ACTIVE");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_SIGMA . sigma,Z_SIGMA
+ * The column DB_SCAFFOLD.ZO_CARD.Z_SIGMA . sigma,Z_SIGMA
*/
- public final TableField Z_SIGMA = createField(DSL.name("Z_SIGMA"), SQLDataType.VARCHAR(32), this, "sigma,Z_SIGMA");
+ public final TableField Z_SIGMA = createField(DSL.name("Z_SIGMA"), SQLDataType.VARCHAR(32), this, "sigma,Z_SIGMA");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_LANGUAGE .
+ * The column DB_SCAFFOLD.ZO_CARD.Z_LANGUAGE .
* language,Z_LANGUAGE
*/
- public final TableField Z_LANGUAGE = createField(DSL.name("Z_LANGUAGE"), SQLDataType.VARCHAR(8), this, "language,Z_LANGUAGE");
+ public final TableField Z_LANGUAGE = createField(DSL.name("Z_LANGUAGE"), SQLDataType.VARCHAR(8), this, "language,Z_LANGUAGE");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_CREATE_BY .
+ * The column DB_SCAFFOLD.ZO_CARD.Z_CREATE_BY .
* createBy,Z_CREATE_BY
*/
- public final TableField Z_CREATE_BY = createField(DSL.name("Z_CREATE_BY"), SQLDataType.VARCHAR(36), this, "createBy,Z_CREATE_BY");
+ public final TableField Z_CREATE_BY = createField(DSL.name("Z_CREATE_BY"), SQLDataType.VARCHAR(36), this, "createBy,Z_CREATE_BY");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_CREATE_TIME .
+ * The column DB_SCAFFOLD.ZO_CARD.Z_CREATE_TIME .
* createTime,Z_CREATE_TIME
*/
- public final TableField Z_CREATE_TIME = createField(DSL.name("Z_CREATE_TIME"), SQLDataType.LOCALDATETIME(0), this, "createTime,Z_CREATE_TIME");
+ public final TableField Z_CREATE_TIME = createField(DSL.name("Z_CREATE_TIME"), SQLDataType.LOCALDATETIME(0), this, "createTime,Z_CREATE_TIME");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_UPDATE_BY .
+ * The column DB_SCAFFOLD.ZO_CARD.Z_UPDATE_BY .
* updateBy,Z_UPDATE_BY
*/
- public final TableField Z_UPDATE_BY = createField(DSL.name("Z_UPDATE_BY"), SQLDataType.VARCHAR(36), this, "updateBy,Z_UPDATE_BY");
+ public final TableField Z_UPDATE_BY = createField(DSL.name("Z_UPDATE_BY"), SQLDataType.VARCHAR(36), this, "updateBy,Z_UPDATE_BY");
/**
- * The column DB_SCAFFOLD.ZO_ROOM.Z_UPDATE_TIME .
+ * The column DB_SCAFFOLD.ZO_CARD.Z_UPDATE_TIME .
* updateTime,Z_UPDATE_TIME
*/
- public final TableField Z_UPDATE_TIME = createField(DSL.name("Z_UPDATE_TIME"), SQLDataType.LOCALDATETIME(0), this, "updateTime,Z_UPDATE_TIME");
+ public final TableField Z_UPDATE_TIME = createField(DSL.name("Z_UPDATE_TIME"), SQLDataType.LOCALDATETIME(0), this, "updateTime,Z_UPDATE_TIME");
- private ZoRoom(Name alias, Table aliased) {
+ private ZoCard(Name alias, Table aliased) {
this(alias, aliased, null);
}
- private ZoRoom(Name alias, Table aliased, Field>[] parameters) {
+ private ZoCard(Name alias, Table aliased, Field>[] parameters) {
super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table());
}
/**
- * Create an aliased DB_SCAFFOLD.ZO_ROOM table reference
+ * Create an aliased DB_SCAFFOLD.ZO_CARD table reference
*/
- public ZoRoom(String alias) {
- this(DSL.name(alias), ZO_ROOM);
+ public ZoCard(String alias) {
+ this(DSL.name(alias), ZO_CARD);
}
/**
- * Create an aliased DB_SCAFFOLD.ZO_ROOM table reference
+ * Create an aliased DB_SCAFFOLD.ZO_CARD table reference
*/
- public ZoRoom(Name alias) {
- this(alias, ZO_ROOM);
+ public ZoCard(Name alias) {
+ this(alias, ZO_CARD);
}
/**
- * Create a DB_SCAFFOLD.ZO_ROOM table reference
+ * Create a DB_SCAFFOLD.ZO_CARD table reference
*/
- public ZoRoom() {
- this(DSL.name("ZO_ROOM"), null);
+ public ZoCard() {
+ this(DSL.name("ZO_CARD"), null);
}
- public ZoRoom(Table child, ForeignKey key) {
- super(child, key, ZO_ROOM);
+ public ZoCard(Table child, ForeignKey key) {
+ super(child, key, ZO_CARD);
}
@Override
@@ -185,52 +184,52 @@ public class ZoRoom extends TableImpl {
}
@Override
- public UniqueKey getPrimaryKey() {
- return Keys.KEY_ZO_ROOM_PRIMARY;
+ public UniqueKey getPrimaryKey() {
+ return Keys.KEY_ZO_CARD_PRIMARY;
}
@Override
- public List> getUniqueKeys() {
- return Arrays.asList(Keys.KEY_ZO_ROOM_UK_ZO_ROOM_S_CODE_Z_SIGMA);
+ public List> getUniqueKeys() {
+ return Arrays.asList(Keys.KEY_ZO_CARD_UK_ZO_CARD_S_CODE_Z_SIGMA, Keys.KEY_ZO_CARD_UK_ZO_CARD_S_NUMBER_Z_SIGMA);
}
@Override
- public ZoRoom as(String alias) {
- return new ZoRoom(DSL.name(alias), this);
+ public ZoCard as(String alias) {
+ return new ZoCard(DSL.name(alias), this);
}
@Override
- public ZoRoom as(Name alias) {
- return new ZoRoom(alias, this);
+ public ZoCard as(Name alias) {
+ return new ZoCard(alias, this);
}
@Override
- public ZoRoom as(Table> alias) {
- return new ZoRoom(alias.getQualifiedName(), this);
+ public ZoCard as(Table> alias) {
+ return new ZoCard(alias.getQualifiedName(), this);
}
/**
* Rename this table
*/
@Override
- public ZoRoom rename(String name) {
- return new ZoRoom(DSL.name(name), null);
+ public ZoCard rename(String name) {
+ return new ZoCard(DSL.name(name), null);
}
/**
* Rename this table
*/
@Override
- public ZoRoom rename(Name name) {
- return new ZoRoom(name, null);
+ public ZoCard rename(Name name) {
+ return new ZoCard(name, null);
}
/**
* Rename this table
*/
@Override
- public ZoRoom rename(Table> name) {
- return new ZoRoom(name.getQualifiedName(), null);
+ public ZoCard rename(Table> name) {
+ return new ZoCard(name.getQualifiedName(), null);
}
// -------------------------------------------------------------------------
@@ -238,14 +237,14 @@ public class ZoRoom extends TableImpl {
// -------------------------------------------------------------------------
@Override
- public Row17 fieldsRow() {
+ public Row17 fieldsRow() {
return (Row17) super.fieldsRow();
}
/**
* Convenience mapping calling {@link SelectField#convertFrom(Function)}.
*/
- public SelectField mapping(Function17 super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super Boolean, ? super String, ? super String, ? super String, ? super LocalDateTime, ? super String, ? super LocalDateTime, ? extends U> from) {
+ public SelectField mapping(Function17 super String, ? super BigDecimal, ? super LocalDateTime, ? super Long, ? super String, ? super String, ? super String, ? super String, ? super Boolean, ? super String, ? super Boolean, ? super String, ? super String, ? super String, ? super LocalDateTime, ? super String, ? super LocalDateTime, ? extends U> from) {
return convertFrom(Records.mapping(from));
}
@@ -253,7 +252,7 @@ public class ZoRoom extends TableImpl {
* Convenience mapping calling {@link SelectField#convertFrom(Class,
* Function)}.
*/
- public SelectField mapping(Class toType, Function17 super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super String, ? super Boolean, ? super String, ? super String, ? super String, ? super LocalDateTime, ? super String, ? super LocalDateTime, ? extends U> from) {
+ public SelectField mapping(Class toType, Function17 super String, ? super BigDecimal, ? super LocalDateTime, ? super Long, ? super String, ? super String, ? super String, ? super String, ? super Boolean, ? super String, ? super Boolean, ? super String, ? super String, ? super String, ? super LocalDateTime, ? super String, ? super LocalDateTime, ? extends U> from) {
return convertFrom(toType, Records.mapping(from));
}
}
diff --git a/zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoMember.java b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoMember.java
new file mode 100644
index 0000000..41a2f0f
--- /dev/null
+++ b/zo-module/zo-commerce/src/main/java/cn/commerce/domain/tables/ZoMember.java
@@ -0,0 +1,272 @@
+/*
+ * This file is generated by jOOQ.
+ */
+package cn.commerce.domain.tables;
+
+
+import cn.commerce.domain.Db;
+import cn.commerce.domain.Keys;
+import cn.commerce.domain.tables.records.ZoMemberRecord;
+
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.List;
+
+import org.jooq.Field;
+import org.jooq.ForeignKey;
+import org.jooq.Name;
+import org.jooq.Record;
+import org.jooq.Schema;
+import org.jooq.Table;
+import org.jooq.TableField;
+import org.jooq.TableOptions;
+import org.jooq.UniqueKey;
+import org.jooq.impl.DSL;
+import org.jooq.impl.SQLDataType;
+import org.jooq.impl.TableImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ZoMember extends TableImpl |