From e8567524acc4cedc1e8a6ea8de07fabb87b97642 Mon Sep 17 00:00:00 2001 From: lishuang Date: Sat, 20 Jul 2024 14:43:14 +0800 Subject: [PATCH] fix: fix issue #222 --- code/rest/space_dao.go | 7 +++++++ code/rest/user_service.go | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/code/rest/space_dao.go b/code/rest/space_dao.go index bd40430..9587c1a 100644 --- a/code/rest/space_dao.go +++ b/code/rest/space_dao.go @@ -183,6 +183,13 @@ func (this *SpaceDao) PageHandle(fun func(space *Space)) { } } +func (this *SpaceDao) DeleteByUserUuid(userUuid string) { + + db := core.CONTEXT.GetDB().Where("user_uuid = ?", userUuid).Delete(Space{}) + this.PanicError(db.Error) + +} + func (this *SpaceDao) Delete(space *Space) { db := core.CONTEXT.GetDB().Delete(&space) diff --git a/code/rest/user_service.go b/code/rest/user_service.go index dddee10..db7b64c 100644 --- a/code/rest/user_service.go +++ b/code/rest/user_service.go @@ -25,6 +25,8 @@ type UserService struct { matterDao *MatterDao matterService *MatterService imageCacheDao *ImageCacheDao + spaceDao *SpaceDao + spaceMemberDao *SpaceMemberDao shareDao *ShareDao shareService *ShareService downloadTokenDao *DownloadTokenDao @@ -65,6 +67,15 @@ func (this *UserService) Init() { this.imageCacheDao = b } + b = core.CONTEXT.GetBean(this.spaceDao) + if b, ok := b.(*SpaceDao); ok { + this.spaceDao = b + } + + b = core.CONTEXT.GetBean(this.spaceMemberDao) + if b, ok := b.(*SpaceMemberDao); ok { + this.spaceMemberDao = b + } b = core.CONTEXT.GetBean(this.shareService) if b, ok := b.(*ShareService); ok { this.shareService = b @@ -300,6 +311,15 @@ func (this *UserService) DeleteUser(request *http.Request, currentUser *User) { this.logger.Info("delete matters") this.matterDao.DeleteByUserUuid(currentUser.Uuid) + //delete space members + space := this.spaceDao.CheckByUuid(currentUser.SpaceUuid) + this.logger.Info("delete space members") + this.spaceMemberDao.DeleteBySpaceUuid(space.Uuid) + + //delete spaces + this.logger.Info("delete spaces") + this.spaceDao.DeleteByUserUuid(currentUser.Uuid) + //delete this user this.logger.Info("delete this user.") this.userDao.Delete(currentUser)