zhangqian
2023-08-17 285ae1703f35a3cc9c28d1d4871b4634a3ed8c73
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
      }
   }
}