From 06c89f1e726e84c67abba6893d62abdd025b8791 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 31 十月 2023 20:01:47 +0800
Subject: [PATCH] 支持职级降级的情况

---
 middleware/user.go |   18 +++++++++++-------
 model/user.go      |    4 ++--
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/middleware/user.go b/middleware/user.go
index 8a1a2b7..d455fb6 100644
--- a/middleware/user.go
+++ b/middleware/user.go
@@ -79,13 +79,17 @@
 	fmt.Printf("Synced: %v, Message: %s", r.List, r.Message)
 
 	for _, member := range r.List {
-		err = model.NewUserSearch(nil).Upsert(model.User{
-			UUID:       member.Uuid,
-			Username:   member.Username,
-			UserType:   constvar.UserType(member.Usertype),
-			NickName:   member.Nickname,
-			SubUserIds: strings.Join(member.SubUserIds, ","),
-		})
+		userRecord := model.User{
+			UUID:     member.Uuid,
+			Username: member.Username,
+			UserType: constvar.UserType(member.Usertype),
+			NickName: member.Nickname,
+		}
+		if member.SubUserIds != nil {
+			subUserIds := strings.Join(member.SubUserIds, ",")
+			userRecord.SubUserIds = &subUserIds
+		}
+		err = model.NewUserSearch(nil).Upsert(userRecord)
 		if err != nil {
 			logx.Errorf("sync user error: %v", err.Error())
 			continue
diff --git a/model/user.go b/model/user.go
index b931f71..b67dada 100644
--- a/model/user.go
+++ b/model/user.go
@@ -26,7 +26,7 @@
 		MenuIds      []uint            `json:"menuIds" gorm:"-"`                              // 鑿滃崟ID鍒楄〃
 		AuthorityId  uint              `json:"authorityId" gorm:"default:888;comment:鐢ㄦ埛瑙掕壊ID"` // 鐢ㄦ埛瑙掕壊ID
 		Authority    Authority         `json:"authority" gorm:"foreignKey:AuthorityId"`
-		SubUserIds   string            `json:"subUserIds" gorm:"sub_user_ids"` //涓嬪睘鍛樺伐鐢ㄦ埛id,鐢ㄩ�楀彿鍒嗗紑
+		SubUserIds   *string           `json:"subUserIds" gorm:"sub_user_ids"` //涓嬪睘鍛樺伐鐢ㄦ埛id,鐢ㄩ�楀彿鍒嗗紑
 		gorm.Model   `json:"-"`
 	}
 
@@ -303,7 +303,7 @@
 	} else if old.Username != record.Username ||
 		old.UserType != record.UserType ||
 		old.NickName != record.NickName ||
-		record.SubUserIds != "" && old.SubUserIds != record.SubUserIds {
+		record.SubUserIds != nil && old.SubUserIds != record.SubUserIds {
 		old.Username = record.Username
 		old.UserType = record.UserType
 		old.NickName = record.NickName

--
Gitblit v1.8.0