统一表创建表的方式

This commit is contained in:
2026-04-28 16:38:39 +08:00
parent 542d0c394b
commit 5d9d73cb56
9 changed files with 191 additions and 195 deletions
-34
View File
@@ -51,47 +51,13 @@ func Md5Str(str string) string {
return hashString2 return hashString2
} }
func HashUserPass(user *TabUser_) {
switch ConfigsUser.PassHashType {
case "text":
break
case "md5":
user.Pass = Md5Str(user.Pass)
case "md5salt":
if user.Salt == "" {
user.Salt = RandStr32()
}
user.Pass = Md5Str(Md5Str(user.Pass) + user.Salt)
}
}
func IsExpired(expireTime time.Time) bool { func IsExpired(expireTime time.Time) bool {
return expireTime.Before(time.Now()) return expireTime.Before(time.Now())
} }
func CheckCookiesAndUpdate(cookie *TabCookie_) bool {
if !IsExpired(cookie.ExpiresAt) {
if cookie.Remember {
cookiewhere := TabCookie_{
ID: cookie.ID,
}
cookieupdata := TabCookie_{
UpdatedAt: time.Now(),
ExpiresAt: time.Now().Add(time.Duration(ConfigsUser.CookieTimeout) * time.Second),
}
DB.Where(&cookiewhere).Updates(&cookieupdata)
}
return true
} else {
//以过期
return false
}
//return false
}
// 判断邮箱是否合法 // 判断邮箱是否合法
func IsEmailValid(email string) bool { func IsEmailValid(email string) bool {
+9 -9
View File
@@ -35,16 +35,16 @@ func GetRealIP(c *gin.Context) string {
return c.ClientIP() return c.ClientIP()
} }
func LogAdd(c *gin.Context, msg string) { // func LogAdd(c *gin.Context, msg string) {
var logtemp APIRequestLog_ // var logtemp APIRequestLog_
logtemp.IPAddress = GetRealIP(c) // logtemp.IPAddress = GetRealIP(c)
logtemp.Path = c.Request.URL.Path // logtemp.Path = c.Request.URL.Path
logtemp.Method = c.Request.Method // logtemp.Method = c.Request.Method
logtemp.Message = msg // logtemp.Message = msg
//fmt.Println(logtemp) // //fmt.Println(logtemp)
DB.Create(&logtemp) // DB.Create(&logtemp)
} // }
+9 -75
View File
@@ -2,7 +2,6 @@ package models
import ( import (
"fmt" "fmt"
"time"
"github.com/glebarez/sqlite" "github.com/glebarez/sqlite"
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
@@ -12,70 +11,16 @@ import (
var DB *gorm.DB var DB *gorm.DB
type TabUser_ struct { // type APIRequestLog_ struct {
ID uint `gorm:"primaryKey;autoIncrement"` // 自增主键 // ID int64 `gorm:"primaryKey;column:id" json:"id"`
Name string `gorm:"size:100;uniqueIndex"` // 唯一约束索引 // IPAddress string `gorm:"column:ip_address;size:45;not null" json:"ip_address"`
Email string `gorm:"size:255;index"` // 字符串长度限制100 索引 // Path string `gorm:"column:path;size:500;not null" json:"path"`
Pass string `gorm:"size:128"` // 建议存储哈希后的密码 // Method string `gorm:"column:method;size:10;not null" json:"method"`
Type string `gorm:"size:64;default:user"` // // StatusCode int `gorm:"column:status_code;index" json:"status_code"`
Salt string `gorm:"size:64;"` // Message string `gorm:"column:error_message;type:text" json:"error_message"`
Date time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP"` // 默认当前时间 // CreatedAt time.Time `gorm:"column:created_at;type:datetime;default:CURRENT_TIMESTAMP" json:"created_at"`
}
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"`
FirstName string `gorm:"size:50;null"`
Username string `gorm:"size:30;null"`
Birthdate time.Time `gorm:"type:datetime;null"`
Gender string `gorm:"type:char(1);check:gender IN ('M', 'F', 'U');default:'U'"`
AvatarPath string `gorm:"size:255"`
Region string `gorm:"size:50"`
Language string `gorm:"size:10;default:'zh-CN'"`
CreatedAt time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP;column:created_at"`
}
// var def_user_info = User_info{
// ID:0,
// UserID:0,
// } // }
type TabCookie_ struct {
ID uint `gorm:"primaryKey;autoIncrement"`
UserID uint `gorm:"not null"`
Name string `gorm:"size:255;not null;index"`
Value string `gorm:"size:255;not null;index"`
ExpiresAt time.Time `gorm:"type:datetime;index"`
CreatedAt time.Time `gorm:"type:datetime;not null;default:CURRENT_TIMESTAMP"`
UpdatedAt time.Time `gorm:"type:datetime;index;not null;default:CURRENT_TIMESTAMP"`
Remember bool `gorm:"default:false"`
}
type APIRequestLog_ struct {
ID int64 `gorm:"primaryKey;column:id" json:"id"`
IPAddress string `gorm:"column:ip_address;size:45;not null" json:"ip_address"`
Path string `gorm:"column:path;size:500;not null" json:"path"`
Method string `gorm:"column:method;size:10;not null" json:"method"`
StatusCode int `gorm:"column:status_code;index" json:"status_code"`
Message string `gorm:"column:error_message;type:text" json:"error_message"`
CreatedAt time.Time `gorm:"column:created_at;type:datetime;default:CURRENT_TIMESTAMP" json:"created_at"`
}
func DatabaseInit() error { func DatabaseInit() error {
var err error var err error
fmt.Println("database_init") fmt.Println("database_init")
@@ -102,18 +47,7 @@ func DatabaseInit() error {
panic("数据库连接失败") panic("数据库连接失败")
} }
// 自动创建表结构 //DB.AutoMigrate(&APIRequestLog_{})
DB.AutoMigrate(&TabUser_{})
DB.AutoMigrate(&TabUserGroups_{})
DB.AutoMigrate(&TabUserGroupBinds_{})
DB.AutoMigrate(&TabUserInfo_{})
DB.AutoMigrate(&TabCookie_{})
DB.AutoMigrate(&APIRequestLog_{})
return nil return nil
} }
+2 -2
View File
@@ -13,7 +13,7 @@ import (
) )
var ( var (
purchaseUserGroup models.TabUserGroups_ purchaseUserGroup TabUserGroups
purchaseAdmins []uint purchaseAdmins []uint
) )
@@ -22,7 +22,7 @@ func updatePurchaseAdminsCash() {
purchaseAdmins = nil purchaseAdmins = nil
// id 1 是系统管理员 // id 1 是系统管理员
purchaseAdmins = append(purchaseAdmins, 1) purchaseAdmins = append(purchaseAdmins, 1)
var binds []models.TabUserGroupBinds_ var binds []TabUserGroupBinds
models.DB.Where("group_id = ?", purchaseUserGroup.ID).Find(&binds) models.DB.Where("group_id = ?", purchaseUserGroup.ID).Find(&binds)
for _, item := range binds { for _, item := range binds {
if !slices.Contains(purchaseAdmins, item.UserID) { if !slices.Contains(purchaseAdmins, item.UserID) {
+3 -3
View File
@@ -53,7 +53,7 @@ type fromGetEvents struct {
} }
var ( var (
userGroup models.TabUserGroups_ userGroup TabUserGroups
scheduleAdmins []uint scheduleAdmins []uint
) )
@@ -66,8 +66,8 @@ scheduleAdmins=nil
//id 1是系统管理员 直接appen //id 1是系统管理员 直接appen
scheduleAdmins=append(scheduleAdmins, 1) scheduleAdmins=append(scheduleAdmins, 1)
//读取所有绑定了这个用户组的用户id //读取所有绑定了这个用户组的用户id
var usergroupbind []models.TabUserGroupBinds_ var usergroupbind []TabUserGroupBinds
usergroupbindfind:= models.TabUserGroupBinds_{ usergroupbindfind:= TabUserGroupBinds{
GroupID: userGroup.ID, GroupID: userGroup.ID,
} }
models.DB.Where(&usergroupbindfind).Find(&usergroupbind) models.DB.Where(&usergroupbindfind).Find(&usergroupbind)
+134 -38
View File
@@ -12,12 +12,115 @@ import (
"github.com/mitchellh/mapstructure" "github.com/mitchellh/mapstructure"
) )
type TabUser struct {
ID uint `gorm:"primaryKey;autoIncrement"` // 自增主键
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"` //
Salt string `gorm:"size:64;"`
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"`
FirstName string `gorm:"size:50;null"`
Username string `gorm:"size:30;null"`
Birthdate time.Time `gorm:"type:datetime;null"`
Gender string `gorm:"type:char(1);check:gender IN ('M', 'F', 'U');default:'U'"`
AvatarPath string `gorm:"size:255"`
Region string `gorm:"size:50"`
Language string `gorm:"size:10;default:'zh-CN'"`
CreatedAt time.Time `gorm:"type:datetime;default:CURRENT_TIMESTAMP;column:created_at"`
}
// var def_user_info = User_info{
// ID:0,
// UserID:0,
// }
type TabUserCookie struct {
ID uint `gorm:"primaryKey;autoIncrement"`
UserID uint `gorm:"not null"`
Name string `gorm:"size:255;not null;index"`
Value string `gorm:"size:255;not null;index"`
ExpiresAt time.Time `gorm:"type:datetime;index"`
CreatedAt time.Time `gorm:"type:datetime;not null;default:CURRENT_TIMESTAMP"`
UpdatedAt time.Time `gorm:"type:datetime;index;not null;default:CURRENT_TIMESTAMP"`
Remember bool `gorm:"default:false"`
}
func HashUserPass(user *TabUser) {
switch models.ConfigsUser.PassHashType {
case "text":
break
case "md5":
user.Pass = models.Md5Str(user.Pass)
case "md5salt":
if user.Salt == "" {
user.Salt = models.RandStr32()
}
user.Pass = models.Md5Str(models.Md5Str(user.Pass) + user.Salt)
}
}
func CheckCookiesAndUpdate(cookie *TabUserCookie) bool {
if !models.IsExpired(cookie.ExpiresAt) {
if cookie.Remember {
cookiewhere := TabUserCookie{
ID: cookie.ID,
}
cookieupdata := TabUserCookie{
UpdatedAt: time.Now(),
ExpiresAt: time.Now().Add(time.Duration(models.ConfigsUser.CookieTimeout) * time.Second),
}
models.DB.Where(&cookiewhere).Updates(&cookieupdata)
}
return true
} else {
//以过期
return false
}
//return false
}
func ApiUserInit() { func ApiUserInit() {
//用户模块初始化init //用户模块初始化init
fmt.Println("users init") fmt.Println("users init")
// 自动创建表结构
models.DB.AutoMigrate(&TabUser{})
models.DB.AutoMigrate(&TabUserGroups{})
models.DB.AutoMigrate(&TabUserGroupBinds{})
models.DB.AutoMigrate(&TabUserInfo{})
models.DB.AutoMigrate(&TabUserCookie{})
//创建admin用户 //创建admin用户
var user models.TabUser_ var user TabUser
user.Name = "admin" user.Name = "admin"
if models.DB.Where(&user).First(&user).Error == nil { if models.DB.Where(&user).First(&user).Error == nil {
@@ -28,12 +131,12 @@ func ApiUserInit() {
//对密码加盐 //对密码加盐
user.Salt = models.RandStr32() user.Salt = models.RandStr32()
user.Pass = "adminpassword" user.Pass = "adminpassword"
models.HashUserPass(&user) HashUserPass(&user)
models.DB.Create(&user) // 传入指针 models.DB.Create(&user) // 传入指针
} }
//创建admin group //创建admin group
var usergroup models.TabUserGroups_ var usergroup TabUserGroups
usergroup.Name = "admins" usergroup.Name = "admins"
if models.DB.Where(&usergroup).First(&usergroup).Error == nil { if models.DB.Where(&usergroup).First(&usergroup).Error == nil {
@@ -43,7 +146,7 @@ func ApiUserInit() {
} }
//创建用户与用户组绑定 //创建用户与用户组绑定
var usergroupbind models.TabUserGroupBinds_ var usergroupbind TabUserGroupBinds
usergroupbind.UserID = user.ID usergroupbind.UserID = user.ID
usergroupbind.GroupID = usergroup.ID usergroupbind.GroupID = usergroup.ID
@@ -82,18 +185,18 @@ type From_user_changepass struct {
Newpass string `json:"newpass"` Newpass string `json:"newpass"`
} }
func AuthenticationAuthorityFromCookie(c string) (*models.TabUser_, error) { func AuthenticationAuthorityFromCookie(c string) (*TabUser, error) {
if c != "" { if c != "" {
cookie := models.TabCookie_{ cookie := TabUserCookie{
Value: c, Value: c,
} }
if models.DB.Where(&cookie).First(&cookie).Error == nil { if models.DB.Where(&cookie).First(&cookie).Error == nil {
//找到cookie,验证cookie有效性,以及更新cookie //找到cookie,验证cookie有效性,以及更新cookie
if models.CheckCookiesAndUpdate(&cookie) { if CheckCookiesAndUpdate(&cookie) {
//cookie有效 //cookie有效
//载入user //载入user
user := models.TabUser_{ user := TabUser{
ID: cookie.UserID, ID: cookie.UserID,
} }
models.DB.Where(&user).First(&user) models.DB.Where(&user).First(&user)
@@ -109,19 +212,19 @@ func AuthenticationAuthorityFromCookie(c string) (*models.TabUser_, error) {
} }
} }
func GetUserInfoFromUserID(userID uint) (*models.TabUserInfo_){ func GetUserInfoFromUserID(userID uint) *TabUserInfo {
//通过id获取用户info //通过id获取用户info
if(userID <=0){ if userID <= 0 {
return nil return nil
} }
//先查询用户是否存在 //先查询用户是否存在
var user models.TabUser_ var user TabUser
user.ID = userID user.ID = userID
if models.DB.Where(&user).First(&user).Error == nil { if models.DB.Where(&user).First(&user).Error == nil {
var userinfo models.TabUserInfo_ var userinfo TabUserInfo
userinfo.UserID = user.ID userinfo.UserID = user.ID
if models.DB.Where(&userinfo).First(&userinfo).Error == nil { if models.DB.Where(&userinfo).First(&userinfo).Error == nil {
return &userinfo return &userinfo
@@ -137,16 +240,13 @@ func GetUserInfoFromUserID(userID uint) (*models.TabUserInfo_){
return nil return nil
} }
func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[string]interface{}) { func AuthenticationAuthority(ctx *gin.Context) (bool, TabUser, map[string]interface{}) {
data, cookieval := SeparateData(ctx) data, cookieval := SeparateData(ctx)
//fmt.Println("cookieis" + cookieval) //fmt.Println("cookieis" + cookieval)
var user models.TabUser_ var user TabUser
if cookieval != "" { if cookieval != "" {
user_, error := AuthenticationAuthorityFromCookie(cookieval) user_, error := AuthenticationAuthorityFromCookie(cookieval)
if error == nil { if error == nil {
@@ -163,8 +263,6 @@ func AuthenticationAuthority(ctx *gin.Context) (bool, models.TabUser_, map[strin
} }
func ApiUser(r *gin.RouterGroup) { func ApiUser(r *gin.RouterGroup) {
r.GET("/test", func(ctx *gin.Context) { r.GET("/test", func(ctx *gin.Context) {
@@ -181,7 +279,7 @@ func ApiUser(r *gin.RouterGroup) {
var redata map[string]interface{} = make(map[string]interface{}) var redata map[string]interface{} = make(map[string]interface{})
if err == nil { if err == nil {
userinfo := GetUserInfoFromUserID(uint(id)) userinfo := GetUserInfoFromUserID(uint(id))
if(userinfo!=nil){ if userinfo != nil {
redata["userinfo"] = *userinfo redata["userinfo"] = *userinfo
} }
@@ -200,17 +298,17 @@ func ApiUser(r *gin.RouterGroup) {
//验证旧密码 //验证旧密码
//fmt.Println(user) //fmt.Println(user)
//转换旧密码 //转换旧密码
olduser := models.TabUser_{ olduser := TabUser{
Pass: jsonData.Oldpass, Pass: jsonData.Oldpass,
Salt: user.Salt, Salt: user.Salt,
} }
models.HashUserPass(&olduser) HashUserPass(&olduser)
if olduser.Pass == user.Pass { if olduser.Pass == user.Pass {
//旧密码正确,更新新密码 //旧密码正确,更新新密码
var userupdate models.TabUser_ var userupdate TabUser
userupdate.Pass = jsonData.Newpass userupdate.Pass = jsonData.Newpass
userupdate.Salt = models.RandStr32() userupdate.Salt = models.RandStr32()
models.HashUserPass(&userupdate) HashUserPass(&userupdate)
models.DB.Model(&user).Updates(&userupdate) models.DB.Model(&user).Updates(&userupdate)
ReturnJson(ctx, "apiOK", nil) ReturnJson(ctx, "apiOK", nil)
} else { } else {
@@ -233,7 +331,7 @@ func ApiUser(r *gin.RouterGroup) {
if err := mapstructure.Decode(data, &jsonData); err == nil { if err := mapstructure.Decode(data, &jsonData); err == nil {
//判断新邮箱格式 //判断新邮箱格式
if models.IsEmailValid(jsonData.Newemail) { if models.IsEmailValid(jsonData.Newemail) {
var userupdate models.TabUser_ var userupdate TabUser
userupdate.Email = jsonData.Newemail userupdate.Email = jsonData.Newemail
models.DB.Model(&user).Updates(&userupdate) models.DB.Model(&user).Updates(&userupdate)
ReturnJson(ctx, "apiOK", nil) ReturnJson(ctx, "apiOK", nil)
@@ -297,10 +395,10 @@ func ApiUser(r *gin.RouterGroup) {
} }
if is_save_ok { if is_save_ok {
//修改数据库内容 //修改数据库内容
var user_info_fund models.TabUserInfo_ var user_info_fund TabUserInfo
user_info_fund.UserID = user.ID user_info_fund.UserID = user.ID
var user_update_avatar models.TabUserInfo_ var user_update_avatar TabUserInfo
user_update_avatar.AvatarPath = file_hashi_name + file_extname user_update_avatar.AvatarPath = file_hashi_name + file_extname
//先查找是否有记录 //先查找是否有记录
@@ -357,10 +455,10 @@ func ApiUser(r *gin.RouterGroup) {
// fmt.Println(user) // fmt.Println(user)
t, err := time.Parse("2006-01-02", jsonData.Birthday) t, err := time.Parse("2006-01-02", jsonData.Birthday)
if err == nil { if err == nil {
var userinfo models.TabUserInfo_ var userinfo TabUserInfo
userinfo.UserID = user.ID userinfo.UserID = user.ID
var userinfoupdate models.TabUserInfo_ var userinfoupdate TabUserInfo
userinfoupdate.UserID = user.ID userinfoupdate.UserID = user.ID
userinfoupdate.CreatedAt = time.Now() userinfoupdate.CreatedAt = time.Now()
userinfoupdate.Username = jsonData.Username userinfoupdate.Username = jsonData.Username
@@ -419,21 +517,21 @@ func ApiUser(r *gin.RouterGroup) {
if loginuser.Username != "" && loginuser.Password != "" { if loginuser.Username != "" && loginuser.Password != "" {
//传入的数据都ok,获取用户信息 //传入的数据都ok,获取用户信息
getuser := models.TabUser_{ getuser := TabUser{
Name: loginuser.Username, Name: loginuser.Username,
} }
if models.DB.Where(&getuser).First(&getuser).Error == nil { if models.DB.Where(&getuser).First(&getuser).Error == nil {
//倒入数据 //倒入数据
user := models.TabUser_{ user := TabUser{
Pass: loginuser.Password, //密码明文 Pass: loginuser.Password, //密码明文
Salt: getuser.Salt, //保存的盐制 Salt: getuser.Salt, //保存的盐制
} }
//哈希密 //哈希密
models.HashUserPass(&user) HashUserPass(&user)
if user.Pass == getuser.Pass { if user.Pass == getuser.Pass {
//用户密码正确,生成cookie //用户密码正确,生成cookie
cookie := models.TabCookie_{ cookie := TabUserCookie{
UserID: getuser.ID, UserID: getuser.ID,
Name: "login", Name: "login",
Value: models.RandStr32(), Value: models.RandStr32(),
@@ -480,7 +578,7 @@ func ApiUser(r *gin.RouterGroup) {
if data != nil { if data != nil {
if err := mapstructure.Decode(data, &jsonData); err == nil { if err := mapstructure.Decode(data, &jsonData); err == nil {
//转换字段 //转换字段
newUser := models.TabUser_{ newUser := TabUser{
Name: jsonData.Username, Name: jsonData.Username,
Email: jsonData.Useremail, Email: jsonData.Useremail,
Pass: jsonData.Userpass, // 实际应替换为哈希值 Pass: jsonData.Userpass, // 实际应替换为哈希值
@@ -490,7 +588,7 @@ func ApiUser(r *gin.RouterGroup) {
if newUser.Name != "" && newUser.Pass != "" && newUser.Email != "" { if newUser.Name != "" && newUser.Pass != "" && newUser.Email != "" {
//用户名是唯一的,先读取是否有这个用户名 //用户名是唯一的,先读取是否有这个用户名
var user models.TabUser_ var user TabUser
user.Name = newUser.Name user.Name = newUser.Name
if models.DB.Where(&user).First(&user).Error == nil { if models.DB.Where(&user).First(&user).Error == nil {
@@ -503,14 +601,12 @@ func ApiUser(r *gin.RouterGroup) {
newUser.Salt = models.RandStr32() newUser.Salt = models.RandStr32()
//对用户的密码进行哈希替换 //对用户的密码进行哈希替换
models.HashUserPass(&newUser) HashUserPass(&newUser)
models.DB.Create(&newUser) // 传入指针 models.DB.Create(&newUser) // 传入指针
//创建用户后写一个log //创建用户后写一个log
models.LogAdd(ctx, "New user id:"+strconv.Itoa(int(newUser.ID)))
ReturnJson(ctx, "apiOK", nil) ReturnJson(ctx, "apiOK", nil)
} }
+2 -2
View File
@@ -91,7 +91,7 @@ type TabWarehouseItemWorkOrderBind struct {
} }
var ( var (
warehouseUserGroup models.TabUserGroups_ warehouseUserGroup TabUserGroups
warehouseAdmins []uint warehouseAdmins []uint
) )
@@ -99,7 +99,7 @@ var (
func updateWarehouseAdminsCash() { func updateWarehouseAdminsCash() {
warehouseAdmins = nil warehouseAdmins = nil
warehouseAdmins = append(warehouseAdmins, 1) // id=1 超级管理员 warehouseAdmins = append(warehouseAdmins, 1) // id=1 超级管理员
var binds []models.TabUserGroupBinds_ var binds []TabUserGroupBinds
models.DB.Where("group_id = ?", warehouseUserGroup.ID).Find(&binds) models.DB.Where("group_id = ?", warehouseUserGroup.ID).Find(&binds)
for _, item := range binds { for _, item := range binds {
if !slices.Contains(warehouseAdmins, item.UserID) { if !slices.Contains(warehouseAdmins, item.UserID) {
+3 -3
View File
@@ -2,8 +2,8 @@ package routers
import ( import (
"encoding/json" "encoding/json"
"ops/models"
parsefmt "fmt" parsefmt "fmt"
"ops/models"
"slices" "slices"
"time" "time"
@@ -12,7 +12,7 @@ import (
) )
var ( var (
workOrderUserGroup models.TabUserGroups_ workOrderUserGroup TabUserGroups
workOrderAdmins []uint workOrderAdmins []uint
) )
@@ -20,7 +20,7 @@ var (
func updateWorkOrderAdminsCash() { func updateWorkOrderAdminsCash() {
workOrderAdmins = nil workOrderAdmins = nil
workOrderAdmins = append(workOrderAdmins, 1) // id=1 超级管理员 workOrderAdmins = append(workOrderAdmins, 1) // id=1 超级管理员
var binds []models.TabUserGroupBinds_ var binds []TabUserGroupBinds
models.DB.Where("group_id = ?", workOrderUserGroup.ID).Find(&binds) models.DB.Where("group_id = ?", workOrderUserGroup.ID).Find(&binds)
for _, item := range binds { for _, item := range binds {
if !slices.Contains(workOrderAdmins, item.UserID) { if !slices.Contains(workOrderAdmins, item.UserID) {
Submodule frontend/ops2_uniapp updated: 6532650eb7...da9a303cb6