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

---
 middleware/user.go |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/middleware/user.go b/middleware/user.go
index f1e4487..d455fb6 100644
--- a/middleware/user.go
+++ b/middleware/user.go
@@ -10,6 +10,7 @@
 	"fmt"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/credentials/insecure"
+	"strings"
 	"time"
 )
 
@@ -59,11 +60,14 @@
 	return rsp.Result
 }
 
-func SyncUserInfo() {
+func SyncUserInfo(uuid []string) {
 	cli := user.NewUserServiceClient(userConn)
-
 	var users []*user.User
-
+	for _, id := range uuid {
+		users = append(users, &user.User{
+			Uuid: id,
+		})
+	}
 	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
 	defer cancel()
 	r, err := cli.SyncUser(ctx, &user.UserRequest{Users: users})
@@ -75,12 +79,17 @@
 	fmt.Printf("Synced: %v, Message: %s", r.List, r.Message)
 
 	for _, member := range r.List {
-		err = model.NewUserSearch(nil).FirstOrCreate(model.User{
+		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

--
Gitblit v1.8.0