XcySouquan - 授权管理系统

📋 项目简介

XcySouquan(小彩云授权)是一个基于 Spring Boot 2.7.18 开发的软件授权管理和销售系统。该系统提供了完整的软件产品授权管理、用户管理、订单管理、角色权限管理等功能,适用于软件开发商进行产品授权的销售和管理。

作者: 韩先生
联系QQ: 1772891600
技术栈: Spring Boot + MyBatis Plus + MySQL + Redis + JWT


⚡ 核心特性

1. 授权管理

  • 多产品支持: 支持管理多个软件产品的授权
  • 授权类型: 支持普通版和高级版两种授权类型
  • RSA加密: 采用RSA公钥/私钥加密机制保障授权安全
  • 授权状态追踪: 完整的授权状态管理和历史记录
  • 授权日志: 详细记录每次授权操作的时间、IP、操作人等信息

2. 用户系统

  • 用户认证: 基于 JWT Token 的用户身份认证
  • 角色权限: 灵活的角色权限管理体系
  • 账户余额: 内置用户余额管理,单位:分
  • 代理机制: 支持多级代理体系,记录上下级关系
  • 用户状态: 用户状态管理(正常/异常)

3. 产品管理

  • 产品信息: 产品名称、图标、介绍、版本号管理
  • 产品分级: 支持产品分等级销售
  • 价格管理: 灵活的产品价格配置
  • 版本控制: 产品版本更新管理
  • 下载管理: 产品下载链接管理

4. 订单系统

  • 订单管理: 完整的订单创建、查询、状态管理
  • 订单日志: 订单操作历史记录
  • 支付集成: 集成支付功能(PAYKEY配置)

5. 消息通知

  • 实时通信: 基于 WebSocket 的实时消息推送
  • 邮件通知: Spring Mail 邮件发送功能
  • 消息历史: 消息记录和历史查询
  • 消息限流: 内置消息发送频率限制

6. 内容管理

  • 公告管理: 系统公告的发布和管理
  • 文章系统: 支持 Markdown 格式的文章发布
  • 广告管理: 广告位配置和管理
  • 反馈系统: 用户反馈收集和分类管理

7. 安全特性

  • JWT认证: 基于 JWT 的无状态认证机制
  • Spring Security: 集成 Spring Security 安全框架
  • Token缓存: Caffeine 本地缓存提升 Token 验证性能
  • 验证码: EasyCaptcha 图形验证码防机器人
  • 请求过滤: 自定义过滤器和跨域处理

🏗️ 技术架构

后端技术栈

技术版本说明
Spring Boot2.7.18核心框架
JDK1.8Java运行环境
MyBatis Plus3.3.1ORM框架
MySQL8.0.28关系型数据库
Redis-缓存数据库
Jedis3.8.0Redis客户端
Spring Security-安全框架
JWT0.9.1Token认证
Caffeine2.6.2本地缓存
Lombok1.18.16代码简化工具
FastJson1.2.83JSON处理
Jackson-JSON处理
OkHttp4.9.3HTTP客户端
ZXing3.4.1二维码/条形码生成
Flexmark0.62.2Markdown解析
EasyCaptcha1.6.2验证码生成
Commons Net3.9.0网络工具库

系统架构

┌─────────────────────────────────────────────┐
│              前端应用层                      │
│         (API调用 / WebSocket连接)           │
└─────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────┐
│              控制层 (Controllers)            │
│  用户 / 授权 / 产品 / 订单 / 消息 / 内容管理  │
└─────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────┐
│              服务层 (Services)               │
│       业务逻辑处理 / 数据验证 / 安全控制     │
└─────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────┐
│              数据层 (Mappers)                │
│           MyBatis Plus ORM映射              │
└─────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────┐
│              数据库层                        │
│           MySQL + Redis                     │
└─────────────────────────────────────────────┘

📦 功能模块

用户模块

  • 用户管理 (UsersController): 用户注册、登录、信息管理
  • 用户角色 (UserRoleController): 用户角色绑定管理
  • 用户产品 (UserProductController): 用户已购产品管理
  • 用户黑名单 (UserHmdController): 用户黑名单管理
  • 易核用户 (YhUserController): 第三方用户集成

授权模块

  • 授权管理 (ShouquanController): 授权的创建、查询、更新
  • 授权日志 (ShouquanLogController): 授权操作日志
  • 授权内容 (SqContentController): 授权详细内容管理
  • 授权Token (SqTokenController): 授权Token管理

产品模块

  • 产品管理 (ProductController): 产品基本信息管理
  • 产品Token (ProductTokenController): 产品授权Token
  • 产品规格 (SpecificationsController): 产品规格配置
  • 产品更新 (ProductupdatelistController): 产品更新列表
  • 云产品列表 (SkyProductListController): 云端产品管理

订单模块

  • 订单管理 (SqOrderController): 订单创建和查询
  • 采集列表 (CjListController): 订单采集记录
  • 更新列表 (UpdateListController): 订单更新记录

内容模块

  • 文章管理 (ArticlesController): 文章发布和管理
  • 公告管理 (GgController): 系统公告
  • 广告管理 (AdvertisementController): 广告位管理
  • 通知管理 (InformController): 通知消息
  • 消息管理 (SkyMessageController): 实时消息

权限模块

  • 角色管理 (RoleController): 角色定义和权限配置
  • 角色价格 (RolePriceController): 角色价格管理
  • 角色产品 (RoleProductController): 角色产品关联

反馈模块

  • 反馈管理 (SqFeedbackController): 用户反馈收集
  • 反馈分类 (SqFeedbackTitleController): 反馈类型管理

系统模块

  • API管理 (ApiController): API接口管理
  • 日志管理 (LogController): 系统操作日志
  • 消息历史 (MessageHistoryController): 消息记录

🔐 安全机制

1. JWT Token 认证

  • 使用 JWT (JSON Web Token) 实现无状态认证
  • Token 验证结果缓存(Caffeine),5分钟过期
  • 自定义 JWT 过滤器 (JwtAuthorizationTokenFilter)
  • Token 工具类 (JwtTokenUtil) 提供 Token 生成和验证

2. RSA 加密

  • 授权采用 RSA 非对称加密
  • 每个授权生成独立的公钥和私钥对
  • RSA 工具类 (RSAUtil) 提供加解密功能

3. 请求过滤

  • 自定义过滤器 (Filters) 处理请求
  • 跨域配置 (Cross) 支持前后端分离
  • WebSocket 握手拦截 (CustomHandshakeHandler)

4. 访问控制

  • Spring Security 安全配置 (SecurityConfig)
  • 基于角色的权限控制
  • 接口级别的权限验证

5. 数据安全

  • 密码加密存储
  • SQL 注入防护(MyBatis Plus)
  • XSS 防护

💾 数据库设计

核心数据表

表名说明主要字段
users用户表uid, username, password, money, rid
shouquan授权表sid, content, qq, pid, code, publicKey, privateKey
product产品表pid, name, icon, versions, price, type
sq_order订单表订单ID, 用户ID, 产品ID, 金额, 状态
role角色表rid, 角色名, 权限配置
articles文章表文章ID, 标题, 内容, 作者
shouquan_log授权日志操作ID, 授权ID, 操作类型, 时间
log系统日志日志ID, 用户ID, 操作, IP, 时间
sq_feedback反馈表反馈ID, 用户ID, 内容, 类型
inform通知表通知ID, 标题, 内容, 状态
advertisement广告表广告ID, 标题, 图片, 链接
sky_message消息表消息ID, 发送者, 接收者, 内容

⚙️ 配置说明

服务器配置

server:
  port: 9005  # 服务端口
  servlet:
    session:
      timeout: 7000000  # Session超时时间

数据库配置

  • MySQL: 127.0.0.1:3306
  • 数据库名: sq_qbqb_pro
  • 连接池: HikariCP
    • 最小空闲连接: 3
    • 最大连接数: 15
    • 连接超时: 10秒

Redis配置

  • 地址: 127.0.0.1:6379
  • 数据库: 0
  • 连接池: Jedis Pool
    • 最大活跃连接: 100
    • 最大空闲连接: 50

缓存配置

  • 类型: Caffeine 本地缓存
  • 策略: 最大1000条,5分钟过期
  • 缓存项:
    • userDetails: 用户详情缓存
    • tokenValidation: Token验证缓存

性能优化配置

  • 懒加载: 启用 Bean 懒加载
  • JVM参数优化:
    • 内存: Xms128m / Xmx512m
    • 垃圾回收器: Serial GC
    • 字符串去重优化
    • 压缩指针优化

📁 项目结构

xcysq/
├── src/
│   ├── main/
│   │   ├── java/com/
│   │   │   ├── HzbApplication.java           # 主启动类
│   │   │   ├── config/                       # 配置类
│   │   │   │   ├── CacheConfig.java         # 缓存配置
│   │   │   │   ├── RedisConfig.java         # Redis配置
│   │   │   │   ├── SecurityConfig.java      # 安全配置
│   │   │   │   └── WebSocketConfig.java     # WebSocket配置
│   │   │   ├── controller/                   # 控制器层
│   │   │   │   ├── UsersController.java     # 用户控制器
│   │   │   │   ├── ShouquanController.java  # 授权控制器
│   │   │   │   ├── ProductController.java   # 产品控制器
│   │   │   │   ├── SqOrderController.java   # 订单控制器
│   │   │   │   └── ...                      # 其他控制器
│   │   │   ├── entity/                       # 实体类
│   │   │   │   ├── Users.java              # 用户实体
│   │   │   │   ├── Shouquan.java           # 授权实体
│   │   │   │   ├── Product.java            # 产品实体
│   │   │   │   └── ...                     # 其他实体
│   │   │   ├── mapper/                       # 数据访问层
│   │   │   ├── service/                      # 业务逻辑层
│   │   │   ├── request/                      # 请求对象
│   │   │   ├── response/                     # 响应对象
│   │   │   ├── util/                         # 工具类
│   │   │   │   ├── JwtTokenUtil.java       # JWT工具
│   │   │   │   ├── RSAUtil.java            # RSA加密工具
│   │   │   │   └── ...                     # 其他工具
│   │   │   ├── Cross.java                    # 跨域配置
│   │   │   ├── Filters.java                  # 过滤器
│   │   │   └── JwtAuthorizationTokenFilter.java  # JWT过滤器
│   │   └── resources/
│   │       ├── application.yaml              # 主配置文件
│   │       ├── application-server.yaml       # 服务器配置
│   │       ├── application-lowmem.yaml       # 低内存配置
│   │       ├── application-ultralowmem.yaml  # 超低内存配置
│   │       ├── mapper/                       # MyBatis XML映射
│   │       ├── notification_template.html    # 通知模板
│   │       └── verification_code_template.html # 验证码模板
│   └── test/                                 # 测试代码
├── pom.xml                                    # Maven配置
├── scripts/                                   # 脚本文件
└── target/                                    # 编译输出目录

🔧 工具类说明

安全相关

  • JwtTokenUtil: JWT Token 生成、解析、验证
  • RSAUtil: RSA 加密解密工具

业务工具

  • MessageRateLimiter: 消息发送频率限制
  • 二维码/条形码生成工具(ZXing)
  • Markdown 解析工具(Flexmark)

示例代码

  • MiYao.java: 密钥示例
  • RSAClientExample.java: RSA 客户端示例

🚀 快速开始

环境要求

  • JDK 1.8+
  • Maven 3.6+
  • MySQL 8.0+
  • Redis 3.0+

构建项目

mvn clean package -DskipTests

运行应用

java -jar target/XcySouquan-1.0-SNAPSHOT.jar

应用将在 http://localhost:9005 启动


📊 性能特点

启动优化

  • Bean 懒加载机制
  • 关闭不必要的功能(Banner、JMX)
  • Spring Context Indexer 加速组件扫描
  • DevTools 热重载(仅开发环境)

运行时优化

  • HikariCP 高性能连接池
  • 预创建数据库连接避免冷启动
  • Caffeine 本地缓存减少数据库访问
  • Redis 缓存热点数据
  • 批量语句重写优化(rewriteBatchedStatements)
  • PreparedStatement 缓存

内存优化

  • 提供三种内存配置方案
    • 标准配置
    • 低内存配置(lowmem)
    • 超低内存配置(ultralowmem)
  • JVM 参数优化
    • Xms128m / Xmx512m
    • SerialGC 垃圾回收
    • 字符串去重
    • 压缩指针

📝 API接口

系统提供完整的 RESTful API 接口,主要接口分类:

用户接口

  • POST /users/register - 用户注册
  • POST /users/login - 用户登录
  • GET /users/info - 获取用户信息
  • PUT /users/update - 更新用户信息

授权接口

  • POST /shouquan/create - 创建授权
  • GET /shouquan/query - 查询授权
  • PUT /shouquan/update - 更新授权
  • DELETE /shouquan/delete - 删除授权

产品接口

  • GET /product/list - 产品列表
  • GET /product/detail - 产品详情
  • POST /product/create - 创建产品
  • PUT /product/update - 更新产品

订单接口

  • POST /sq-order/create - 创建订单
  • GET /sq-order/list - 订单列表
  • GET /sq-order/detail - 订单详情

(更多接口请参考各个 Controller 源码)


🛡️ 注意事项

  1. 安全性

    • 首次运行前请修改数据库密码
    • 修改 JWT Secret Key
    • 配置 Redis 密码
    • 修改 PAYKEY
  2. 性能

    • 根据服务器配置选择合适的内存配置文件
    • 生产环境建议关闭 DevTools
    • 合理配置数据库连接池大小
  3. 兼容性

    • 仅支持 MySQL 8.0+
    • 需要 Redis 支持
  4. 数据库

    • 首次启动前请创建数据库
    • 导入数据库表结构

📄 许可证

本项目版权归作者所有,未经授权不得用于商业用途。


📞 联系方式

作者: 韩先生
QQ: 1772891600

如有问题或建议,欢迎联系作者。