package dao import ( "gorm.io/gorm" "hospital-admin-api/api/model" "hospital-admin-api/global" ) type AdminRoleDao struct { } // GetAdminRoleFirstById 角色id获取用户角色 // roleId 角色id func (r *AdminRoleDao) GetAdminRoleFirstById(roleId int64) (m *model.AdminRole, err error) { err = global.Db.First(&m, roleId).Error if err != nil { return nil, err } return m, nil } // EditAdminRoleStatusById 角色启用/禁用-角色id func (r *AdminRoleDao) EditAdminRoleStatusById(roleId int64, roleStatus int) error { err := global.Db.Model(&model.AdminRole{}).Where("role_id = ?", roleId).Update("role_status", roleStatus).Error if err != nil { return err } return nil } // AddAdminRole 新增角色 func (r *AdminRoleDao) AddAdminRole(tx *gorm.DB, model *model.AdminRole) (*model.AdminRole, error) { if err := tx.Create(model).Error; err != nil { return nil, err } return model, nil } // GetAdminRolePageSearch 获取角色列表-分页 func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize int) (m []*model.AdminRole, total int64, err error) { var totalRecords int64 // 构建查询条件 query := global.Db.Model(&model.AdminRole{}) if roleName != "" { query = query.Where("role_name = ?", roleName) } query = query.Where("role_id != ?", 1) // 查询总数量 if err := query.Count(&totalRecords).Error; err != nil { return nil, 0, err } err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error if err != nil { return nil, 0, err } return m, totalRecords, nil } // EditAdminRoleById 修改角色-interface func (r *AdminRoleDao) EditAdminRoleById(tx *gorm.DB, roleId int64, data interface{}) error { err := tx.Model(&model.AdminRole{}).Where("role_id = ?", roleId).Updates(data).Error if err != nil { return err } return nil } // DeleteAdminRoleByRoleId 删除角色 func (r *AdminRoleDao) DeleteAdminRoleByRoleId(tx *gorm.DB, roleId int64) error { if err := tx.Delete(&model.AdminRole{}, roleId).Error; err != nil { return err } return nil } // EditAdminRoleByIdWithStruct 修改角色-struct func (r *AdminRoleDao) EditAdminRoleByIdWithStruct(tx *gorm.DB, roleId int64, model *model.AdminRole) error { err := tx.Where("role_id = ?", roleId).Updates(model).Error if err != nil { return err } return nil } // GetAdminRoleList 获取角色列表 func (r *AdminRoleDao) GetAdminRoleList(maps interface{}) (m []*model.AdminRole, err error) { err = global.Db.Where(maps).Find(&m).Error if err != nil { return nil, err } return m, nil }