feat: 完成 opsx-licence 许可证管理平台全栈实现

基于 opsx-web-lite 框架(Go+Gin+Vue3+Element Plus)构建许可证管理服务器,
业务域参考 Licence 服务器 Web 版。

【后端 - 4层架构】
- 认证:单 Admin 表 + JWT(HS256)
- 核心授权域:Product / Customer / License / Activation
  · License 生成/验证/激活/机器绑定/心跳/续期/吊销
  · 客户端契约接口:/api/v1/license/{verify,activate,deactivate,heartbeat}
- 定价订单:Plan / Order / 支付网关配置
- 防重复购买:CustomerEntitlement + 幂等支付 webhook + 手动发放
- 分析审计:Dashboard 统计 / Analytics / AuditLog / Setting 管理

【前端】
- Dashboard(ECharts 图表)、产品、客户、License、计划、订单、权益、日志、设置
- 9 个完整 CRUD 业务页面 + 登录/布局

【部署】
- SQLite + 单二进制(//go:embed 嵌入前端)
- 开发:./run.sh start(前端5181/后端9001)
- 生产:./run.sh build && ./run.sh binary start
- 默认账号:admin/admin

Author: Logan.Li
This commit is contained in:
Logan.Li committed 2026-08-07 15:02:00 +08:00
commit 4ae318335c
88 files changed
+10562

No files matched your search

+104
View File
@@ -0,0 +1,104 @@
# opsx-licence
许可证(License)管理服务器 Web 版 —— 基于 Go (Gin) + Vue 3 的单体全栈应用。
## 项目简介
opsx-licence 是一个统一的授权验证与管理服务,提供许可证的生成、验证、激活、机器绑定、心跳等核心能力,并支持产品定价、订单购买、防重复购买与支付回调。
技术栈与工程结构参考 [opsx-web-lite](../opsx-web-lite),业务领域参考 Licence 服务器 Web版。
## 技术栈
### 后端
- **语言/框架**:Go 1.24 + Gin
- **ORM**:GORM(默认 SQLite,支持 MySQL / PostgreSQL)
- **认证**:JWT(HS256)+ bcrypt
- **架构**:4 层分层(controller → service → dto → model),按业务域分包
### 前端
- **框架**:Vue 3.4 + Vite
- **UI**:Element Plus
- **状态/路由**:Pinia + Vue Router 4
- **图表**:ECharts
### 部署
- 单二进制:前端通过 `//go:embed` 打包进 Go 二进制,一个文件即可部署
## 快速开始
### 环境要求
- Go >= 1.24
- Node.js >= 20
- CGO(SQLite 驱动需要,macOS 自带 gcc)
### 一键启动(开发模式)
```bash
cp .env.example .env
./run.sh start
```
- 前端:http://localhost:5181
- 后端:http://localhost:9001
- 默认账号:`admin` / `admin`
### 构建单二进制
```bash
./run.sh build
./run.sh binary start
```
## 常用命令
| 命令 | 说明 |
|---|---|
| `make dev` / `./run.sh start` | 启动前后端开发服务 |
| `make build` / `./run.sh build` | 构建嵌入前端的单二进制 |
| `./run.sh stop` | 停止服务 |
| `./run.sh status` | 查看服务状态 |
| `make clean` | 清理构建产物 |
## 项目结构
```
opsx-licence/
├── backend/ # Go 后端
│ ├── main.go # 入口
│ ├── embed.go # 前端嵌入
│ ├── config/ # 配置
│ ├── database/ # 数据库初始化 + 种子数据
│ ├── middleware/ # 中间件(auth / cors)
│ ├── router/ # 路由
│ ├── utils/ # 工具(jwt / password)
│ └── internal/ # 业务分层
│ ├── controller/ # HTTP 处理层
│ ├── service/ # 业务逻辑层
│ ├── dto/ # 请求/响应结构
│ └── model/ # 数据模型
├── frontend/ # Vue 前端
│ └── src/
│ ├── api/ # 接口封装
│ ├── stores/ # Pinia 状态
│ ├── router/ # 路由
│ ├── layouts/ # 布局
│ └── views/ # 页面
├── Makefile
├── run.sh # 启动脚本
└── .env.example
```
## 业务域(规划)
| 模块 | 说明 | 状态 |
|---|---|---|
| 认证 (Auth) | 管理员登录、JWT | ✅ |
| 核心授权 | 产品 / 客户 / License / 激活 | 🚧 规划中 |
| 定价订单 | Plan / Order / 支付网关 | 🚧 规划中 |
| 防重复购买 | 客户权益 / 幂等回调 | 🚧 规划中 |
| 分析审计 | Dashboard / Analytics / AuditLog | 🚧 规划中 |
## 作者
Logan.Li