72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
package repository
|
|
|
|
import (
|
|
"be.ems/src/framework/database/db"
|
|
"be.ems/src/framework/logger"
|
|
"be.ems/src/modules/system/model"
|
|
)
|
|
|
|
// NewSysUserRole 实例化数据层
|
|
var NewSysUserRole = &SysUserRole{}
|
|
|
|
// SysUserRole 用户与角色关联表 数据层处理
|
|
type SysUserRole struct{}
|
|
|
|
// ExistUserByRoleId 存在用户使用数量
|
|
func (r SysUserRole) ExistUserByRoleId(roleId int64) int64 {
|
|
if roleId <= 0 {
|
|
return 0
|
|
}
|
|
tx := db.DB("").Model(&model.SysUserRole{})
|
|
tx = tx.Where("role_id = ?", roleId)
|
|
// 查询数据
|
|
var count int64 = 0
|
|
if err := tx.Count(&count).Error; err != nil {
|
|
logger.Errorf("query find err => %v", err.Error())
|
|
return count
|
|
}
|
|
return count
|
|
}
|
|
|
|
// DeleteByUserIds 批量删除关联By用户
|
|
func (r SysUserRole) DeleteByUserIds(userIds []int64) int64 {
|
|
if len(userIds) <= 0 {
|
|
return 0
|
|
}
|
|
tx := db.DB("").Where("user_id in ?", userIds)
|
|
// 执行删除
|
|
if err := tx.Delete(&model.SysUserRole{}).Error; err != nil {
|
|
logger.Errorf("delete err => %v", err.Error())
|
|
return 0
|
|
}
|
|
return tx.RowsAffected
|
|
}
|
|
|
|
// DeleteByRoleId 批量删除关联By角色
|
|
func (r SysUserRole) DeleteByRoleId(roleId int64, userIds []int64) int64 {
|
|
if roleId <= 0 || len(userIds) <= 0 {
|
|
return 0
|
|
}
|
|
tx := db.DB("").Where("role_id = ?", roleId).Where("user_id in ?", userIds)
|
|
// 执行删除
|
|
if err := tx.Delete(&model.SysUserRole{}).Error; err != nil {
|
|
logger.Errorf("delete err => %v", err.Error())
|
|
return 0
|
|
}
|
|
return tx.RowsAffected
|
|
}
|
|
|
|
// BatchInsert 批量新增信息
|
|
func (r SysUserRole) BatchInsert(sysUserRoles []model.SysUserRole) int64 {
|
|
if len(sysUserRoles) <= 0 {
|
|
return 0
|
|
}
|
|
// 执行批量删除
|
|
tx := db.DB("").CreateInBatches(sysUserRoles, 500)
|
|
if err := tx.Error; err != nil {
|
|
logger.Errorf("delete batch err => %v", err.Error())
|
|
return 0
|
|
}
|
|
return tx.RowsAffected
|
|
}
|