This commit is contained in:
2025-11-10 20:11:14 +08:00
parent 86c7a0e0d5
commit 70bf6fe20f
12 changed files with 325 additions and 67 deletions
+51
View File
@@ -0,0 +1,51 @@
package models
import (
"crypto/md5"
"crypto/rand"
"encoding/hex"
"time"
)
// 获取当前时间字符串
// 参数格式可选,默认"2006-01-02 15:04:05"
func GetCurrentTimeString(format ...string) string {
// 默认格式
layout := "2006_01_02-15_04_05.999999999"
// 如果传入了格式参数则使用自定义格式
if len(format) > 0 {
layout = format[0]
}
return time.Now().Format(layout)
}
func RandStr32() string {
// 生成 32 字节 (256 位) 随机数据
b := make([]byte, 32)
if _, err := rand.Read(b); err != nil {
panic(err)
}
// 转换为 16 进制字符串 (长度 64)
cookie := hex.EncodeToString(b)
return cookie
}
func Md5Str(str string) string {
hashBytes2 := md5.Sum([]byte(str))
hashString2 := hex.EncodeToString(hashBytes2[:]) // 注意数组转切片的[:]
return hashString2
}
func HashUserPass(str string) string {
switch ConfigsUser.PassHashType {
case "text":
return str
case "md5":
return Md5Str(str)
}
return GetCurrentTimeString() + RandStr32() //如果转换失败返回当前时间,避免撞库
}
+20
View File
@@ -29,9 +29,25 @@ type TabUser_ struct {
Name string `gorm:"size:100;uniqueIndex"` // 唯一约束索引
Email string `gorm:"size:255;index"` // 字符串长度限制100 索引
Pass string `gorm:"size:128"` // 建议存储哈希后的密码
Type string `gorm:"size:64;default:user"` //
Date time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP"` // 默认当前时间
}
type TabUserGroups_ struct {
ID uint `gorm:"primaryKey;autoIncrement"` // 自增主键
Name string `gorm:"size:100;uniqueIndex"` // 唯一约束索引
Email string `gorm:"size:255;index"` // 字符串长度限制100 索引
Type string `gorm:"size:64;default:usergroup"` //
Date time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP"` // 默认当前时间
}
type TabUserGroupBinds_ struct {
ID uint `gorm:"primaryKey;autoIncrement"` // 自增主键
UserID uint `gorm:"index"`
GroupID uint `gorm:"index"`
Date time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP"` // 默认当前时间
}
type TabUserInfo_ struct {
ID uint `gorm:"primaryKey;autoIncrement"`
UserID uint `gorm:"not null;uniqueIndex"`
@@ -89,6 +105,10 @@ func DatabaseInit() error {
// 自动创建表结构
DB.AutoMigrate(&TabUser_{})
DB.AutoMigrate(&TabUserGroups_{})
DB.AutoMigrate(&TabUserGroupBinds_{})
DB.AutoMigrate(&TabUserInfo_{})
DB.AutoMigrate(&TabCookie_{})