package middleground import ( "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb" "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter" "context" "github.com/zeromicro/go-zero/core/discov" "github.com/zeromicro/go-zero/zrpc" "log" ) type userCenter struct { hosts []string key string client zrpc.Client } func newUserCenter(hosts []string, key string) *userCenter { r := &userCenter{ hosts: hosts, key: key, } r.client = r.NewClient() return r } func (u *userCenter) NewClient() zrpc.Client { if u.client != nil && u.client.Conn() != nil { return u.client } client, err := zrpc.NewClient(zrpc.RpcClientConf{ Etcd: discov.EtcdConf{ Hosts: u.hosts, Key: u.key, }, }) if err != nil { log.Println(err) return nil } u.client = client return client } // 获取身份列表 func (u *userCenter) IdentityList(userId int64) []*pb.Identity { client := u.NewClient() if client == nil { return nil } //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).IdentityList(context.Background(), &pb.IdentityReq{ Id: userId, }) if err != nil { log.Println(err) return nil } return resp.Identitys } // 获取账号id获取个人身份信息 func (u *userCenter) IdentityByUserId(userId int64) *pb.Identity { client := u.NewClient() if client == nil { return nil } //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).IdentityByUserId(context.Background(), &pb.IdentityReq{ Id: userId, }) if err != nil { log.Println(err) return nil } return resp } // 根据职位id获取身份信息 func (u *userCenter) IdentityByPositionId(positionId int64) *pb.Identity { client := u.NewClient() if client == nil { return nil } //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).IdentityByPositionId(context.Background(), &pb.IdentityReq{ Id: positionId, }) if err != nil { log.Println(err) return nil } return resp } // 根据企业员工id获取身份信息 func (u *userCenter) IdentityByEntUserId(entUserId int64) *pb.Identity { client := u.NewClient() if client == nil { return nil } //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).IdentityByEntUserId(context.Background(), &pb.IdentityReq{ Id: entUserId, }) if err != nil { log.Println(err) return nil } return resp } // 添加用户 func (u *userCenter) UserAdd(req pb.UserAddReq) *pb.UserAddResp { client := u.NewClient() //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).UserAdd(context.Background(), &pb.UserAddReq{ Appid: req.Appid, Phone: req.Phone, Nickname: req.Nickname, Headimg: req.Headimg, Company: req.Company, Position: req.Position, Password: req.Password, AOpenid: req.AOpenid, SOpenid: req.SOpenid, Unionid: req.Unionid, IdCard: req.IdCard, Sex: req.Sex, Address: req.Address, }) if err != nil { log.Println(err) return nil } return resp } // 修改用户 func (u *userCenter) UserUpdate(req pb.UserIdReq) *pb.ExamineResp { client := u.NewClient() //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).UserUpdate(context.Background(), &pb.UserIdReq{ Appid: req.Appid, Id: req.Id, Phone: req.Phone, Nickname: req.Nickname, Headimg: req.Headimg, Company: req.Company, Position: req.Position, Password: req.Password, AOpenid: req.AOpenid, SOpenid: req.SOpenid, Unionid: req.Unionid, }) if err != nil { log.Println(err) return nil } return resp } // 删除用户 func (u *userCenter) UserDel(req pb.UserIdReq) *pb.ExamineResp { client := u.NewClient() //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).UserDel(context.Background(), &pb.UserIdReq{ Appid: req.Appid, Id: req.Id, }) if err != nil { log.Println(err) return nil } return resp } // 清用户缓存 func (u *userCenter) WorkDesktopClearUserInfo(req pb.WorkDesktopClearUserInfoReq) *pb.WorkDesktopClearUserInfoResp { client := u.NewClient() //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).WorkDesktopClearUserInfo(context.Background(), &pb.WorkDesktopClearUserInfoReq{ AppId: req.AppId, PositionId: req.PositionId, }) if err != nil { log.Println(err) return nil } return resp } // 用户菜单获取 func (u *userCenter) WorkDesktopMenuInfo(req pb.WorkDesktopMenuInfoReq) *pb.WorkDesktopMenuInfoResp { client := u.NewClient() //defer client.Conn().Close() resp, err := usercenter.NewUserCenter(client).WorkDesktopMenuInfo(context.Background(), &pb.WorkDesktopMenuInfoReq{ AppId: req.AppId, UserId: req.UserId, Phone: req.Phone, Platform: req.Platform, NewUserId: req.NewUserId, EntId: req.EntId, EntUserId: req.EntUserId, WorkStatus: req.WorkStatus, AccountId: req.AccountId, EntAccountId: req.EntAccountId, PositionId: req.PositionId, PositionType: req.PositionType, MgoUserId: req.MgoUserId, }) if err != nil { log.Println(err) return nil } return resp }