初始化

This commit is contained in:
2026-07-03 15:58:29 +08:00
parent 3a942c882e
commit dc90e889e1
77 changed files with 12912 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
package repository
import (
"seeyon-filesystem/config"
"seeyon-filesystem/model"
"gorm.io/gorm"
)
// UserRoleRepository 用户-角色关联数据访问
type UserRoleRepository struct{}
func NewUserRoleRepository() *UserRoleRepository {
return &UserRoleRepository{}
}
// SetUserRoles 设置用户角色(全量替换)
func (r *UserRoleRepository) SetUserRoles(userID uint64, roleIDs []uint64) error {
return config.DB.Transaction(func(tx *gorm.DB) error {
// 先删除旧关联
if err := tx.Where("user_id = ?", userID).Delete(&model.UserRole{}).Error; err != nil {
return err
}
// 插入新关联
for _, rid := range roleIDs {
ur := model.UserRole{UserID: userID, RoleID: rid}
if err := tx.Create(&ur).Error; err != nil {
return err
}
}
return nil
})
}
// GetUserRoles 获取用户的角色列表
func (r *UserRoleRepository) GetUserRoles(userID uint64) ([]model.Role, error) {
var roles []model.Role
err := config.DB.Table("fs_role ro").
Joins("JOIN fs_user_role ur ON ur.role_id = ro.id").
Where("ur.user_id = ? AND ro.status = 1", userID).
Find(&roles).Error
return roles, err
}
// GetRoleUsers 获取角色下的用户列表
func (r *UserRoleRepository) GetRoleUsers(roleID uint64) ([]model.User, error) {
var users []model.User
err := config.DB.Table("fs_user u").
Joins("JOIN fs_user_role ur ON ur.user_id = u.id").
Where("ur.role_id = ?", roleID).
Find(&users).Error
return users, err
}