<p align="center">
	<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-b99b286755aef70355a7084753f89cdb7c9.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">bonus v24.7.0</h1>
<h4 align="center">基于 Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构</h4>


## 平台简介

博诺思平台是基于若依快速开发平台的轻量级系统，基于Spring Boot、Spring Cloud、Spring Cloud Alibaba、OAuth2.0、JWT、Redis、MyBatis、Shiro、Quartz、Swagger、EasyExcel、EasyPoi、Layui、Element UI、Vue、Nginx、Docker、Maven、Git、GitHub、Gitee、Jen



## 系统模块

~~~
com.bonus     
├── bonus-ui              // 前端框架 [80]
├── bonus-gateway         // 网关模块 [8080]
├── bonus-auth            // 认证中心 [9200]
├── bonus-api             // 接口模块
│       └── bonus-api-system                          // 系统接口
├── bonus-common          // 通用模块
│       └── bonus-common-core                         // 核心模块
│       └── bonus-common-datascope                    // 权限范围
│       └── bonus-common-datasource                   // 多数据源
│       └── bonus-common-log                          // 日志记录
│       └── bonus-common-redis                        // 缓存服务
│       └── bonus-common-seata                        // 分布式事务
│       └── bonus-common-security                     // 安全模块
│       └── bonus-common-swagger                      // 系统接口
├── bonus-modules         // 业务模块
│       └── bonus-system                              // 系统模块 [9201]
│       └── bonus-gen                                 // 代码生成 [9202]
│       └── bonus-job                                 // 定时任务 [9203]
│       └── bonus-file                                // 文件服务 [9300]
├── bonus-visual          // 图形化管理模块
│       └── bonus-visual-monitor                      // 监控中心 [9100]
├──pom.xml                // 公共依赖
~~~

## 架构图

<img src="cloud-architecture.png"/>

## 内置功能

1.  用户管理：用户是系统操作者，该功能主要完成系统用户配置。
2.  部门管理：配置系统组织机构（公司、部门、小组），树结构展现支持数据权限。
3.  岗位管理：配置系统用户所属担任职务。
4.  菜单管理：配置系统菜单，操作权限，按钮权限标识等。
5.  角色管理：角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6.  字典管理：对系统中经常使用的一些较为固定的数据进行维护。
7.  参数管理：对系统动态配置常用参数。
8.  通知公告：系统通知公告信息发布维护。
9.  操作日志：系统正常操作日志记录和查询；系统异常信息日志记录和查询。
10. 登录日志：系统登录日志记录查询包含登录异常。
11. 在线用户：当前系统中活跃用户状态监控。
12. 定时任务：在线（添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成：前后端代码的生成（java、html、xml、sql）支持CRUD下载 。
14. 系统接口：根据业务代码自动生成相关的api接口文档。
15. 服务监控：监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 在线构建器：拖动表单元素生成相应的HTML代码。
17. 连接池监视：监视当前系统数据库连接池状态，可进行分析SQL找出系统性能瓶颈。

## 在线体验

演示地址：待定  

## 部署
准备工作
1. JDK >= 1.8 (推荐1.8版本)
2. Mysql >= 5.7.0 (推荐5.7版本)
3. Redis >= 3.0
4. Maven >= 3.0
5. Node >= 12
6. nacos >= 2.0.4 
7. sentinel >= 1.6.0
#

运行系统
#后端运行
1. 前往Gitee下载页面(http://192.168.0.56:3000/bonus/Bonus-Cloud.git)下载解压到工作目录
2. IntelliJ IDEA，菜单 File -> Open 打开项目
3. 创建数据库bns-cloud并导入数据脚本bns_20240604.sql（必须），quartz.sql（可选）
4. 创建数据库bns-config并导入数据脚本bns_config_20240604.sql（必须）
5. 配置nacos持久化，修改conf/application.properties文件，增加支持mysql数据源配置


    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/bns-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user=root
    db.password=password


6、打开运行基础模块（启动没有先后顺序）

BonusGatewayApplication （网关模块 必须）
BonusAuthApplication （认证模块 必须）
BonusSystemApplication （系统模块 必须）
BonusMonitorApplication （监控中心 可选）
BonusGenApplication （代码生成 可选）
BonusJobApplication （定时任务 可选）
BonusFileApplication （文件服务 可选）

7、集成seata分布式事务（可选配置，默认不启用）

创建数据库bns-seata并导入数据脚本bns_seata_20240604.sql



## 前端运行

    # 进入项目目录
    cd bonus-ui
    
    # 安装依赖
    npm install
    
    # 强烈建议不要用直接使用 cnpm 安装，会有各种诡异的 bug，可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
    npm install --registry=https://registry.npmmirror.com
    
    # 本地开发 启动项目
    npm run dev

4、打开浏览器，输入：(http://localhost:80 (opens new window)) 默认账户/密码 admin/admin123）
若能正确展示登录页面，并能成功登录，菜单及页面展示正常，则表明环境搭建成功