Skip to content
本页目录

MAS 模块化应用支撑平台

MAS是一个模块化的应用支撑平台,采用微服务和微应用架构,支持多租户、多站点、模块化开发和积木式搭建。基于该平台,可以快速开发各类业务微应用,通过组合微应用来搭建支持多租户和多站点的业务系统。它能够实现租户独立的、可个性化的各类业务系统(站点),并且支持全代码和低代码的开发方式。

功能范围

序号子平台说明
1平台管理中心管理租户、站点、应用等
2站群站点管理中心实现一个站点的基本管理功能,包括菜单、主题及基本信息管理
3帐户中心实现站点账号管理、认证和角色授权
4MAUI开发框架前端微应用开发框架,支持对前端内核扩展及业务的模块化开发
5微服务开发框架

版本

v5.14.30,于2025年4月3日发布

操作手册

  • 统一mas平台系统表前缀为fbp_

  • Mas平台由fbp服务替换(支持纯fbp和利用nacos+微服务混合模式【mas-admin服务、mas-admin-xxx、mas-ops-xxx应用由lc-admin、lc-ops替换】)

  • 原jar包里针对平台的配置参数调整到安全设置里,实现默认密码、密码校验、密钥等按业务系统(站群)进行设置

  • 平台运维通知

  • 平台管理功能、界面优化

  • 升级spring版本到6.1.14

  • 第三方接入由fbp替换,mas-admin的功能由fbp替换

  • 登录逻辑从主题和平台中独立,业务可自行开发【注意:登录块大小由平台统一约定,位置由主题决定】;原双因子扫码登录、账号密码登录由对应的登录应用提供,授权到站点后即有该功能;

    登录应用开发参考:点击进入

TIP

各业务开发的微服务里依赖了平台mas-core的需升级为:5.14.8;

各业务自行开发的微服务里feign调用mas-admin的需要适配:服务里需要新增环境变量:FEGIN_REDIRECTLIST,值为:'[{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/basicdata/basicdata-parm/getParamValueByKey","newUrl":"/app/lc-admin/v1.1.0.57/compatible/param/getParamValueByKey"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/basicdata/basicdata-parm/queryParmValueByKey","newUrl":"/app/lc-admin/v1.1.0.57/compatible/param/getParamValueByKey"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/getAccountInfo","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/getAccountInfo"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/component/portal-component/getCurVersionByCode","newUrl":"/app/lc-admin/v1.1.0.57/compatible/app/getCurVersionByCode"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/componentGrant/site-component-grant/getGrantAppVersionByTenantSite","newUrl":"/app/lc-admin/v1.1.0.57/compatible/app/getGrantAppVersionByTenantSite"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/saveOrUpdateAccount","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/saveOrUpdateAccount"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/deleteAccountInfo","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/deleteAccountInfo"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/deleteAccountInfoRel","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/deleteAccountInfoRel"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/list","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/list"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-info/page","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/page"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/account-tenant/saveAccountTenantSite","newUrl":"/app/lc-admin/v1.1.0.57/compatible/account/saveAccountTenantSite"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/get","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/get"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/deleteRoleInfo","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/deleteRoleInfo"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/listBySite","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/listBySite"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/pageByTenant","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/pageByTenant"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/adminRoleMap/admin-role-mapping/saveRoleToAccounts","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/saveRoleToAccounts"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/adminRoleMap/admin-role-mapping/removeRoleToAccounts","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/removeRoleToAccounts"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/saveBySiteGroup","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/saveBySiteGroup"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/getAllRoleByAccountId","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/getAllRoleByAccountId"},{"originServiceName":"mas-admin","newServiceName":"fbp","originUrl":"/platform/admin-role-info/getAllPowerByAccountId","newUrl":"/app/lc-admin/v1.1.0.57/compatible/role/getAllPowerByAccountId"}]',【注意:以环境里lc-admin实际的版本值替换掉v1.1.0.57后再设置】

fbp服务运行需要授权码,先将fbp服务的环境变量值调整正确后运行从日志里获取机器码【MachineCode:xxxxx】将机器码发公司获取对应的lisence,获取lisence后,在fbp服务里添加环境变量:server.license,值为申请的授权码

由于微服务spring版本升级到6.1.14,springboot版本到3.x,jdk版本要17+

更新内容

此版本主要更新内容如下:

新增

  • 运维公告:平台发送实时运维通知功能
  • 站点级DSC管理应用
  • 站点访问路径管理(兼容原访问方式)
  • 卸载指定版本应用
  • 新增DSC管理应用视角看dsc在应用(业务)中的使用
  • 新增通用平台内跨租户站点单点登录和通用第三方单点登录

修改或修复

  • 统一mas平台系统表前缀为fbp_
  • 调整mas-explorer中登录模块:登录位置块大小固定,界面由登录应用提供,支持多登录方式切换(由授权的登录应用来显示)
  • 优化平台启动不再依赖库里的DSC数据,只需要部署好fbp服务,在fpb服务里配置好DSC(数据源、缓存、存储)
  • fbp服务需要授权码运行
  • 平台管理功能优化调整:应用中心 (上架、分类)、安全设置 (设置初始密码、错误次数锁定、强制修改密码、账号加密算法、敏感要素保护等)、角色管理 、角色授权 、参数配置 (DSC映射设置、应用参数设置、事件设置)、 地址管理 (设置站点域名:站点独立域名、多站点共用域名等场景)、站点管理 (管理系统并构建业务系统:菜单管理、应用授权、应用版本、访问路径、关联账号、站点设置)、日志管理 (登录日志、管理日志)、运维公告 、账号管理 (账号维护、授权站点、关联角色、重置密码等)
  • 微服务适配spring6+springboot3
  • 用fbp应用(lc-openplatform)替换了原mas-open-gateway(第三方接入)的能力

更新资料获取

如何获取微服务镜像?

所有镜像可到容器仓库通过 docker pull 拉取

  • 武汉公司内网:192.168.1.10:5000/tangram/[微服务名]:[版本号]
  • 阿里云:registry.cn-hangzhou.aliyuncs.com/tangram/[微服务名]:[版本号]

如何获取微服务jar包?

所有正式发布版本可到私服仓库下载

  • 下载地址:http://nps.zktx-soft.com:19098/repository/maven-public/com/gsoft/[平台:mas|locas]/[应用名]/[版本号]/[应用名]-[版本号].jar

例:http://nps.zktx-soft.com:19098/repository/maven-public/com/gsoft/mas/mas-admin/5.14.3/mas-admin-5.14.3.jar

如何获取微应用tgz包?

所有安装包可到阿里云OSS仓库下载

  • 路径:oss://foa5-oss/deploy/release/[平台:mas/locas]/[应用名称]/[版本号]/[应用名称]-[版本号].tgz 如:oss://foa5-oss/deploy/release/mas/mas-panel/5.14.30/mas-panel-5.14.30.tgz

微服务版本明细

序号模块微服务版本号说明
基础设施
1Nacos服务nacos/nacos-server2.4.3
2Redisredis6.2.6-alpine3.15
平台基础
1前端基座mas-nginx5.14.30原foa5-nginx
2网关服务mas-gateway5.14.3原foa-cloud-gateway
3服务引擎locas-fbp2.8.3
扩展服务[支撑往期版本环境]
1文件服务mas-file5.14.3可选
2单点登录mas-sso5.14.3可选
3定时任务mas-task5.14.3可选
4在线WPSmas-wps5.14.3可选
5浙政钉网关mas-dingtalk5.14.3可选

微应用版本明细

序号模块微应用版本号说明
主题
1清新绿(横向)theme-horizontal-green5.14.30可选
2中国红(横向)theme-horizontal-red5.14.30可选
3政务蓝(纵向)theme-vertical-blue5.14.30可选
4清新绿(纵向)theme-vertical-green5.14.30可选
5中国红(纵向)theme-vertical-red5.14.30可选
6蓝色综合theme-multiple-blue5.14.30可选
7蓝色分栏theme-subfield-blue5.14.30可选
8大屏主题theme-fullscreen5.14.30可选
9移动账号密码主题theme-mobile-default5.14.30可选
10大屏亮色主题theme-fullscreen-light5.14.30可选
功能应用
1工作门户mas-panel5.14.30可选
2打印模块mas-printer5.14.30可选
3pc资源管理器mas-explorer5.14.30pc站点必须
4移动资源管理器mas-mobile-explorer5.14.30浙政钉移动站必选

可选的微应用,没有特殊说明的,对应的微服务均为必选微服务或无需对应服务

系统运行支撑应用

【获取地址:oss://foa5-oss/deploy/fbp-plat-hold/5_14_30】

序号微应用Code版本号更新说明
1平台管理lc-opsv1.1.0.48
2系统管理lc-adminv1.2.0.57
3数据源管理(平台级)lc-fbppdsmv1.1.0.19
4存储管理(平台级)lc-pstoragev1.1.0.14
5缓存管理(平台级)lc-pcachev1.1.0.15
6数据源管理(站点级)lc-fpbsdsmv1.1.0.12
7存储管理(站点级)lc-sstoragev1.1.0.10
8缓存管理(站点级)lc-scachev1.1.0.9
9国密SM2lc-sm2v1.0.0.1
10Api白名单lc-apiacmv1.1.0.2
11锁屏解锁登录lc-unlockloginv1.1.0.4
12页面渲染引擎locar2.8.32
13修改密码lc-modify-pwdv1.0.0.9

系统运行支撑应用(系统登录认证)

【获取地址:oss://foa5-oss/deploy/fbp-login/5.14.30/】

序号微应用Code版本号更新说明
1用户名密码登录lc-userpwdloginv1.1.0.17
2扫码登录lc-qrloginv1.1.0.8省厅环境需特殊处理
3移动端(浙政钉)免登lc-zzdloginv1.1.0.8省厅环境需特殊处理
4一体化登录lc-ythloginv1.1.0.2
5金三门户单点登录(登录名)lc-usernameloginv1.1.0.2
6平台用户编码身份单点登录、扫码预览lc-fbpssov1.1.0.2
7lc-fbpsso单点后多身份切换lc-switchsfv1.1.0.2
8通用平台内跨租户站点单点登录lc-platformssov1.1.0.4
9通用第三方单点登录到平台lc-thirdpartyssov1.1.0.7

5.13升级至5.14.30

提醒

  • 升级前先做好平台库的备份
  • 本次升级将分两阶段操作:先只启动mas-nginx、fbp、mas-gateway,让平台先跑起来,同时借此机会对历史无用应用版本文件做一次清理

开发环境,本地存储

本文档里会将nacos版本升级到v2.4.3,并使用鉴权模式;以nacos/nacos-server:v2.4.3镜像实例出新版本的nacos,设置参数NACOS_AUTH_ENABLE值为true,并指定NACOS_AUTH_TOKEN、NACOS_AUTH_IDENTITY_KEY、NACOS_AUTH_IDENTITY_VALUE

注意:nacos开启服务鉴权后,微服务里nacos连接地址要带上端口【mas-service服务参数:FOA5_NACOS_SERVER_ADDR,locas-fbp服务参数:nacos.server-addr】

微服务连接需配置认证的用户名和密码【mas-service服务参数:FOA5_NACOS_USERNAME、FOA5_NACOS_PASSWORD,locas-fbp服务参数:nacos.username、nacos.password】

potainer脚本示例
json
version: "3.7"
networks:
  default:
    external: true
    name: valid-514-network

services:  
  nacos:
    restart: always
    image: nacos/nacos-server:v2.4.3
    container_name: validupdate514
    ports:
      - "6100:8848"
    environment:
      MODE: standalone
      PREFER_HOST_MODE: hostname
      NACOS_AUTH_ENABLE: true
      NACOS_AUTH_TOKEN: ZHdxZmhncWlmaHFwb2lqZDktM3UxLTA5ZmgzMG5mcHdvamYwLWkxM2ZmMzJmZHN3Zg==
      NACOS_AUTH_IDENTITY_KEY: whzk@gsoftadmin
      NACOS_AUTH_IDENTITY_VALUE: whzk@gsoftadmin
      
    fbp:
    image: registry.cn-hangzhou.aliyuncs.com/tangram/locas-fbp:2.7.42
    volumes:
      - /data/softs/validupdate2514/data:/Mas-FBP-Server/data
    environment:
      profile: docker
      boot.version: 1.0.0
      nacos.enabled: true
      nacos.server-addr: validupdate514:8848
      nacos.username: nacos
      nacos.password: whzk@gsoftadmin
      db.driver-class-name: com.aliyun.polardb.Driver
      db.url: jdbc:polardb://foa5dev.rwlb.polardb-pg-public.rds.aliyuncs.com:1521/whzk_514?currentSchema=public&stringtype=unspecified
      db.username: foa5
      db.password: FOA5!0726
      storege.type: local
      oss.domain: oss-cn-hangzhou.aliyuncs.com
      oss.id: LTAI5tGon9qniXNGtThcZapW
      oss.key: uZQx73IvpDiOA6OhUkt4z3n8dQj62P
      oss.bucket: foa5-oss
      oss.root.dir: whzk_513/apps
      JVM_XMS: -Xms512M
      JVM_XMX: -Xmx1024M
      JVM_XSS: -Xss512k
      server.thread.pool.size: 10
      redis.host: 192.168.1.55
      redis.port: 6377
      redis.password: zktx5555
      redis.database: 15
      redis.expireSeconds: 14400

1、调整表前缀(在mas-admin服务连的库中执行)

点击查看
sql
----------------------------------------cos_admin_tenant_info
ALTER TABLE cos_admin_tenant_info RENAME TO fbp_admin_tenant_info;
CREATE SEQUENCE if not exists fbp_admin_tenant_info_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_tenant_info_c_id_seq', (select max(c_id) from fbp_admin_tenant_info));
alter table fbp_admin_tenant_info alter column "c_id" set default nextval('fbp_admin_tenant_info_c_id_seq');

----------------------------------------cos_admin_site_group_info
ALTER TABLE cos_admin_site_group_info RENAME TO fbp_admin_site_group_info;
CREATE SEQUENCE if not exists fbp_admin_site_group_info_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_site_group_info_c_id_seq', (select max(c_id) from fbp_admin_site_group_info));
alter table fbp_admin_site_group_info alter column "c_id" set default nextval('fbp_admin_site_group_info_c_id_seq');

---------------------------------------cos_admin_site_info
ALTER TABLE cos_admin_site_info RENAME TO fbp_admin_site_info;
CREATE SEQUENCE if not exists fbp_admin_site_info_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_site_info_c_id_seq', (select max(c_id) from fbp_admin_site_info));
alter table fbp_admin_site_info alter column "c_id" set default nextval('fbp_admin_site_info_c_id_seq');

---------------------------------------cos_admin_account_info
ALTER TABLE cos_admin_account_info RENAME TO fbp_admin_account_info;
CREATE SEQUENCE if not exists fbp_admin_account_info_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_account_info_c_id_seq', (select max(c_id) from fbp_admin_account_info));
alter table fbp_admin_account_info alter column "c_id" set default nextval('fbp_admin_account_info_c_id_seq');

----------------------------------------cos_admin_account_tenant
ALTER TABLE cos_admin_account_tenant RENAME TO fbp_admin_account_tenant;
CREATE SEQUENCE if not exists fbp_admin_account_tenant_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_account_tenant_c_id_seq', (select max(c_id) from fbp_admin_account_tenant));
alter table fbp_admin_account_tenant alter column "c_id" set default nextval('fbp_admin_account_tenant_c_id_seq');

-----------------------------------------cos_admin_role_info
ALTER TABLE cos_admin_role_info RENAME TO fbp_admin_role_info;
CREATE SEQUENCE if not exists fbp_admin_role_info_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_role_info_c_id_seq', (select max(c_id) from fbp_admin_role_info));
alter table fbp_admin_role_info alter column "c_id" set default nextval('fbp_admin_role_info_c_id_seq');

-----------------------------------------cos_admin_role_mapping
ALTER TABLE cos_admin_role_mapping RENAME TO fbp_admin_role_mapping;
CREATE SEQUENCE if not exists fbp_admin_role_mapping_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_role_mapping_c_id_seq', (select max(c_id) from fbp_admin_role_mapping));
alter table fbp_admin_role_mapping alter column "c_id" set default nextval('fbp_admin_role_mapping_c_id_seq');

-----------------------------------------cos_admin_init_menu
ALTER TABLE cos_admin_init_menu RENAME TO fbp_admin_init_menu;
CREATE SEQUENCE if not exists fbp_admin_init_menu_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_init_menu_c_id_seq', (select max(c_id) from fbp_admin_init_menu));
alter table fbp_admin_init_menu alter column "c_id" set default nextval('fbp_admin_init_menu_c_id_seq');

-----------------------------------------cos_portal_diy_menu
ALTER TABLE cos_portal_diy_menu RENAME TO fbp_portal_diy_menu;
CREATE SEQUENCE if not exists fbp_portal_diy_menu_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_diy_menu_c_id_seq', (select max(c_id) from fbp_portal_diy_menu));
alter table fbp_portal_diy_menu alter column "c_id" set default nextval('fbp_portal_diy_menu_c_id_seq');

-----------------------------------------cos_portal_component
ALTER TABLE cos_portal_component RENAME TO fbp_portal_component;
CREATE SEQUENCE if not exists fbp_portal_component_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_component_c_id_seq', (select max(c_id) from fbp_portal_component));
alter table fbp_portal_component alter column "c_id" set default nextval('fbp_portal_component_c_id_seq');

------------------------------------------cos_portal_component_grant
ALTER TABLE cos_portal_component_grant RENAME TO fbp_portal_component_grant;
CREATE SEQUENCE if not exists fbp_portal_component_grant_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_component_grant_c_id_seq', (select max(c_id) from fbp_portal_component_grant));
alter table fbp_portal_component_grant alter column "c_id" set default nextval('fbp_portal_component_grant_c_id_seq');

-------------------------------------------cos_portal_import_record
ALTER TABLE cos_portal_import_record RENAME TO fbp_portal_import_record;
CREATE SEQUENCE if not exists fbp_portal_import_record_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_import_record_c_id_seq', (select max(c_id) from fbp_portal_import_record));
alter table fbp_portal_import_record alter column "c_id" set default nextval('fbp_portal_import_record_c_id_seq');

-------------------------------------------cos_site_component_grant
ALTER TABLE cos_site_component_grant RENAME TO fbp_site_component_grant;

CREATE SEQUENCE if not exists fbp_site_component_grant_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_site_component_grant_c_id_seq', (select max(c_id) from fbp_site_component_grant));
alter table fbp_site_component_grant alter column "c_id" set default nextval('fbp_site_component_grant_c_id_seq');

-------------------------------------------cos_app_publish_log
ALTER TABLE cos_app_publish_log RENAME TO fbp_app_publish_log;
CREATE SEQUENCE if not exists fbp_app_publish_log_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_app_publish_log_c_id_seq', (select max(c_id) from fbp_app_publish_log));
alter table fbp_app_publish_log alter column "c_id" set default nextval('fbp_app_publish_log_c_id_seq');

--------------------------------------------cos_portal_app_version
ALTER TABLE cos_portal_app_version RENAME TO fbp_portal_app_version;
CREATE SEQUENCE if not exists fbp_portal_app_version_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_app_version_c_id_seq', (select max(c_id) from fbp_portal_app_version));
alter table fbp_portal_app_version alter column "c_id" set default nextval('fbp_portal_app_version_c_id_seq');

--------------------------------------------cos_portal_diy_app_version
ALTER TABLE cos_portal_diy_app_version RENAME TO fbp_portal_diy_app_version;
CREATE SEQUENCE if not exists fbp_portal_diy_app_version_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_diy_app_version_c_id_seq', (select max(c_id) from fbp_portal_diy_app_version));
alter table fbp_portal_diy_app_version alter column "c_id" set default nextval('fbp_portal_diy_app_version_c_id_seq');

-------------------------------------------cos_admin_maintain_log
ALTER TABLE cos_admin_maintain_log RENAME TO fbp_admin_maintain_log;
CREATE SEQUENCE if not exists fbp_admin_maintain_log_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_admin_maintain_log_c_id_seq', (select max(c_id) from fbp_admin_maintain_log));
alter table fbp_admin_maintain_log alter column "c_id" set default nextval('fbp_admin_maintain_log_c_id_seq');

-------------------------------------------t_app_catalog_mapping
ALTER TABLE t_app_catalog_mapping RENAME TO fbp_app_catalog_mapping;
CREATE SEQUENCE if not exists fbp_app_catalog_mapping_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_app_catalog_mapping_c_id_seq', (select max(c_id) from fbp_app_catalog_mapping));
alter table fbp_app_catalog_mapping alter column "c_id" set default nextval('fbp_app_catalog_mapping_c_id_seq');

-------------------------------------------cos_portal_widget_instance
ALTER TABLE cos_portal_widget_instance RENAME TO fbp_portal_widget_instance;
CREATE SEQUENCE if not exists fbp_portal_widget_instance_c_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
select setval('fbp_portal_widget_instance_c_id_seq', (select max(c_id) from fbp_portal_widget_instance));
alter table fbp_portal_widget_instance alter column "c_id" set default nextval('fbp_portal_widget_instance_c_id_seq');

ALTER TABLE fbp_datasource RENAME  TO fbp_datasource_tmp;

DROP TABLE IF EXISTS "fbp_datasource";
CREATE TABLE "fbp_datasource" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_name" varchar(255) ,
  "c_type" int2,
  "c_url" varchar(1000) ,
  "c_user" varchar(255) ,
  "c_password" varchar(255) ,
  "c_remark" varchar(255) ,
  "c_code" varchar(255) ,
  "c_level" int2,
  "c_site_group_id" int8,
  "c_initialsize" int2,
  "c_minidle" int2,
  "c_maxsize" int2,
  "c_driverclassname" varchar(1000)
);
COMMENT ON COLUMN "fbp_datasource"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_datasource"."c_name" IS '数据源名称';
COMMENT ON COLUMN "fbp_datasource"."c_type" IS '数据源类型,1-MySQL,2-Oracle,3-达梦,4-polardb,5-postgres,6-人大金仓,7-神通';
COMMENT ON COLUMN "fbp_datasource"."c_url" IS '数据源url';
COMMENT ON COLUMN "fbp_datasource"."c_user" IS '用户名';
COMMENT ON COLUMN "fbp_datasource"."c_password" IS '密码';
COMMENT ON COLUMN "fbp_datasource"."c_remark" IS '备注';
COMMENT ON COLUMN "fbp_datasource"."c_code" IS '唯一标识';
COMMENT ON COLUMN "fbp_datasource"."c_level" IS '数据源级别,1-平台级,2-租户级';
COMMENT ON COLUMN "fbp_datasource"."c_site_group_id" IS '所属站群id(站点级)';
COMMENT ON COLUMN "fbp_datasource"."c_initialsize" IS '初始化连接数';
COMMENT ON COLUMN "fbp_datasource"."c_minidle" IS '最小连接数';
COMMENT ON COLUMN "fbp_datasource"."c_maxsize" IS '最大连接数';
COMMENT ON COLUMN "fbp_datasource"."c_driverclassname" IS '数据源驱动类';
COMMENT ON TABLE "fbp_datasource" IS '数据源信息';

2、新增表、调整表结构(平台主库中执行)

点击查看
sql
-- ----------------------------
-- Table structure for feign_redirect_record
-- ----------------------------
DROP TABLE IF EXISTS "feign_redirect_record";
CREATE TABLE "feign_redirect_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_origin_service_name" varchar(200) ,
  "c_new_service_name" varchar(200) ,
  "c_origin_url" varchar(2000) ,
  "c_new_url" varchar(2000)
);
COMMENT ON COLUMN "feign_redirect_record"."c_id" IS '主键id';
COMMENT ON COLUMN "feign_redirect_record"."c_origin_service_name" IS '原微服务名';
COMMENT ON COLUMN "feign_redirect_record"."c_new_service_name" IS '新微服务名';
COMMENT ON COLUMN "feign_redirect_record"."c_origin_url" IS '原服务地址';
COMMENT ON COLUMN "feign_redirect_record"."c_new_url" IS '新服务地址';
COMMENT ON TABLE "feign_redirect_record" IS 'feign转发映射表';

-- ----------------------------
-- Table structure for fbp_ops_notice
-- ----------------------------
DROP TABLE IF EXISTS "fbp_ops_notice";
CREATE TABLE "fbp_ops_notice" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_msg" varchar(4000) ,
  "c_publish_time" timestamp(6),
  "c_over_time" timestamp(6),
  "c_keep_days" int4,
  "c_creator" varchar(50) ,
	"c_creator_id" int8,
  "c_create_time" timestamp(6),
  "c_status" varchar(4)
);
COMMENT ON COLUMN "fbp_ops_notice"."c_msg" IS '公告内容';
COMMENT ON COLUMN "fbp_ops_notice"."c_publish_time" IS '发布时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_over_time" IS '过期时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_keep_days" IS '保持天数';
COMMENT ON COLUMN "fbp_ops_notice"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_ops_notice"."c_creator_id" IS '创建人Id';
COMMENT ON COLUMN "fbp_ops_notice"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_status" IS '是否发布:1已发布0未发布';
COMMENT ON TABLE "fbp_ops_notice" IS '运维通知表';

-- ----------------------------
-- Table structure for fbp_ops_notice_recieved
-- ----------------------------
DROP TABLE IF EXISTS "fbp_ops_notice_recieved";
CREATE TABLE "fbp_ops_notice_recieved" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_msg_id" int8 ,
  "c_reciever_time" timestamp(6),
  "c_reciever_id" int8,
  "c_reciever" varchar(100)
);
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_msg_id" IS '公告id';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever_time" IS '签收时间';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever_id" IS '签收人id';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever" IS '签收人';
COMMENT ON TABLE "fbp_ops_notice_recieved" IS '运维通知签收表';


---------
--登录日志
--------
-- ----------------------------
-- Table structure for fbp_admin_login_log
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_login_log";
CREATE TABLE "fbp_admin_login_log" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_operation_type" int4,
  "c_login_name" varchar(32) ,
  "c_result" int2 DEFAULT 0,
  "c_login_type" int4,
  "c_session_id" varchar(200) ,
  "c_operation_client_ip" varchar(64) ,
  "c_operation_client_mac" varchar(64) ,
  "c_operation_user_agent" varchar(500) ,
  "c_result_message" varchar(4000) ,
  "c_site_id" int8,
  "c_site_group_id" int8
);
COMMENT ON COLUMN "fbp_admin_login_log"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_login_log"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_login_log"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_login_log"."c_creator" IS '创建人(登录人)';
COMMENT ON COLUMN "fbp_admin_login_log"."c_create_time" IS '创建时间(登录时间)';
COMMENT ON COLUMN "fbp_admin_login_log"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_login_log"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_type" IS '操作类型:1 登录  2 登出  3 其它';
COMMENT ON COLUMN "fbp_admin_login_log"."c_login_name" IS '登录账号';
COMMENT ON COLUMN "fbp_admin_login_log"."c_result" IS '操作结果 true 成功 false 失败';
COMMENT ON COLUMN "fbp_admin_login_log"."c_login_type" IS '登陆方式 1账号密码登录  2浙政钉扫码  3 浙政钉免登  4 钉钉扫码  5 平台fbp单点登录  6 钉钉免登';
COMMENT ON COLUMN "fbp_admin_login_log"."c_session_id" IS '会话id';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_client_ip" IS '访问客户端IP';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_client_mac" IS '访问客户端MAC';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_user_agent" IS '访问浏览器user-agent';
COMMENT ON COLUMN "fbp_admin_login_log"."c_result_message" IS '报错信息';
COMMENT ON COLUMN "fbp_admin_login_log"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_admin_login_log"."c_site_group_id" IS '站群id';
COMMENT ON TABLE "fbp_admin_login_log" IS '登录日志表';

CREATE TABLE "fbp_events" (
  "c_id" serial8 NOT NULL,
  "c_creator" varchar(50),
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_app_code" varchar(100),
  "c_event_code" varchar(100),
  "c_path" varchar(200)
);
COMMENT ON COLUMN "fbp_events"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_events"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_events"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_events"."c_sort_number" IS '排序好';
COMMENT ON COLUMN "fbp_events"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_events"."c_app_code" IS '应用标识';
COMMENT ON COLUMN "fbp_events"."c_event_code" IS '事件标识';
COMMENT ON COLUMN "fbp_events"."c_path" IS '事件响应服务(函数)path';
COMMENT ON TABLE "fbp_events" IS 'fbp服务事件表';


DROP TABLE IF EXISTS "fbp_path";
CREATE TABLE "fbp_path" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_tenant_code" varchar(32) ,
  "c_site_id" int4,
  "c_site_code" varchar(32) ,
  "c_path" varchar(255) ,
  "c_remark" varchar(255)
);
COMMENT ON COLUMN "fbp_path"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_path"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_path"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_path"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_path"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_path"."c_tenant_code" IS '租户code';
COMMENT ON COLUMN "fbp_path"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_path"."c_site_code" IS '站点code';
COMMENT ON COLUMN "fbp_path"."c_path" IS '访问路径';
COMMENT ON COLUMN "fbp_path"."c_remark" IS '备注';
COMMENT ON TABLE "fbp_path" IS '站点地址表';


DROP TABLE IF EXISTS "fbp_admin_account_grant";
CREATE TABLE "fbp_admin_account_grant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_account_id" int8
);
COMMENT ON COLUMN "fbp_admin_account_grant"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_account_id" IS '账号id';
COMMENT ON TABLE "fbp_admin_account_grant" IS '租户管理授权表';


DROP TABLE IF EXISTS "fbp_path_domain";
CREATE TABLE "fbp_path_domain" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_domain" varchar(255)
);
COMMENT ON COLUMN "fbp_path_domain"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_path_domain"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_path_domain"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_path_domain"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_path_domain"."c_domain" IS '域名';
COMMENT ON TABLE "fbp_path_domain" IS '域名黑名单';


DROP TABLE IF EXISTS "fbp_app_param_setting";
CREATE TABLE "fbp_app_param_setting" (
	"c_id" serial8 NOT NULL PRIMARY KEY,
	"c_key" varchar(100),
	"c_value" varchar(2000),
	"c_name" varchar(255),
	"c_desc" varchar(1000),
	"c_type" varchar(10),
	"c_catalog" varchar(10),
	"c_app_code" varchar(100),
	"c_app_name" varchar(255),
	"c_app_version" varchar(100),
	"c_tenant_id" int8,   -- 平台的
	"c_site_group_id" int8,
	"c_site_id" int8
);
COMMENT ON COLUMN "fbp_app_param_setting"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_app_param_setting"."c_tenant_id" IS '租户ID,平台级别的为空';
COMMENT ON COLUMN "fbp_app_param_setting"."c_key" IS '标识';
COMMENT ON COLUMN "fbp_app_param_setting"."c_value" IS '';
COMMENT ON COLUMN "fbp_app_param_setting"."c_desc" IS '描述';
COMMENT ON COLUMN "fbp_app_param_setting"."c_type" IS '类型:1平台,2站点';
COMMENT ON COLUMN "fbp_app_param_setting"."c_catalog" IS '分类:1数据源,2缓存,3存储,4参数';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_code" IS '应用code';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_name" IS '应用名称';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_version" IS '应用版本';
COMMENT ON COLUMN "fbp_app_param_setting"."c_site_group_id" IS '站群ID,平台级别的为空';
COMMENT ON COLUMN "fbp_app_param_setting"."c_site_id" IS '站点ID,平台级别的为空';
COMMENT ON TABLE "fbp_app_param_setting" IS '应用参数配置表';


-----------------------------
--第三方接入
------------------------------
DROP TABLE IF EXISTS "fbp_third_party_info";
CREATE TABLE "fbp_third_party_info" (
  "c_id" "serial8" NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_business_tenant_id" int8,
  "c_business_site_id" int8,
  "c_name" varchar(50) ,
  "c_type" int4,
  "c_description" varchar(255) ,
  "c_access_key" varchar(50) ,
  "c_secret_key" varchar(50) ,
  "c_status" int4
);
COMMENT ON COLUMN "fbp_third_party_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_third_party_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_third_party_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_third_party_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_third_party_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_third_party_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_third_party_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_business_tenant_id" IS '接入租户ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_business_site_id" IS '接入站点ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_name" IS '接入方名称';
COMMENT ON COLUMN "fbp_third_party_info"."c_type" IS '类型 0.需要时间戳校验 1.不需要时间戳校验 默认为0';
COMMENT ON COLUMN "fbp_third_party_info"."c_description" IS '描述';
COMMENT ON COLUMN "fbp_third_party_info"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_third_party_info"."c_secret_key" IS 'appSecret';
COMMENT ON COLUMN "fbp_third_party_info"."c_status" IS '状态 1启用0停用';
COMMENT ON TABLE "fbp_third_party_info" IS '第三方接入信息表';

DROP TABLE IF EXISTS "fbp_open_api";
CREATE TABLE "fbp_open_api" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" "int8",
  "c_module_name" varchar(255) ,
  "c_name" varchar(255) ,
  "c_path" varchar(255) ,
  "c_description" varchar(255), 
  "c_expression" varchar(500) 
);
COMMENT ON COLUMN "fbp_open_api"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_open_api"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_open_api"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_open_api"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_open_api"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_open_api"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_open_api"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_open_api"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_open_api"."c_module_name" IS '模块名';
COMMENT ON COLUMN "fbp_open_api"."c_name" IS '名称';
COMMENT ON COLUMN "fbp_open_api"."c_path" IS '请求地址';
COMMENT ON COLUMN "fbp_open_api"."c_description" IS '描述';
COMMENT ON COLUMN "fbp_open_api"."c_expression" IS '接口权限表达式(fbp接口xml上需配有p.thirdreq权限才可开放给第三方使用)';
COMMENT ON TABLE "fbp_open_api" IS '授权api信息表';


DROP TABLE IF EXISTS "fbp_third_party_auth";
CREATE TABLE "fbp_third_party_auth" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" "int8",
  "c_access_key" varchar(255) ,
  "c_api_id" varchar(255)
);
COMMENT ON COLUMN "fbp_third_party_auth"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_third_party_auth"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_third_party_auth"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_third_party_auth"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_third_party_auth"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_third_party_auth"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_third_party_auth"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_third_party_auth"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_third_party_auth"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_third_party_auth"."c_api_id" IS '开放接口id';
COMMENT ON TABLE "fbp_third_party_auth" IS '第三方接入api授权关联表';


DROP TABLE IF EXISTS "fbp_open_gateway_log";
CREATE TABLE "fbp_open_gateway_log" (
  "c_id" "serial8" NOT NULL PRIMARY KEY,
  "c_create_time" timestamp,
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_path" VARCHAR(2000) ,
  "c_access_key" varchar(255) ,
  "c_access_timestamp" varchar(255) ,
  "c_sign" varchar(500) ,
  "c_client_ip" varchar(50) ,
  "c_user_agent" varchar(2000) ,
  "c_result" int4,
  "c_result_message" text 
);
COMMENT ON COLUMN "fbp_open_gateway_log"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_create_time" IS '访问时间';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_path" IS '接口地址';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_access_timestamp" IS '认证时间戳';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_sign" IS '签名';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_client_ip" IS '访问ip';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_user_agent" IS '浏览器信息';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_result" IS '访问状态';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_result_message" IS '错误信息';
COMMENT ON TABLE "fbp_open_gateway_log" IS '第三方接入访问日志表';

------------------
-- 调整表结构
------------------

ALTER TABLE fbp_admin_maintain_log 
ADD COLUMN c_site_id int8,
ADD COLUMN c_site_group_id int8;
COMMENT ON COLUMN "fbp_admin_maintain_log"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_admin_maintain_log"."c_site_group_id" IS '站群ID';

ALTER TABLE fbp_portal_component ADD COLUMN c_is_login varchar(2) DEFAULT '0';
COMMENT ON COLUMN "fbp_portal_component"."c_is_login" IS '是否是登录应用 0 否 1 是';

ALTER TABLE fbp_admin_site_group_info 
ADD COLUMN "c_config" text,
ADD COLUMN "c_desc" varchar(2000);
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_config" IS '站群设置';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_desc" IS '站群备注';

ALTER TABLE fbp_admin_site_info RENAME COLUMN c_inited TO c_inited_tmp;
ALTER TABLE fbp_admin_site_info RENAME COLUMN c_is_manage_site TO c_is_manage_site_tmp;
ALTER TABLE fbp_admin_site_info ADD c_inited int2 NULL DEFAULT 0;
ALTER TABLE fbp_admin_site_info ADD c_is_manage_site int2 NULL DEFAULT 0;
update fbp_admin_site_info set c_is_manage_site = 1 where c_is_manage_site_tmp = true;
ALTER TABLE fbp_admin_site_info DROP COLUMN c_inited_tmp;
ALTER TABLE fbp_admin_site_info DROP COLUMN c_is_manage_site_tmp;

ALTER TABLE fbp_admin_account_info RENAME COLUMN c_status TO c_status_tmp;
ALTER TABLE fbp_admin_account_info ADD c_status int2 NULL DEFAULT 1;
update fbp_admin_account_info set c_status = 0 where c_status_tmp = 'f';
ALTER TABLE fbp_admin_account_info DROP COLUMN c_status_tmp;

ALTER TABLE fbp_admin_tenant_info RENAME COLUMN c_inited TO c_inited_tmp;
ALTER TABLE fbp_admin_tenant_info ADD c_inited int2 NULL DEFAULT 0;
ALTER TABLE fbp_admin_tenant_info DROP COLUMN c_inited_tmp;

ALTER TABLE fbp_storages ADD c_site_group_id int4;
ALTER TABLE fbp_cache_pools ADD c_site_group_id int4;

INSERT INTO "fbp_path" (c_creator,c_create_time,c_tenant_id,c_tenant_code,c_site_id,c_site_code,c_path,c_remark)VALUES (1, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 'sys', (select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage' and c_tenant_code = 'sys'), 'sys_sg_manage', '/sys/sys_sg_manage', '系统管理');
INSERT INTO "fbp_path" (c_creator,c_create_time,c_tenant_id,c_tenant_code,c_site_id,c_site_code,c_path,c_remark)VALUES (1, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 'sys', (select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage' and c_tenant_code = 'sys'), 'sys_sg_manage', '/sysadmin', '系统管理');

INSERT INTO "fbp_path" (c_creator,c_create_time,c_tenant_id,c_tenant_code,c_site_id,c_site_code,c_path,c_remark)VALUES (1, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 'sys', (select c_id from fbp_admin_site_info where c_code = 'sys' and c_tenant_code = 'sys'), 'sys', '/', '平台运维');

update fbp_admin_site_group_info set c_config = '{"pwd":{"algorithm":"bcrypt","secretKey":"","check":{"complexity":"0.75","rule":"^(?![a-zA-z]+$)(?!\\d+$)(?![!@#$%^&*]+$)[a-zA-Z\\d!@#$%^&*]{8,}$","msg":"密码须包含字母、数字、特殊字符!@#$%^&*且至少8位"},"tipModify":{"enable":false,"cycle":90}},"defaultPassword":"Zktx%13579","sensitiveInfo":{"encode":false,"sm4Key":"f8ffdfe06a1ddcdb38028d66be8d25e0","sm4Iv":"3c25d38f657ba55ab909996d6eb0e2ed"},"login":{"scanDoubleValid":false,"pwdDbVaild":false,"inputError":{"limit":5,"locked":10},"checkInitFm":false}}';

3、停掉所有微服务,更新fbp服务、mas-gateway、mas-nginx镜像

调整mas-gateway环境变量:

调整locas-fbp服务环境变量:

  • boot.version: 1.0.0 值改成1.1.1
  • 新增server.license: xxxxxxx 值从locas-fbp服务日志里获取机器码(日志中寻找MachineCode:)后发给公司获取授权码

调整mas-nginx服务的挂载和nginx.conf中对apps、resources的代理:【更换系统目录,清理掉大量的早期的应用版本文件】

【注意:514后应用上架是由fbp配置出来,上架的应用会放置在fbp服务容器的服务目录/Mas-FBP-Server/data下,应将locas-fbp服务容器内的目录:/Mas-FBP-Server/data挂载出来,然后在nginx容器里将locas-fbp挂载出来的数据目录下的apps目录挂再进mas-nginx里nginx配置的代理apps的目录下】

将平台基础应用包解压放置在新挂载的fbp数据目录的apps目录下 将如下应用版本文件移入新的apps目录下【实际执行时可能环境里已经变化了,如前端出现js报错,可以从中看出是哪个文件和版本】: 执行平台租户、站点的新版应用授权关联语句

sql
--清理旧版本的管理应用数据
delete from fbp_portal_app_version where c_app_code =  ('mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant','mas-ops-app' );
delete from fbp_app_publish_log where c_app_code in ('mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant' ,'mas-ops-app');
delete from fbp_portal_component where c_code in ('mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant','mas-ops-app' );
delete from fbp_portal_import_record where c_app_code in('mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant','mas-ops-app' );

delete from fbp_portal_app_version where c_app_code in  ('mas-explorer','locar','lc-userpwdlogin','lc-unlocklogin','theme-vertical-blue','lc-modify-pwd','lc-pstorage','lc-fbppdsm','lc-pcache','lc-fpbsdsm','lc-sstorage','lc-scache' );
delete from fbp_app_publish_log where c_app_code in ('mas-explorer','locar','lc-userpwdlogin','lc-unlocklogin','theme-vertical-blue','lc-modify-pwd','lc-pstorage','lc-fbppdsm','lc-pcache','lc-fpbsdsm','lc-sstorage','lc-scache' );
delete from fbp_portal_component where c_code in ('mas-explorer','locar','lc-userpwdlogin','lc-unlocklogin','theme-vertical-blue','lc-modify-pwd','lc-pstorage','lc-fbppdsm','lc-pcache','lc-fpbsdsm','lc-sstorage','lc-scache' );
delete from fbp_portal_import_record where c_app_code in ('mas-explorer','locar','lc-userpwdlogin','lc-unlocklogin','theme-vertical-blue','lc-modify-pwd','lc-pstorage','lc-fbppdsm','lc-pcache','lc-fpbsdsm','lc-sstorage','lc-scache' );

--清理旧版本的管理应用授权租户、站点数据
delete from fbp_portal_component where c_code in ('mas-admin-sso','mas-admin-online','mas-admin-log','mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant','mas-ops-app','mas-admin-site','mas-admin-menu' );
delete from fbp_site_component_grant where c_app_code in ('mas-admin-sso','mas-admin-online','mas-admin-log','mas-admin-modpwd','lc-updatesitegroup','mas-admin-account','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-role','mas-admin-param','lc-syscachemng','mas-ops-site','mas-ops-tenant','mas-ops-app','mas-admin-site','mas-admin-menu' );

-- 初始化新应用
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-ops','v1.1.0.48');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-ops-v1.1.0.48.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-ops','v1.1.0.48');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-ops','v1.1.0.48','系统管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-admin','v1.2.0.57');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-admin-v1.2.0.57.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-admin','v1.2.0.57');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-admin','v1.2.0.57','系统管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-modify-pwd','v1.0.0.9');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-modify-pwd-v1.0.0.9.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-modify-pwd','v1.0.0.9');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time,c_is_login) values('中科天翔','lc-modify-pwd','v1.0.0.9','修改密码',0,0,'["app","page","print"]',now(),'0');

insert into fbp_portal_app_version(c_app_code,c_app_version) values('mas-explorer','5.14.30');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'mas-explorer-5.14.30.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('mas-explorer','5.14.30');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','mas-explorer','5.14.30','PC资源管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('locar','2.8.32');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'locar-2.8.32.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('locar','2.8.32');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','locar','2.8.32','页面引擎',0,0,'["app","page","print","mobile"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-userpwdlogin','v1.1.0.17');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-userpwdlogin-v1.1.0.17.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-userpwdlogin','v1.1.0.17');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time,c_is_login) values('中科天翔','lc-userpwdlogin','v1.1.0.17','账号密码登录',0,0,'["app","mobile","page","print"]',now(),'1');

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-unlocklogin','v1.1.0.4');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-unlocklogin-v1.1.0.4.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-unlocklogin','v1.1.0.4');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-unlocklogin','v1.1.0.4','解锁',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('theme-vertical-blue','5.14.30');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'theme-vertical-blue-5.14.30.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('theme-vertical-blue','5.14.30');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','theme-vertical-blue','5.14.30','纵向导航主题',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-openplatform','v1.1.0.8');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-openplatform-v1.1.0.8.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-openplatform','v1.1.0.8');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-openplatform','v1.1.0.8','接入管理',0,0,'["app","page","print"]',now());

-- 平台DSC应用
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-fbppdsm','v1.1.0.19');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-fbppdsm-v1.1.0.19.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-fbppdsm','v1.1.0.19');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-fbppdsm','v1.1.0.19','数据源(平台)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-pstorage','v1.1.0.14');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-pstorage-v1.1.0.14.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-pstorage','v1.1.0.14');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-pstorage','v1.1.0.14','存储(平台)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-pcache','v1.1.0.15');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-pcache-v1.1.0.15.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-pcache','v1.1.0.15');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-pcache','v1.1.0.15','缓存(平台)',0,0,'["app","page","print"]',now());

-- 站点DSC应用
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-fpbsdsm','v1.1.0.12');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-fpbsdsm-v1.1.0.12.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-fpbsdsm','v1.1.0.12');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-fpbsdsm','v1.1.0.12','数据源管理(站点)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-sstorage','v1.1.0.10');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-sstorage-v1.1.0.10.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-sstorage','v1.1.0.10');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-sstorage','v1.1.0.10','存储管理(站点)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-scache','v1.1.0.9');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-scache-v1.1.0.9.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-scache','v1.1.0.9');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-scache','v1.1.0.9','缓存管理(站点)',0,0,'["app","page","print"]',now());

-- 新管理应用授权
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-admin');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-ops');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-modify-pwd');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-fpbsdsm');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-sstorage');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-scache');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-openplatform');

insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-ops');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-admin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-openplatform');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-unlocklogin');

insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-modify-pwd');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) select c_tenant_id,c_id as c_site_id,'lc-admin' as c_app_code from fbp_admin_site_info where  c_is_manage_site = 1;
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) select c_tenant_id,c_id as c_site_id,'lc-fpbsdsm' as c_app_code from fbp_admin_site_info where  c_is_manage_site = 1 and c_code <> 'sys_sg_manage';
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) select c_tenant_id,c_id as c_site_id,'lc-sstorage' as c_app_code from fbp_admin_site_info where  c_is_manage_site = 1 and c_code <> 'sys_sg_manage';
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) select c_tenant_id,c_id as c_site_id,'lc-scache' as c_app_code from fbp_admin_site_info where  c_is_manage_site = 1 and c_code <> 'sys_sg_manage';

-- 新应用关联分类
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-ops');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-admin');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-openplatform');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-fpbsdsm');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-scache');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-sstorage');
-- 迁移历史关联数据
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) select c_catalog_id,c_app_code from t_app_catalog_mapping where c_app_code not in ('mas-admin-account','mas-admin-param','mas-admin-role','mas-ops-tenant','mmas-ops-tenant','mas-ops-app','mas-ops-tenant','mas-ops-site','mas-ops-sitegroup','mas-admin-catalog','mas-admin-dictionary','mas-admin-log','mas-admin-menu','mas-admin-modpwd','mas-admin-online','mas-admin-role');

-- 更新平台站点菜单
-- 平台运维站
update  fbp_admin_init_menu set  c_navs ='[{"path":"/lc-ops/tenant-management","isDyn":"1","auth":"r.default","icon":"el-icon-discount","id":1725428354640123,"text":"租户管理","title":"租户管理","parentId":100,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-ops/appinstall","isDyn":"1","auth":"r.default","icon":"el-icon-present","id":1725428354640,"text":"应用管理","title":"应用中心","parentId":108,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"lc-openplatform/third-party-systems-list","isDyn":"1","icon":"el-icon-s-unfold","onHandler":"0","id":1734428179524,"title":"接入管理","parentId":100},{"path":"/lc-ops/param/setting","isDyn":"1","icon":"el-icon-setting","onHandler":"0","id":1734428179524,"title":"参数设置","parentId":100,"auth":"","linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-ops/dzgl/path-manager","isDyn":"1","icon":"el-icon-place","onHandler":"0","id":1734428179524,"title":"地址管理","parentId":100},{"path":"/lc-ops/ywgg/devops-notice-list","isDyn":"1","icon":"el-icon-chat-line-square","onHandler":"0","id":1734428179524,"title":"运维公告","parentId":100},{"path":"/main/4c8fe6632cd172418095149bbe33bd21","auth":"r.default","icon":"el-icon-s-cooperation","title":"DSC管理","isDiy":"1","hidden":false,"isLeaf":false,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"anonymous":false,"easyvUrl":"","easyvKey":"","children":[{"path":"/lc-fbppdsm/datasource-list","isDyn":"1","auth":"r.default","icon":"el-icon-coin","id":1721112387738,"text":"数据源管理","title":"数据源管理","parentId":86,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-pstorage/list","isDyn":"1","auth":"r.default","icon":"el-icon-wallet","id":1721112439891,"text":"存储管理","title":"存储管理","parentId":88,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-pcache/cache-list","isDyn":"1","auth":"r.default","icon":"el-icon-cloudy","id":1721112413455,"text":"缓存管理","title":"缓存管理","parentId":93,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""}]}]'  where c_site_id = (select c_id from fbp_admin_site_info where c_code = 'sys')
-- 平台系统管理站
update  fbp_admin_init_menu set  c_navs = '[{"path":"/lc-admin/zdgl/site-list","isDyn":"1","icon":"el-icon-office-building","onHandler":"0","id":1734428219329,"title":" 站点管理","parentId":99},{"path":"/lc-admin/zhgl/account-management","isDyn":"1","icon":"el-icon-user","onHandler":"0","id":1734428219329,"title":"账号管理","parentId":99},{"path":"/lc-admin/jsgl/role-list","isDyn":"1","icon":"el-icon-medal","onHandler":"0","id":1734428219329,"title":"角色管理","parentId":99,"auth":"","linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-admin/jsgl/role-grant-list","isDyn":"1","icon":"el-icon-coordinate","onHandler":"0","id":1734428219329,"title":"角色授权","parentId":99},{"path":"/lc-admin/sitedsc/setting","isDyn":"1","icon":"el-icon-setting","onHandler":"0","id":1734428219329,"title":"参数设置","parentId":99,"auth":"","linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/main/46b37582c67f820bdcd91a9dad4b4781","auth":"r.default","icon":"el-icon-notebook-1","title":"日志管理","isDiy":"1","hidden":false,"isLeaf":false,"children":[{"path":"/lc-admin/czrz/login-log","isDyn":"1","icon":"el-icon-tickets","onHandler":"0","id":1734428219329,"title":"登录日志","parentId":99},{"path":"/lc-admin/glrz/manage-log","isDyn":"1","icon":"el-icon-document-copy","onHandler":"0","id":1734428219329,"title":"管理日志","parentId":99}],"deleted":2,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/main/4c8fe6632cd172418095149bbe33bd21","auth":"r.default","icon":"el-icon-suitcase","title":"DSC管理","isDiy":"1","hidden":false,"isLeaf":false,"children":[{"path":"/lc-fpbsdsm/datasource/datasource-list","isDyn":"1","icon":"el-icon-suitcase","onHandler":"0","id":1734415220103,"title":"数据源管理","parentId":59},{"path":"/lc-sstorage/storge/list","isDyn":"1","icon":"el-icon-folder-opened","onHandler":"0","id":1734415092619,"title":" 存储管理","parentId":101},{"path":"/lc-scache/hcgl/cache-list","isDyn":"1","icon":"el-icon-suitcase","onHandler":"0","id":1734415162172,"title":"缓存管理","parentId":61}]}]' where c_site_id in (select c_id from fbp_admin_site_info where  c_is_manage_site = 1);

-- 其它站点访问地址写入path表(兼容以往访问数据)
INSERT INTO "fbp_path" ( "c_tenant_id", "c_tenant_code", "c_site_id", "c_site_code", "c_path", "c_remark" ) SELECT
"c_tenant_id",
"c_tenant_code",
"c_id" AS "c_site_id",
"c_code" AS "c_site_code",
'/' || "c_tenant_code" || '/' || "c_code" AS "c_path",
'' AS "c_remark" 
FROM "fbp_admin_site_info" ;

INSERT INTO "fbp_path" (
  "c_tenant_id",
  "c_tenant_code",
  "c_site_id",
  "c_site_code",
  "c_path",
  "c_remark"
) SELECT
  info."c_tenant_id",
  info."c_tenant_code",
  info."c_id" AS "c_site_id", 
  info."c_code" AS "c_site_code",
  domain || '/' AS "c_path", 
  '' AS "c_remark" 
FROM
  "fbp_admin_site_info" AS info,
  jsonb_array_elements_text(TRIM(info."c_site_domain")::jsonb) AS domain
WHERE
  info."c_site_domain" IS NOT NULL
  AND info."c_site_domain" <> '';

清理redis所有缓存数据后按顺序启动:locas-fbp服务、mas-gateway、mas-nginx服务

4、上架升级应用,并授权在平台站点,并在管理站点上将菜单添加上来,通过升级应用先将数据库表结构升级掉【只有升级掉数据源表结构后,业务站点才能运行;只有升级后才可以用dsc管理界面进行dsc维护操作】

5、启动其它微服务,如果微服务中有feign调用mas-admin(平台已移除)服务的需要新增环境变量FEGIN_REDIRECTLIST,值为原mas-admin里的接口对应fbp的接口,参照下面示例json,lc-admin对应的版本号调正成环境里使用的lc-admin应用版本号压缩后配置上去

例如mas-wps服务里有feign调用mas-admin的接口,因此mas-wps里需增加环境变量FEGIN_REDIRECTLIST的配置

json
[{
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/basicdata/basicdata-parm/getParamValueByKey",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/param/getParamValueByKey"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/basicdata/basicdata-parm/queryParmValueByKey",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/param/getParamValueByKey"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/getAccountInfo",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/getAccountInfo"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/component/portal-component/getCurVersionByCode",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/app/getCurVersionByCode"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/componentGrant/site-component-grant/getGrantAppVersionByTenantSite",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/app/getGrantAppVersionByTenantSite"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/saveOrUpdateAccount",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/saveOrUpdateAccount"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/deleteAccountInfo",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/deleteAccountInfo"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/deleteAccountInfoRel",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/deleteAccountInfoRel"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/list",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/list"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-info/page",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/page"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/account-tenant/saveAccountTenantSite",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/account/saveAccountTenantSite"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/get",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/get"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/deleteRoleInfo",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/deleteRoleInfo"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/listBySite",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/listBySite"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/pageByTenant",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/pageByTenant"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/adminRoleMap/admin-role-mapping/saveRoleToAccounts",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/saveRoleToAccounts"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/adminRoleMap/admin-role-mapping/removeRoleToAccounts",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/removeRoleToAccounts"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/saveBySiteGroup",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/saveBySiteGroup"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/getAllRoleByAccountId",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/getAllRoleByAccountId"
}, {
	"originServiceName": "mas-admin",
	"newServiceName": "fbp",
	"originUrl": "/platform/admin-role-info/getAllPowerByAccountId",
	"newUrl": "/app/lc-admin/v1.2.0.57/compatible/role/getAllPowerByAccountId"
}]

6、升级低代码开发平台表结构【请进入locas2.8.32文档,执行低代码开发平台升级步骤】

7、上架低代码开发应用:locas、lc-project-workspace;执行如下sql将管理站点的站群管理员授权到项目管理角色下:lc_ps_manager;

sql
insert into "fbp_admin_role_mapping" (c_role_id,c_account_id,c_site_group_id)
select (select c_id from fbp_admin_role_info where c_role_code = 'lc_ps_manager'  and c_site_group_id = a.c_site_group_id) as c_role_id,a.c_id as c_account_id,s.c_site_group_id from fbp_admin_site_info s,fbp_admin_account_info a where s.c_is_manage_site = 1 and a.c_login_name = s.c_contact and a.c_site_group_id = s.c_site_group_id and s.c_site_group_id in (select DISTINCT c_site_group_id from fbp_admin_site_info where c_id in (select c_site_id from fbp_site_component_grant where c_app_code = 'lc-project-workspace'));

【注意】:浙政钉扫码/移动登录应用的ak、sk、domain、回调地址的配置调整到站点级的应用参数中,更新该应用后须在各使用的管理站点上设置下对应的参数值

初始化安装

以下以oss存储+nacos+fbp服务部署Mas平台+低代码开发平台来进行说明

oss存在目录根目录为:whzk_fbp_demo nginx配置挂载在/data/softs/whzk_fbp_demo/nginx/conf/nginx.conf

1、资源准备:redis服务、平台库(polardb)、oss存储目录

2、在平台库中执行如下建表语句:

点击查看
sql
DROP TABLE IF EXISTS "fbp_datasource";
CREATE TABLE "fbp_datasource" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_name" varchar(255) ,
  "c_type" int2,
  "c_url" varchar(1000) ,
  "c_user" varchar(255) ,
  "c_password" varchar(255) ,
  "c_remark" varchar(255) ,
  "c_code" varchar(255) ,
  "c_level" int2,
  "c_site_group_id" int8,
  "c_initialsize" int2,
  "c_minidle" int2,
  "c_maxsize" int2,
  "c_driverclassname" varchar(1000)
);
COMMENT ON COLUMN "fbp_datasource"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_datasource"."c_name" IS '数据源名称';
COMMENT ON COLUMN "fbp_datasource"."c_type" IS '数据源类型,1-MySQL,2-Oracle,3-达梦,4-polardb,5-postgres,6-人大金仓,7-神通';
COMMENT ON COLUMN "fbp_datasource"."c_url" IS '数据源url';
COMMENT ON COLUMN "fbp_datasource"."c_user" IS '用户名';
COMMENT ON COLUMN "fbp_datasource"."c_password" IS '密码';
COMMENT ON COLUMN "fbp_datasource"."c_remark" IS '备注';
COMMENT ON COLUMN "fbp_datasource"."c_code" IS '唯一标识';
COMMENT ON COLUMN "fbp_datasource"."c_level" IS '数据源级别,1-平台级,2-租户级';
COMMENT ON COLUMN "fbp_datasource"."c_site_group_id" IS '所属站群id(站点级)';
COMMENT ON COLUMN "fbp_datasource"."c_initialsize" IS '初始化连接数';
COMMENT ON COLUMN "fbp_datasource"."c_minidle" IS '最小连接数';
COMMENT ON COLUMN "fbp_datasource"."c_maxsize" IS '最大连接数';
COMMENT ON COLUMN "fbp_datasource"."c_driverclassname" IS '数据源驱动类';
COMMENT ON TABLE "fbp_datasource" IS '数据源信息';

-- ----------------------------
-- Table structure for fbp_storages
-- ----------------------------
DROP TABLE IF EXISTS "fbp_storages";
CREATE TABLE "fbp_storages" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_code" varchar(255) ,
  "c_name" varchar(255) ,
  "c_type" varchar(50),
  "c_site_group_id" int8,
  "c_endpoint" varchar(1000) ,
  "c_root_path" varchar(255) ,
  "c_access_key_id" varchar(255) ,
  "c_secret_access_key" varchar(255) ,
  "c_remark" varchar(2000) ,
  "c_bucket_name" varchar(500) ,
  "c_level" int2
);
COMMENT ON COLUMN "fbp_storages"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_storages"."c_code" IS '存储标识';
COMMENT ON COLUMN "fbp_storages"."c_name" IS '存储标识名称';
COMMENT ON COLUMN "fbp_storages"."c_type" IS '类型,local-本地存储,oss-OSS存储';
COMMENT ON COLUMN "fbp_storages"."c_endpoint" IS 'OSS域';
COMMENT ON COLUMN "fbp_storages"."c_root_path" IS '端口';
COMMENT ON COLUMN "fbp_storages"."c_access_key_id" IS 'Oss账号id';
COMMENT ON COLUMN "fbp_storages"."c_secret_access_key" IS 'Oss账号密钥';
COMMENT ON COLUMN "fbp_storages"."c_remark" IS '备注';
COMMENT ON COLUMN "fbp_storages"."c_bucket_name" IS 'Oss存储桶';
COMMENT ON COLUMN "fbp_storages"."c_level" IS '数据源级别,1-平台级,2-站点级';
COMMENT ON COLUMN "fbp_storages"."c_site_group_id" IS '所属站群id(站点级)';
COMMENT ON TABLE "fbp_storages" IS '存储信息表';

-- ----------------------------
-- Table structure for fbp_cache_pools
-- ----------------------------
DROP TABLE IF EXISTS "fbp_cache_pools";
CREATE TABLE "fbp_cache_pools" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_site_group_id" int8,
  "c_code" varchar(50),
  "c_name" varchar(100),
  "c_remark" varchar(500),
  "c_level" int2,
  "c_type" varchar(50),   
  "c_expire_seconds" int8,
  "c_maximum_size" int8, 
  "c_second_expire_seconds" int8, 
  "c_url" varchar(50), 
  "c_password" varchar(50) DEFAULT null,
  "c_database" int4,
   "c_port" int4
);
COMMENT ON COLUMN "fbp_cache_pools"."c_code" IS '代码';
COMMENT ON COLUMN "fbp_cache_pools"."c_name" IS '名字';
COMMENT ON COLUMN "fbp_cache_pools"."c_level" IS '缓存级别:1平台,2站点';
COMMENT ON COLUMN "fbp_cache_pools"."c_site_group_id" IS '所属站群id(站点级)';
COMMENT ON COLUMN "fbp_cache_pools"."c_type" IS '类型:jvm/redis/level2';
COMMENT ON COLUMN "fbp_cache_pools"."c_expire_seconds" IS '过期时间';
COMMENT ON COLUMN "fbp_cache_pools"."c_maximum_size" IS 'jvm最大缓存';
COMMENT ON COLUMN "fbp_cache_pools"."c_second_expire_seconds" IS '二级缓存过期时间';
COMMENT ON COLUMN "fbp_cache_pools"."c_url" IS '连接url';
COMMENT ON COLUMN "fbp_cache_pools"."c_password" IS '密码';
COMMENT ON COLUMN "fbp_cache_pools"."c_database" IS '连接库';
COMMENT ON COLUMN "fbp_cache_pools"."c_port" IS '端口';
COMMENT ON TABLE "fbp_cache_pools" IS '缓存信息表';

-- ----------------------------
-- Table structure for fbp_admin_tenant_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_tenant_info";
CREATE TABLE "fbp_admin_tenant_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_code" varchar(20) ,
  "c_name" varchar(100) ,
  "c_contact" varchar(20) ,
  "c_mobile" varchar(11) ,
  "c_email" varchar(100) ,
  "c_activate_time" timestamp(6),
  "c_invalid_time" timestamp(6),
  "c_tenant_domain" varchar(100) ,
  "c_inited" int2 DEFAULT 0,
  "c_tenant_id" int8,
  "c_tenant_setting" varchar(2000) ,
  "c_app_key" varchar(255) ,
  "c_app_secret" varchar(255) ,
  "c_xzjb" int4
);
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_code" IS '租户代码';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_name" IS '租户名称';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_contact" IS '联系人账号';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_mobile" IS '联系人手机号';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_email" IS '联系人邮箱';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_activate_time" IS '生效时间';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_invalid_time" IS '失效时间';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_tenant_domain" IS '租户域名';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_tenant_setting" IS '租户配置';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_app_key" IS '钉钉唯一标识key';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_app_secret" IS '钉钉唯一密钥';
COMMENT ON COLUMN "fbp_admin_tenant_info"."c_xzjb" IS '所属行政级别:1:升级 2:市级 3:区县';
COMMENT ON TABLE "fbp_admin_tenant_info" IS '租户表';

-- ----------------------------
-- Table structure for fbp_admin_site_group_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_site_group_info";
CREATE TABLE "fbp_admin_site_group_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_tenant_code" varchar(32) ,
  "c_code" varchar(32) ,
  "c_name" varchar(32) ,
  "c_activate_time" timestamp(6),
  "c_invalid_time" timestamp(6),
  "c_config" text,
  "c_desc" varchar(2000)
);
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_tenant_code" IS '租户代码';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_code" IS '站群代码';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_name" IS '站群名称';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_activate_time" IS '生效时间';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_invalid_time" IS '失效时间';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_config" IS '站群配置';
COMMENT ON COLUMN "fbp_admin_site_group_info"."c_desc" IS '站群描述';
COMMENT ON TABLE "fbp_admin_site_group_info" IS '站群表';

-- ----------------------------
-- Table structure for fbp_admin_site_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_site_info";
CREATE TABLE "fbp_admin_site_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_site_type" int4,
  "c_title" varchar(200) ,
  "c_theme" varchar(100) ,
  "c_logo" varchar(100) ,
  "c_code" varchar(20) ,
  "c_name" varchar(100) ,
  "c_contact" varchar(50) ,
  "c_mobile" varchar(11) ,
  "c_email" varchar(100) ,
  "c_activate_time" timestamp(6),
  "c_invalid_time" timestamp(6),
  "c_site_domain" varchar(100) ,
  "c_inited" int2 DEFAULT 0,
  "c_tenant_id" int8,
  "c_site_setting" text ,
  "c_tenant_code" varchar(32) ,
  "c_app_key" varchar(255) ,
  "c_app_secret" varchar(255) ,
  "c_manage_sites" varchar(100) ,
  "c_site_group_id" int8,
  "c_is_manage_site" int2 DEFAULT 0 ,
  "c_site_group_code" varchar(50)
);
COMMENT ON COLUMN "fbp_admin_site_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_site_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_site_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_site_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_site_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_site_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_site_info"."c_site_type" IS '站点类型:0 pc 1移动';
COMMENT ON COLUMN "fbp_admin_site_info"."c_title" IS '标题';
COMMENT ON COLUMN "fbp_admin_site_info"."c_code" IS '站点代码';
COMMENT ON COLUMN "fbp_admin_site_info"."c_name" IS '名称';
COMMENT ON COLUMN "fbp_admin_site_info"."c_contact" IS '联系人账号';
COMMENT ON COLUMN "fbp_admin_site_info"."c_mobile" IS '联系人手机号';
COMMENT ON COLUMN "fbp_admin_site_info"."c_email" IS '联系人邮箱';
COMMENT ON COLUMN "fbp_admin_site_info"."c_activate_time" IS '生效时间';
COMMENT ON COLUMN "fbp_admin_site_info"."c_invalid_time" IS '失效时间';
COMMENT ON COLUMN "fbp_admin_site_info"."c_site_domain" IS '站点域名';
COMMENT ON COLUMN "fbp_admin_site_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_site_info"."c_site_setting" IS '站点配置';
COMMENT ON COLUMN "fbp_admin_site_info"."c_site_group_id" IS '站群id';
COMMENT ON COLUMN "fbp_admin_site_info"."c_is_manage_site" IS '是否是管理站点';
COMMENT ON COLUMN "fbp_admin_site_info"."c_site_group_code" IS '站群标识';
COMMENT ON TABLE "fbp_admin_site_info" IS '站点信息表';

-- ----------------------------
-- Table structure for fbp_admin_account_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_account_info";
CREATE TABLE "fbp_admin_account_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_granted_apis" varchar(255) ,
  "c_account_expired" varchar(1) ,
  "c_account_locked" varchar(1) ,
  "c_credentials_expired" varchar(1) ,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_login_name" varchar(32) ,
  "c_login_dingding" varchar(32) ,
  "c_login_phone" varchar(100) ,
  "c_login_email" varchar(50) ,
  "c_status" int2 DEFAULT 1,
  "c_password_policy" int4,
  "c_password" varchar(255) ,
  "c_mobile_device" varchar(255) ,
  "c_allow_mobile_access" varchar(1) ,
  "c_last_login_time" timestamp(6),
  "c_last_login_client_ip" varchar(50) ,
  "c_last_login_failed" timestamp(6),
  "c_default_tenant" varchar(11) ,
  "c_account_source" int8,
  "c_account_type" int4,
  "c_full_name" varchar(50) ,
  "c_tag" varchar(1000) ,
  "c_theme" varchar(500) ,
  "c_avatar" varchar(50) ,
  "c_account_uuid" varchar(100) ,
  "c_login_alias" varchar(200),
  "c_site_group_id" int8,
  "c_identity_code" varchar(100),
  "c_user_code" varchar(100),
  "c_identity_desc" varchar(500)
);
COMMENT ON COLUMN "fbp_admin_account_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_account_info"."c_granted_apis" IS 'API访问权限项';
COMMENT ON COLUMN "fbp_admin_account_info"."c_account_expired" IS 'spring security 账号是否过期';
COMMENT ON COLUMN "fbp_admin_account_info"."c_account_locked" IS 'spring security 账号是否锁定';
COMMENT ON COLUMN "fbp_admin_account_info"."c_credentials_expired" IS 'spring security 用户证书是否过期';
COMMENT ON COLUMN "fbp_admin_account_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_account_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_account_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_account_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_account_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_account_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_account_info"."c_login_name" IS '登录账号';
COMMENT ON COLUMN "fbp_admin_account_info"."c_login_dingding" IS '登录钉钉号';
COMMENT ON COLUMN "fbp_admin_account_info"."c_login_phone" IS '登录手机号';
COMMENT ON COLUMN "fbp_admin_account_info"."c_login_email" IS '登录邮箱';
COMMENT ON COLUMN "fbp_admin_account_info"."c_status" IS '状态 0 停用 1 启用';
COMMENT ON COLUMN "fbp_admin_account_info"."c_password_policy" IS '密码策略';
COMMENT ON COLUMN "fbp_admin_account_info"."c_password" IS '密码';
COMMENT ON COLUMN "fbp_admin_account_info"."c_mobile_device" IS '移动设备标识';
COMMENT ON COLUMN "fbp_admin_account_info"."c_allow_mobile_access" IS '是否允许移动访问';
COMMENT ON COLUMN "fbp_admin_account_info"."c_last_login_time" IS '上次正常登录时间';
COMMENT ON COLUMN "fbp_admin_account_info"."c_last_login_client_ip" IS '上次登录IP';
COMMENT ON COLUMN "fbp_admin_account_info"."c_last_login_failed" IS '上次失败时间登录';
COMMENT ON COLUMN "fbp_admin_account_info"."c_default_tenant" IS '默认租户代码';
COMMENT ON COLUMN "fbp_admin_account_info"."c_account_source" IS '账号来源';
COMMENT ON COLUMN "fbp_admin_account_info"."c_account_type" IS '账号类型';
COMMENT ON COLUMN "fbp_admin_account_info"."c_full_name" IS '姓名';
COMMENT ON COLUMN "fbp_admin_account_info"."c_tag" IS '标签';
COMMENT ON COLUMN "fbp_admin_account_info"."c_theme" IS '自定义主题';
COMMENT ON COLUMN "fbp_admin_account_info"."c_avatar" IS '头像';
COMMENT ON COLUMN "fbp_admin_account_info"."c_account_uuid" IS '账号uuid';
COMMENT ON COLUMN "fbp_admin_account_info"."c_login_alias" IS '登录别名';
COMMENT ON COLUMN "fbp_admin_account_info"."c_site_group_id" IS '站群id';
COMMENT ON COLUMN "fbp_admin_account_info"."c_identity_code" IS '身份编码';
COMMENT ON COLUMN "fbp_admin_account_info"."c_user_code" IS '用户编码';
COMMENT ON COLUMN "fbp_admin_account_info"."c_identity_desc" IS '用户身份描述';
COMMENT ON TABLE "fbp_admin_account_info" IS '账号表';

-- ----------------------------
-- Table structure for fbp_admin_account_tenant
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_account_tenant";
CREATE TABLE "fbp_admin_account_tenant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_account_id" int8,
  "c_site_id" int8,
  "c_theme" VARCHAR(100),
  "c_site_group_id" int8
);
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_account_id" IS '账号id';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_theme" IS '自定义主题';
COMMENT ON COLUMN "fbp_admin_account_tenant"."c_site_group_id" IS '站群id';
COMMENT ON TABLE "fbp_admin_account_tenant" IS '账号授权表';

-- ----------------------------
-- Table structure for fbp_admin_role_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_role_info";
CREATE TABLE "fbp_admin_role_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_role_code" varchar(20) ,
  "c_role_name" varchar(50) ,
  "c_power_code" varchar(2000) ,
  "c_power_name" varchar(2000) ,
  "c_version" varchar(100) ,
  "c_role_type" int4,
  "c_portal_component_code" varchar(50) ,
  "c_site_id" int8,
  "c_site_group_id" int8,
  "c_tag" varchar(2000) 
);
COMMENT ON COLUMN "fbp_admin_role_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_role_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_role_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_role_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_role_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_role_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_role_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_role_info"."c_role_code" IS '角色code';
COMMENT ON COLUMN "fbp_admin_role_info"."c_role_name" IS '角色名称';
COMMENT ON COLUMN "fbp_admin_role_info"."c_power_code" IS '权限项code';
COMMENT ON COLUMN "fbp_admin_role_info"."c_power_name" IS '权限项名称';
COMMENT ON COLUMN "fbp_admin_role_info"."c_version" IS '版本号';
COMMENT ON COLUMN "fbp_admin_role_info"."c_role_type" IS '角色类型 0 系统角色 1 租户自定义角色';
COMMENT ON COLUMN "fbp_admin_role_info"."c_portal_component_code" IS '部件编码';
COMMENT ON COLUMN "fbp_admin_role_info"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_admin_role_info"."c_site_group_id" IS '站群id';
COMMENT ON COLUMN "fbp_admin_role_info"."c_tag" IS '标签';
COMMENT ON TABLE "fbp_admin_role_info" IS '角色信息表';

-- ----------------------------
-- Table structure for fbp_admin_role_mapping
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_role_mapping";
CREATE TABLE "fbp_admin_role_mapping" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_role_id" int8,
  "c_account_id" int8,
  "c_org_id" int8,
  "c_site_id" int8,
  "c_site_group_id" int8
);
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_role_id" IS '角色id';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_account_id" IS '账号id';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_org_id" IS '机构id';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_admin_role_mapping"."c_site_group_id" IS '站群ID';
COMMENT ON TABLE "fbp_admin_role_mapping" IS '账号角色关系表';
COMMENT ON TABLE "fbp_admin_role_mapping" IS '角色授权表';

-- ----------------------------
-- Table structure for fbp_admin_init_menu
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_init_menu";
CREATE TABLE "fbp_admin_init_menu" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_navs" varchar(80000) ,
  "c_site_id" int8
);
COMMENT ON COLUMN "fbp_admin_init_menu"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_navs" IS '导航json';
COMMENT ON COLUMN "fbp_admin_init_menu"."c_site_id" IS '站点id';
COMMENT ON TABLE "fbp_admin_init_menu" IS '初始化菜单信息表';

-- ----------------------------
-- Table structure for fbp_portal_diy_menu
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_diy_menu";
CREATE TABLE "fbp_portal_diy_menu" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_account_id" int8,
  "c_navs" varchar(50000) ,
  "c_site_id" int8
);
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_account_id" IS '账号id';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_navs" IS '导航路径json';
COMMENT ON COLUMN "fbp_portal_diy_menu"."c_site_id" IS '站点id';
COMMENT ON TABLE "fbp_portal_diy_menu" IS '个性化菜单表';

-- ---------------------------
-- Table structure for fbp_app_catalog
-- ----------------------------
DROP TABLE IF EXISTS "fbp_app_catalog";
CREATE TABLE "fbp_app_catalog" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_catalog_code" varchar(50) ,
  "c_catalog_name" varchar(500)
);
COMMENT ON COLUMN "fbp_app_catalog"."c_catalog_code" IS '分类code';
COMMENT ON COLUMN "fbp_app_catalog"."c_catalog_name" IS '分类名';
COMMENT ON TABLE "fbp_app_catalog" IS '应用分类表';

DROP TABLE IF EXISTS "fbp_app_catalog_mapping";
CREATE TABLE "fbp_app_catalog_mapping" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" numeric(11),
  "c_last_modifier" numeric(20),
  "c_last_modify_time" timestamp(6),
  "c_creator" numeric(20),
  "c_create_time" timestamp(6),
  "c_sort_number" numeric(11),
  "c_catalog_id" int8,
  "c_app_code" varchar(50)
);
COMMENT ON COLUMN "fbp_app_catalog_mapping"."c_catalog_id" IS '应用分类id';
COMMENT ON COLUMN "fbp_app_catalog_mapping"."c_app_code" IS '应用code';
COMMENT ON TABLE "fbp_app_catalog_mapping" IS '应用分类关联表';

-- ----------------------------
-- Table structure for fbp_portal_component
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_component";
CREATE TABLE "fbp_portal_component" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_code" varchar(50) ,
  "c_text" varchar(255) ,
  "c_status" varchar(2) ,
  "c_is_auth" varchar(2) ,
  "c_version" varchar(100) ,
  "c_descri" varchar(255) ,
  "c_auth_name" varchar(255) ,
  "c_changelog" text ,
  "c_depends" text ,
  "c_category" varchar(500) ,
  "c_is_sys" varchar(255) ,
  "c_roles_json" varchar(4000) ,
  "c_permissions_json" varchar(4000) ,
  "c_app_type" varchar(10) ,
  "c_modes" varchar(500) ,
  "c_ref_id" varchar(200),
  "c_setting" text,
  "c_is_login" varchar(2) DEFAULT '0'
);
COMMENT ON COLUMN "fbp_portal_component"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_component"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_component"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_component"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_component"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_component"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_component"."c_code" IS '部件编码';
COMMENT ON COLUMN "fbp_portal_component"."c_text" IS '部件名';
COMMENT ON COLUMN "fbp_portal_component"."c_status" IS '状态0停用1启用';
COMMENT ON COLUMN "fbp_portal_component"."c_is_auth" IS '认证0未认证1已认证';
COMMENT ON COLUMN "fbp_portal_component"."c_version" IS '版本号';
COMMENT ON COLUMN "fbp_portal_component"."c_descri" IS '说明';
COMMENT ON COLUMN "fbp_portal_component"."c_auth_name" IS '认证签名';
COMMENT ON COLUMN "fbp_portal_component"."c_changelog" IS '更新日志';
COMMENT ON COLUMN "fbp_portal_component"."c_depends" IS '依赖应用';
COMMENT ON COLUMN "fbp_portal_component"."c_category" IS '分类';
COMMENT ON COLUMN "fbp_portal_component"."c_is_sys" IS '是否为系统应用';
COMMENT ON COLUMN "fbp_portal_component"."c_roles_json" IS '部件内置所有角色json';
COMMENT ON COLUMN "fbp_portal_component"."c_permissions_json" IS '部件内置所有权限项json';
COMMENT ON COLUMN "fbp_portal_component"."c_app_type" IS '应用类型 0 PC 1 移动端';
COMMENT ON COLUMN "fbp_portal_component"."c_ref_id" IS '应用文件id';
COMMENT ON COLUMN "fbp_portal_component"."c_setting" IS '应用dsc设置';
COMMENT ON COLUMN "fbp_portal_component"."c_is_login" IS '是否是登录应用 0 否 1 是';
COMMENT ON TABLE "fbp_portal_component" IS '应用信息表';


-- ----------------------------
-- Table structure for fbp_portal_component_grant
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_component_grant";
CREATE TABLE "fbp_portal_component_grant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_app_code" varchar(200)  NOT NULL
);
COMMENT ON COLUMN "fbp_portal_component_grant"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_tenant_id" IS '授权ID: 租户ID';
COMMENT ON COLUMN "fbp_portal_component_grant"."c_app_code" IS '应用code';
COMMENT ON TABLE "fbp_portal_component_grant" IS '应用租户授权表';

-- ----------------------------
-- Table structure for fbp_portal_import_record
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_import_record";
CREATE TABLE "fbp_portal_import_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_result" varchar(2) ,
  "c_file_name" varchar(100) ,
  "c_file_alias" varchar(100) ,
  "c_fail_reason" text ,
  "c_app_code" varchar(100)
);
COMMENT ON COLUMN "fbp_portal_import_record"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_import_record"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_import_record"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_import_record"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_import_record"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_import_record"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_import_record"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_portal_import_record"."c_result" IS '结果0成功1失败';
COMMENT ON COLUMN "fbp_portal_import_record"."c_file_name" IS '导入路径';
COMMENT ON COLUMN "fbp_portal_import_record"."c_file_alias" IS '文件refenid';
COMMENT ON COLUMN "fbp_portal_import_record"."c_fail_reason" IS '失败原因';
COMMENT ON TABLE "fbp_portal_import_record" IS '应用上架记录表';

-- ----------------------------
-- Table structure for fbp_site_component_grant
-- ----------------------------
DROP TABLE IF EXISTS "fbp_site_component_grant";
CREATE TABLE "fbp_site_component_grant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_app_code" varchar(200)  NOT NULL,
  "c_site_id" int8,
  "c_setting" text
);
COMMENT ON COLUMN "fbp_site_component_grant"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_site_component_grant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_site_component_grant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_site_component_grant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_site_component_grant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_site_component_grant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_site_component_grant"."c_tenant_id" IS '授权ID: 租户ID';
COMMENT ON COLUMN "fbp_site_component_grant"."c_app_code" IS '应用code';
COMMENT ON COLUMN "fbp_site_component_grant"."c_setting" IS '应用dsc配置';
COMMENT ON TABLE "fbp_site_component_grant" IS '应用站点授权表';

-- ----------------------------
-- Table structure for fbp_app_publish_log
-- ----------------------------
DROP TABLE IF EXISTS "fbp_app_publish_log";
CREATE TABLE "fbp_app_publish_log" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_app_code" varchar(50) ,
  "c_app_version" varchar(20) 
);
COMMENT ON COLUMN "fbp_app_publish_log"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_app_publish_log"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_app_publish_log"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_app_publish_log"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_app_publish_log"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_app_publish_log"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_app_publish_log"."c_app_code" IS '应用code';
COMMENT ON COLUMN "fbp_app_publish_log"."c_app_version" IS '应用版本';
COMMENT ON TABLE "fbp_app_publish_log" IS '应用版本发布记录表';

-- ----------------------------
-- Table structure for fbp_portal_app_version
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_app_version";
CREATE TABLE "fbp_portal_app_version" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_app_code" varchar(50) ,
  "c_app_version" varchar(20) 
);
COMMENT ON COLUMN "fbp_portal_app_version"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_app_version"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_app_version"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_app_version"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_app_version"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_app_version"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_app_version"."c_app_code" IS '安装应用code';
COMMENT ON COLUMN "fbp_portal_app_version"."c_app_version" IS '应用版本';
COMMENT ON TABLE "fbp_portal_app_version" IS '应用版本记录表';

-- ----------------------------
-- Table structure for fbp_portal_diy_app_version
-- ----------------------------
DROP TABLE IF EXISTS "fbp_portal_diy_app_version";
CREATE TABLE "fbp_portal_diy_app_version" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_app_code" varchar(50) ,
  "c_app_version" varchar(20) ,
  "c_tenant_id" int8,
  "c_site_id" int8
);
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_app_code" IS '安装应用code';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_app_version" IS '应用版本';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_portal_diy_app_version"."c_site_id" IS '站点id';
COMMENT ON TABLE "fbp_portal_diy_app_version" IS '应用自定义版本记录表';

-- ----------------------------
-- Table structure for fbp_ops_notice
-- ----------------------------
DROP TABLE IF EXISTS "fbp_ops_notice";
CREATE TABLE "fbp_ops_notice" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_msg" varchar(4000) ,
  "c_publish_time" timestamp(6),
  "c_over_time" timestamp(6),
  "c_keep_days" int4,
  "c_creator" varchar(50) ,
	"c_creator_id" int8,
  "c_create_time" timestamp(6),
  "c_status" varchar(4)
);
COMMENT ON COLUMN "fbp_ops_notice"."c_msg" IS '公告内容';
COMMENT ON COLUMN "fbp_ops_notice"."c_publish_time" IS '发布时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_over_time" IS '过期时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_keep_days" IS '保持天数';
COMMENT ON COLUMN "fbp_ops_notice"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_ops_notice"."c_creator_id" IS '创建人Id';
COMMENT ON COLUMN "fbp_ops_notice"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_ops_notice"."c_status" IS '是否发布:1已发布0未发布';
COMMENT ON TABLE "fbp_ops_notice" IS '运维通知表';

-- ----------------------------
-- Table structure for fbp_ops_notice_recieved
-- ----------------------------
DROP TABLE IF EXISTS "fbp_ops_notice_recieved";
CREATE TABLE "fbp_ops_notice_recieved" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_msg_id" int8 ,
  "c_reciever_time" timestamp(6),
  "c_reciever_id" int8,
  "c_reciever" varchar(100)
);
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_msg_id" IS '公告id';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever_time" IS '签收时间';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever_id" IS '签收人id';
COMMENT ON COLUMN "fbp_ops_notice_recieved"."c_reciever" IS '签收人';
COMMENT ON TABLE "fbp_ops_notice_recieved" IS '运维通知签收表';

-- ----------------------------
-- Table structure for fbp_admin_login_log
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_login_log";
CREATE TABLE "fbp_admin_login_log" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_operation_type" int4,
  "c_login_name" varchar(32) ,
  "c_result" int2 DEFAULT 0,
  "c_login_type" int4,
  "c_session_id" varchar(200) ,
  "c_operation_client_ip" varchar(64) ,
  "c_operation_client_mac" varchar(64) ,
  "c_operation_user_agent" varchar(500) ,
  "c_result_message" varchar(4000) ,
  "c_site_id" int8,
  "c_site_group_id" int8
);
COMMENT ON COLUMN "fbp_admin_login_log"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_login_log"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_login_log"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_login_log"."c_creator" IS '创建人(登录人)';
COMMENT ON COLUMN "fbp_admin_login_log"."c_create_time" IS '创建时间(登录时间)';
COMMENT ON COLUMN "fbp_admin_login_log"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_login_log"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_type" IS '操作类型:1 登录  2 登出  3 其它';
COMMENT ON COLUMN "fbp_admin_login_log"."c_login_name" IS '登录账号';
COMMENT ON COLUMN "fbp_admin_login_log"."c_result" IS '操作结果 true 成功 false 失败';
COMMENT ON COLUMN "fbp_admin_login_log"."c_login_type" IS '登陆方式 1账号密码登录  2浙政钉扫码  3 浙政钉免登  4 钉钉扫码  5 平台fbp单点登录  6 钉钉免登';
COMMENT ON COLUMN "fbp_admin_login_log"."c_session_id" IS '会话id';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_client_ip" IS '访问客户端IP';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_client_mac" IS '访问客户端MAC';
COMMENT ON COLUMN "fbp_admin_login_log"."c_operation_user_agent" IS '访问浏览器user-agent';
COMMENT ON COLUMN "fbp_admin_login_log"."c_result_message" IS '报错信息';
COMMENT ON COLUMN "fbp_admin_login_log"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_admin_login_log"."c_site_group_id" IS '站群id';
COMMENT ON TABLE "fbp_admin_login_log" IS '登录日志表';

DROP TABLE IF EXISTS "fbp_admin_maintain_log";
  CREATE TABLE "fbp_admin_maintain_log" (
     "c_id" serial8 NOT NULL PRIMARY KEY,
     "c_last_modifier" int8,
     "c_last_modify_time" timestamp(6),
     "c_creator" varchar(50) ,
     "c_create_time" timestamp(6),
     "c_sort_number" int4,
     "c_tenant_id" int8,
     "c_module_name" varchar(255) ,
     "c_operation" varchar(255) ,
     "c_description" clob ,
     "c_account_id" int8,
     "c_login_name" varchar(255) ,
     "c_full_name" varchar(255) ,
	 "c_site_id" int8,
	 "c_site_group_id" int8
  );
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_id" IS '主键';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_last_modifier" IS '修改人';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_last_modify_time" IS '修改时间';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_creator" IS '创建人';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_create_time" IS '创建时间';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_sort_number" IS '排序号';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_tenant_id" IS '租户ID';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_account_id" IS '操作账号id';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_login_name" IS '操作账号登录名';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_full_name" IS '操作账号中文名';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_module_name" IS '模块名';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_operation" IS '操作';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_description" IS '描述';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_site_id" IS '站点ID';
  COMMENT ON COLUMN "fbp_admin_maintain_log"."c_site_group_id" IS '站群ID';
  COMMENT ON TABLE "fbp_admin_maintain_log" IS '管理日志表';
 
DROP TABLE IF EXISTS "fbp_events";
CREATE TABLE "fbp_events" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50),
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_app_code" varchar(100),
  "c_event_code" varchar(100),
  "c_path" varchar(200)
);
COMMENT ON COLUMN "fbp_events"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_events"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_events"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_events"."c_sort_number" IS '排序好';
COMMENT ON COLUMN "fbp_events"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_events"."c_app_code" IS '应用标识';
COMMENT ON COLUMN "fbp_events"."c_event_code" IS '事件标识';
COMMENT ON COLUMN "fbp_events"."c_path" IS '事件响应服务(函数)path';
COMMENT ON TABLE "fbp_events" IS '服务事件表';

-- ----------------------------
-- Table structure for fbp_path
-- ----------------------------
DROP TABLE IF EXISTS "fbp_path";
CREATE TABLE "fbp_path" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_tenant_code" varchar(32) ,
  "c_site_id" int4,
  "c_site_code" varchar(32) ,
  "c_path" varchar(255) ,
  "c_remark" varchar(255)
);
COMMENT ON COLUMN "fbp_path"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_path"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_path"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_path"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_path"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_path"."c_tenant_code" IS '租户code';
COMMENT ON COLUMN "fbp_path"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_path"."c_site_code" IS '站点code';
COMMENT ON COLUMN "fbp_path"."c_path" IS '访问路径';
COMMENT ON COLUMN "fbp_path"."c_remark" IS '备注';
COMMENT ON TABLE "fbp_path" IS '站点地址表';

DROP TABLE IF EXISTS "fbp_admin_account_grant";
CREATE TABLE "fbp_admin_account_grant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_account_id" int8
);
COMMENT ON COLUMN "fbp_admin_account_grant"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_admin_account_grant"."c_account_id" IS '账号id';
COMMENT ON TABLE "fbp_admin_account_grant" IS '租户管理授权表';

DROP TABLE IF EXISTS "fbp_path_domain";
CREATE TABLE "fbp_path_domain" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_domain" varchar(255)
);
COMMENT ON COLUMN "fbp_path_domain"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_path_domain"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_path_domain"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_path_domain"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_path_domain"."c_domain" IS '域名';
COMMENT ON TABLE "fbp_path_domain" IS '域名黑名单';

-- ---------------------- 
-- 平台级别的租户、站点、站群都为空
-- ----------------------------
DROP TABLE IF EXISTS "fbp_app_param_setting";
CREATE TABLE "fbp_app_param_setting" (
	"c_id" serial8 NOT NULL PRIMARY KEY,
	"c_key" varchar(100),
	"c_value" varchar(2000),
	"c_name" varchar(255),
	"c_desc" varchar(1000),
	"c_type" varchar(10),
	"c_catalog" varchar(10),
	"c_app_code" varchar(100),
	"c_app_name" varchar(255),
	"c_app_version" varchar(100),
	"c_tenant_id" int8,   -- 平台的
	"c_site_group_id" int8,
	"c_site_id" int8
);
COMMENT ON COLUMN "fbp_app_param_setting"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_app_param_setting"."c_tenant_id" IS '租户ID,平台级别的为空';
COMMENT ON COLUMN "fbp_app_param_setting"."c_key" IS '标识';
COMMENT ON COLUMN "fbp_app_param_setting"."c_value" IS '';
COMMENT ON COLUMN "fbp_app_param_setting"."c_desc" IS '描述';
COMMENT ON COLUMN "fbp_app_param_setting"."c_type" IS '类型:1平台,2站点';
COMMENT ON COLUMN "fbp_app_param_setting"."c_catalog" IS '分类:1数据源,2缓存,3存储,4参数';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_code" IS '应用code';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_name" IS '应用名称';
COMMENT ON COLUMN "fbp_app_param_setting"."c_app_version" IS '应用版本';
COMMENT ON COLUMN "fbp_app_param_setting"."c_site_group_id" IS '站群ID,平台级别的为空';
COMMENT ON COLUMN "fbp_app_param_setting"."c_site_id" IS '站点ID,平台级别的为空';
COMMENT ON TABLE "fbp_app_param_setting" IS '应用参数配置表';

DROP TABLE IF EXISTS "fbp_portal_widget_instance";
CREATE TABLE "fbp_portal_widget_instance" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_page_path" varchar  NOT NULL,
  "c_account_id" int8,
  "c_page_json" text ,
  "c_site_id" int8
);
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_page_path" IS '页面路径';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_account_id" IS '账号id';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_page_json" IS '页面json';
COMMENT ON COLUMN "fbp_portal_widget_instance"."c_site_id" IS '站点id';
COMMENT ON TABLE "fbp_portal_widget_instance" IS '业务卡片表';

-- ----------------------------
-- Table structure for fbp_admin_account_authcode
-- ----------------------------
DROP TABLE IF EXISTS "fbp_admin_account_authcode";
CREATE TABLE "fbp_admin_account_authcode" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_site_group_id" int8,
  "c_account_id" int8,
  "c_auth_code" varchar(500) ,
  "c_remark" varchar(1000) ,
  "c_expire_hours" int4,
  "c_end_time" timestamp(6)
);
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_site_group_id" IS '站群Id';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_account_id" IS '账号Id';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_auth_code" IS '允许调试登录的授权码';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_remark" IS '备注';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_expire_hours" IS '过期时间(小时)';
COMMENT ON COLUMN "fbp_admin_account_authcode"."c_end_time" IS '结束时间';
COMMENT ON TABLE "fbp_admin_account_authcode" IS '开发调试账号临时授权码表';

-----------------------------
--第三方接入
------------------------------
DROP TABLE IF EXISTS "fbp_third_party_info";
CREATE TABLE "fbp_third_party_info" (
  "c_id" "serial8" NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_business_tenant_id" int8,
  "c_business_site_id" int8,
  "c_name" varchar(50) ,
  "c_type" int4,
  "c_description" varchar(255) ,
  "c_access_key" varchar(50) ,
  "c_secret_key" varchar(50) ,
  "c_status" int4
);
COMMENT ON COLUMN "fbp_third_party_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_third_party_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_third_party_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_third_party_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_third_party_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_third_party_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_third_party_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_business_tenant_id" IS '接入租户ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_business_site_id" IS '接入站点ID';
COMMENT ON COLUMN "fbp_third_party_info"."c_name" IS '接入方名称';
COMMENT ON COLUMN "fbp_third_party_info"."c_type" IS '类型 0.需要时间戳校验 1.不需要时间戳校验 默认为0';
COMMENT ON COLUMN "fbp_third_party_info"."c_description" IS '描述';
COMMENT ON COLUMN "fbp_third_party_info"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_third_party_info"."c_secret_key" IS 'appSecret';
COMMENT ON COLUMN "fbp_third_party_info"."c_status" IS '状态 1启用0停用';
COMMENT ON TABLE "fbp_third_party_info" IS '第三方接入信息表';

DROP TABLE IF EXISTS "fbp_open_api";
CREATE TABLE "fbp_open_api" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" "int8",
  "c_module_name" varchar(255) ,
  "c_name" varchar(255) ,
  "c_path" varchar(255) ,
  "c_description" varchar(255), 
  "c_expression" varchar(500) 
);
COMMENT ON COLUMN "fbp_open_api"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_open_api"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_open_api"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_open_api"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_open_api"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_open_api"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_open_api"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_open_api"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_open_api"."c_module_name" IS '模块名';
COMMENT ON COLUMN "fbp_open_api"."c_name" IS '名称';
COMMENT ON COLUMN "fbp_open_api"."c_path" IS '请求地址';
COMMENT ON COLUMN "fbp_open_api"."c_description" IS '描述';
COMMENT ON COLUMN "fbp_open_api"."c_expression" IS '接口权限表达式(fbp接口xml上需配有p.thirdreq权限才可开放给第三方使用)';
COMMENT ON TABLE "fbp_open_api" IS '授权api信息表';

DROP TABLE IF EXISTS "fbp_third_party_auth";
CREATE TABLE "fbp_third_party_auth" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_site_id" "int8",
  "c_access_key" varchar(255) ,
  "c_api_id" varchar(255)
);
COMMENT ON COLUMN "fbp_third_party_auth"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_third_party_auth"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_third_party_auth"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_third_party_auth"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_third_party_auth"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_third_party_auth"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_third_party_auth"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_third_party_auth"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_third_party_auth"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_third_party_auth"."c_api_id" IS '开放接口id';
COMMENT ON TABLE "fbp_third_party_auth" IS '第三方接入api授权关联表';

DROP TABLE IF EXISTS "fbp_open_gateway_log";
CREATE TABLE "fbp_open_gateway_log" (
  "c_id" "serial8" NOT NULL PRIMARY KEY,
  "c_create_time" timestamp,
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_path" VARCHAR(2000) ,
  "c_access_key" varchar(255) ,
  "c_access_timestamp" varchar(255) ,
  "c_sign" varchar(500) ,
  "c_client_ip" varchar(50) ,
  "c_user_agent" varchar(2000) ,
  "c_result" int4,
  "c_result_message" text 
);
COMMENT ON COLUMN "fbp_open_gateway_log"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_create_time" IS '访问时间';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_site_id" IS '站点id';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_path" IS '接口地址';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_access_key" IS 'appId';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_access_timestamp" IS '认证时间戳';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_sign" IS '签名';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_client_ip" IS '访问ip';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_user_agent" IS '浏览器信息';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_result" IS '访问状态';
COMMENT ON COLUMN "fbp_open_gateway_log"."c_result_message" IS '错误信息';
COMMENT ON TABLE "fbp_open_gateway_log" IS '第三方接入访问日志表';

DROP TABLE IF EXISTS "t_api_manage";
CREATE TABLE "t_api_manage" (
	"c_id" serial8 NOT NULL PRIMARY KEY,
	"c_last_modifier" int8,
	"c_last_modify_time" TIMESTAMP ( 6 ),
	"c_creator" int8,
	"c_create_time" TIMESTAMP ( 6 ),
	"c_sort_number" int4,
	"c_tenant_id" int8,
	"c_type" VARCHAR ( 10 ) ,
	"c_module" VARCHAR ( 50 ) ,
	"c_path" VARCHAR ( 255 ) ,
	"c_remark" VARCHAR ( 500 ) 
);
COMMENT ON COLUMN "t_api_manage"."c_id" IS '主键';
COMMENT ON COLUMN "t_api_manage"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "t_api_manage"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "t_api_manage"."c_creator" IS '创建人';
COMMENT ON COLUMN "t_api_manage"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "t_api_manage"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "t_api_manage"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "t_api_manage"."c_type" IS '类型';
COMMENT ON COLUMN "t_api_manage"."c_module" IS '模块';
COMMENT ON COLUMN "t_api_manage"."c_path" IS '路径';
COMMENT ON COLUMN "t_api_manage"."c_remark" IS '描述';
COMMENT ON TABLE "t_api_manage" IS '接口白名单表';



----低代码开发部分
-- ----------------------------
-- Table structure for fbpl_page
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_page";
CREATE TABLE "fbpl_page" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_path" varchar(500) ,
  "c_config" text ,
  "c_settings" text ,
  "c_type" varchar(20) ,
  "c_project" varchar(32) ,
  "c_version" varchar(10) ,
  "c_bg_url" varchar(500) ,
  "c_depens" text ,
  "c_code" varchar(255)
);
COMMENT ON COLUMN "fbpl_page"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_page"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_page"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_page"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_page"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_page"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_page"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_page"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbpl_page"."c_config" IS '页面配置';
COMMENT ON COLUMN "fbpl_page"."c_settings" IS '页面设置';
COMMENT ON COLUMN "fbpl_page"."c_type" IS '页面类型';
COMMENT ON COLUMN "fbpl_page"."c_project" IS '项目标识';
COMMENT ON COLUMN "fbpl_page"."c_version" IS '版本';
COMMENT ON COLUMN "fbpl_page"."c_bg_url" IS '页面背景图片';
COMMENT ON COLUMN "fbpl_page"."c_depens" IS '依赖信息';
COMMENT ON COLUMN "fbpl_page"."c_code" IS '依赖信息';
COMMENT ON TABLE "fbpl_page" IS '页面表';

-- ----------------------------
-- Table structure for fbpl_page_history
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_page_history";
CREATE TABLE "fbpl_page_history" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_path" varchar(500) ,
  "c_config" text ,
  "c_settings" text ,
  "c_type" varchar(20) ,
  "c_project" varchar(20) ,
  "c_version" varchar(10) ,
  "c_user_name" varchar(255),
  "c_remark" varchar(500),
  "c_is_auto"  varchar(1) DEFAULT '0'
);
COMMENT ON COLUMN "fbpl_page_history"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_page_history"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_page_history"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_page_history"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_page_history"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_page_history"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_page_history"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_page_history"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbpl_page_history"."c_config" IS '配置json';
COMMENT ON COLUMN "fbpl_page_history"."c_remark" IS '备注说明';
COMMENT ON COLUMN "fbpl_page_history"."c_is_auto" IS '状态 0 自动保存 1 手工保存';
COMMENT ON TABLE "fbpl_page_history" IS '页面版本表';

-- ----------------------------
-- Table structure for fbpl_dcs_setting
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_dcs_setting";
CREATE TABLE "fbpl_dcs_setting" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_key" varchar(255) ,
  "c_name" varchar(255) ,
  "c_value" varchar(255) ,
  "c_desc" varchar(255) ,
  "c_type" varchar(255) ,
  "c_catalog" varchar(255) ,
  "c_project" varchar(255) ,
  "c_version" varchar(255) ,
  "c_tenant_id" int4
);
COMMENT ON COLUMN "fbpl_dcs_setting"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_key" IS '标识';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_name" IS '名称';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_value" IS '';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_desc" IS '描述说明';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_type" IS '类型 1 平台  2 站点';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_catalog" IS '分类 1 数据源  2 缓存 3 存储 4 参数';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_project" IS '项目';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_version" IS '版本';
COMMENT ON COLUMN "fbpl_dcs_setting"."c_tenant_id" IS '租户';
COMMENT ON TABLE "fbpl_dcs_setting" IS '项目DSC(数据源/存储/缓存/参数)设置表';

-- ----------------------------
-- Table structure for fbpl_service
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_service";
CREATE TABLE "fbpl_service" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text,
  "c_bizType" varchar(100) ,
  "c_element" text
);
COMMENT ON COLUMN "fbpl_service"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_service"."c_version" IS '版本号';
COMMENT ON COLUMN "fbpl_service"."c_uuid" IS 'uuid';
COMMENT ON COLUMN "fbpl_service"."c_bpmn" IS 'xml配置';
COMMENT ON COLUMN "fbpl_service"."c_runner" IS '调试参数实例数据';
COMMENT ON COLUMN "fbpl_service"."c_document" IS '文档数据';
COMMENT ON COLUMN "fbpl_service"."c_bizType" IS '业务类型:null:服务接口;logic-comp:部件';
COMMENT ON COLUMN "fbpl_service"."c_element" IS '当c_bizType值为logic-comp,代表部件,存放部件元素信息';
COMMENT ON TABLE "fbpl_service" IS '项目服务表';

-- ----------------------------
-- Table structure for fbpl_tree_json
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_tree_json";
CREATE TABLE "fbpl_tree_json" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_json" text ,
  "c_key" varchar(255) 
);
COMMENT ON COLUMN "fbpl_tree_json"."c_json" IS '树形json';
COMMENT ON COLUMN "fbpl_tree_json"."c_key" IS '唯一key,规则:租户id:项目标识:项目版本:类型标识';
COMMENT ON TABLE "fbpl_tree_json" IS '项目目录数据表';

-- ----------------------------
-- Table structure for fbpl_state
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_state";
CREATE TABLE "fbpl_state" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text 
);
COMMENT ON COLUMN "fbpl_state"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_state"."c_version" IS '版本号';
COMMENT ON COLUMN "fbpl_state"."c_uuid" IS 'uuid';
COMMENT ON COLUMN "fbpl_state"."c_bpmn" IS 'xml配置';
COMMENT ON COLUMN "fbpl_state"."c_runner" IS '调试实例数据';
COMMENT ON COLUMN "fbpl_state"."c_document" IS '文档说明';
COMMENT ON TABLE "fbpl_state" IS '项目状态表';

-- ----------------------------
-- Table structure for fbpl_lock_record
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_lock_record";
CREATE TABLE "fbpl_lock_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_page_path" varchar(200) ,
  "c_project" varchar(50) ,
  "c_version" varchar(50) ,
  "c_login_name" varchar(50) ,
  "c_operator" varchar(50) ,
  "c_type" varchar(2) ,
  "c_expire_time" timestamp(6)
);
COMMENT ON COLUMN "fbpl_lock_record"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_lock_record"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_lock_record"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_lock_record"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_lock_record"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_lock_record"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_lock_record"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbpl_lock_record"."c_page_path" IS '页面path';
COMMENT ON COLUMN "fbpl_lock_record"."c_login_name" IS '登录账号';
COMMENT ON COLUMN "fbpl_lock_record"."c_operator" IS '操作人';
COMMENT ON COLUMN "fbpl_lock_record"."c_type" IS '类型 1 页面 2 FBP页面 3 服务 4 接口 5 状态';
COMMENT ON COLUMN "fbpl_lock_record"."c_expire_time" IS '过期时间';
COMMENT ON TABLE "fbpl_lock_record" IS '编辑锁记录表';

-- ----------------------------
-- Table structure for fbpl_backup_record
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_backup_record";
CREATE TABLE "fbpl_backup_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_reference_id" varchar(40)  NOT NULL,
  "c_filename" varchar(255) ,
  "c_project_code" varchar(100) ,
  "c_version" varchar(100) ,
  "c_operator" varchar(40) ,
  "c_type" int2,
  "c_remark" varchar(255)
);
COMMENT ON COLUMN "fbpl_backup_record"."c_reference_id" IS '文件refId';
COMMENT ON COLUMN "fbpl_backup_record"."c_filename" IS '文件名';
COMMENT ON COLUMN "fbpl_backup_record"."c_project_code" IS '项目';
COMMENT ON COLUMN "fbpl_backup_record"."c_version" IS '版本';
COMMENT ON COLUMN "fbpl_backup_record"."c_operator" IS '操作人';
COMMENT ON COLUMN "fbpl_backup_record"."c_type" IS '类型';
COMMENT ON COLUMN "fbpl_backup_record"."c_remark" IS '备注';
COMMENT ON TABLE "fbpl_backup_record" IS '项目备份记录表';

-- ----------------------------
-- Table structure for fbpl_libapp_publish_record
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_libapp_publish_record";
CREATE TABLE "fbpl_libapp_publish_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_reference_id" varchar(200) ,
  "c_name" varchar(50) ,
  "c_code" varchar(50) ,
  "c_lib_id" varchar(100) ,
  "c_lib_type" varchar(50) ,
  "c_filename" varchar(500) ,
  "c_version" varchar(100) ,
  "c_remark" varchar(500) ,
  "c_operator" varchar(50) 
);
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_reference_id" IS '附件ID';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_name" IS '名称';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_code" IS 'code';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_lib_id" IS 'lib库id';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_lib_type" IS 'libType';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_filename" IS 'tgz包名';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_version" IS '版本号';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_remark" IS '描述';
COMMENT ON COLUMN "fbpl_libapp_publish_record"."c_operator" IS '发布者';
COMMENT ON TABLE "fbpl_libapp_publish_record" IS 'lib发布记录表';
COMMENT ON TABLE "fbpl_libapp_publish_record" IS '项目发布应用记录表';

-- ----------------------------
-- Table structure for fbpl_page_template
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_page_template";
CREATE TABLE "fbpl_page_template" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_status" int4,
  "c_usage_count" int4,
  "c_name" varchar(32) ,
  "c_author" varchar(32) ,
  "c_template_file" text ,
  "c_code" varchar(32) ,
  "c_introduction" text ,
  "c_cover_image" varchar(1000) ,
  "c_permary_interface" varchar(1000) ,
  "c_topology_map" text ,
  "c_category_id" int4,
  "c_category" varchar(32)
);
COMMENT ON COLUMN "fbpl_page_template"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_page_template"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_page_template"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_page_template"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_page_template"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_page_template"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_page_template"."c_status" IS '状态';
COMMENT ON COLUMN "fbpl_page_template"."c_usage_count" IS '使用次数';
COMMENT ON COLUMN "fbpl_page_template"."c_name" IS '名称';
COMMENT ON COLUMN "fbpl_page_template"."c_author" IS '作者';
COMMENT ON COLUMN "fbpl_page_template"."c_template_file" IS '文件';
COMMENT ON COLUMN "fbpl_page_template"."c_code" IS '模板代码';
COMMENT ON COLUMN "fbpl_page_template"."c_introduction" IS '介绍';
COMMENT ON COLUMN "fbpl_page_template"."c_cover_image" IS '简介图片';
COMMENT ON COLUMN "fbpl_page_template"."c_permary_interface" IS '主要界面';
COMMENT ON COLUMN "fbpl_page_template"."c_topology_map" IS '页面拓扑图';
COMMENT ON COLUMN "fbpl_page_template"."c_category_id" IS '分类id';
COMMENT ON COLUMN "fbpl_page_template"."c_category" IS '分类名称';
COMMENT ON TABLE "fbpl_page_template" IS '项目页面模板表';

-- ----------------------------
-- Table structure for fbpl_project_app_events
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_app_events";
CREATE TABLE "fbpl_project_app_events" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_project" varchar(32) ,
  "c_version" varchar(32) ,
  "c_code" varchar(32) ,
  "c_name" varchar(50) ,
  "c_script" text,
  "c_type" varchar(10) DEFAULT 'pc'
);
COMMENT ON COLUMN "fbpl_project_app_events"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_app_events"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_app_events"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_app_events"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_app_events"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_app_events"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_app_events"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_app_events"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_project_app_events"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_app_events"."c_code" IS '事件code';
COMMENT ON COLUMN "fbpl_project_app_events"."c_name" IS '事件名称';
COMMENT ON COLUMN "fbpl_project_app_events"."c_script" IS '脚本';
COMMENT ON COLUMN "fbpl_project_app_events"."c_type" IS '类型: pc mobile print';
COMMENT ON TABLE "fbpl_project_app_events" IS '项目应用事件表';

-- ----------------------------
-- Table structure for fbpl_project_app_file_info
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_app_file_info";
CREATE TABLE "fbpl_project_app_file_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_reference_id" varchar(200) ,
  "c_project_code" varchar(50) ,
  "c_filename" varchar(500) ,
  "c_version" varchar(100) ,
  "c_remark" varchar(500) ,
  "c_operator" varchar(50)
);
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_reference_id" IS '附件ID';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_project_code" IS '项目code';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_filename" IS '应用tgz包名';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_version" IS '应用版本号';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_remark" IS '应用描述';
COMMENT ON COLUMN "fbpl_project_app_file_info"."c_operator" IS '应用发布者';
COMMENT ON TABLE "fbpl_project_app_file_info" IS '应用发布记录表';
COMMENT ON TABLE "fbpl_project_app_file_info" IS '项目应用文件信息表';

-- ----------------------------
-- Table structure for fbpl_project_app_info
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_app_info";
CREATE TABLE "fbpl_project_app_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_project" varchar(32) ,
  "c_version" varchar(32) ,
  "c_code" varchar(32) ,
  "c_name" varchar(50) ,
  "c_app_version" varchar(50) ,
  "c_author" varchar(50) ,
  "c_describe" varchar(200) ,
  "c_is_system" int2,
  "c_keywords" varchar(500) ,
  "c_navs" text ,
  "c_cards" text ,
  "c_roles" text ,
  "c_permissions" text ,
  "c_events" text ,
  "c_actions" text ,
  "c_app_type" varchar(255) ,
  "c_dependence" varchar(50) ,
  "c_modes" varchar(200) ,
  "c_forms" text ,
  "c_e_tag" varchar(100) ,
  "c_json_model" varchar(10) ,
  "c_run_events" text,
  "c_mobile_run_events"  text,
  "c_print_run_events"  text,
  "c_is_login" varchar(2) DEFAULT '0',
  "c_css" text,
  "c_snippets" text,
  "c_templates" text,
  "c_mobile_snippets" text,
  "c_print_snippets" text,
  "c_mobile_templates" text,
  "c_print_templates" text,
  "c_fbp_snippets" text
);
COMMENT ON COLUMN "fbpl_project_app_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_app_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_app_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_app_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_app_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_app_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_app_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_app_info"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_project_app_info"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_app_info"."c_code" IS '应用code';
COMMENT ON COLUMN "fbpl_project_app_info"."c_name" IS '应用标题';
COMMENT ON COLUMN "fbpl_project_app_info"."c_app_version" IS '应用版本';
COMMENT ON COLUMN "fbpl_project_app_info"."c_author" IS '应用作者';
COMMENT ON COLUMN "fbpl_project_app_info"."c_describe" IS '应用描述';
COMMENT ON COLUMN "fbpl_project_app_info"."c_is_system" IS '是否是系统应用';
COMMENT ON COLUMN "fbpl_project_app_info"."c_keywords" IS '关键词分类';
COMMENT ON COLUMN "fbpl_project_app_info"."c_navs" IS '导航';
COMMENT ON COLUMN "fbpl_project_app_info"."c_cards" IS '业务卡片';
COMMENT ON COLUMN "fbpl_project_app_info"."c_roles" IS '角色';
COMMENT ON COLUMN "fbpl_project_app_info"."c_permissions" IS '权限项';
COMMENT ON COLUMN "fbpl_project_app_info"."c_events" IS '事件';
COMMENT ON COLUMN "fbpl_project_app_info"."c_actions" IS '方法';
COMMENT ON COLUMN "fbpl_project_app_info"."c_app_type" IS '应用类型 0 PC应用 1 移动端应用';
COMMENT ON COLUMN "fbpl_project_app_info"."c_dependence" IS '应用依赖';
COMMENT ON COLUMN "fbpl_project_app_info"."c_forms" IS '填报单';
COMMENT ON COLUMN "fbpl_project_app_info"."c_e_tag" IS '环境标签';
COMMENT ON COLUMN "fbpl_project_app_info"."c_json_model" IS '发布生成json模式';
COMMENT ON COLUMN "fbpl_project_app_info"."c_run_events" IS '启动事件';
COMMENT ON COLUMN "fbpl_project_app_info"."c_mobile_run_events" IS '启动事件(移动)';
COMMENT ON COLUMN "fbpl_project_app_info"."c_print_run_events" IS '启动事件(打印)';
COMMENT ON COLUMN "fbpl_project_app_info"."c_is_login" IS '是否是登录应用 0 否 1 是';
COMMENT ON COLUMN "fbpl_project_app_info"."c_css" IS '样式内容';
COMMENT ON COLUMN "fbpl_project_app_info"."c_snippets" IS '部件库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_templates" IS '模板库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_mobile_snippets" IS '移动部件库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_print_snippets" IS '打印部件库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_mobile_templates" IS '移动模板库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_print_templates" IS '打印模板库';
COMMENT ON COLUMN "fbpl_project_app_info"."c_fbp_snippets" IS '服务部件库';
COMMENT ON TABLE "fbpl_project_app_info" IS '项目应用信息表';

-- ----------------------------
-- Table structure for fbpl_project_app_methods
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_app_methods";
CREATE TABLE "fbpl_project_app_methods" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_project" varchar(32) ,
  "c_version" varchar(32) ,
  "c_code" varchar(32) ,
  "c_name" varchar(50) ,
  "c_script" text,
  "c_type" varchar(10) DEFAULT 'pc'
);
COMMENT ON COLUMN "fbpl_project_app_methods"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_code" IS '方法code';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_name" IS '方法名称';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_script" IS '脚本';
COMMENT ON COLUMN "fbpl_project_app_methods"."c_type" IS '类型: pc mobile print';
COMMENT ON TABLE "fbpl_project_app_methods" IS '项目应用方法表';

-- ----------------------------
-- Table structure for fbpl_project_info
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_info";
CREATE TABLE "fbpl_project_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_code" varchar(32) ,
  "c_name" varchar(50) ,
  "c_manager" varchar(50) ,
  "c_remark" text ,
  "c_version" varchar(255) ,
  "c_type" int2,
  "c_bg_url" varchar(500),
  "c_manager_id" int8,
  "c_compatible_service" int2 DEFAULT 0,
  "c_status" varchar(1) DEFAULT '0'
);
COMMENT ON COLUMN "fbpl_project_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_info"."c_code" IS '部件code';
COMMENT ON COLUMN "fbpl_project_info"."c_name" IS '部件名称';
COMMENT ON COLUMN "fbpl_project_info"."c_manager" IS '项目经理';
COMMENT ON COLUMN "fbpl_project_info"."c_remark" IS '项目说明';
COMMENT ON COLUMN "fbpl_project_info"."c_version" IS '项目激活版本';
COMMENT ON COLUMN "fbpl_project_info"."c_type" IS '项目类型 1:pc类  2:移动类';
COMMENT ON COLUMN "fbpl_project_info"."c_bg_url" IS '项目背景图';
COMMENT ON COLUMN "fbpl_project_info"."c_manager_id" IS '项目经理账号id';
COMMENT ON COLUMN "fbpl_project_info"."c_compatible_service" IS '是否兼容老服务0:否  1:是';
COMMENT ON COLUMN "fbpl_project_info"."c_status" IS '状态 0 未归档 1 已归档';
COMMENT ON TABLE "fbpl_project_info" IS '项目信息表';

-- ----------------------------
-- Table structure for fbpl_project_member
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_member";
CREATE TABLE "fbpl_project_member" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_project_id" int8,
  "c_project_code" varchar(100) ,
  "c_project_name" varchar(100) ,
  "c_version" varchar(100) ,
  "c_emp_id" int8 ,
  "c_name" varchar(200) ,
  "c_role" varchar(200) ,
  "c_accountnumber" varchar(200) ,
  "c_role_type" varchar(200) ,
  "c_endtime" timestamp(6)
);
COMMENT ON COLUMN "fbpl_project_member"."c_project_id" IS '项目id';
COMMENT ON COLUMN "fbpl_project_member"."c_project_code" IS '项目code';
COMMENT ON COLUMN "fbpl_project_member"."c_project_name" IS '项目名';
COMMENT ON COLUMN "fbpl_project_member"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_member"."c_emp_id" IS '用户id';
COMMENT ON COLUMN "fbpl_project_member"."c_name" IS '用户名';
COMMENT ON COLUMN "fbpl_project_member"."c_role" IS '角色名';
COMMENT ON COLUMN "fbpl_project_member"."c_accountnumber" IS '登录名';
COMMENT ON COLUMN "fbpl_project_member"."c_role_type" IS '角色id';
COMMENT ON COLUMN "fbpl_project_member"."c_endtime" IS '截止日期';
COMMENT ON TABLE "fbpl_project_member" IS '项目成员表';

-- ----------------------------
-- Table structure for fbpl_project_template
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_template";
CREATE TABLE "fbpl_project_template" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_status" int4,
  "c_usage_count" int4,
  "c_type" int4,
  "c_name" varchar(32) ,
  "c_author" varchar(32) ,
  "c_url" varchar(100) ,
  "c_template_file" varchar(1000) ,
  "c_code" varchar(32) ,
  "c_introduction" text ,
  "c_cover_image" varchar(1000) ,
  "c_permary_interface" varchar(1000) ,
  "c_main_function" text ,
  "c_category_id" int4,
  "c_category" varchar(32)
);
COMMENT ON TABLE "fbpl_project_template" IS '项目模板表';

-- ----------------------------
-- Table structure for fbpl_restore_record
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_restore_record";
CREATE TABLE "fbpl_restore_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_reference_id" varchar(40)  NOT NULL,
  "c_filename" varchar(255) ,
  "c_project_code" varchar(100) ,
  "c_version" varchar(100) ,
  "c_operator" varchar(40) ,
  "c_type" int4
);
COMMENT ON COLUMN "fbpl_restore_record"."c_reference_id" IS '文件refId';
COMMENT ON COLUMN "fbpl_restore_record"."c_filename" IS '文件名';
COMMENT ON COLUMN "fbpl_restore_record"."c_project_code" IS '项目';
COMMENT ON COLUMN "fbpl_restore_record"."c_version" IS '版本';
COMMENT ON COLUMN "fbpl_restore_record"."c_operator" IS '操作人';
COMMENT ON COLUMN "fbpl_restore_record"."c_type" IS '还原类型 1从备份中还原 2从本地导入';
COMMENT ON TABLE "fbpl_restore_record" IS '项目还原记录表';

-- ----------------------------
-- Table structure for fbpl_template_category
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_template_category";
CREATE TABLE "fbpl_template_category" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_text" varchar(100) ,
  "c_parent_id" int8 NOT NULL,
  "c_cascade_id" varchar(60) ,
  "c_level" varchar(60) ,
  "c_type" int4,
  "c_category" varchar(32)
);
COMMENT ON COLUMN "fbpl_template_category"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_template_category"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_template_category"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_template_category"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_template_category"."c_creator" IS '目录名称';
COMMENT ON COLUMN "fbpl_template_category"."c_create_time" IS '父目录ID';
COMMENT ON COLUMN "fbpl_template_category"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_template_category"."c_cascade_id" IS '级联ID';
COMMENT ON COLUMN "fbpl_template_category"."c_level" IS '级别';
COMMENT ON COLUMN "fbpl_template_category"."c_type" IS '类型';
COMMENT ON TABLE "fbpl_template_category" IS '项目模板分类表';

-- ----------------------------
-- Table structure for fbpl_version_record
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_version_record";
CREATE TABLE "fbpl_version_record" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_tenant_id" int8,
  "c_project_code" varchar(100) ,
  "c_version" varchar(100) ,
  "c_original_version" varchar(100) ,
  "c_name" varchar(500) ,
  "c_first_num" int4,
  "c_second_num" int4,
  "c_third_num" int4,
  "c_locked" varchar(1),
  "c_remark" varchar(200)
);
COMMENT ON COLUMN "fbpl_version_record"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_version_record"."c_last_modifier" IS '最近修改人';
COMMENT ON COLUMN "fbpl_version_record"."c_last_modify_time" IS '最近修改时间';
COMMENT ON COLUMN "fbpl_version_record"."c_creator" IS '创建人id';
COMMENT ON COLUMN "fbpl_version_record"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_version_record"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_version_record"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbpl_version_record"."c_project_code" IS '项目';
COMMENT ON COLUMN "fbpl_version_record"."c_version" IS '版本';
COMMENT ON COLUMN "fbpl_version_record"."c_original_version" IS '原版本号';
COMMENT ON COLUMN "fbpl_version_record"."c_first_num" IS '首位版本号';
COMMENT ON COLUMN "fbpl_version_record"."c_second_num" IS '二位版本号';
COMMENT ON COLUMN "fbpl_version_record"."c_third_num" IS '三位版本号';
COMMENT ON COLUMN "fbpl_version_record"."c_locked" IS '锁定版本';
COMMENT ON COLUMN "fbpl_version_record"."c_remark" IS '备注说明';
COMMENT ON COLUMN "fbpl_version_record"."c_name" IS '版本名称';
COMMENT ON TABLE "fbpl_version_record" IS '项目版本表';

-- ----------------------------
-- Table structure for fbpl_app_menu_catalog
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_menu_catalog";
CREATE TABLE "fbpl_app_menu_catalog" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_app_id" int8,
  "c_catalog_id" int8,
  "c_code" varchar(50) ,
  "c_text" varchar(50) ,
  "c_icon" varchar(150) ,
  "c_project" varchar(50) ,
  "c_version" varchar(20) ,
  "c_cascade_id" varchar(20) ,
  "c_parent_id" int8,
  "c_auth" varchar(50) ,
  "c_hidden" varchar(2) ,
  "c_anonymous" varchar(2),
  "c_type" varchar(20) DEFAULT 'page',
  "c_slot" varchar(20),
  "c_handler" text,
  "c_on_handler" varchar(2) DEFAULT '0'
);
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_app_id" IS '应用id';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_code" IS '分类code';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_text" IS '分类名称';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_icon" IS '分类图标';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_cascade_id" IS '级联id';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_parent_id" IS '父id';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_auth" IS '权限规则';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_hidden" IS '是否隐藏';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_anonymous" IS '匿名访问';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_type" IS '菜单类型';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_slot" IS '页面插槽名';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_handler" IS 'handler事件';
COMMENT ON COLUMN "fbpl_app_menu_catalog"."c_on_handler" IS 'handler事件是否启用 0 不启用  1 启用';
COMMENT ON TABLE "fbpl_app_menu_catalog" IS '项目应用菜单分类表';

-- ----------------------------
-- Table structure for fbpl_app_menu_pages
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_menu_pages";
CREATE TABLE "fbpl_app_menu_pages" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_path" varchar(500) ,
  "c_name" varchar(500) ,
  "c_category_id" varchar(500) ,
  "c_project" varchar(20) ,
  "c_version" varchar(10) ,
  "c_icon" varchar(50) ,
  "c_hidden" varchar(2) ,
  "c_anonymous" varchar(2) ,
  "c_auth" varchar(50),
  "c_slot" varchar(20),
  "c_handler" text,
  "c_on_handler" varchar(2) DEFAULT '0'
);
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_category_id" IS '分类id';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_icon" IS '页面图标';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_hidden" IS '是否隐藏';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_anonymous" IS '匿名访问';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_auth" IS '权限规则';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_slot" IS '页面插槽名';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_handler" IS 'handler事件';
COMMENT ON COLUMN "fbpl_app_menu_pages"."c_handler" IS 'handler事件是否启用 0 不启用  1 启用';
COMMENT ON TABLE "fbpl_app_menu_pages" IS '项目应用菜单页面表';

-- ----------------------------
-- Table structure for fbpl_app_snippet_catalog
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_snippet_catalog";
CREATE TABLE "fbpl_app_snippet_catalog" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_text" varchar(50) ,
  "c_icon" varchar(150) ,
  "c_project" varchar(50) ,
  "c_version" varchar(20) ,
  "c_cascade_id" varchar(20) ,
  "c_parent_id" int8,
  "c_type" varchar(20) DEFAULT 'snippet'
);
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_text" IS '分类名称';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_icon" IS '分类图标';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_cascade_id" IS '级联id';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_parent_id" IS '父id';
COMMENT ON COLUMN "fbpl_app_snippet_catalog"."c_type" IS '部件类型: snippet mobile-snippet print-snippet';
COMMENT ON TABLE "fbpl_app_snippet_catalog" IS '项目应用部件分类表';

-- ----------------------------
-- Table structure for fbpl_app_snippet_pages
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_snippet_pages";
CREATE TABLE "fbpl_app_snippet_pages" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_name" varchar(500) ,
  "c_path" varchar(500) ,
  "c_category_id" varchar(500) ,
  "c_project" varchar(20) ,
  "c_version" varchar(10)
);
COMMENT ON COLUMN "fbpl_app_snippet_pages"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbpl_app_snippet_pages"."c_category_id" IS '分类id';
COMMENT ON COLUMN "fbpl_app_snippet_pages"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_snippet_pages"."c_version" IS '项目版本';
COMMENT ON TABLE "fbpl_app_snippet_pages" IS '项目应用部件页面表';

-- ----------------------------
-- Table structure for fbpl_project_app_setting
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_app_setting";
CREATE TABLE "fbpl_project_app_setting" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_theme" varchar(200),
  "c_apps" text ,
  "c_project" varchar(200),
  "c_version" varchar(200),
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_mobile_theme" varchar(200)
);
COMMENT ON COLUMN "fbpl_project_app_setting"."c_mobile_theme" IS '移动主题';
COMMENT ON TABLE "fbpl_project_app_setting" IS '项目应用配置信息表';

-- ----------------------------
-- Table structure for fbpl_project_component_grant
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_component_grant";
CREATE TABLE "fbpl_project_component_grant" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_project_code" VARCHAR(200) ,
  "c_version" varchar(200) ,
  "c_app_code" varchar(200)  NOT NULL
);
COMMENT ON COLUMN "fbpl_project_component_grant"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_tenant_id" IS '授权ID: 租户ID';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_project_code" IS '项目code';
COMMENT ON COLUMN "fbpl_project_component_grant"."c_app_code" IS '应用code';
COMMENT ON TABLE "fbpl_project_component_grant" IS '部件授权项目信息表';
COMMENT ON TABLE "fbpl_project_component_grant" IS '项目部件授权表';

-- ----------------------------
-- Table structure for fbpl_project_diy_app_version
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_project_diy_app_version";
CREATE TABLE "fbpl_project_diy_app_version" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_app_code" varchar(200),
  "c_app_version" varchar(200),
  "c_project_code"varchar(200),
  "c_project_version" varchar(200),
  "c_tenant_id" int8,
  "c_site_id" int8
);
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_app_code" IS '安装应用code';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_app_version" IS '应用版本';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbpl_project_diy_app_version"."c_site_id" IS '站点id';
COMMENT ON TABLE "fbpl_project_diy_app_version" IS '项目应用自定义版本记录表';
COMMENT ON TABLE "fbpl_project_diy_app_version" IS '项目自定义应用版本表';

-- ----------------------------
-- Table structure for fbpl_app_card_catalog
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_card_catalog";
CREATE TABLE "fbpl_app_card_catalog" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_app_id" int8,
  "c_catalog_id" int8,
  "c_code" varchar(50) ,
  "c_text" varchar(50) ,
  "c_icon" varchar(150) ,
  "c_project" varchar(50) ,
  "c_version" varchar(20) ,
  "c_cascade_id" varchar(20) ,
  "c_parent_id" int8,
  "c_auth" varchar(50) ,
  "c_hidden" varchar(2) ,
  "c_anonymous" varchar(2)
);
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_app_id" IS '应用id';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_code" IS '分类code';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_text" IS '分类名称';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_icon" IS '分类图标';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_cascade_id" IS '级联id';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_parent_id" IS '父id';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_auth" IS '权限规则';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_hidden" IS '是否隐藏  "0":否  "1":是 ';
COMMENT ON COLUMN "fbpl_app_card_catalog"."c_anonymous" IS '匿名访问  "0":否  "1":是 ';
COMMENT ON TABLE "fbpl_app_card_catalog" IS '项目业务卡片分类表';

DROP TABLE IF EXISTS "fbpl_project_env_info";
CREATE TABLE "fbpl_project_env_info" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp,
  "c_creator" int8,
  "c_create_time" timestamp,
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_code" VARCHAR(100) ,
  "c_name" VARCHAR(200) ,
  "c_remark" VARCHAR(500) ,
  "c_exec_site" VARCHAR(200) ,
  "c_exec_site_name" VARCHAR(200) ,
  "c_project_code" VARCHAR(100) ,
  "c_version" VARCHAR(20) ,
  "c_account_id" VARCHAR(50) ,
  "c_account_name" VARCHAR(100)
);
COMMENT ON COLUMN "fbpl_project_env_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_env_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_env_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_env_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_env_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_env_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_env_info"."c_tenant_id" IS '授权ID: 租户ID';
COMMENT ON COLUMN "fbpl_project_env_info"."c_project_code" IS '项目code';
COMMENT ON COLUMN "fbpl_project_env_info"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_env_info"."c_code" IS '环境标识';
COMMENT ON COLUMN "fbpl_project_env_info"."c_name" IS '环境名称';
COMMENT ON COLUMN "fbpl_project_env_info"."c_remark" IS '备注说明';
COMMENT ON COLUMN "fbpl_project_env_info"."c_exec_site" IS '执行站点';
COMMENT ON COLUMN "fbpl_project_env_info"."c_account_id" IS '登录账号';
COMMENT ON COLUMN "fbpl_project_env_info"."c_account_name" IS '登录账号名';
COMMENT ON COLUMN "fbpl_project_env_info"."c_exec_site_name" IS '执行站点名称';
COMMENT ON TABLE "fbpl_project_env_info" IS '项目环境信息表';

DROP TABLE IF EXISTS "fbpl_project_app_styles";
CREATE TABLE "fbpl_project_app_styles" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp,
  "c_creator" int8,
  "c_create_time" timestamp,
  "c_sort_number" int4,
  "c_tenant_id" int8 NOT NULL,
  "c_project" varchar(100) ,
  "c_version" varchar(100) ,
  "c_code" varchar(100) ,
  "c_name" varchar(200) ,
  "c_css" text,
  "c_type" varchar(1),
  "c_path" varchar(100)
);
COMMENT ON COLUMN "fbpl_project_app_styles"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_code" IS '样式code';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_name" IS '样式名称';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_css" IS '样式内容';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_type" IS '类型';
COMMENT ON COLUMN "fbpl_project_app_styles"."c_path" IS '页面路径';
COMMENT ON TABLE "fbpl_project_app_styles" IS '项目样式表';

DROP TABLE IF EXISTS "fbpl_interface_service_path";
CREATE TABLE "fbpl_interface_service_path" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
	"c_creator" varchar(50),
    "c_create_time" timestamp(6),
	"c_type" varchar(50),
	"c_uuid" varchar(500),
	"c_code" varchar(50),
	"c_path" varchar(500),
	"c_name" varchar(100),
	"c_remark" varchar(500),
	"c_method" varchar(50),
	"c_project" varchar(100),
	"c_version" varchar(100),
	"c_tenant_id" int8
);
COMMENT ON COLUMN "fbpl_interface_service_path"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_code" IS '标识';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_path" IS '路径';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_name" IS '名称';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_remark" IS '描述';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_interface_service_path"."c_type" IS '类型:自动新增1/手动新增2';
COMMENT ON TABLE "fbpl_interface_service_path" IS '项目接口信息表';

DROP TABLE IF EXISTS "fbpl_rel_project_or_app";
CREATE TABLE "fbpl_rel_project_or_app" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_project" varchar(500),
  "c_version" varchar(100),
  "c_rel_code" varchar(500),
  "c_rel_name" varchar(500),
  "c_type" varchar(50),
  "c_tenant_id" int8,
  "c_creator" varchar(50),
  "c_create_time" timestamp(6)
);
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_project" IS '当前项目';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_version" IS '当前版本';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_rel_code" IS '依赖项目或应用code';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_rel_name" IS '依赖项目或应用名称';
COMMENT ON COLUMN "fbpl_rel_project_or_app"."c_type" IS '类型:  project/app';
COMMENT ON TABLE "fbpl_rel_project_or_app" IS '项目依赖项目/应用信息表';

DROP TABLE IF EXISTS "fbpl_service_history";
CREATE TABLE "fbpl_service_history" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp,
  "c_creator" int8,
  "c_create_time" timestamp,
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(100) ,
  "c_version" varchar(20) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text ,
  "c_element" text ,
  "c_user_name" varchar(100) ,
  "c_remark" varchar(2000) ,
  "c_type" varchar(10) 
);
COMMENT ON COLUMN "fbpl_service_history"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_service_history"."c_version" IS '版本号';
COMMENT ON COLUMN "fbpl_service_history"."c_uuid" IS 'uuid';
COMMENT ON COLUMN "fbpl_service_history"."c_bpmn" IS 'xml配置';
COMMENT ON COLUMN "fbpl_service_history"."c_runner" IS '调试参数实例数据';
COMMENT ON COLUMN "fbpl_service_history"."c_document" IS '文档数据';
COMMENT ON COLUMN "fbpl_service_history"."c_element" IS '当c_bizType值为logic-comp,代表部件,存放部件元素信息';
COMMENT ON COLUMN "fbpl_service_history"."c_user_name" IS '操作用户';
COMMENT ON COLUMN "fbpl_service_history"."c_remark" IS '版本描述';
COMMENT ON COLUMN "fbpl_service_history"."c_type" IS '保存类型 0 自动保存 1 手工保存';
COMMENT ON TABLE "fbpl_service_history" IS '接口服务版本表';

DROP TABLE IF EXISTS "fbpl_state_history";
create table "fbpl_state_history" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp,
  "c_creator" int8,
  "c_create_time" timestamp,
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(32) ,
  "c_version" varchar(32) ,
  "c_uuid" varchar(50) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text ,
  "c_user_name" varchar(32) ,
  "c_remark" varchar(255) ,
  "c_type" varchar(1) default '0'
);
comment on column "fbpl_state_history"."c_project" is '项目code';
comment on column "fbpl_state_history"."c_version" is '版本号';
comment on column "fbpl_state_history"."c_uuid" is 'uuid';
comment on column "fbpl_state_history"."c_bpmn" is 'xml配置';
comment on column "fbpl_state_history"."c_runner" is '调试实例数据';
comment on column "fbpl_state_history"."c_document" is '文档说明';
comment on column "fbpl_state_history"."c_user_name" is '操作用户';
comment on column "fbpl_state_history"."c_remark" is '版本描述';
comment on column "fbpl_state_history"."c_type" is '保存类型 0 自动保存 1 手工保存';
COMMENT ON TABLE "fbpl_state_history" IS '状态机版本表';

-- ----------------------------
-- Table structure for fbpl_app_card_pages
-- ----------------------------
DROP TABLE IF EXISTS "fbpl_app_card_pages";
CREATE TABLE "fbpl_app_card_pages" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
  "c_tenant_id" int8,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int8,
  "c_path" varchar(500) ,
  "c_name" varchar(200) ,
  "c_category_id" varchar(500) ,
  "c_project" varchar(50) ,
  "c_version" varchar(10) 
);
COMMENT ON COLUMN "fbpl_app_card_pages"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_last_modifier" IS '修改人账号id';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_creator" IS '创建人账号id';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_category_id" IS '分类id';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_project" IS '项目code';
COMMENT ON COLUMN "fbpl_app_card_pages"."c_version" IS '项目版本';
COMMENT ON TABLE "fbpl_app_card_pages" IS '项目业务卡片信息表';

DROP TABLE IF EXISTS "fbpl_project_env_account_active";
CREATE TABLE "fbpl_project_env_account_active" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
	"c_project" varchar(500),
	"c_version" varchar(100),
	"c_login_tenant_id" int8,
	"c_login_site_group_id" int8,
	"c_login_site_id" int8,
	"c_login_account_id" int8,
	"c_active_tenant_id" int8,
	"c_active_site_group_id" int8,
	"c_active_site_id" int8,
	"c_active_tenant_code" varchar(100),
	"c_active_site_group_code" varchar(100),
	"c_active_site_code" varchar(100),
	"c_active_site_path" varchar(500),
	"c_active_account_id" int8,
	"c_active_env_id" int8,
	"c_active_account" varchar(100)
);
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_project" IS '项目标识';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_login_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_login_site_group_id" IS '站群id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_login_site_id" IS '站点id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_login_account_id" IS '登录账号';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_tenant_id" IS '激活租户id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_site_group_id" IS '激活站群id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_site_id" IS '激活站点id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_tenant_code" IS '激活租户code';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_site_group_code" IS '激活站群code';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_site_code" IS '激活站点code';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_site_path" IS '激活站点访问路径';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_account_id" IS '激活账号id';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_account" IS '激活账号';
COMMENT ON COLUMN "fbpl_project_env_account_active"."c_active_env_id" IS '激活环境ID';
COMMENT ON TABLE "fbpl_project_env_account_active" IS '项目环境信息表';


DROP TABLE IF EXISTS "fbpl_project_env_account";
CREATE TABLE "fbpl_project_env_account" (
  "c_id" serial8 NOT NULL PRIMARY KEY,
	"c_project" varchar(500),
	"c_version" varchar(100),
	"c_tenant_id" int8,
	"c_env_id" int8,
	"c_account_id" int8,
	"c_login_account" varchar(100),
	"c_account_name" varchar(100),
	"c_password" varchar(100),
	"c_remark" varchar(1000)
);
COMMENT ON COLUMN "fbpl_project_env_account"."c_id" IS '主键';
COMMENT ON COLUMN "fbpl_project_env_account"."c_project" IS '项目标识';
COMMENT ON COLUMN "fbpl_project_env_account"."c_version" IS '项目版本';
COMMENT ON COLUMN "fbpl_project_env_account"."c_env_id" IS '环境ID';
COMMENT ON COLUMN "fbpl_project_env_account"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbpl_project_env_account"."c_account_id" IS '账号ID';
COMMENT ON COLUMN "fbpl_project_env_account"."c_login_account" IS '登录账号';
COMMENT ON COLUMN "fbpl_project_env_account"."c_account_name" IS '账号名称';
COMMENT ON COLUMN "fbpl_project_env_account"."c_password" IS '密码';
COMMENT ON COLUMN "fbpl_project_env_account"."c_remark" IS '备注';
COMMENT ON TABLE "fbpl_project_env_account" IS '项目环境授权账号表';

-----------------
-- 函数
------------------
CREATE OR REPLACE FUNCTION "add_minutes_to_current_time"("minutes" int4)
  RETURNS "timestamp" AS $BODY$
BEGIN
  RETURN now() + INTERVAL '1 minute' * minutes;
END;
$BODY$ LANGUAGE plpgsql VOLATILE;

-----------------
-- 函数
------------------
CREATE OR REPLACE FUNCTION "add_seconds_to_current_time"("seconds" int4)
  RETURNS "timestamp" AS $BODY$
BEGIN
  RETURN now() + INTERVAL '1 second' * seconds;
END;
$BODY$ LANGUAGE plpgsql VOLATILE;

3、在平台库中执行如下初始化语句:

点击查看
sql
-----------------------------------------
--初始化管理站点、管理员
-----------------------------------------
-- 初始化租户(sys)
INSERT INTO "fbp_admin_tenant_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_code", "c_name") VALUES (1, NULL, 1, NULL, 1, 'sys', '系统租户');

-- 初始化站群(sys_sg)
INSERT INTO "fbp_admin_site_group_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_tenant_code", "c_code", "c_name","c_config") VALUES (1, now(), 3, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 1, 'sys', 'sys_sg', '默认站群', '{"pwd":{"algorithm":"bcrypt","secretKey":"3c25d38f657ba55ab909996d6eb0e2ed","check":{"complexity":"0.75","rule":"^(?![a-zA-z]+$)(?!\\d+$)(?![!@#$%^&*]+$)[a-zA-Z\\d!@#$%^&*]{8,}$","msg":"密码须包含字母、数字、特殊字符!@#$%^&*且至少8位"},"tipModify":{"enable":false,"cycle":90}},"defaultPassword":"Zktx%13579","sensitiveInfo":{"encode":false,"sm4Key":"f8ffdfe06a1ddcdb38028d66be8d25e0","sm4Iv":"3c25d38f657ba55ab909996d6eb0e2ed"},"login":{"scanDoubleValid":false,"pwdDbVaild":false,"inputError":{"limit":5,"locked":10},"checkInitFm":false}}');


--初始化平台站群管理站点(sys_sg_manage)
INSERT INTO "fbp_admin_site_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_site_type", "c_code", "c_name", "c_contact","c_tenant_id", "c_site_setting", "c_tenant_code", "c_site_group_id", "c_is_manage_site", "c_site_group_code") VALUES (1, now() , 1, now(), 1, 0,  'sys_sg_manage', '系统管理', 'sys_sg_manage_admin',  (select c_id from fbp_admin_tenant_info where c_code = 'sys'), '{"appKey":"","appSecret":"","systemName":"系统管理","shortName":"系统管理","theme": "theme-vertical-blue.default"}', 'sys', (select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'), 1, 'sys_sg');

--初始化平台站群管理站点账号(sysadmin)
INSERT INTO "fbp_admin_account_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_site_group_id","c_login_name","c_status", "c_password",  "c_default_tenant", "c_account_type", "c_full_name","c_user_code") VALUES (1, now(), 1, now(), 1, (select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'), 'sysadmin', '1', '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', 'sys',  0, '系统管理员','sysadmin12345678');

--初始化平台站群运维站点(sys)
INSERT INTO "fbp_admin_site_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_site_type", "c_code", "c_name", "c_contact","c_tenant_id", "c_site_setting", "c_tenant_code", "c_site_group_id", "c_is_manage_site", "c_site_group_code") VALUES (1, now() , 1, now(), 1, 0,  'sys', '平台管理', 'sa',  (select c_id from fbp_admin_tenant_info where c_code = 'sys'), '{"appKey":"","appSecret":"","systemName":"平台管理","shortName":"平台管理","theme": "default"}', 'sys', (select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'), 0, 'sys_sg');

--初始化平台站群运维站点账号(sa)
INSERT INTO "fbp_admin_account_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_site_group_id","c_login_name","c_status", "c_password",  "c_default_tenant", "c_account_type", "c_full_name","c_user_code") VALUES (1, now(), 1, now(), 1, (select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'), 'sa', '1', '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', 'sys',  0, '平台管理员','sa12345678');

--将账号关联站群
INSERT INTO "fbp_admin_account_tenant"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_account_id", "c_site_id","c_site_group_id") VALUES (1, now(), 1, now(), 1, (select c_id from fbp_admin_tenant_info where c_code = 'sys'), (select c_id from fbp_admin_account_info where c_login_name = 'sysadmin'), (select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),(select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'));
INSERT INTO "fbp_admin_account_tenant"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_account_id", "c_site_id","c_site_group_id") VALUES (1, now(), 1, now(), 1, (select c_id from fbp_admin_tenant_info where c_code = 'sys'), (select c_id from fbp_admin_account_info where c_login_name = 'sa'), (select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),(select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'));

INSERT INTO "fbp_admin_account_tenant"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_account_id", "c_site_id","c_site_group_id") VALUES (1, now(), 1, now(), 1, (select c_id from fbp_admin_tenant_info where c_code = 'sys'), (select c_id from fbp_admin_account_info where c_login_name = 'sa'), (select c_id from fbp_admin_site_info where c_code = 'sys'),(select c_id from fbp_admin_site_group_info WHERE c_code = 'sys_sg'));

-----------------------------------
--初始化平台基础应用及授权数据
----------------------------------
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-ops','v1.1.0.48');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-ops-v1.1.0.48.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-ops','v1.1.0.48');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-ops','v1.1.0.48','平台管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-admin','v1.2.0.57');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-admin-v1.2.0.57.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-admin','v1.2.0.57');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-admin','v1.2.0.57','系统管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-openplatform','v1.1.0.8');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-openplatform-v1.1.0.8.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-openplatform','v1.1.0.8');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-openplatform','v1.1.0.8','接入管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-sm2','v1.0.0.1');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-sm2-v1.0.0.1.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-sm2','v1.0.0.1');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-sm2','v1.0.0.1','国密2',0,0,'["app","page","print","mobile"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('mas-explorer','5.14.30');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'mas-explorer-5.14.30.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('mas-explorer','5.14.30');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','mas-explorer','5.14.30','PC资源管理',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('locar','2.8.32');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'locar-2.8.32.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('locar','2.8.32');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','locar','2.8.32','页面引擎',0,0,'["app","page","print","mobile"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-userpwdlogin','v1.1.0.17');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-userpwdlogin-v1.1.0.17.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-userpwdlogin','v1.1.0.17');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time,c_is_login) values('中科天翔','lc-userpwdlogin','v1.1.0.17','账号密码登录',0,0,'["app","mobile","page","print"]',now(),'1');

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-modify-pwd','v1.0.0.9');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-modify-pwd-v1.0.0.9.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-modify-pwd','v1.0.0.9');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-modify-pwd','v1.0.0.9','修改密码',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-unlocklogin','v1.1.0.4');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-unlocklogin-v1.1.0.4.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-unlocklogin','v1.1.0.4');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-unlocklogin','v1.1.0.4','解锁',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('theme-vertical-blue','5.14.30');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'theme-vertical-blue-5.14.30.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('theme-vertical-blue','5.14.30');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','theme-vertical-blue','5.14.30','纵向导航主题',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('theme-fullscreen-light','5.14.30');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'theme-fullscreen-light-5.14.30.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('theme-fullscreen-light','5.14.30');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','theme-fullscreen-light','5.14.30','全屏主题',0,0,'["app","page","print"]',now());

----------------------
-- DSC应用平台
-----------------------
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-fbppdsm','v1.1.0.19');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-fbppdsm-v1.1.0.19.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-fbppdsm','v1.1.0.19');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-fbppdsm','v1.1.0.19','数据源管理(平台)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-pstorage','v1.1.0.14');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-pstorage-v1.1.0.14.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-pstorage','v1.1.0.14');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-pstorage','v1.1.0.14','存储管理(平台)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-pcache','v1.1.0.15');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-pcache-v1.1.0.15.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-pcache','v1.1.0.15');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-pcache','v1.1.0.15','缓存管理(平台)',0,0,'["app","page","print"]',now());


----------------------
-- DSC应用站点
-----------------------
insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-fpbsdsm','v1.1.0.12');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-fpbsdsm-v1.1.0.12.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-fpbsdsm','v1.1.0.12');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-fpbsdsm','v1.1.0.12','数据源管理(站点)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-sstorage','v1.1.0.10');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-sstorage-v1.1.0.10.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-sstorage','v1.1.0.10');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-sstorage','v1.1.0.10','存储管理(站点)',0,0,'["app","page","print"]',now());

insert into fbp_portal_app_version(c_app_code,c_app_version) values('lc-scache','v1.1.0.9');
insert into fbp_portal_import_record(c_tenant_id,c_result,c_file_name) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),0,'lc-scache-v1.1.0.9.tgz');
insert into fbp_app_publish_log(c_app_code,c_app_version) values('lc-scache','v1.1.0.9');
insert into fbp_portal_component(c_auth_name,c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('中科天翔','lc-scache','v1.1.0.9','缓存管理(站点)',0,0,'["app","page","print"]',now());

-------------
--- 应用授权到租户sys
--------------
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'mas-explorer');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-ops');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-admin');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-openplatform');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-userpwdlogin');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-sm2');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-syscachemng');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'locar');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'theme-vertical-blue');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'theme-fullscreen-light');

insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-fbppdsm');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-pstorage');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-pcache');

insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-fpbsdsm');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-sstorage');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-scache');

insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-modify-pwd');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-unlocklogin');
insert into fbp_portal_component_grant(c_tenant_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),'lc-fbpsso');

-------------
--- 应用授权到租户sys下的系统管理站点(sys_sg_manage)
--------------
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'mas-explorer');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-admin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-userpwdlogin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-sm2');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'locar');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'theme-vertical-blue');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-modify-pwd');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-unlocklogin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-fbpsso');

insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-fpbsdsm');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-sstorage');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),'lc-scache');

-------------
--- 应用授权到租户sys下的平台管理站点(sys)
--------------
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'mas-explorer');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-ops');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-admin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-userpwdlogin');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-sm2');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-openplatform');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'locar');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-fbppdsm');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-pstorage');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-pcache');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-modify-pwd');
insert into fbp_site_component_grant(c_tenant_id,c_site_id,c_app_code) values((select c_id from fbp_admin_tenant_info where c_code = 'sys'),(select c_id from fbp_admin_site_info where c_code = 'sys'),'lc-unlocklogin');

------------------------
--初始化应用分类
------------------------
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('系统管理','1');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('运行支撑','2');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('低代码支撑','3');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('登录认证','4');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('主题','5');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('JS库','6');
INSERT INTO fbp_app_catalog(c_catalog_name,c_catalog_code) VALUES ('其它','7');

-------------------
-- 应用关联分类
-------------------
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-ops');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-admin');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('1', 'lc-openplatform');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('2', 'mas-explorer');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('2', 'locar');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('2', 'lc-fbpsso');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-fbppdsm');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-pstorage');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-pcache');

insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-fpbsdsm');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-sstorage');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('3', 'lc-scache');

insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('2', 'lc-modify-pwd');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('4', 'lc-unlocklogin');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('4', 'lc-userpwdlogin');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('6', 'lc-sm2');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('5', 'theme-vertical-blue');
insert into fbp_app_catalog_mapping(c_catalog_id, c_app_code) values ('5', 'theme-fullscreen-light');

----------------
-- 初始化系统管理站菜单
---------------
INSERT INTO "fbp_admin_init_menu"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_site_id", "c_tenant_id", "c_navs") VALUES 
(1,
now(), 
1,
now(),
(select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'),
(select c_id from fbp_admin_tenant_info where c_code = 'sys'), 
'[{"path":"/lc-admin/zdgl/site-list","isDyn":"1","icon":"el-icon-office-building","onHandler":"0","id":1734428219329,"title":" 站点管理","parentId":99},{"path":"/lc-admin/zhgl/account-management","isDyn":"1","icon":"el-icon-user","onHandler":"0","id":1734428219329,"title":"账号管理","parentId":99},{"path":"/lc-admin/jsgl/role-list","isDyn":"1","icon":"el-icon-medal","onHandler":"0","id":1734428219329,"title":"角色管理","parentId":99},{"path":"/lc-admin/jsgl/role-grant-list","isDyn":"1","icon":"el-icon-coordinate","onHandler":"0","id":1734428219329,"title":"角色授权","parentId":99},,{"path":"/lc-admin/zdgl/safesetting","isDyn":"1","icon":"el-icon-guide","onHandler":"0","id":1111128219329,"title":"安全设置","parentId":99},{"path":"/lc-admin/sitedsc/setting","isDyn":"1","icon":"el-icon-setting","onHandler":"0","id":1734428219329,"title":"参数设置","parentId":99},{"path":"/main/46b37582c67f820bdcd91a9dad4b4781","auth":"r.default","icon":"el-icon-notebook-1","title":"日志管理","isDiy":"1","hidden":false,"isLeaf":false,"children":[{"path":"/lc-admin/czrz/login-log","isDyn":"1","icon":"el-icon-tickets","onHandler":"0","id":1734428219329,"title":"登录日志","parentId":99},{"path":"/lc-admin/glrz/manage-log","isDyn":"1","icon":"el-icon-document-copy","onHandler":"0","id":1734428219329,"title":"管理日志","parentId":99}]},{"path":"/main/4c8fe6632cd172418095149bbe33bd21","auth":"r.default","icon":"el-icon-suitcase","title":"DSC管理","isDiy":"1","hidden":false,"isLeaf":false,"children":[{"path":"/lc-fpbsdsm/datasource/datasource-list","isDyn":"1","icon":"el-icon-suitcase","onHandler":"0","id":1734415220103,"title":"数据源管理","parentId":59},{"path":"/lc-sstorage/storge/list","isDyn":"1","icon":"el-icon-folder-opened","onHandler":"0","id":1734415092619,"title":" 存储管理","parentId":101},{"path":"/lc-scache/hcgl/cache-list","isDyn":"1","icon":"el-icon-suitcase","onHandler":"0","id":1734415162172,"title":"缓存管理","parentId":61}]}]'
);

----------------
-- 初始化平台管理站菜单
---------------
INSERT INTO "fbp_admin_init_menu"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_site_id", "c_tenant_id", "c_navs") VALUES 
(1, 
now(), 
1, 
now(),  
(select c_id from fbp_admin_site_info where c_code = 'sys'), 
(select c_id from fbp_admin_tenant_info where c_code = 'sys'), 
'[{"path":"/lc-ops/tenant-management","isDyn":"1","auth":"r.default","icon":"el-icon-discount","id":1725428354640123,"text":"租户管理","title":"租户管理","parentId":100,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-ops/appinstall","isDyn":"1","auth":"r.default","icon":"el-icon-present","id":1725428354640,"text":"应用管理","title":"应用中心","parentId":108,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-openplatform/third-party-systems-list","isDyn":"1","icon":"el-icon-s-unfold","onHandler":"0","id":1734428179524,"title":"接入管理","parentId":100},{"path":"/lc-ops/param/setting","isDyn":"1","icon":"el-icon-setting","onHandler":"0","id":1734428179524,"title":"参数设置","parentId":100,"auth":"","linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-ops/dzgl/path-manager","isDyn":"1","icon":"el-icon-place","onHandler":"0","id":1734428179524,"title":"地址管理","parentId":100},{"path":"/lc-ops/ywgg/devops-notice-list","isDyn":"1","icon":"el-icon-chat-line-square","onHandler":"0","id":1734428179524,"title":"运维公告","parentId":100},{"path":"/main/4c8fe6632cd172418095149bbe33bd21","auth":"r.default","icon":"el-icon-s-cooperation","title":"DSC管理","isDiy":"1","hidden":false,"isLeaf":false,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"anonymous":false,"easyvUrl":"","easyvKey":"","children":[{"path":"/lc-fbppdsm/datasource-list","isDyn":"1","auth":"r.default","icon":"el-icon-coin","id":1721112387738,"text":"数据源管理","title":"数据源管理","parentId":86,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-pstorage/list","isDyn":"1","auth":"r.default","icon":"el-icon-wallet","id":1721112439891,"text":"存储管理","title":"存储管理","parentId":88,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""},{"path":"/lc-pcache/cache-list","isDyn":"1","auth":"r.default","icon":"el-icon-cloudy","id":1721112413455,"text":"缓存管理","title":"缓存管理","parentId":93,"linkUrl":"","isLink":false,"needSso":false,"isEasyv":false,"isOauth2":false,"hidden":false,"anonymous":false,"easyvUrl":"","easyvKey":""}]}]'
);

----------------
-- 初始化平台管理站访问路径
---------------
INSERT INTO "fbp_path"(c_creator,c_create_time,c_tenant_id,c_tenant_code,c_site_id,c_site_code,c_path) VALUES (1, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 'sys', (select c_id from fbp_admin_site_info where c_code = 'sys'), 'sys', '/sys');

----------------
-- 初始化平台系统管理站访问路径
---------------
INSERT INTO "fbp_path"(c_creator,c_create_time,c_tenant_id,c_tenant_code,c_site_id,c_site_code,c_path) VALUES (1, now(), (select c_id from fbp_admin_tenant_info where c_code = 'sys'), 'sys', (select c_id from fbp_admin_site_info where c_code = 'sys_sg_manage'), 'sys_sg_manage', '/sysadmin');

4、将整个初始化应用【文件获取:oss://foa5-oss/deploy/fbp-plat-hold/5_14_30/apps_tenant.zip】解压后放在oss的whzk_fbp_demo/data/apps/下

5、部署平台服务:locas-fbp、mas-nginx、mas-gateway

注意:njs里对oss根目录签名应在根目录的data目录下;fbp服务数据库、redis等连接信息设置好后第一次启动会报错,从日志中获取机器码并找公司申请授权码

potainer 脚本示例:

json
version: "3.7"
networks:
  default:
    external: true
    name: mas-demo-network
      
services:
  mas-gateway:
    container_name: fbpmasgateway
    image: registry.cn-hangzhou.aliyuncs.com/tangram/mas-gateway:5.14.3
    environment:
      FOA5_NACOS_SERVER_ADDR: whzkdemonacos:8848
      FOA5_NACOS_USERNAME: nacos
      FOA5_NACOS_PASSWORD: whzknacos
      SPRING_PROFILES_ACTIVE: docker
      spring.codec.max-in-memory-size: 262144000
      FOA5_REDIS_HOST: 127.0.0.1
      FOA5_REDIS_PORT: 6377
      FOA5_REDIS_PWD: xxxx
      FOA5_REDIS_DATABASE: 11
      FBP_SESSION_CHECK_URL: http://fbp/app/boot/1.1.1/sessionIdCheck
      FBP_APIACM_URL: http://fbp/app/boot/1.1.1/loadApiAcmList
      GATEWAY_TIMEOUT: 300

  fbp:
    image: registry.cn-hangzhou.aliyuncs.com/tangram/locas-fbp:2.8.3
    environment:
      profile: docker
      nacos.enabled: true
      nacos.server-addr: whzkdemonacos:8848
      nacos.username: nacos
      nacos.password: whzknacos
      db.driver-class-name: com.aliyun.polardb.Driver
      db.url: jdbc:polardb://xxxxxxx:1521/xxxx?currentSchema=public&stringtype=unspecified
      db.username: foa5
      db.password: FOA5!0726
      boot.version: 1.1.1
      storege.type: oss
      oss.domain: xxxxx.aliyuncs.com
      oss.id: xxxxx
      oss.key: xxxxx
      oss.bucket: foa5-oss
      oss.root.dir: whzk_fbp_demo
      JVM_XMS: -Xms256M
      JVM_XMX: -Xmx1024M
      JVM_XSS: -Xss64M
      redis.host: 127.0.0.1
      redis.port: 6377
      redis.database: 11
      redis.password: xxxxx
      redis.expireSeconds: 240000
      server.license: xxxxxxx

  nginx:
    image: registry.cn-hangzhou.aliyuncs.com/tangram/mas-nginx:5.14.24
    ports:
      - "6430:80"
    volumes:
      - /data/softs/whzk_fbp_demo/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /data/softs/whzk_fbp_demo/nginx/conf/njs:/etc/nginx/njs

nginx 配置示例:

js
user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log  warn;
##pid文件(master进程ID的pid文件存放路径)的路径
pid        /var/run/nginx.pid;

worker_rlimit_nofile 65535;
load_module modules/ngx_http_js_module.so;

events {
  #仅对指定的客户端输出debug级别的日志语法debug_connection[IP|CIDR]
  #这个设置项实际上属于事件类配置因此必须放在events{……}中才会生效它的值可以是IP地址或者是CIRD地址
  #debug_connection 10.224.66.14;  #或是debug_connection 10.224.57.0/24
  #这样仅仅以上IP地址的请求才会输出debug级别的日志其他请求仍然沿用error_log中配置的日志级别
  #注意在使用debug_connection前需确保在执行configure时已经加入了--with-debug参数否则不会生效
	worker_connections  102400;
  accept_mutex on;
  multi_accept on;
  use epoll; 
}

##核心转储(coredump):在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作为调试只用,这就是所谓的核心转储(coredump).

http {
  # js_include指令后接脚本文件路径
  js_import ossObj from njs/oss_sign.js;
  # 定义签名字符串和GMT时间字符串
  js_set $ossDate ossObj.getGMTtime;
  js_set $ossAuth ossObj.ossSign;

  ##嵌入其他配置文件 语法include /path/file
  #参数既可以是绝对路径也可以是相对路径相对于Nginx的配置目录即nginx.conf所在的目录
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  access_log  /var/log/nginx/access.log  main;

  server_tokens off; #隐藏ngxin版本号
  sendfile        on;
  #tcp_nopush     on;

  #keepalive_timeout  0;
  keepalive_timeout  65;

  gzip on;                     #开启gzip压缩功能
  gzip_min_length 10k;         #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节就不用压缩因为没有意义本来就很小.
  gzip_buffers 4 16k;          #设置压缩缓冲区大小此处设置为4个16K内存作为压缩结果流缓存
  gzip_http_version 1.1;       #压缩版本
  gzip_comp_level 2;           #设置压缩比率最小为1处理速度快传输速度慢;9为最大压缩比处理速度慢传输速度快; 
  gzip_types text/css text/xml application/javascript;      #制定压缩的类型,线上配置时尽可能配置多的压缩类型!
  gzip_disable "MSIE [1-6]\.";       #配置禁用gzip条件支持正则此处表示ie6及以下不启用gzip因为ie低版本不支持
  gzip_vary on;    #选择支持vary header改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写表示在传送数据时给客户端说明我使用了gzip压缩
  
  add_header X-Frame-Options ALLOWALL;

  server {
    listen       80  default_server;
    server_name  _;

    #主机名称其后可以跟多个主机名称开始处理一个HTTP请求时nginx会取出header头中的Host与每个server中的server_name进行匹配以此决定到底由那一个server来处理这个请求有可能一个Host与多个server块中的server_name都匹配这时会根据匹配优先级来选择实际处理的server块server_name与Host的匹配优先级见文末
    server_name  localhost;
    client_max_body_size 200M;
		
    location / {
		root /usr/share/nginx/html;
		index  index.html index.htm;
		try_files $uri $uri/ /index.html;
    }
    
    location /ws {
            proxy_pass http://fbp:80;
            proxy_http_version 1.1;
            proxy_set_header Upgrade websocket;
            proxy_set_header Connection upgrade;
    }
	
	location /apps/ {               
		proxy_pass https://foa5-oss.oss-cn-hangzhou.aliyuncs.com/whzk_fbp_demo/data/apps/;
		proxy_set_header Date $ossDate;
		proxy_set_header Authorization $ossAuth;
	}

	location /resources/ {               
		proxy_pass https://foa5-oss.oss-cn-hangzhou.aliyuncs.com/whzk_fbp_demo/data/resources/;
		proxy_set_header Date $ossDate;
		proxy_set_header Authorization $ossAuth;
	}

    location /api/ {
        proxy_pass   http://fbpmasgateway/;
    }

    error_page 404 = @tempdown;
    location @tempdown {
         rewrite ^(.*)$ /index.html break;
    }
    
    #error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
  }
}

njs文件示例:

js
/*
  创建待签名字符串
  此方法为简化版,仅处理不带url参数的oss资源地址,其他情况可结合oss文档 + ali-oss sdk 文件内signUtil模块内的buildCanonicalString方法做修改
*/
function buildCanonicalString (method, resourcePath, date) {
  var signContent = [method.toUpperCase(), '', '', date, resourcePath]
  return signContent.join('\n')
}
/* 计算签名字符串 */
function computeSignature (accessKeySecret, canonicalString) {
  var signature = require('crypto').createHmac('sha1', accessKeySecret)
  return signature.update(canonicalString.toUTF8()).digest('base64')
}
/* 生成完整认证字符串 */
function authorization (accessKeyId, accessKeySecret, canonicalString) {
  return 'OSS ' + accessKeyId + ':' + computeSignature(accessKeySecret, canonicalString)
}
/* oss签名配置数据,换成你自己的PAM账号的AK和bucket */
var ossAccess = {
  accessKeyId: 'xxxxxxxxxx',
  accessKeySecret: 'xxxxxxxxxx',
  bucket: 'foa5-oss',
  rootDir: 'whzk_fbp_demo/data'
}
var GMTdate = '';
/* 返回oss header date字符串 */
function getGMTtime (r) {
  var currentDate = new Date();
  var currentDateUTCStr = currentDate.toUTCString();
  var dateStrs = currentDateUTCStr.split(" ");
  var result = dateStrs[0] + " " + dateStrs[1] + " " + dateStrs[2] + " " + dateStrs[3] + " " + dateStrs[4] + " GMT";
  GMTdate = result;
  return GMTdate}
/* 返回oss header authorization字符串 */
function ossSign (r) {
  var method = r.method
  var path = '/' + ossAccess.bucket
  if(ossAccess.rootDir== ''){
     path = path + r.uri
  }else{
     path = path + '/' + ossAccess.rootDir + r.uri
  }
  var canonicalString = buildCanonicalString(method, path, GMTdate)
  var result = authorization(ossAccess.accessKeyId, ossAccess.accessKeySecret, canonicalString)

  return result
}

export default {
  getGMTtime,ossSign
};

服务启动成功后访问平台管理站:http://ip:port/sys 【如:http://192.168.1.96:6455/sys 】 登录账号:sa;平台系统管理站:http://ip:port/sysadmin 【如:http://192.168.1.96:6455/sysadmin 】 登录账号:sysadmin;

内部资料,请勿外传