**项目说明**
- 采用SpringBoot、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用。设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。
- 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务
- 后台系统支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库,客户端系统仅支持MySQL
<br>
**具有如下特点**
- 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
- 完善的部门管理及数据权限,通过注解实现数据权限的控制
- 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
- 支持分布式部署,session存储在redis中
- 友好的代码结构及注释,便于阅读及二次开发
- 引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
- 页面交互使用Vue2.x,极大的提高了开发效率
- 引入swagger文档支持,方便编写API接口文档
<br>
**数据权限设计思想**
- 管理员管理、角色管理、部门管理,可操作本部门及子部门数据
- 菜单管理、定时任务、参数管理、字典管理、系统日志,没有数据权限
- 业务功能,按照用户数据权限,查询、操作数据【没有本部门数据权限,也能查询本人数据】
<br>
**项目结构**
```
renren-security
├─renren-common 公共模块
│
├─renren-admin 管理后台
│ ├─db 数据库SQL脚本
│ │
│ ├─modules 模块
│ │ ├─job 定时任务
│ │ ├─oss 文件存储
│ │ └─sys 系统管理(核心)
│ │
│ └─resources
│ ├─mapper MyBatis文件
│ ├─statics 静态资源
│ ├─template 系统页面
│ │ ├─modules 模块页面
│ │ ├─index.html AdminLTE主题风格(默认主题)
│ │ └─index1.html Layui主题风格
│ └─application.yml 全局配置文件
│
│
├─renren-api API服务,此部分用于二次开发
│
├─renren-generator 代码生成器
│ └─resources
│ ├─mapper MyBatis文件
│ ├─template 代码生成器模板(可增加或修改相应模板)
│ ├─application.yml 全局配置文件
│ └─generator.properties 代码生成器,配置文件
│
├─client 客户端模块,业务前端部分
```
<br>
**技术选型:**
- 核心框架:Spring Boot 2.0
- 安全框架:Apache Shiro 1.4
- 视图框架:Spring MVC 5.0
- 持久层框架:MyBatis 3.3
- 定时器:Quartz 2.3
- 数据库连接池:Druid 1.1
- 日志管理:SLF4J 1.7、Log4j
- 页面交互:Vue2.x
<br>
**软件需求**
- JDK1.8
- MySQL5.5+
- Maven3.0+
<br>
**本地部署**
- 通过git下载源码
- 创建数据库renren_security,数据库编码为UTF-8
- 执行db/mysql.sql文件,初始化数据【按需导入表结构及数据】
- 导入仓库、仓位、设备数据,请按照表结构导入。
- 修改renren-admin模块application-dev.yml文件,更新MySQL账号和密码
- 修改client客户端模块的application.yml文件,更新MySQL账号和密码
- 修改 client/src/test/com.bcfou.business/QRCodeCreate 文件相关参数为自己的,执行生成二维码。数据较多时会出现卡顿等现象,请分段生成。
- 在renren-security目录下,执行mvn clean install
<br>
- Eclipse、IDEA运行AdminApplication.java,则可启动项目【renren-admin】
- renren-admin访问路径:http://localhost:8080/renren-admin
- swagger文档路径:http://localhost:8080/renren-admin/swagger/index.html
- 账号密码:admin/admin
<br>
- Eclipse、IDEA运行Application.java,则可启动项目【client】
- client 访问路径:http://localhost:8088
- 账号密码:admin/admin
- 用户扫描二维码就可以进入借还界面进行操作。管理员在后台可以查看所有未删除的订单信息及状态。
<br>
- Eclipse、IDEA运行ApiApplication.java,则可启动项目【renren-api】
- renren-api访问路径:http://localhost:8081/renren-api/swagger-ui.html
<br>
- Eclipse、IDEA运行GeneratorApplication.java,则可启动项目【renren-generator】
- renren-generator访问路径:http://localhost:8082/renren-generator
<br>
**生产环境部署**
- 在本地运行测试OK后就可以开始进行生产环境部署了。
- 修改application-prod.yml数据库、redis、druid等参数
- 修改application.yml 服务器端口、路径、配置文件激活等参数
- 部署教程参考:https://www.cnblogs.com/gscq073240/articles/6842603.html
<br>
**分布式部署**
- 分布式部署,需要安装redis,并配置config.properties里的redis信息
- 需要配置【renren.redis.open=true】,表示开启redis缓存
- 需要配置【renren.shiro.redis=true】,表示把shiro session存到redis里
- 备注:此部分用于高并发业务场景,在访问量不大时可以忽略。
<br>
**接口文档效果图:**
![输入图片说明](http://cdn.renren.io/img/c8dae596146248d8b4d0639738c2932b "在这里输入图片标题")
<br>
**Layui主题风格:**
![输入图片说明](http://cdn.renren.io/img/1013aa91fe8542b7b05d82bc9444433a "在这里输入图片标题")
<br>
**AdminLTE主题风格:**
![输入图片说明](http://cdn.renren.io/img/f9762bc6574545ce908e271995efcf1c "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/a1b8bf1ea3db4844a8652a9cf84048cc "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/e542060605f94b3ebec699b0afffc22d "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/c94be5b4bf0d4387b18e119c91b1a986 "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/ae8c683a01c74d8dbc52d62547efda31 "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/ca38bcf3717c427d82dd67d86b744e18 "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/4862ec46a9ad469b90c30788c4707e35 "在这里输入图片标题")
![输入图片说明](http://cdn.renren.io/img/5d8e7243d30a4421b90f15394b6d1ccd "在这里输入图片标题")
<br>
**客户端效果图:**
![1](https://github.com/wangneal/mchinemagement/blob/master/imgs/JIEHUAN.png)
![2](https://github.com/wangneal/mchinemagement/blob/master/imgs/HUAN.png)
![3](https://github.com/wangneal/mchinemagement/blob/master/imgs/3.png)
![4](https://github.com/wangneal/mchinemagement/blob/master/imgs/2.png)
![5](https://github.com/wangneal/mchinemagement/blob/master/imgs/1.png)
<br>