From 285ae1703f35a3cc9c28d1d4871b4634a3ed8c73 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 17 八月 2023 19:57:00 +0800
Subject: [PATCH] Merge branch 'master' of ssh://192.168.5.5:29418/aps/crm

---
 service/user.go |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/service/user.go b/service/user.go
index 3f40330..c5a1c8e 100644
--- a/service/user.go
+++ b/service/user.go
@@ -1,12 +1,20 @@
 package service
 
 import (
+	"aps_crm/conf"
 	"aps_crm/constvar"
 	"aps_crm/model"
 	"aps_crm/pkg/ecode"
 	"aps_crm/pkg/encrypt"
+	"aps_crm/pkg/logx"
+	"aps_crm/proto/user"
+	"context"
 	"errors"
+	"fmt"
+	"google.golang.org/grpc"
+	"google.golang.org/grpc/credentials/insecure"
 	"gorm.io/gorm"
+	"time"
 )
 
 type UserService struct{}
@@ -93,3 +101,50 @@
 func (userService *UserService) GetUserList() (userList []*model.User, err error) {
 	return model.NewUserSearch(nil).FindAll()
 }
+
+var (
+	userConn *grpc.ClientConn
+)
+
+func InitUserConn() {
+	var err error
+	userConn, err = grpc.Dial(conf.Conf.GrpcServiceAddr.Admin, grpc.WithTransportCredentials(insecure.NewCredentials()))
+	if err != nil {
+		logx.Errorf("grpc dial user service error: %v", err.Error())
+		return
+	}
+}
+
+func CloseUserConn() {
+	if userConn != nil {
+		userConn.Close()
+	}
+}
+
+func SyncUserInfo() {
+	cli := user.NewUserServiceClient(userConn)
+
+	var users []*user.User
+
+	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
+	defer cancel()
+	r, err := cli.SyncUser(ctx, &user.UserRequest{Users: users})
+	if err != nil {
+		logx.Fatalf("could not sync users: %v", err)
+	}
+
+	fmt.Printf("Synced: %v, Message: %s", r.List, r.Message)
+
+	for _, member := range r.List {
+		err = model.NewUserSearch(nil).FirstOrCreate(model.User{
+			UUID:     member.Uuid,
+			Username: member.Username,
+			UserType: constvar.UserType(member.Usertype),
+			NickName: member.Nickname,
+		})
+		if err != nil {
+			logx.Errorf("sync user error: %v", err.Error())
+			continue
+		}
+	}
+}

--
Gitblit v1.8.0