fix
wangpengfei
2023-08-28 c5a0eb549cba2cd358a2d0496c44f3a289f15d9c
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{}
@@ -35,7 +43,7 @@
}
func (userService *UserService) ChangePassword(u *model.User, newPassword string) (userInter *model.User, errCode int) {
   user, err := model.NewUserSearch(nil).SetId(u.ID).First()
   user, err := model.NewUserSearch(nil).SetId(u.UUID).First()
   if err != nil {
      return nil, ecode.UserNotExist
   }
@@ -45,7 +53,7 @@
   }
   user.Password = encrypt.BcryptHash(newPassword)
   err = model.NewUserSearch(nil).SetId(u.ID).UpdateByMap(map[string]interface{}{
   err = model.NewUserSearch(nil).SetId(u.UUID).UpdateByMap(map[string]interface{}{
      "password": user.Password})
   return user, ecode.OK
@@ -71,7 +79,7 @@
}
func (userService *UserService) SetUserInfo(req model.User) error {
   return model.NewUserSearch(nil).SetId(req.ID).UpdateByMap(map[string]interface{}{
   return model.NewUserSearch(nil).SetId(req.UUID).UpdateByMap(map[string]interface{}{
      "nick_name":  req.NickName,
      "header_img": req.HeaderImg,
      "phone":      req.Phone,
@@ -89,3 +97,54 @@
      "password": encrypt.BcryptHash("123456"),
   })
}
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
      }
   }
}