# lanyu-public
**Repository Path**: vue-proc/lanyu-public
## Basic Information
- **Project Name**: lanyu-public
- **Description**: 蓝羽后台管理系统
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://www.zhoulang.site
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 3
- **Created**: 2023-11-09
- **Last Updated**: 2023-11-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# vue-springboot-app
#### 介绍
基于vue和springboot的前后端分离项目,即是后台管理系统,也可做为OA系统使用。
官网:[http://www.zhoulang.site](http://www.zhoulang.site)
演示环境地址:[https://www.zhoulang.site](https://www.zhoulang.site)
#### 系统架构
1. springboot、Mysql、MybatisPlus作为基础框架。
2. 使用JWT和Redis实现登录会话功能。
3. 前端使用若依ui,并进行了修改,适应后台系统。
JDK1.8、Mysql5.7
#### 功能简介
1. 用户管理:对系统访问用户进行新增、修改、锁定、重置密码等管理。
2. 组织架构管理:维护系统的部门、角色和用户的关系。
3. 参数管理:对系统的关键参数进行配置,可以修改、开启或关闭系统功能。
4. 菜单管理:配置前端动态路由菜单。
5. 缓存信息:提供刷新系统缓存的接口。
6. 系统安全策略:控制用户登录和密码安全,以及系统访问环境安全策略。
7. 附件管理:管理系统中生成的附件,如用户头像,消息附件等。
8. 黑名单:管理禁止访问系统的客户端ip地址。
9. 权限管理 :对系统权限进行维护。
10. 系统监控:记录系统操作日志。
11. 定时任务管理:动态管理系统的任务调度。
12. 消息管理系统:用户可以发送邮件和系统内消息,支持附件上传
#### 组织架构简介
系统中的组织架构分为部门、角色、用户 ,它们都属于组织架构对象,存放在一张系统组织架构表中,通过一个组织架构类型进行区分。它们之间通过一张组织架构关系表维护上下级树关系,用户放在部门或者角色的下级,部门下面可以新建子部门。不同角色之间是平级关系,没有上下级关系:

为了提示组织架构对象查询的性能,系统启动时对组织架构对象的树结构进行了缓存,查询时直接去缓存树中进行递归,查找出所有子节点,或所有父节点。在进行组织结构关系修改时,系统会自动刷新缓存。组织架构菜单如下:

考虑到组织架构选择功能很多地方会使用到,我封装了前端的组织架构选择控件,可选择部门、角色、和用户:

#### 菜单功能简介
系统将菜单分为四个种类:
| 菜单类型 | 菜单说明 |
|---|---|
| 目录 | 菜单所存放的目录 |
| 菜单 | 实际能访问的菜单页面 |
| 接口 | 后端提供的访问接口 |
| 按钮 | 前端页面可见的按钮 |
这种四级菜单结构的设计,为菜单的权限提供了更细粒度的控制。
#### 权限系统简介
系统设计了一个通用的权限系统,不仅仅局限于菜单权限,系统只用一张权限表,就可以支持任意权限,不用再设计其他权限表。
用户自动继承上级部门或者角色的权限,也可拥有自身权限。
提供通一的权限查询接口,根据权限定义、权限类型、用户id,查询出对应权限。
以下以菜单权限为例:

可以对部门进行菜单授权,则该部门下的用户自动拥有该部门的权限,蓝色文字代表直接对这个授权对象赋予的权限,黑色文字表示这个授权对象的权限是继承自上级对象。
界面提供一个清空自身权限按钮,点击会删除授权对象的所有自身权限,不影响继承权限。
假如部门下有100个用户,其中一个用户我们想单独取消某些用户权限,这时可以同时对用户进行单独授权,拒绝该菜单的权限,当菜单的checkbox为红色时,表示拒绝权限,当checkbox未选中时,表示没有该菜单的权限,当checkbox为选中状态时,表示拥有菜单权限。
#### 安装教程
1. 新建mysql数据库,字符集utf8,导入sql脚本。
2. 安装redis,并设置登录密码。
3. 修改application.yml中的数据源连接地址以及redis连接信息,数据库密码参考下面的使用说明。
4. 修改sys_setting表中的system、root参数值为后端项目启动根路径(可跳过)。
5. 下载maven依赖,并启动后端项目。
6. 前端项目修改vue.config.js修改开发环境代理地址(可跳过)。
7. 执行npm install安装前端依赖。
8. 执行npm run dev启动前端项目。
9. 访问http://localhost:80/
#### 演示图
#### 使用说明
1. application.yml中配置的数据库密码使用了DES加密,你可以预先使用后端的com.zhou.exam.util.EncryptUtil.encryptDES方法类生成加密后的密码,然后配置到文件中。
```
EncryptUtil.encryptDES("你的密码","zhl-12#$")
```
#### 捐赠支持
 |
 |
#### 联系作者
QQ:2250884056
WX:zhl--100
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)