Appearance
MAS 模块化应用支撑平台
MAS是一个模块化的应用支撑平台,采用微服务和微应用架构,支持多租户、多站点、模块化开发和积木式搭建。基于该平台,可以快速开发各类业务微应用,通过组合微应用来搭建支持多租户和多站点的业务系统。它能够实现租户独立的、可个性化的各类业务系统(站点),并且支持全代码和低代码的开发方式。
功能范围
序号 | 子平台 | 说明 |
---|---|---|
1 | 平台管理中心 | 管理租户、站点、应用等 |
2 | 站群站点管理中心 | 实现一个站点的基本管理功能,包括菜单、主题及基本信息管理 |
3 | 帐户中心 | 实现站点账号管理、认证和角色授权 |
4 | MAUI开发框架 | 前端微应用开发框架,支持对前端内核扩展及业务的模块化开发 |
5 | 微服务开发框架 | 后端微服务开发框架,基于Spring Cloud Alibaba架构实现微服务的模块化开发 |
版本
v5.13.8,已于2024年7月19日发布
- 平台登录认证由token机制调整为会话机制
- 平台站点结构调整成站群结构
- 废弃mas-auth、mas-mq服务,websocket通讯由locas-fbp服务提供
非平台的应用、服务需要适配
前端自行发出的ajax请求头需要改成sessionId,并新增站群id 参考示例:
js
config.headers["sessionId"] = ctx.session.get("sessionId")
config.headers['mas-tenant-code'] = ctx.store.getters.setting.tenantCode
config.headers['mas-tenant-id'] = ctx.store.getters.setting.tenantId
config.headers['mas-site-code'] = ctx.store.getters.setting.siteCode
config.headers['mas-site-id'] = ctx.store.getters.setting.siteId
config.headers['mas-site-group-id'] = ctx.store.getters.setting.siteGroupId
后台微服务mas-core版本需升级为:5.11.7
使用mq消息的需调整为fbp的消息
更新内容
此版本主要更新内容如下:
新增
修改或修复
- mas-admin里移除了对fbp应用上架的配置,fbp直接指向上架后的应用
- vue版本还原到v2.6.12
- 调整平台登录token机制为会话机制,下架mas-auth服务【业务上不符合平台开发规范的使用token的请求需要调整】,废弃mas-auth服务,原登录相关的应用调整为fbp配置实现;【要求mas-gateway、locas-service中的redis连接要与fbp服务里系统缓存一致】
- 调整平台websocket通讯由FBP服务提供,废弃中间rabbitmq中间件和mas-mq服务【原公文项目中用到的待办数据推送、显示需调整,查看调整说明】
- 平台微服务部署时新增服务注册nacos可以设定账号密码(nacos开启服务身份认证)【修改过默认密码的nacos镜像地址:registry.cn-hangzhou.aliyuncs.com/tangram/mas-nacos:v2.2.3】,开启nacos身份认证需要配置环境变量
开启nacos身份认证
environment:
MODE: standalone
PREFER_HOST_MODE: hostname
NACOS_AUTH_ENABLE: true
NACOS_AUTH_TOKEN: ZHdxZmhncWlmaHFwb2lqZDktM3UxLTA5ZmgzMG5mcHdvamYwLWkxM2ZmMzJmZHN3Zg==
NACOS_AUTH_IDENTITY_KEY: fbp
NACOS_AUTH_IDENTITY_VALUE: fbp
- 平台站点结构调整,在原站点上新增站群;租户下可建多个站群,新建站群时会自动新建一个管理站点【对站群内其它站点的设置、账号、角色、菜单等进行管理】和管理员
- 平台账号新增用户编码、身份编码,解决业务系统之间单点登录时身份对接
- 平台登录认证调整为fbp接口配置的应用,登录应用上架后需要设置DSC【数据源、存储、缓存】(登录认证应用请查看locas2.7.28文档)
优化
更新资料获取
如何获取微服务镜像?
所有镜像可到容器仓库通过 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.13.0/mas-admin-5.13.0.jar
如何获取微应用tgz包?
所有安装包可到阿里云OSS仓库下载
- 路径:
oss://foa5-oss/deploy/release/[平台:mas/locas]/[应用名称]/[版本号]/[应用名称]-[版本号].tgz
如:oss://foa5-oss/deploy/release/mas/mas-panel/5.13.8/mas-panel-5.13.8.tgz
微服务版本明细
序号 | 模块 | 微服务 | 版本号 | 说明 |
---|---|---|---|---|
基础设施 | ||||
1 | Nacos服务 | nacos/nacos-server | 2.0.3 | |
2 | Redis | redis | 6.2.6-alpine3.15 | |
3 | RabbitMQ | byteflair/rabbitmq-stomp | latest | 可选 |
平台基础 | ||||
4 | 前端基座 | mas-nginx | 5.13.8 | 原foa5-nginx |
5 | 网关服务 | mas-gateway | 5.13.0 | 原foa-cloud-gateway |
6 | 站点系统管理 | mas-admin | 5.13.0 | 原foa-cloud-admin |
7 | 文件服务 | mas-file | 5.13.0 | 原foa-cloud-file |
扩展服务 | ||||
8 | 单点登录 | mas-sso | 5.13.0 | 可选,原foa-cloud-sso-cos |
9 | 定时任务 | mas-task | 5.13.0 | 可选,原foa-cloud-task |
10 | 在线WPS | mas-wps | 5.13.0 | 可选,原foa-cloud-wps |
11 | 浙政钉网关 | mas-dingtalk | 5.13.0 | 可选,原cos-api-gateway |
12 | 第三方接入api网关 | mas-open-gateway | 5.13.0 | 可选,nginx里需加配置参考文档 |
微应用版本明细
序号 | 模块 | 微应用 | 版本号 | 说明 |
---|---|---|---|---|
管理平台 | ||||
1 | 应用市场 | mas-ops-app | 5.13.4 | |
2 | 租户管理 | mas-ops-tenant | 5.13.4 | |
3 | 站点管理 | mas-ops-site | 5.13.4 | |
4 | api管理 | lc-apiacm | v1.0.0.4 获取地址:oss://foa5-oss/deploy/mas/lc-apiacm/ | 接口白名单管理器 |
5 | PC Explorer | mas-explorer | 5.13.8 | pc页面资源管理器 |
6 | 移动端 Explorer | mas-mobile-explorer | 5.13.8 | 移动页面资源管理器 |
站点系统管理 | ||||
1 | 账号管理 | mas-admin-account | 5.13.6 | 可替换 |
2 | 角色管理 | mas-admin-role | 5.13.6 | 可替换 |
3 | 单点登录 | mas-admin-sso | 5.13.6 | 可选,对应mas-sso |
4 | 菜单初始化 | mas-admin-menu | 5.13.6 | |
5 | 参数管理 | mas-admin-param | 5.13.6 | 可选 |
6 | 数据字典 | mas-admin-dictionary | 5.13.6 | 可选 |
7 | 数据分类 | mas-admin-catalog | 5.13.6 | 可选 |
8 | 操作日志 | mas-admin-log | 5.13.6 | 可选 |
9 | 在线用户 | mas-admin-online | 5.13.6 | 可选 |
10 | 站点设置 | mas-admin-site | 5.13.6 | |
主题 | ||||
1 | 清新绿(横向) | theme-horizontal-green | 5.13.8 | 可选 |
2 | 中国红(横向) | theme-horizontal-red | 5.13.8 | 可选 |
3 | 政务蓝(纵向) | theme-vertical-blue | 5.13.8 | 可选 |
4 | 清新绿(纵向) | theme-vertical-green | 5.13.8 | 可选 |
5 | 中国红(纵向) | theme-vertical-red | 5.13.8 | 可选 |
6 | 蓝色综合 | theme-multiple-blue | 5.13.8 | 可选 |
7 | 蓝色分栏 | theme-subfield-blue | 5.13.8 | 可选 |
8 | 大屏主题 | theme-fullscreen | 5.13.8 | 可选 |
9 | 移动账号密码主题 | theme-mobile-default | 5.13.8 | 可选 |
10 | 大屏亮色主题 | theme-fullscreen-light | 5.13.8 | 可选 |
扩展功能 | ||||
1 | 工作门户 | mas-panel | 5.13.8 | 可选 |
2 | 打印模块 | mas-printer | 5.13.8 | 可选 |
3 | 接入管理 | lc-thirdaccessmng | v1.0.0.5 获取地址:oss://foa5-oss/deploy/mas/lc-thirdapimng/ | 可选 |
4 | 接口授权管理(垂直鉴权) | lc-apiauthmng | v1.0.0.2 获取地址:oss://foa5-oss/deploy/mas/lc-thirdapimng/ | 可选 |
可选的微应用,没有特殊说明的,对应的微服务均为必选微服务或无需对应服务
浙政钉代理(IRS托管需要)
序号 | 模块 | 微应用 | 版本号 | 说明 |
---|---|---|---|---|
1 | 代理 | mas-ui-dingtalk | 5.8.2 | 可选 |
5.10升级至5.13.8
- 1、mas-admin服务连的库中执行(新增api访问控制表):
sql
DROP TABLE IF EXISTS "public"."t_api_manage";
CREATE TABLE "public"."t_api_manage" (
"c_id" serial8 NOT NULL,
"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 ) COLLATE "pg_catalog"."default",
"c_module" VARCHAR ( 50 ) COLLATE "pg_catalog"."default",
"c_path" VARCHAR ( 255 ) COLLATE "pg_catalog"."default",
"c_remark" VARCHAR ( 500 ) COLLATE "pg_catalog"."default",
CONSTRAINT "t_api_manage_pkey" PRIMARY KEY ( "c_id" )
) WITH ( OIDS = TRUE );
COMMENT ON COLUMN "public"."t_api_manage"."c_id" IS '主键';
COMMENT ON COLUMN "public"."t_api_manage"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "public"."t_api_manage"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "public"."t_api_manage"."c_creator" IS '创建人';
COMMENT ON COLUMN "public"."t_api_manage"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "public"."t_api_manage"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "public"."t_api_manage"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "public"."t_api_manage"."c_type" IS '类型';
COMMENT ON COLUMN "public"."t_api_manage"."c_module" IS '模块';
COMMENT ON COLUMN "public"."t_api_manage"."c_path" IS '路径';
COMMENT ON COLUMN "public"."t_api_manage"."c_remark" IS '描述';
--初始化mas-wps预览放行接口:
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:17:53.895', 1, '2023-09-15 15:17:53.895', 1, '', 'mas-wps', '/mas-wps/v2/3rd/**', 'mas-wps中台接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:16.785', 1, '2023-09-15 15:18:16.785', 2, '', 'mas-wps', '/mas-wps/v1/3rd/**', 'mas-wps中台接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:40.948', 1, '2023-09-15 15:18:40.948',3, '', 'mas-wps', '/mas-wps/download/attach', 'mas-wps中台回调下载接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:59.719', 1, '2023-09-15 15:18:59.719', 4, '', 'mas-wps', '/mas-wps/download/gz', 'mas-wps中台回调稿纸接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:59.719', 1, '2023-09-15 15:18:59.719', 5, '', 'mas-file', '/mas-file/file/download4wpsproxy', 'mas-file中台回调下载文件接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:59.719', 1, '2023-09-15 15:18:59.719', 6, '', 'mas-file', '/mas-file/file/fileinfo4wpsproxy', 'mas-file中台回调获取文件信息接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:59.719', 1, '2023-09-15 15:18:59.719', 7, '', 'mas-file', '/mas-file/file/downloadByOsskey4wpsproxy', 'mas-file中台回调oss下载文件接口');
INSERT INTO t_api_manage(c_last_modifier,c_last_modify_time,c_creator,c_create_time,c_sort_number,c_type,c_module,c_path,c_remark) VALUES (1, '2023-09-15 15:18:59.719', 1, '2023-09-15 15:18:59.719', 8, '', 'mas-file', '/mas-file/file/fileinfoByOsskey4wpsproxy', 'mas-file中台回调获取oss文件信息接口');
--初始化登录认证接口放行
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (1, '15-APR-24 20:06:56.809', 1, '15-APR-24 20:06:56.809', 1, NULL, '', 'mas-file', '/mas-file/file/downloadByReferenceId', '文件下载');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-userpwdlogin/**', 'fbp账号密码登录退出接口');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-zzdlogin/**', '浙政钉登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-qrlogin/**', 'PC扫码登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-fbpsso/**', 'fbp单点登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/boot/1.0.0/getConfig', '获取站点配置');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-usernamelogin/**', '用户名单点登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-fbpsso/**', 'FBP单点登录(含扫码预览)');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-ythlogin/**', '一体化单点登录');
TIP
业务上原来通过mas-gateway上的参数:FOA5_AUTH_WHITELIST配置的放行接口仍保留,后续需要放行接口通过应用:lc-apiacm来操作
mas-gateway上的参数:FOA5_WPS_WHITELIST已废弃,需要要通过lc-apiacm将其下配置的接口添加进来(升级脚本中初始化了开发已知的接口数据)
- 2、mas-admin服务连的库中执行:
sql
ALTER TABLE cos_portal_component ADD COLUMN c_ref_id VARCHAR(200);
COMMENT ON COLUMN "cos_portal_component"."c_ref_id" IS '应用文件id';
ALTER TABLE cos_portal_component ADD COLUMN c_setting text;
COMMENT ON COLUMN "cos_portal_component"."c_setting" IS '应用配置';
ALTER TABLE cos_site_component_grant ADD COLUMN c_setting text;
COMMENT ON COLUMN "cos_site_component_grant"."c_setting" IS '应用配置';
-- ----------------------------
-- Table structure for cos_admin_site_group_info
-- ----------------------------
DROP TABLE IF EXISTS "cos_admin_site_group_info";
CREATE TABLE "cos_admin_site_group_info" (
"c_id" serial8 NOT NULL,
"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),
CONSTRAINT "cos_admin_site_group_info_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "cos_admin_site_group_info"."c_id" IS '主键';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_tenant_code" IS '租户代码';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_code" IS '站群代码';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_name" IS '站群名称';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_activate_time" IS '生效时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_invalid_time" IS '失效时间';
-- 调整表结构
ALTER TABLE cos_admin_site_info ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_site_info ADD COLUMN c_site_group_code varchar(50);
ALTER TABLE cos_admin_site_info ADD COLUMN c_is_manage_site bool;
ALTER TABLE cos_admin_account_info ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_account_tenant ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_site_info ALTER COLUMN c_contact type varchar(50);
--账号表新增字段
ALTER TABLE cos_admin_account_info ADD COLUMN c_identity_code VARCHAR(100);
COMMENT ON COLUMN "cos_admin_account_info"."c_identity_code" IS '身份编码';
ALTER TABLE cos_admin_account_info ADD COLUMN c_user_code VARCHAR(100);
COMMENT ON COLUMN "cos_admin_account_info"."c_user_code" IS '用户编码';
ALTER TABLE cos_admin_account_info ADD COLUMN c_identity_desc VARCHAR(500);
COMMENT ON COLUMN "cos_admin_account_info"."c_identity_desc" IS '身份描述信息';
ALTER TABLE cos_admin_role_info ADD COLUMN c_site_group_id int8;
COMMENT ON COLUMN "cos_admin_role_info"."c_site_group_id" IS '站群id';
ALTER TABLE cos_admin_role_mapping ADD COLUMN c_site_group_id int8;
COMMENT ON COLUMN "cos_admin_role_mapping"."c_site_group_id" IS '站群id';
--升级平台管理租户为站群,其它租户等升级完后用升级应用进行升级
update cos_admin_site_info set c_is_manage_site = false;
--初始化平台站群
INSERT INTO "cos_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_activate_time", "c_invalid_time") VALUES (1, '11-JUL-24 16:59:10.659737', 3, '11-JUL-24 16:59:10.659737', 1, 1, 'sys', 'sys_sg', '默认站群', NULL, NULL);
--初始化平台站群管理站点
INSERT INTO "cos_admin_site_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_site_type", "c_title", "c_theme", "c_logo", "c_code", "c_name", "c_contact", "c_mobile", "c_email", "c_activate_time", "c_invalid_time", "c_site_domain", "c_inited", "c_tenant_id", "c_site_setting", "c_tenant_code", "c_app_key", "c_app_secret", "c_manage_sites", "c_site_group_id", "c_is_manage_site", "c_site_group_code") VALUES (1, '16-JUL-24 11:25:36.263', 1, '11-JUL-24 16:59:10', 1, 0, NULL, NULL, NULL, 'sys_sg_manage', '默认站点', 'sys_sg_manage_admin', NULL, NULL, NULL, NULL, NULL, NULL, 1, '{"appKey":"","appSecret":"","systemName":"平台管理站","shortName":"平台管理站"}', 'sys', '', '', NULL, (select c_id from cos_admin_site_group_info), 't', 'sys_sg');
--初始化平台站群管理站点账号
INSERT INTO "cos_admin_account_info"("c_granted_apis", "c_account_expired", "c_account_locked", "c_credentials_expired", "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_login_name", "c_login_dingding", "c_login_phone", "c_login_email", "c_status", "c_password_policy", "c_password", "c_mobile_device", "c_allow_mobile_access", "c_last_login_time", "c_last_login_client_ip", "c_last_login_failed", "c_default_tenant", "c_account_source", "c_account_type", "c_full_name", "c_tag", "c_theme") VALUES ('/**', '0', '0', '0', 1, now(), NULL, NULL, 1, 1, 'sys_sg_manage_admin', NULL, NULL, NULL, '1', NULL, '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', NULL, NULL, NULL, NULL, NULL, 'sys', NULL, 11, '平台站群管理员', NULL, NULL);
--将账号关联站群
update cos_admin_account_info set c_site_group_id = (select c_id from cos_admin_site_group_info) where c_tenant_id = 1;
--将站群管理账号授权到管理站点
INSERT INTO "cos_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_theme") VALUES (1, '15-AUG-23 13:24:52.813', '1', '15-AUG-23 13:24:52.813', 1, 1, (select c_id from cos_admin_account_info where c_tenant_id = 1 and c_login_name = 'sys_sg_manage_admin'), (select c_id from cos_admin_site_info where c_code = 'sys_sg_manage'), NULL);
--将管理平台账号关联站群
update cos_admin_account_tenant set c_site_group_id = (select c_id from cos_admin_site_group_info) where c_tenant_id = 1;
--将平台租户下的站点关联进站群
update cos_admin_site_info set c_site_group_id = (select c_id from cos_admin_site_group_info),c_site_group_code = 'sys_sg' where c_tenant_code = 'sys';
- 3、mas-task服务连的库中执行:
sql
ALTER TABLE "public"."cos_quartz_job"
ADD COLUMN "c_job_params" varchar(4000),
ADD COLUMN "c_method_url" varchar(2000);
- 4、在系统中先将应用上架,然后将新版的mas-ops-app、mas-ops-tenant、mas-ops-site、mas-explorer、lc-sm2、lc-syscachemng【缓存清理】、lc-userpwdlogin授权到平台管理站点
注意!
该操作必须在更新平台其他服务、应用之前操作,平台升级后,如果站点上没有mas-explorer、lc-userpwdlogin、lc-sm2应用将没法登录到平台管理站点;如果操作晚了,可以参照执行下面语句,并将应用解压到平台应用目录apps下
mas-explorer、lc-userpwdlogin、lc-sm2应用解压到平台apps下,按应用名/版本号/应用文件的路径放置
其他站点里根据需要通过应用上架、授权方式操作
移动站点:mas-mobile-explorer(移动管理器)【必要】、lc-zzdlogin(浙政钉免登)、lc-userpwdlogin(账号密码登录)
pc站点:mas-explorer(pc管理器)【必要】、lc-qrlogin(扫码登录)、lc-userpwdlogin(账号密码登录)、lc-usernamelogin(登录名单点登录【金三门】)、lc-fbpsso(平台用户编码、身份编码单点登录;页面扫码预览)、lc-unlocklogin(解锁)、lc-ythlogin(一体化单点登录)
sql
--------------------------------------------------------------------------------------------------------------------
-- 以mas-explorer应用为例,其它应用初始化进去可参考这个sql语句,只需替换应用code【mas-explorer】和版本code【5.13.x】
--------------------------------------------------------------------------------------------------------------------
--应用上架记录
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-explorer','5.13.x');
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-explorer-5.13.x.tgz');
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-explorer','5.13.x');
--应用发布记录
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-explorer','5.13.x','PC端explorer',0,0,'["app","page","print"]','2023-08-15 14:00:00');
--应用对应分类
insert into t_app_catalog_mapping(c_catalog_id, c_app_code) values (1, 'mas-explorer');
--应用授权
insert into cos_site_component_grant(c_tenant_id,c_site_id,c_app_code) values(1,1,'mas-explorer');
insert into cos_portal_component_grant(c_tenant_id,c_app_code) values(1,'mas-explorer');
- 5、上架完后在mas-admin服务连的库中执行:
sql
-----------------------------------------------------------------------------------
-- 低代码fbp开发的应用如果有DSC配置,在应用初始化进去后需要将配置数据初始化进去,否则运行报错
-----------------------------------------------------------------------------------
-- lc-userpwdlogin 登录应用
update cos_portal_component SET c_setting = '[{"code":"datasource","name":"数据源配置","config":[{"catalog":"1","tenantId":3,"project":"userpwdlogin","id":143,"type":"1","value":"mas","version":"v1.0.0","key":"ds1","desc":"mas平台"},{"catalog":"1","tenantId":3,"project":"userpwdlogin","id":135,"type":"1","value":"locas","version":"v1.0.0","key":"ds2","desc":"FBP平台"}]},{"code":"cache","name":"缓存配置","config":[{"catalog":"2","tenantId":3,"project":"userpwdlogin","id":160,"type":"1","value":"sys_cache_locas","version":"v1.0.0","key":"ch1","desc":"系统缓存"}]}]' WHERE c_code = 'lc-userpwdlogin';
-- lc-syscachemng 缓存应用
update cos_portal_component SET c_setting = '[{"code":"datasource","name":"数据源配置","config":[{"catalog":"1","tenantId":3,"project":"syscachemng","id":148,"type":"1","value":"mas","version":"v1.0.0","key":"ds1","desc":"mas平台数据源"}]},{"code":"cache","name":"缓存配置","config":[{"catalog":"2","tenantId":3,"project":"syscachemng","id":149,"type":"1","value":"sys_cache_locas","version":"v1.0.0","key":"ch1","desc":"系统缓存"}]}]' WHERE c_code = 'lc-syscachemng';
- 6、如果mas-nginx里的配置是挂载并且使用了njs【如:oss签名】的需要调整
引入njs文件文件名不支持中横线 引用方式调整,待使用的方法需要在njs文件里先导出,再在nginx配置文件里导入 getGMTtime函数逻辑调整
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: 'xxxx',
accessKeySecret: 'xxxx',
bucket: 'foa5-wh96',
rootDir: ''
}
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)
r.log(result)
return result
}
export default {
getGMTtime,ossSign
};
nginx配置文件引入njs, 并使用示例:
js
http {
js_import ossObj from njs/oss_sign.js;
js_set $ossDate ossObj.getGMTtime;
js_set $ossAuth ossObj.ossSign;
- 7、调整nginx里对websocket的代理,将原来代理到rabbitmq服务的调整到代理到fbp服务【业务上通过mas-mq推送消息的代码需调整采用fbp服务来推送,查看调整说明】,示例如下:
js
location /ws {
proxy_pass http://fbp:80;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
}
8、先执行locas升级文档中【2.4升级至2.7.28】升级步骤【注意:将locas升级步骤2里的fbp服务的boot应用文件要放入mas平台上架的应用目录:apps目录下;迁移数据源,初始DSC系统数据(数据源、存储、缓存)】
9、调整mas-gateway服务里的redis配置,需与locas-service服务和locas-fbp服务的系统缓存(初始化redis服务记录)连的redis一致
10、需新部署locas-fbp服务;注意调整locas-fbp服务的配置:如果平台应用是本地存储,需在mas-nginx里新增挂载,将平台应用目录apps整体挂载到fbp服务的apps目录,如: - /data/softs/mas/apps:/Mas-FBP-Server/data/apps;如果是oss存储,需将oss.root.dir指向平台应用存储目录apps
11、mas平台这边可以移除mas-auth、mas-mq服务
12、升级后台服务,升级成功后用平台管理员登录,将其它应用升级【fbp开发的应用上架后需要设置DSC,设置完后需清理缓存,】
14、将lc-updatesitegroup应用上架【获取地址:oss://foa5-oss/deploy/files/lc-updatesitegroup-v1.0.0.9.tgz】,并授权给平台管理站点,用该应用将平台站点升级成站群结构;【升级后原租户下的站点都归集为一个站群并有一个管理站点,对站点的菜单、站点设置、账号等的管理操作将在站群里的管理站点上操作】
15、将fbp开发的登录应用授权到对应站点,否则原站点无法登录
5.12升级至5.13
1、mas-admin连的库里执行站群相关表与结构调整语句
sql
-- ----------------------------
-- Table structure for cos_admin_site_group_info
-- ----------------------------
DROP TABLE IF EXISTS "cos_admin_site_group_info";
CREATE TABLE "cos_admin_site_group_info" (
"c_id" serial8 NOT NULL,
"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),
CONSTRAINT "cos_admin_site_group_info_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "cos_admin_site_group_info"."c_id" IS '主键';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_tenant_code" IS '租户代码';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_code" IS '站群代码';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_name" IS '站群名称';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_activate_time" IS '生效时间';
COMMENT ON COLUMN "cos_admin_site_group_info"."c_invalid_time" IS '失效时间';
-- 调整表结构
ALTER TABLE cos_admin_site_info ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_site_info ADD COLUMN c_site_group_code varchar(50);
ALTER TABLE cos_admin_site_info ADD COLUMN c_is_manage_site bool;
ALTER TABLE cos_admin_account_info ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_account_tenant ADD COLUMN c_site_group_id int8;
ALTER TABLE cos_admin_site_info ALTER COLUMN c_contact type varchar(50);
--账号表新增字段
ALTER TABLE cos_admin_account_info ADD COLUMN c_identity_code VARCHAR(100);
COMMENT ON COLUMN "cos_admin_account_info"."c_identity_code" IS '身份编码';
ALTER TABLE cos_admin_account_info ADD COLUMN c_user_code VARCHAR(100);
COMMENT ON COLUMN "cos_admin_account_info"."c_user_code" IS '用户编码';
ALTER TABLE cos_admin_account_info ADD COLUMN c_identity_desc VARCHAR(500);
COMMENT ON COLUMN "cos_admin_account_info"."c_identity_desc" IS '身份描述信息';
ALTER TABLE cos_admin_role_info ADD COLUMN c_site_group_id int8;
COMMENT ON COLUMN "cos_admin_role_info"."c_site_group_id" IS '站群id';
ALTER TABLE cos_admin_role_mapping ADD COLUMN c_site_group_id int8;
COMMENT ON COLUMN "cos_admin_role_mapping"."c_site_group_id" IS '站群id';
--初始化登录认证接口放行
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (1, '15-APR-24 20:06:56.809', 1, '15-APR-24 20:06:56.809', 1, NULL, '', 'mas-file', '/mas-file/file/downloadByReferenceId', '文件下载');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-userpwdlogin/**', 'fbp账号密码登录退出接口');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-zzdlogin/**', '浙政钉登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-qrlogin/**', 'PC扫码登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-fbpsso/**', 'fbp单点登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/boot/1.0.0/getConfig', '获取站点配置');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-usernamelogin/**', '用户名单点登录');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-fbpsso/**', 'FBP单点登录(含扫码预览)');
INSERT INTO "t_api_manage"( "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_type", "c_module", "c_path", "c_remark") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, '', 'fbp', '/fbp/app/lc-ythlogin/**', '一体化单点登录');
-- 初始化平台站群
INSERT INTO "cos_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_activate_time", "c_invalid_time") VALUES (1, '11-JUL-24 16:59:10.659737', 3, '11-JUL-24 16:59:10.659737', (select c_id from cos_admin_tenant_info where c_code = 'sys'), 1, 'sys', 'sys_sg', '默认站群', NULL, NULL);
--初始化平台站群管理站点
INSERT INTO "cos_admin_site_info"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_site_type", "c_title", "c_theme", "c_logo", "c_code", "c_name", "c_contact", "c_mobile", "c_email", "c_activate_time", "c_invalid_time", "c_site_domain", "c_inited", "c_tenant_id", "c_site_setting", "c_tenant_code", "c_app_key", "c_app_secret", "c_site_group_id", "c_is_manage_site", "c_site_group_code") VALUES (1, '16-JUL-24 11:25:36.263', 1, '11-JUL-24 16:59:10', 1, 0, NULL, NULL, NULL, 'sys_sg_manage', '默认站点', 'sys_sg_manage_admin', NULL, NULL, NULL, NULL, NULL, NULL, (select c_id from cos_admin_tenant_info where c_code = 'sys'), '{"appKey":"","appSecret":"","systemName":"平台管理站","shortName":"平台管理站"}', 'sys', '', '', (select c_id from cos_admin_site_group_info WHERE c_code = 'sys_sg'), 't', 'sys_sg');
--初始化平台站群管理站点账号
INSERT INTO "cos_admin_account_info"("c_granted_apis", "c_account_expired", "c_account_locked", "c_credentials_expired", "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_login_dingding", "c_login_phone", "c_login_email", "c_status", "c_password_policy", "c_password", "c_mobile_device", "c_allow_mobile_access", "c_last_login_time", "c_last_login_client_ip", "c_last_login_failed", "c_default_tenant", "c_account_source", "c_account_type", "c_full_name", "c_tag", "c_theme") VALUES ('/**', '0', '0', '0', 1, now(), NULL, NULL, 1, (select c_id from cos_admin_tenant_info where c_code = 'sys'),(select c_id from cos_admin_site_group_info WHERE c_code = 'sys_sg'), 'sys_sg_manage_admin', NULL, NULL, NULL, '1', NULL, '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', NULL, NULL, NULL, NULL, NULL, 'sys', NULL, 0, '平台系统管理员', NULL, NULL);
--将账号关联到站群
update cos_admin_account_info set c_site_group_id = (select c_id from cos_admin_site_group_info WHERE c_code = 'sys_sg') where c_tenant_id = (select c_id from cos_admin_tenant_info where c_code = 'sys');
--将账号授权到站点
INSERT INTO "cos_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 (NULL, NULL, NULL, NULL, NULL, (select c_id from cos_admin_tenant_info where c_code = 'sys'), (select c_id from cos_admin_account_info where c_login_name = 'sys_sg_manage_admin'), (select c_id from cos_admin_site_info where c_code = 'sys_sg_manage'),(select c_id from cos_admin_site_group_info WHERE c_code = 'sys_sg'));
--平台账号站点授权表关联对应站群id
update cos_admin_account_tenant set c_site_group_id = (select c_id from cos_admin_site_group_info WHERE c_code = 'sys_sg') where c_tenant_id = (select c_id from cos_admin_tenant_info where c_code = 'sys');
2、先执行locas2.6.10升级至2.7.28步骤里表结构相关步骤
3、先上架应用:mas-ops-app、mas-ops-site、mas-ops-tenant、lc-sm2、mas-explorer、lc-userpwdlogin、lc-syscachemng并发布版本;上架完后确保平台管理站点上授权了lc-sm2、mas-explorer、lc-userpwdlogin三个应用,且版本为最新否则服务更新后无法登录;
4、上架完后在mas-admin服务连的库中执行:
sql
-----------------------------------------------------------------------------------
-- 低代码fbp开发的应用如果有DSC配置,在应用初始化进去后需要将配置数据初始化进去,否则运行报错
-----------------------------------------------------------------------------------
-- lc-userpwdlogin 登录应用
update cos_portal_component SET c_setting = '[{"code":"datasource","name":"数据源配置","config":[{"catalog":"1","tenantId":3,"project":"userpwdlogin","id":143,"type":"1","value":"mas","version":"v1.0.0","key":"ds1","desc":"mas平台"},{"catalog":"1","tenantId":3,"project":"userpwdlogin","id":135,"type":"1","value":"locas","version":"v1.0.0","key":"ds2","desc":"FBP平台"}]},{"code":"cache","name":"缓存配置","config":[{"catalog":"2","tenantId":3,"project":"userpwdlogin","id":160,"type":"1","value":"sys_cache_locas","version":"v1.0.0","key":"ch1","desc":"系统缓存"}]}]' WHERE c_code = 'lc-userpwdlogin';
-- lc-syscachemng 缓存应用
update cos_portal_component SET c_setting = '[{"code":"datasource","name":"数据源配置","config":[{"catalog":"1","tenantId":3,"project":"syscachemng","id":148,"type":"1","value":"mas","version":"v1.0.0","key":"ds1","desc":"mas平台数据源"}]},{"code":"cache","name":"缓存配置","config":[{"catalog":"2","tenantId":3,"project":"syscachemng","id":149,"type":"1","value":"sys_cache_locas","version":"v1.0.0","key":"ch1","desc":"系统缓存"}]}]' WHERE c_code = 'lc-syscachemng';
5、调整mas-gateway服务里的redis配置,需与locas-service服务和locas-fbp服务的系统缓存(初始化redis服务记录)连的redis一致
6、mas-admin服务的环境变量已去掉FBP_APP_UPLOADOSS、FBP_OSS_ROOT_DIR,需调整locas-fbp服务的配置:如果平台应用是本地存储,需在mas-nginx里新增挂载,将平台应用目录apps整体挂载到fbp服务的apps目录,如: - /data/softs/mas/apps:/Mas-FBP-Server/data/apps;如果是oss存储,需将oss.root.dir指向平台应用存储目录apps
7、平台已用fbp里的websocket机制取代了rabbitmq和mas-mq的能力,环境里如果用到了websocket消息的项目需要调整,mas-nginx配置里对ws的代理需要调整代理到fbp服务
js
location /ws {
proxy_pass http://fbp:80;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
}
websocket消息业务代码调整
后台服务: fbp提供了WebsocketTask用户配置发送消息服务;也提供了一个发送消息的接口,接口地址:http://fbp:80/app/boot/1.0.0/sendWebsocketMsg mas平台其它服务中调用fbp提供的接口发消息示例:
java
HttpHeaders headers = new HttpHeaders();
//与fbp服务需application/json方式交互
headers.setContentType(MediaType.APPLICATION_JSON);
//接口认证所需参数
headers.add("sessionId", globalContext.getSessionId());
headers.add("KEY_CURRENT_TENANT_ID", String.valueOf(globalContext.getCurrentTenantId()));
headers.add("KEY_CURRENT_TENANT_CODE", globalContext.getCurrentTenantCode());
headers.add("KEY_CURRENT_SITE_ID", String.valueOf(globalContext.getCurrentSiteId()));
headers.add("KEY_CURRENT_SITE_CODE", globalContext.getCurrentSiteCode());
//需要发送的业务数据对象
Map<String,Object> bizData = new HashMap<>();
bizData.put("name","张三");
bizData.put("age",18);
//websocket发送消息对象
Map<String,Object> msgObj = new HashMap<>();
msgObj.put("type","foa_gw"); //消息标识
msgObj.put("mData",bizData); //消息内容
String params = JsonUtils.toJson(msgObj);
HttpEntity entity = new HttpEntity<>(params,headers);
restTemplate.postForEntity("http://192.168.1.182:80/app/boot/1.0.0/sendWebsocketMsg", entity, String.class);
前台页面:通过事件监听获取后台推送的消息,监听的事件为后台服务传递的type值
js
created(){
this.$eventbus.$on("foa_gw", (msg)=>{
//msg对像有type和data数据,data对应业务数据
console.log('msg=====:',msg)
});
}
8、执行locas升级步骤2后,更新并启动mas、locas服务
9、将lc-updatesitegroup应用上架【获取地址:oss://foa5-oss/deploy/files/lc-updatesitegroup-v1.0.0.9.tgz】,并授权给平台管理站点,用该应用将其它租户站点升级成站群结构;【升级后原租户下的站点都归集为一个站群并有一个管理站点,对站点的菜单、站点设置、账号等的管理操作将在站群里的管理站点上操作】
10、将fbp开发的登录应用授权到对应站点,否则原站点无法登录
初始化安装
- mas平台polardb数据库环境全新安装脚本获取地址:oss://foa5-oss/deploy/mas-polardb-sqls/5.13.8/
注意:
- mas平台已经与locas相互融合了,执行初始化脚本要注意看脚本中的注释内容