chore: upload current WMS changes

This commit is contained in:
zgw
2026-07-24 08:51:42 +08:00
parent 3789aa6420
commit 98db537218
408 changed files with 91747 additions and 2107 deletions

View File

@@ -0,0 +1,239 @@
# RuoYi 授权码模块 - 项目总结
## 📦 已完成的工作
### 1. 核心模块开发 ✅
**ruoyi-license 独立模块**
- ✅ Maven模块配置 (pom.xml)
- ✅ 授权实体类 (SysLicense.java)
- ✅ 数据访问层 (SysLicenseMapper.java + XML)
- ✅ 业务逻辑层 (ISysLicenseService.java + Impl)
- ✅ 授权工具类 (LicenseUtils.java)
- ✅ 授权拦截器 (LicenseInterceptor.java)
- ✅ 拦截器配置 (LicenseConfig.java)
- ✅ 定时检查任务 (LicenseCheckTask.java)
- ✅ 授权码生成器 (LicenseGenerator.java)
- ✅ 测试工具 (LicenseTest.java)
### 2. 控制器和前端 ✅
**后端控制器**
- ✅ SysLicenseController.java (授权管理控制器)
- 授权列表查询
- 授权码激活
- 授权码生成
- 授权信息查看
- 授权删除
**前端页面**
- ✅ license.html (授权列表页)
- ✅ active.html (激活页面)
- ✅ login.html (添加激活入口)
- ✅ login.js (添加激活功能)
### 3. 数据库脚本 ✅
- ✅ sys_license.sql
- 授权表结构
- 菜单权限配置
### 4. 项目集成 ✅
- ✅ 主pom.xml (添加license模块)
- ✅ ruoyi-admin/pom.xml (添加license依赖)
### 5. 文档编写 ✅
- ✅ README.md (使用说明)
- ✅ INTEGRATION.md (集成指南)
## 🎯 功能特性
### 核心功能
1. **授权码加密存储** - AES加密,安全可靠
2. **登录验证** - 登录时自动验证授权有效性
3. **拦截器保护** - 所有请求都经过授权验证
4. **定时检查** - 每5分钟自动检查授权状态
5. **自动踢出** - 授权过期自动踢出所有在线用户
6. **管理界面** - 完整的授权管理功能
7. **登录页激活** - 无需登录即可激活授权码
8. **授权码生成** - 内置生成工具,支持自定义天数
### 技术亮点
- 🔒 AES加密算法保护授权码
- 🔄 Spring拦截器实现全局授权验证
- ⏰ Spring定时任务自动检查授权
- 🎨 完整的前后端交互界面
- 📦 独立模块设计,方便复用
- 🛠️ 提供测试工具和生成工具
## 📂 文件清单
```
ruoyi-license/
├── src/main/java/com/ruoyi/license/
│ ├── config/
│ │ └── LicenseConfig.java (拦截器配置)
│ ├── domain/
│ │ └── SysLicense.java (授权实体)
│ ├── interceptor/
│ │ └── LicenseInterceptor.java (授权拦截器)
│ ├── mapper/
│ │ └── SysLicenseMapper.java (Mapper接口)
│ ├── service/
│ │ ├── ISysLicenseService.java (服务接口)
│ │ └── impl/
│ │ └── SysLicenseServiceImpl.java (服务实现)
│ ├── task/
│ │ └── LicenseCheckTask.java (定时任务)
│ └── util/
│ ├── LicenseUtils.java (工具类)
│ ├── LicenseGenerator.java (生成器)
│ └── LicenseTest.java (测试工具)
├── src/main/resources/mapper/license/
│ └── SysLicenseMapper.xml (MyBatis映射)
├── pom.xml (模块配置)
├── README.md (使用说明)
└── INTEGRATION.md (集成指南)
sql/
└── sys_license.sql (数据库脚本)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/license/
└── SysLicenseController.java (控制器)
ruoyi-admin/src/main/resources/templates/system/license/
├── license.html (列表页)
└── active.html (激活页)
修改的文件:
├── pom.xml (添加模块)
├── ruoyi-admin/pom.xml (添加依赖)
├── ruoyi-admin/src/main/resources/templates/login.html
└── ruoyi-admin/src/main/resources/static/ruoyi/login.js
```
## 🚀 快速开始
### 1. 执行数据库脚本
```sql
source sql/sys_license.sql;
```
### 2. 启用定时任务
在 RuoYiApplication.java 添加 @EnableScheduling
### 3. 编译项目
```bash
mvn clean install
```
### 4. 生成授权码
运行 LicenseGenerator.java 或在系统界面生成
### 5. 激活授权码
登录页点击"激活授权码"输入授权码
## 🔧 使用场景
### 场景1:软件交付
- 开发完成后生成授权码
- 交付给客户时提供授权码
- 客户激活后可使用指定期限
### 场景2:试用版本
- 生成30天试用授权码
- 客户试用满意后购买正式授权
- 激活正式授权码延长使用期限
### 场景3:订阅服务
- 按年生成授权码
- 到期前提醒客户续费
- 续费后激活新授权码
### 场景4:多项目复用
- 将license模块复制到其他项目
- 修改密钥和配置
- 快速实现授权功能
## ⚙️ 自定义配置
### 修改密钥(必须)
```java
// LicenseUtils.java
private static final String SECRET_KEY = "YourKey16Chars!!";
```
### 调整检查频率
```java
// LicenseCheckTask.java
@Scheduled(cron = "0 */10 * * * ?") // 改为10分钟
```
### 自定义拦截路径
```java
// LicenseConfig.java
.excludePathPatterns("/api/**", "/public/**")
```
## 📊 数据库表结构
```sql
sys_license (授权表)
├── license_id (授权ID - 主键)
├── license_code (授权码 - 加密存储)
├── start_time (开始时间)
├── expire_time (结束时间)
├── status (状态: 0未激活 1已激活 2已过期)
├── active_time (激活时间)
├── active_by (激活人)
├── create_by (创建者)
├── create_time (创建时间)
├── update_by (更新者)
├── update_time (更新时间)
└── remark (备注)
```
## 🔐 安全建议
1. **生产环境必须修改默认密钥**
2. **授权码通过安全渠道传递**
3. **定期备份授权表数据**
4. **限制授权管理菜单权限**
5. **监控授权激活日志**
## 📝 后续优化建议
1. **硬件绑定** - 绑定服务器MAC地址或CPU序列号
2. **在线验证** - 连接授权服务器在线验证
3. **授权分级** - 不同授权码对应不同功能权限
4. **自动续费** - 集成支付接口自动续费
5. **授权统计** - 统计授权使用情况和到期提醒
## ✅ 测试清单
- [ ] 数据库表创建成功
- [ ] 菜单权限配置正确
- [ ] 授权码生成功能正常
- [ ] 授权码加密解密正确
- [ ] 登录页激活功能正常
- [ ] 系统内激活功能正常
- [ ] 授权拦截器生效
- [ ] 定时任务执行正常
- [ ] 授权过期自动踢出
- [ ] 授权列表查询正常
## 📞 技术支持
如有问题,请查看:
1. README.md - 使用说明
2. INTEGRATION.md - 集成指南
3. RuoYi官方文档
---
**开发完成时间**: 2024
**模块版本**: 1.0.0
**适用框架**: RuoYi v4.8.2
**技术栈**: SpringBoot + MyBatis + Shiro + Thymeleaf