feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

133
pkg/utils/README.md Normal file
View File

@@ -0,0 +1,133 @@
# 工具包
本模块提供各种实用工具函数和类。
## 功能特性
- 加密工具MD5、SHA256、密码哈希
- JWT token管理
- 统一响应处理
- 数据验证
- 日志管理
## 模块结构
```
utils/
├── crypto.go # 加密工具
├── jwt.go # JWT管理
├── response.go # 响应处理
├── validator.go # 数据验证
├── logger.go # 日志管理
└── README.md # 说明文档
```
## 使用方法
### 加密工具
```go
import "goalfymax-admin/pkg/utils"
// MD5哈希
hash := utils.MD5Hash("password")
// SHA256哈希
hash := utils.SHA256Hash("password")
// 生成盐值
salt, err := utils.GenerateSalt()
// 哈希密码
hashedPassword := utils.HashPassword("password", salt)
// 验证密码
isValid := utils.VerifyPassword("password", salt, hashedPassword)
```
### JWT管理
```go
// 创建JWT管理器
jwtManager := utils.NewJWTManager("your-secret-key")
// 生成token
token, err := jwtManager.GenerateToken(1, "admin", "admin")
// 解析token
claims, err := jwtManager.ParseToken(token)
// 刷新token
newToken, err := jwtManager.RefreshToken(token)
```
### 响应处理
```go
// 创建响应实例
resp := utils.NewResponse()
// 成功响应
resp.Success(c, data)
// 错误响应
resp.Error(c, 400, "参数错误")
resp.BadRequest(c, "请求参数错误")
resp.Unauthorized(c, "未授权")
resp.Forbidden(c, "禁止访问")
resp.NotFound(c, "资源不存在")
resp.InternalServerError(c, "服务器内部错误")
// 分页响应
resp.Page(c, data, total, page, size)
```
### 数据验证
```go
// 创建验证器
validator := utils.NewValidator()
// 验证邮箱
isValid := validator.IsEmail("user@example.com")
// 验证手机号
isValid := validator.IsPhone("13800138000")
// 验证用户名
isValid := validator.IsUsername("admin")
// 验证密码强度
isValid := validator.IsPassword("password123")
// 验证URL
isValid := validator.IsURL("https://example.com")
// 检查是否为空
isEmpty := validator.IsEmpty("")
// 验证角色
isValid := validator.IsValidRole("admin")
```
### 日志管理
```go
// 创建日志实例
logger, err := utils.NewLogger("info", "json", "stdout")
if err != nil {
log.Fatal(err)
}
// 记录日志
logger.Info("用户登录", zap.String("username", "admin"))
logger.Error("登录失败", zap.String("error", "密码错误"))
// 添加字段
logger.WithField("user_id", 1).Info("用户操作")
logger.WithFields(map[string]interface{}{
"user_id": 1,
"action": "login",
}).Info("用户登录")
```