diff --git a/src/modules/system/repository/sys_login_source.go b/src/modules/system/repository/sys_login_source.go index c9170f8b..40c07c4f 100644 --- a/src/modules/system/repository/sys_login_source.go +++ b/src/modules/system/repository/sys_login_source.go @@ -146,5 +146,20 @@ func (r SysLoginSource) DeleteByIds(ids []int64) int64 { logger.Errorf("delete err => %v", err.Error()) return 0 } + + return tx.RowsAffected +} + +// DeleteByUserSource 通过用户源删除用户 返回受影响行数 +func (r SysLoginSource) DeleteByUserSource(uid string) int64 { + if uid == "" || uid == "#" { + return 0 + } + tx := db.DB("").Where("user_source = ?", uid) + // 执行删除 + if err := tx.Delete(&model.SysUser{}).Error; err != nil { + logger.Errorf("delete err => %v", err.Error()) + return 0 + } return tx.RowsAffected } diff --git a/src/modules/system/service/sys_login_source.go b/src/modules/system/service/sys_login_source.go index b6a9b949..61a28a4e 100644 --- a/src/modules/system/service/sys_login_source.go +++ b/src/modules/system/service/sys_login_source.go @@ -54,6 +54,9 @@ func (s SysLoginSource) DeleteByIds(ids []int64) (int64, error) { return 0, fmt.Errorf("no permission to access authentication source data") } if len(arr) == len(ids) { + for _, v := range arr { + s.sysLoginSourceRepository.DeleteByUserSource(v.UID) + } return s.sysLoginSourceRepository.DeleteByIds(ids), nil } // return 0, fmt.Errorf("删除认证源信息失败!")