🎨 新增兑换码功能,新增vip过期检测定时任务

This commit is contained in:
2025-09-09 22:25:27 +08:00
parent a30ab925d1
commit c588e9efe7
19 changed files with 914 additions and 56 deletions

218
README.md
View File

@@ -1,54 +1,174 @@
## server项目结构
# LCKT 后端服务
基于 Gin-Vue-Admin 框架开发的全栈开发基础平台后端服务,提供完整的用户管理、权限控制、内容管理等功能。
## 🚀 项目特性
- **现代化技术栈**: 基于 Go 1.23 + Gin + GORM + Redis + MySQL
- **完整的权限系统**: 基于 Casbin 的 RBAC 权限控制
- **丰富的业务模块**: 用户管理、订单系统、内容管理、通知系统等
- **多数据库支持**: MySQL、PostgreSQL、SQLite、SQL Server、Oracle
- **多种存储方案**: 阿里云OSS、腾讯云COS、七牛云、MinIO等
- **微信生态集成**: 微信支付、微信公众号
- **API文档**: 集成 Swagger 自动生成API文档
- **容器化部署**: 支持 Docker 部署
## 📋 功能模块
### 系统管理
- 用户管理 (User Management)
- 角色权限 (Role & Permission)
- 菜单管理 (Menu Management)
- API管理 (API Management)
- 操作日志 (Operation Log)
- 字典管理 (Dictionary)
### 业务功能
- 用户系统 (App User System)
- 订单管理 (Order Management)
- 兑换码系统 (Redeem Code)
- 文章管理 (Article Management)
- 分类管理 (Category Management)
- 横幅管理 (Banner Management)
- 通知系统 (Notice System)
- VIP会员 (VIP System)
- 机器人管理 (Bot Management)
### 工具功能
- 文件上传下载 (File Upload/Download)
- 代码生成器 (Code Generator)
- 表单生成器 (Form Builder)
- Excel导入导出 (Excel Import/Export)
- 验证码 (Captcha)
## 🏗️ 项
目结构
```shell
├── api
   └── v1
├── config
├── core
├── docs
├── global
├── initialize
│   └── internal
├── middleware
├── model
  ── request
│   └── response
├── packfile
├── resource
   ├── excel
│   ├── page
│   └── template
├── router
├── service
── source
── utils
── timer
└── upload
├── api # API接口层
└── v1 # v1版本API
├── config # 配置文件结构体
├── core # 核心组件初始化
├── docs # Swagger文档
├── global # 全局变量
├── initialize # 系统初始化
├── middleware # 中间件
├── model # 数据模型
│ ├── request # 请求结构体
── response # 响应结构体
── resource # 静态资源
│ ├── excel # Excel文件
│ ├── page # 页面模板
└── template # 代码模板
├── router # 路由
├── service # 业务逻辑层
├── source # 初始化数据
├── task # 定时任务
── utils # 工具函数
── timer # 定时器
── upload # 文件上传
```
| 文件夹 | 说明 | 描述 |
| ------------ | ----------------------- | --------------------------- |
| `api` | api层 | api层 |
| `--v1` | v1版本接口 | v1版本接口 |
| `config` | 配置包 | config.yaml对应的配置结构体 |
| `core` | 核心文件 | 核心组件(zap, viper, server)的初始化 |
| `docs` | swagger文档目录 | swagger文档目录 |
| `global` | 全局对象 | 全局对象 |
| `initialize` | 初始化 | router,redis,gorm,validator, timer的初始化 |
| `--internal` | 初始化内部函数 | gorm 的 longger 自定义,在此文件夹的函数只能由 `initialize` 层进行调用 |
| `middleware` | 中间件层 | 用于存放 `gin` 中间件代码 |
| `model` | 模型层 | 模型对应数据表 |
| `--request` | 入参结构体 | 接收前端发送到后端的数据。 |
| `--response` | 出参结构体 | 返回给前端的数据结构体 |
| `packfile` | 静态文件打包 | 静态文件打包 |
| `resource` | 静态资源文件夹 | 负责存放静态文件 |
| `--excel` | excel导入导出默认路径 | excel导入导出默认路径 |
| `--page` | 表单生成器 | 表单生成器 打包后的dist |
| `--template` | 模板 | 模板文件夹,存放的是代码生成器的模板 |
| `router` | 路由层 | 路由层 |
| `service` | service层 | 存放业务逻辑问题 |
| `source` | source层 | 存放初始化数据的函数 |
| `utils` | 工具包 | 工具函数封装 |
| `--timer` | timer | 定时器接口封装 |
| `--upload` | oss | oss接口封装 |
## 🛠️ 技术栈
### 后端框架
- **Gin**: 高性能的Go Web框架
- **GORM**: Go语言ORM库
- **Casbin**: 权限管理库
- **Viper**: 配置管理
- **Zap**: 高性能日志库
- **JWT**: 身份认证
- **Redis**: 缓存和会话存储
### 数据库支持
- MySQL
- PostgreSQL
- SQLite
- SQL Server
- Oracle
- MongoDB
### 对象存储
- 阿里云OSS
- 腾讯云COS
- 七牛云
- MinIO
- AWS S3
- Cloudflare R2
- 华为云OBS
### 第三方集成
- 微信支付
- 微信公众号
- 阿里云短信
- 邮件发送#
# 🚀 快速开始
### 环境要求
- Go 1.23+
- MySQL 5.7+
- Redis 5.0+
### 安装依赖
```bash
go mod tidy
```
### 配置文件
复制配置文件并修改相关配置:
```bash
cp config.yaml.example config.yaml
```
主要配置项:
- 数据库连接信息
- Redis连接信息
- JWT密钥
- 对象存储配置
- 微信相关配置
### 运行项目
```bash
# 开发环境
go run main.go
# 生产环境
go build -o server main.go
./server
```
### Docker 部署
```bash
# 构建镜像
docker build -t lckt-server .
# 运行容器
docker run -d -p 8888:8888 --name lckt-server lckt-server
```
## 📖 API 文档
项目集成了 Swagger 自动生成API文档启动项目后访问
```
http://localhost:8888/swagger/index.html
```
## 🔧 开发指南
### 代码生成
项目内置代码生成器可以快速生成CRUD代码
1. 配置数据表结构
2. 使用代码生成器生成相关文件
3. 根据业务需求调整生成的代码
### 权限控制
基于 Casbin 实现的 RBAC 权限控制:
- 用户 (User)
- 角色 (Role)
- 权限 (Permission)
- 菜单 (Menu)
### 中间件
- JWT认证中间件
- 跨域处理中间件
- 操作日志中间件
- 限流中间件