[开源]致力将开源版打造成超越商业版后台管理框架的快速开发项目
![[开源]致力将开源版打造成超越商业版后台管理框架的快速开发项目](https://yy123.ink/api/img/1782585471608-n3hkzz.jpg)
一、开源项目简介
基于Spring Boot框架打造,针对单体式应用进行专门设计,提供整套服务模块,努力为打造全方位企业级开发解决方案, 致力将开源版打造成超越商业版后台管理框架的项目。
- Spring Cloud版本使用Spring Cloud Alibaba技术栈
- vue2使用 ANTD PRO VUE 作为脚手架
- vue3使用 Vben-Admin 作为脚手架
- 移动端使用 Taro vue3+TS为技术栈。
二、开源协议
使用Apache-2.0开源协议
三、界面展示
项目展示
Vue3版本管理端

支付结算台

工作流

微信自定义菜单

动态表单

邮件发送

超级查询器

富文本编辑器

PlumeLog 轻量级日志管理

ELK日志

菜单管理

四、功能概述
包含支付收单(支付宝、微信、聚合、组合支付)、工作流(Flowable)、三方对接(微信、钉钉、企微、短信)等模块,后端基于Spring Boot和Spring Cloud,前端基于Vue2和Vue3分别打造,可应用在不同业务场景中,目标是致力实现媲美商业版应用脚手架的目标。
️功能亮点
支持支付宝、微信、聚合支付、现金支付、储值卡支付、钱包,对各种支付方式抽象成策略类,通过模板模式进行串通,方便扩展新的支付方式或业务

集成最新版本的Flowable 6.7.2 工作流,并基于Bpmn.js定制流程设计器,相较于自带modeler更贴近业务和易用,通过关联动态表单可通过托拉拽实现业务审批流的业务

特色功能
- 支持单通道支付、聚合支付、组合支付、部分和全部退款等支付功能
- 支持支付宝、微信、云闪付、现金、钱包、储值卡等多种支付方式
- 支持对多终端、多登录方式进行分别的管理
- 针对各类敏感信息,可以通过添加注解实现返回时自动脱敏
- 针对重要信息,可以通过添加注解,实现在数据库中保密存储,配合数据脱敏使用可以更好的保护系统数据的安全
- 支持多种范围的数据权限控制,如只能查看自己、只能查询指定部门、用户、可以查询全部的数据等等
- 支持嵌套查询的超级查询构造器,自动生成对应条件SQL语句,也支持普通查询器,免去大量重复代码的编写
- 提供移动端开发脚手架,方便开发H5与各种小程序
- 支持通过ELK和轻量级PlumeLog来管理项目日志,以适应不同的场景
- 支持通过微信、钉钉、企业微信等第三方开放平台进行扫码登录
- 支持站内信、微信、钉钉、企业微信、微信公众号的消息推送
- 支持微信自定义菜单、素材、消息模板等资源的管理
- 集成Flowable+Bpmn.js工作流全家桶,方便OA相关功能的开发
路线图
- 工作流功能完善
- 更灵活的节点用户配置,可配置发起人、指定用户、指定角色等,关联消息通知
- 会签处理、串签处理、或签处理、驳回处理、任意节点退回、会签比例通过处理
- Vue3版本前端
登录模块移植- 认证终端移植
组件移植和Mixin转换为Hooks、- Spring Cloud版本
代码组织结构调整- 网关定制开发
功能模块移植
五、技术选型
开发环境
基础开发环境
●JDK: 1.8+
●Maven: 3.5+
●MySql: 5.7+
●Redis: 5.x +
●Node Js: 12.0 +
●Npm: 5.6.0+
●Yarn: 1.22.1+
●MongoDB
●RabbitMQ
●MQTT Service(emqx)
MySQL
●默认字符集:utf8mb4
●默认排序规则:utf8mb4_general_ci
●大小写敏感:需要开启大小写不敏感设置
Quick Start
- 下载项目并切换到master分支,或者下载发行版后导入IDEA中,下载对应的Maven依赖
- 配置好各种必要的数据库中间件地址(见下方中间表),直接启动项目。注:不需要导入Sql脚本到数据库中,默认启用flyway会自动对数据库进行初始化
- 如果使用_config/sql导入到数据库中的方式,则需要在项目启动前将spring.flyway.enabled设为false后启动项目,推荐使用flyway对数据库进行数据管理
- 后端启动启动成功,开始启动前端
- 安装依赖 yarn install,node版本需要12以上,推荐使用16
- 启动前端 yarn serve,进行访问
中间件配置
备备注注组件
是否必须配置
备注
MySQL
是
不设置无法启动
Redis
是
不设置无法启动
RabbitMQ
否
支付消息通知在使用
MongoDB
否
默认审计日志和文件管理使用持久化方式为Mono,可在配置文件中配置切换成其他持久化方式
MQTT
否
plumelog
是
默认项目自带lite版plumelog,不需要额外配置中间件,直接就可以使用
项目整体结构
bootx-platform
├── _config -- 项目相关配置
├── _doc -- 项目文档
├── _license -- 使用外部项目对应开源协议
├── bootx-common-core -- 核心包
├── bootx-common-starters -- starter通用功能组件
├── common-starter-audit-log -- 审计日志模块
├── common-starter-auth -- 认证模块
├── common-starter-code-gen -- 代码生成模块
├── common-starter-data-perm -- 数据权限模块
├── common-starter-dingtalk -- 钉钉对接模块
├── common-starter-file -- 文件管理模块
├── common-starter-flowable -- flowable工作流模块
├── common-starter-monitor -- 系统监控模块
├── common-starter-quartz -- Quartz定时任务模块
├── common-starter-wechat -- 微信对接模块
├── common-starter-wecom -- 企业微信对接模块
├── bootx-commons -- commons工具配置封装
├── common-cache -- 缓存配置
├── common-exception-handler -- 异常处理器
├── common-header-holder -- 请求头获取工具
├── common-idempotency -- 幂等控制组件
├── common-jackson -- Json序列化配置
├── common-lock -- 分布式锁
├── common-log -- 日志配置
├── common-mongo -- MongoDB配置
├── common-mqtt -- mqtt配置(停用)
├── common-mybatis-plus -- Mybatis Plus扩展
├── common-rabbitmq -- rabbitmq消息队列
├── common-redis-client -- Redis客户端封装和配置
├── common-sequence -- 发号器(序列号生成器)
├── common-spring -- Spring相关配置
├── common-super-query -- 超级查询器
├── common-swagger -- swagger3配置(Spring Doc)
├── common-websocket -- websocket封装
├── common-xxl-job -- XXL-JOB定时任务
├── bootx-demo -- demo示例模块
├── bootx-modules -- 业务系统(暂停)
├── eshop -- 网上商城(暂停)
├── bootx-services -- 业务服务模块
├── service-baseapi -- 基础api功能服务
├── service-goods -- 商品中心服务(停用)
├── service-iam -- 身份识别与访问管理
├── service-notice -- 消息通知服务
├── service-office -- 办公服务
├── service-order -- 订单服务(停用)
├── service-payment -- 支付服务
├── service-sales -- 销售中心(停用)
├── bootx-start -- 启动模块
模块结构说明
模块分包设计
以service-iam举例
service-iam
├── code -- 常量包
├── controller -- 控制器
├── core -- 功能核心
├── exception -- 异常
├── dto -- 业务对象
├── mq -- 消息通知处理
├── task -- 定时任务
├── param -- 请求参数包
├── util -- 内部工具包
├── IamApplication -- 启动类
core核心包业务代码分包
├───code
├── business -- 业务模块
├── convert -- 实体类转换
├── dao -- 持久化类
├── entity -- 数据库实体
├── service -- 服务类