# lingyang-boot
**Repository Path**: zgn123456/lingyang-boot
## Basic Information
- **Project Name**: lingyang-boot
- **Description**: lingyang-boot 包含了登录管理 / 用户权限管理 / 用户角色管理 / 用户组(部门)管理 [微服务版本],并支持saas平台
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-10-29
- **Last Updated**: 2024-10-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 在线预览
- [前端 (lingyang-boot-vue3)](https://gitee.com/sgy_project/lingyang-boot-vue3.git)
- 预览地址
- 账号密码: test/123456
- 快速启动
## 项目简介
羚羊系统专注于实际业务场景, 集成多个功能模块, 方便快速开发功能, 避免重复开发,目前支持微服务和单体部署无缝切换,代码无需改动, 项目100%开源,允许商用
* 基于SpringCloud 2023、SpringBoot2.7, Oauth2的RBAC权限系统
* 封装很多常用通过框架组件, 开箱即用
欢迎使用本项目并提出宝贵建议, 如果项目对你有用,麻烦点击一下star😀
## 功能模块
### 系统模块
| | 功能 | 描述 |
|----------------------| ----- | -------------------------------------- |
| :white_check_mark: | 成员管理 | 用于管理租户下管理员用户 |
| :white_check_mark: | 部门管理 | 可将用户分配到多个部门中, 支持不同部门看到数据不同 |
| :white_check_mark: | 我的部门 | 可查看我所属的部门以及部门用户 |
| :white_check_mark: | 系统角色 | 可为角色分配权限以及用户, 则用户就拥有角色的权限 |
| :white_check_mark: | 资源管理 | 管理项目的接口资源, 可一键同步所有接口, 方便菜单选择权限 |
| :white_check_mark: | 菜单管理 | 管理项目的菜单列表并可以为菜单分配权限, 在角色中可选择菜单资源 |
| :white_check_mark: | 客户端管理 | Oauth2的客户端管理, 可设置登录失败次数, 锁定周期, 是否使用验证码 |
| :white_check_mark: | 租户管理 | 每个租户可拥有独立域名并可为租户选择租户套餐包(菜单资源) |
| :white_check_mark: | 系统配置 | 可以配置系统需要动态配置的数据 |
| :white_check_mark: | 字典管理 | 管理项目中用的字典数据 |
| :white_check_mark: | 访问密钥 | 用于管理项目需要对外放开接口时的访问密钥, 目前保留 |
| :white_check_mark: | 通知公告 | 管理通知数据, 目前需要完善 |
| :white_check_mark: | 系统API | 获取swagger接口文档,罗列项目中所有接口 |
### 短链管理
| | 功能 | 描述 |
|----------------------| ---- | --------- |
| :white_check_mark: | 短链分组 | 对短链进行分组管理 |
| :white_check_mark: | 短链域名 | 管理生成短链的域名 |
| :white_check_mark: | 短链列表 | 被生成的短链 |
| :white_check_mark: | 访问日志 | 短链访问日志 |
### 开发平台
| | 功能 | 描述 |
| --- | ----- | ----------------------------- |
| :white_check_mark: | 代码生成 | 从数据库中导入表并进行配置的记录 |
| :white_check_mark: | 代码模板 | 代码生成依赖代码模板, 通过强大的模板引擎可以快速生成代码 |
| :white_check_mark: | 代码模板组 | 对代码进行分组 |
| :white_check_mark: | 数据源 | 管理数据库的数据源 |
### 支付模块
| | 功能 | 描述 |
|--------------------| ---- | -------------------------------- |
| :white_check_mark: | 商户列表 | 支持多商户, 每个商户可以管理多个应用 |
| :white_check_mark: | 应用列表 | 一个应用表示一个支付场景, 可以为应用配置多个支付渠道和方式 |
| :white_check_mark: | 支付订单 | 所有支付的订单都会在这里展示 |
| :white_check_mark: | 退款订单 | 管理被退款的订单 |
| :white_check_mark: | 商户通知 | 再支付或者退款的时候会通知接入的应用 |
| :white_check_mark: | 账单下载 | 直连第三方平台下载账单数据 |
| :white_large_square: | 转账订单 | 管理账单订单,待验证 |
| :white_check_mark: | 支付接口 | 可以动态配置支付相关参数 |
| :white_check_mark: | 支付方式 | 配置每个支付接口的支付方式,比如微信支付有JAPI支付,H5支付 |
### 基础设施&系统监控
| | 功能 | 描述 |
|--------------------|---------- | -------------------------------- |
| :white_check_mark: | 文件配置 | 可以配置文件上传时相关参数,并支持动态替换请求或者响应替换成真实url |
| :white_check_mark: | 文件列表 | 展示文件上传记录 |
| :white_check_mark: | 在线用户 | 展示所有在线的用户 |
| :white_check_mark: | 定时任务 | 统一管理所有分布式定时任务 |
| :white_check_mark: | 登录日志 | 记录用户登录行为 |
| :white_check_mark: | 操作日志 | 记录用户操作行为 |
### 消息推送
| | 功能 | 描述 |
| --- | ---- | ------------------------- |
| :white_check_mark: | 推送任务 | 每个消息任务支持一种渠道推送方式并可以设置推送参数 |
| :white_check_mark: | 推送记录 | 所有的消息推送都将被记录 |
### 公众号管理
| | 功能 | 描述 |
| --- | ----- | ------------------- |
| :white_check_mark: | 账号管理 | 管理公众号账号 |
| :white_check_mark: | 标签管理 | 管理用户标签 |
| :white_check_mark: | 菜单管理 | 管理公众号菜单 |
| :white_check_mark: | 粉丝管理 | 展示公众号所有粉丝 |
| :white_large_square: | 自动回复 | 公众号自动回复功能,目前支持图片和文本 |
| :white_large_square: | 素材管理 | 管理公众号素材 |
| :white_large_square: | 图文草稿箱 | 待实现 |
会员中心
----
待开发
## 核心技术栈
| **框架** | **说明** | **版本** |
|--------------------|---------------------------------------------------|--------|
| SpringBoot | 系统应用框架 | 2.7.3 |
| SpringCloud | 微服务框架 | 2021 |
| Nacos | 中间件 | v2.2.3 |
| MybatPlus | 持久层框架 | |
| Redis | 缓存框架 | 6.2.17 |
| lombok | 消除冗余代码 | |
| MapStruct | 高性能java bean转换 | |
| MySql | 数据库 | 8.0 |
| lingyang-framework | 我自己开发的所用工程通用的、对第三方库封装的库, 你可以拉取到本地执行构建,目前已经推送到中央仓库 | |
**本地安装 lingyang-framework工程(可选)**
由于项目依赖了lingyang-framework工程, 所以你要先拉取lingyang-framework工程到本地进行编译, 安装到本地的maven仓库或者远程的maven仓库中
```bash
git clone https://gitee.com/sgy_project/lingyang-framework.git
cd lingyang-framework/bin
bash build.sh`
```
> 注意: 如果你是win10电脑, 可以使用git命令行执行上面的脚本
## 项目结构
```context
lingyang-boot
├── bin
│ ├── build-back-end.sh: 构建后端脚本
├── db
│ ├── nacos.sql: nacos相关sql
│ ├── system-v1.sql
├── docker
│ ├── be: 部署后端应用
│ ├── clean.sh
│ ├── mysql
│ ├── nacos
│ ├── nginx
│ ├── README.md
│ └── redis
├── ly-commons: 公共组件库
│ ├── common-core
│ ├── common-datasource
│ ├── common-security
├── ly-gateway: 网关
├── ly-system
│ ├── system-api: 系统服务接口, 供其他服务调用的远程接口
│ ├── system-biz: 系统服务业务
├── ly-pay 统一支付
│ ├── pay-api: 统一支付接口, 供其他服务调用的远程接口
│ ├── pay-biz: 统一支付业务实现
├── catering-portal 前台系统
│ ├── catering-portal-api: 前台系统接口, 供其他服务调用的远程接口
│ ├── catering-portal-biz: 前台系统系统业务实现
├── ly-auth
│ ├── auth-api: 认证模块接口, 供其他服务调用的远程接口
│ ├── auth-biz: 认证模块具体业务实现
├── ly-msg-push
│ ├── msg-push-api: 消息推送接口, 供其他服务调用的远程接口
│ ├── msg-push-biz: 消息推送实现
├── ly-infra
│ ├── infra-api: 基础设施接口, 供其他服务调用的远程接口
│ ├── infra-biz: 基础设施实现(文件管理, 定时任务管理等基础设施)
├── ly-misc: 混杂服务主要把一起零散或者不确定功能放到该服务中, 也可以把有一些业务代码很少,单独起一个微服务不划算的放到该模块中
│ ├── misc-api: 混杂项接口, 供其他服务调用的远程接口
│ ├── misc-biz: 混杂项实现(文件管理, 定时任务管理等基础设施)
├── ly-short-link
│ ├── short-link-api: 短链模块接口, 供其他服务调用的远程接口
│ ├── short-link-biz: 短链模块业务实现
├── ly-plugin: 插件模块(和业务相关)
│ ├── plugin-gen: 代码生成插件
│ ├── ly-plugin-weixin: 微信插件
├── ly-startup-cloud: 微服务启动器
│ ├── startup-cloud-auth: 授权启动器
│ ├── startup-cloud-gateway: 网关
│ ├── startup-cloud-infra: 基础设施
│ ├── startup-cloud-msg-push: 消息推送
│ ├── startup-cloud-pay: 支付
│ ├── startup-cloud-system: 系统
├── ly-startup-standalone: 单体服务启动器
│ ├── startup-standalone-server: 服务(整合所有模块, 可自行删减)
│ ├── startup-standalone-gateway: 网关
```
## 前端应用启动
拉取前端代码, 进入到根目录下执行如下命令
```bash
# 初始化时安装依赖, 只需要执行一次即可
yarn install
# 启动服务
yarn run dev
```
## 后端快速启动
- 编辑本地hosts, 添加 127.0.0.1 gateway.server.com(如果不用地图相关, 可以直接调用后端接口)
### 微服务部署
必须先部署 ly-infra 服务, 因为每个服务的雪花算法的workId都会调用infra服务获取的
## 代码提交
- feat: 新功能
- fix: 修复 Bug
- docs: 文档修改
- perf: 性能优化
- revert: 版本回退
- ci: CICD 集成相关
- test: 添加测试代码
- refactor: 代码重构
- build: 影响项目构建或依赖修改
- style: 不影响程序逻辑的代码修改
- chore: 不属于以上类型的其他类型(日常事务)
## idea中使用gradle编辑控制台乱码问题
点击Help -> Edit Custom VM Options
添加
```text
-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8
```
### 💐 特别鸣谢
- 👉 vxe-table:[https://gitee.com/xuliangzhan_admin/vxe-table](https://gitee.com/xuliangzhan_admin/vxe-table)
- 👉 Vben-Admin:[https://vvbin.cn/doc-next](https://vvbin.cn/doc-next)