数字人管理平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
yk 738f91971c 兼容东方微银OA接口同步,兼容删人员数据,修改update 1 vuosi sitten
bin init 2 vuotta sitten
docker yinruoxi: 2 vuotta sitten
multi-ui init 2 vuotta sitten
sql init 2 vuotta sitten
temp init 2 vuotta sitten
xueyi-api 兼容东方微银OA接口同步,兼容删人员数据 1 vuosi sitten
xueyi-auth 1,修改SysEnterpriseStaff to SysEnterpriseStaffPo 1 vuosi sitten
xueyi-common 兼容东方微银OA接口同步,兼容删人员数据,修改update 1 vuosi sitten
xueyi-gateway Api auth修改,带deviceId或devId进行权限验证,无需走feign那套请求流程 1 vuosi sitten
xueyi-modules 兼容东方微银OA接口同步,兼容删人员数据,修改update 1 vuosi sitten
xueyi-ui change gen db 2 vuotta sitten
xueyi-visual merge dev to main 1 vuosi sitten
.gitignore fix gitignore 2 vuotta sitten
Jenkinsfile yinruoxi: 2 vuotta sitten
Jenkinsfile1 yinruoxi: 2 vuotta sitten
LICENSE init 2 vuotta sitten
README.md 更新 'README.md' 2 vuotta sitten
docker-compose.yml yinruoxi: 1 vuosi sitten
my.cnf init 2 vuotta sitten
pom.xml yinruoxi 1 vuosi sitten
scpJar.sh add meeting 2 vuotta sitten
scpSys.sh add meeting 2 vuotta sitten
scpSysDocker.sh add redource 2 vuotta sitten
sonar-project.properties yinruoxi: 2 vuotta sitten
tmp fix 2 vuotta sitten

README.md

Digimeta-MultiSaas

基于 Vue3/TypeScript/Ant-Design UI 和 Spring Cloud & Alibaba/Mybatis-Plus 的多租户SaaS开发框架。

简介

基于SpringBoot | Spring Cloud & Alibaba | Mybatis-Plus | Vue3 | vite2 | TypeScript | Ant-Design-Vue UI 的微服务多租户SaaS开发框架,为企业级多租户Saas及集团化应用提供快速开发解决方案。

特性

  • 多重隔离控制:物理隔离&&逻辑隔离,共享多租户&&隔离多租户
  • 动态多源策略:动态源增减&&租户动态识别源
  • 租户控制优化:通用数据&&混合租户&&独立租户多种租户模式,自动拦截,开发无感知
  • 权限控制优化:部门&&岗位&&用户多级可控,自动拦截,开发无感知
  • 租户可配菜单:多种混合模式控制租户菜单
  • 组织管理优化:更完善的组织架构操作与管理逻辑
  • 微聚合多前端:公共抽离,降低系统重复冗余

结构

  • 采用前后端分离的模式,微服务版本前端。
  • 后端采用Spring Boot、Spring Cloud & Alibaba。
  • 注册中心、配置中心选型Nacos,权限认证使用Redis。
  • 流量控制框架选型Sentinel,分布式事务选型Seata。
com.xueyi     
├── multi-ui              // vue3前端 [3000]
├── xueyi-ui              // vue2前端 [80]
├── xueyi-gateway         // 网关模块 [8080]
├── xueyi-auth            // 认证中心 [9200]
├── xueyi-api             // 接口模块
│       ├── xueyi-api-system                          // 系统接口
│       ├── xueyi-api-tenant                          // 租户接口
│       └── xueyi-api-job                             // 调度接口
├── xueyi-common          // 通用模块
│       ├── xueyi-common-cache                        // 缓存管理
│       ├── xueyi-common-core                         // 核心模块
│       ├── xueyi-common-datascope                    // 权限范围
│       ├── xueyi-common-datasource                   // 多数据源
│       ├── xueyi-common-log                          // 日志记录
│       ├── xueyi-common-redis                        // 缓存服务
│       ├── xueyi-common-security                     // 安全模块
│       ├── xueyi-common-swagger                      // 系统接口
│       └── xueyi-common-web                          // 租户核心
├── xueyi-modules         // 业务模块
│       ├── xueyi-file                                // 文件服务 [9300]
│       ├── xueyi-gen                                 // 代码生成 [9400]
│       ├── xueyi-job                                 // 定时任务 [9500]
│       ├── xueyi-system                              // 系统模块 [9600]
│               ├── authority                         // 权限模块
│               ├── dict                              // 参数字典
│               ├── material                          // 素材模块
│               ├── monitor                           // 监控模块
│               ├── notice                            // 公告模块
│               └── organize                          // 组织模块
│       └── xueyi-tenant                              // 租管模块 [9700]
│               ├── source                            // 多数据源
│               └── tenant                            // 租户策略
├── xueyi-visual          // 图形化管理模块
│       └── xueyi-visual-monitor                      // 监控中心 [9100]
└── pom.xml                // 公共依赖

使用

拉取源代码

git pull http://git.lecooai.com/develop/digimeta-MultiSaas.git

编译源代码

//根模块上执行
mvn package

Docker部署与运行

1. 检查docker-compose.yml配置,修改对应的信息,主要是数据库的密码设置

environment:
      MYSQL_ROOT_PASSWORD: Digimeta@123

2. 进入./docker目录,修改nacos/conf/application.properties文件,修改对应nacos数据源:

db.url.0=jdbc:mysql://172.17.0.1:3306/xy-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=Digimeta@123

3. 运行base

sh ./deploy.sh base

确保mysql能远程访问,不然nacos启动会报错,以下可为远程访问mysql提供参考:

#进入容器里执行,登录mysql
查看:select host,user,plugin from user;
删除多余的行:delete from user where user ='root' and host='%';
设置所有host可以访问:update user set host='%' where user ='root';
修改密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Digimeta@123';
刷一下,使之生效:FLUSH PRIVILEGES;
退出:exit

4. 运行modules

sh ./deploy.sh modules

5. 运行monitor

sh ./deploy.sh monitor

6. 运行前端ui

代码下执行npm install

然后执行

npm run dev

也可以编译后放在nginx中运行

npm run build:stage
或生产模式编译
npm run build:prod

nginx使用docker部署,nginx相关配置如下:

server {
    listen 81;
    server_name  localhost;
    charset utf-8;
    gzip on;
    # 不压缩临界值,大于1K的才压缩,一般不用改
    gzip_min_length 1k;
    # 压缩缓冲区
    gzip_buffers 16 64K;
    # 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
    gzip_http_version 1.1;
    # 压缩级别,1-10,数字越大压缩的越好,时间也越长
    gzip_comp_level 5;
    # 进行压缩的文件类型
    gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
    # 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
    gzip_vary on;
    # IE6对Gzip不怎么友好,不给它Gzip了
    gzip_disable "MSIE [1-6]\.";

    location / {
        # 不缓存html,防止程序更新后缓存继续生效
        if ($request_filename ~* .*\.(?:htm|html)$) {
            add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            access_log on;
        }
        
        root   /home/vctgo/projects/vctgo-ui/xueyi-ui;
        try_files $uri $uri/ /index.html
        index  index.html index.htm;
    }

    location /dev-api/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.17.0.1:8080/;
        proxy_redirect default;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
    }
    
    
    location /stage-api/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.17.0.1:8080/;
        proxy_redirect default;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
    }

    location /prod-api/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.17.0.1:8080/;
        proxy_redirect default;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   html;
    }
}

81端口则为项目的web访问端口

7. 一些问题

  1. 系统接口,流量监控,服务治理,服务监控等目录,需要在数据库中配置好相应的地址,不然页面访问不了;
  2. 其他一些问题可以去参考xueyiruoyi框架,在这两个项目中的issue中可能可以获得相应帮助