Skip to content
本页目录

MAS 模块化应用支撑平台

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

功能范围

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

版本

v5.10.11,发布时间2023年10月16日

更新内容

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

新增

  • 应用下架时如果该应用有站点在使用时,列出使用该应用的站点信息,可强制下架
  • 应用下架时清理关联的数据(应用、版本、授权、应用菜单)
  • 系统安全加固:多因子认证(账号+密码+验证码[图形码];验证码[图形码] + 扫码登录)、弱口令检测、账号密码国密支持、隐私数据保护(手机号)
  • 安全加固新增配置项 平台mas-admin、mas-auth服务模块参数配置
  • 平台账号密码国密加密示例数据:【原文:Sz@202209 加密算法:sm3 加密盐:kraM09MvTL7yK6jx3LN0EDLvn3yhg8Vxc1X2JJ9w 密文:03d955c484e2a4ea8c5aadc480c25276926d45879198ed2b8abc6ea99e126d12】
  • 第三方接入管理应用
  • mas-nginx支持自定义服务配置。使用说明点击进入
  • 支持三员管理,实现三权分立:站点管理新建角色:cos_aqy_role(安全员)、cos_shy_role(审核员),在角色管理中将安全员、审核员授权给对应的账户,并在初始化菜单中将“授权管理”菜单加入页面,用安全员登录确保能对角色授权后再将站点管理员授权“安全员”角色,站点管理员重新登录后将不会再有角色关联账号(授权)功能
  • 新增多个账号共uid(浙政钉用户id)
  • 新增多个账号关联同一个uid(浙政钉用户id)扫码登录时弹出多个账号由用户来决定使用哪个账号登录

修改或修复

  • 系统管理-账号管理调整成以租户视角来管理。提供按站点、登录名、账号名、手机号检索,展示账号授权站点信息
  • 修复站点管理重置首页报错
  • 应用角色去掉版本逻辑
  • 修复重新登录登录界面不正确(本次登录以上次登录的主题显示,未按当前登录站点主题展示)
  • 修复退出登录后刷新界面,出现无效获取用户信息请求(上架cz-uom-store这类应用的站点)
  • 修复自定义主题关联到站点账号授权记录上,解决一个租户下一个账号在多个站点内使用时可以按站点来设置个性化主题
  • 修复重新登录后缓存数据未重置更新问题
  • 修复多个账号共uid导致一体化单点登录问题
  • 修复移动页面不能扫码预览
  • 修复扫码登录重复发请求

优化

  • 开发的应用菜单里声明的权限表达式在初始化菜单时带出,可以调整应用内置的权限表达式

更新资料获取

如何获取微服务镜像?

所有镜像可到容器仓库通过 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.10.11/mas-admin-5.10.11.jar

如何获取微应用tgz包?

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

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

微服务版本明细

序号模块微服务版本号说明
基础设施
1Nacos服务nacos/nacos-server2.0.3
2Redisredis6.2.6-alpine3.15
3RabbitMQbyteflair/rabbitmq-stomplatest可选
平台基础
4前端基座mas-nginx5.10.11原foa5-nginx
5网关服务mas-gateway5.10.11原foa-cloud-gateway
6站点系统管理mas-admin5.10.11原foa-cloud-admin
7鉴权服务mas-auth5.10.11原foa-cloud-auth
8文件服务mas-file5.10.11原foa-cloud-file
扩展服务
9单点登录mas-sso5.10.11可选,原foa-cloud-sso-cos
10MQ服务mas-mq5.10.11可选,原foa-cloud-mq
11定时任务mas-task5.10.11可选,原foa-cloud-task
12在线WPSmas-wps5.10.11可选,原foa-cloud-wps
13浙政钉网关mas-dingtalk5.10.11可选,原cos-api-gateway
14第三方接入api网关mas-open-gateway5.10.11可选,nginx里需加配置参考文档

微应用版本明细

序号模块微应用版本号说明
管理平台
1应用市场mas-ops-app5.10.2
2租户管理mas-ops-tenant5.10.2
3站点管理mas-ops-site5.10.2
站点系统管理
1账号管理mas-admin-account5.10.3可替换
2角色管理mas-admin-role5.10.3可替换
3单点登录mas-admin-sso5.10.3可选,对应mas-sso
4菜单初始化mas-admin-menu5.10.3
5参数管理mas-admin-param5.10.3可选
6数据字典mas-admin-dictionary5.10.3可选
7数据分类mas-admin-catalog5.10.3可选
8操作日志mas-admin-log5.10.3可选
9在线用户mas-admin-online5.10.3可选
10站点设置mas-admin-site5.10.3
主题
1清新绿(横向)theme-horizontal-green5.10.11可选
2中国红(横向)theme-horizontal-red5.10.11可选
3政务蓝(纵向)theme-vertical-blue5.10.11可选
4清新绿(纵向)theme-vertical-green5.10.11可选
5中国红(纵向)theme-vertical-red5.10.11可选
6蓝色综合theme-multiple-blue5.10.11可选
7蓝色分栏theme-subfield-blue5.10.11可选
8大屏主题theme-fullscreen5.10.11可选
9移动账号密码主题theme-mobile-default5.10.11可选
扩展功能
1工作门户mas-panel5.10.11可选
2打印模块mas-printer5.10.11可选
3接入管理lc-thirdapimngv1.0.0.1 获取地址:oss://foa5-oss/deploy/mas/lc-thirdapimng/可选
4站点管理mas-ops-vconsole5.10.2

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

浙政钉代理(IRS托管需要)

序号模块微应用版本号说明
1代理mas-ui-dingtalk5.8.2可选

5.9升级至5.10.11

  • 1、如果调整密码加密算法、敏感要素(手机号)加密需要处理存量数据

  • 2、调整账号表手机号字段长度:

sql
alter table cos_admin_account_info alter COLUMN c_login_phone type varchar(100);
  • 3、mas平台库里执行:
sql
ALTER TABLE "cos_portal_import_record"
ADD COLUMN "c_app_code" varchar(100);
COMMENT ON COLUMN "cos_portal_import_record"."c_app_code" IS '应用code';
  • 4、mas平台库里执行:
sql
delete from cos_admin_role_info where c_id in
(select a.c_id from cos_admin_role_info a inner join
(select c_site_id, c_portal_component_code, max(c_id) as c_id from cos_admin_role_info where c_role_type = 0 group by c_site_id, c_portal_component_code ) b
on a.c_site_id = b.c_site_id and a.c_portal_component_code = b.c_portal_component_code and a.c_id !=b.c_id);

update cos_admin_role_info set c_version = '';
  • 5、 自己开发的主题代码需要处理下:
json
pageMode() {
      return this.$app.ctx.mode != 'page'
    }

    替换为如下:
    
    pageMode() {
      return !this.$store.getters.setting.editMode
    }
  • 6、mas平台库里执行:
sql
ALTER TABLE cos_admin_account_tenant ADD COLUMN c_theme VARCHAR(100);
  COMMENT ON COLUMN "cos_admin_account_tenant"."c_theme" IS '账号自定义主题';
  • 7、mas平台库里执行:
sql
ALTER TABLE cos_admin_account_info ADD COLUMN c_login_alias VARCHAR(200);
   COMMENT ON COLUMN "cos_admin_account_info"."c_login_alias" IS '登录别名';

5.10.9升级至5.10.11

  • 1、mas平台库里执行:
sql
ALTER TABLE cos_admin_account_info ADD COLUMN c_login_alias VARCHAR(200);
   COMMENT ON COLUMN "cos_admin_account_info"."c_login_alias" IS '登录别名';

初始化安装

  • mas平台polardb数据库环境全新安装脚本获取地址:oss://foa5-oss/deploy/mas-polardb-sqls/5.10.11/

注意:

  • 如果需要调整管理平台名称、平台管理员账号请调整sql脚本里对应的insert语句再执行
sql
-- 如需要调整管理平台站点页面名称请修改c_title字段对应的值(初始化默认值为:中科天翔系统管理平台)
-- 如需要调整平台管理员账号请修改c_contact字段对应的值(初始化默认值为:whzk),需对应修改cos_admin_account_info表里的c_login_name字段和密码值,见下一说明
INSERT INTO "cos_admin_site_info"("c_id", "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") VALUES (1, 1, NULL, 1, NULL, 1, 0, '中科天翔系统管理平台', '', '', 'sys', '系统站点', 'whzk', '', '', NULL, NULL, '[]', NULL, 1, '{"systemName":"中科天翔系统管理平台","logo":"","theme":"maui-explorer.default","shortName":"管理平台","loginImage":""}', 'sys', NULL, NULL, NULL);
  • 如果将平台部署成国密加密,需调整账号初始化语句密码字段值
sql
-- 如需要调整平台管理员账号请修改c_login_name字段对应的值(初始化默认值为:whzk),如调整还需对应调整c_password字段值
-- 平台管理员账号初始化脚本密码加密方式为:bcrypt,如将平台部署成国密加密方式(sm3),需调整c_password字段值为sm3的密文
INSERT INTO "cos_admin_account_info"("c_id", "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", "c_avatar", "c_account_uuid") VALUES (1, '/**', '0', '0', '0', 1, now(), NULL, NULL, 1, 1, 'whzk', NULL, NULL, NULL, '1', NULL, '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', NULL, NULL, NULL, NULL, NULL, 'sys', NULL, 0, '系统管理员', NULL, 'maui-explorer.default', '48f5333954584687b9fe5020404e90f6', '03cdec6f43014eba880b797bf8653e17');
  • 如果需要调整应用分类请参照如下语句调整,主要调整c_code,c_value字段值或增加insert into语句
sql
INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '1','系统管理',1);

INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '2','低代码',2);

INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '3','主题应用',3);

INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '4','其他',4);
  • 因特性版本发布后会存在小版本发布,在全新安装前根据实际调整好3个运维应用的版本信息后再执行
sql
--调整c_app_version字段对应的值为实际的运维应用版本
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-app','5.9.5');
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-tenant','5.9.5');
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-site','5.9.5');

--调整c_file_name字段对应的值为实际的运维应用版本应用文件名
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-app-5.9.5.tgz');
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-tenant-5.9.5.tgz');
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-site-5.9.5.tgz');

--调整c_app_version字段对应的值为实际的运维应用版本
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-app','5.9.5');
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-tenant','5.9.5');
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-site','5.9.5');

--调整c_version字段对应的值为实际的运维应用版本
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-app','5.9.5','应用管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-tenant','5.9.5','租户管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-site','5.9.5','站点管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');

内部资料,请勿外传