user.go 15.8 KB
Newer Older
W
wenxu12345 已提交
1 2 3 4 5 6 7 8 9 10 11 12
package user

import (
	chat "Open_IM/internal/rpc/msg"
	"Open_IM/pkg/common/config"
	"Open_IM/pkg/common/constant"
	"Open_IM/pkg/common/db"
	imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
	"Open_IM/pkg/common/log"
	"Open_IM/pkg/common/token_verify"
	"Open_IM/pkg/grpc-etcdv3/getcdv3"
	pbFriend "Open_IM/pkg/proto/friend"
W
wenxu12345 已提交
13
	sdkws "Open_IM/pkg/proto/sdk_ws"
W
wenxu12345 已提交
14 15 16
	pbUser "Open_IM/pkg/proto/user"
	"Open_IM/pkg/utils"
	"context"
W
cms  
wangchuxiao 已提交
17
	"fmt"
W
wenxu12345 已提交
18 19 20
	"net"
	"strconv"
	"strings"
W
group  
wangchuxiao 已提交
21 22

	"google.golang.org/grpc"
W
wenxu12345 已提交
23 24 25 26 27 28 29 30 31
)

type userServer struct {
	rpcPort         int
	rpcRegisterName string
	etcdSchema      string
	etcdAddr        []string
}

W
wenxu12345 已提交
32 33 34 35 36 37 38 39 40 41
func NewUserServer(port int) *userServer {
	log.NewPrivateLog("user")
	return &userServer{
		rpcPort:         port,
		rpcRegisterName: config.Config.RpcRegisterName.OpenImUserName,
		etcdSchema:      config.Config.Etcd.EtcdSchema,
		etcdAddr:        config.Config.Etcd.EtcdAddr,
	}
}

W
wenxu12345 已提交
42 43 44 45 46 47 48 49 50 51 52
func (s *userServer) Run() {
	log.NewInfo("0", "", "rpc user start...")

	ip := utils.ServerIP
	registerAddress := ip + ":" + strconv.Itoa(s.rpcPort)
	//listener network
	listener, err := net.Listen("tcp", registerAddress)
	if err != nil {
		log.NewError("0", "listen network failed ", err.Error(), registerAddress)
		return
	}
W
wenxu12345 已提交
53
	log.NewInfo("0", "listen network success, address ", registerAddress, listener)
W
wenxu12345 已提交
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
	defer listener.Close()
	//grpc server
	srv := grpc.NewServer()
	defer srv.GracefulStop()
	//Service registers with etcd
	pbUser.RegisterUserServer(srv, s)
	err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10)
	if err != nil {
		log.NewError("0", "RegisterEtcd failed ", err.Error(), s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName)
		return
	}
	err = srv.Serve(listener)
	if err != nil {
		log.NewError("0", "Serve failed ", err.Error())
		return
	}
W
wenxu12345 已提交
70
	log.NewInfo("0", "rpc  user success")
W
wenxu12345 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
}

func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) {
	log.NewInfo(req.OperationID, "GetUserInfo args ", req.String())
	var userInfoList []*sdkws.UserInfo
	if len(req.UserIDList) > 0 {
		for _, userID := range req.UserIDList {
			var userInfo sdkws.UserInfo
			user, err := imdb.GetUserByUserID(userID)
			if err != nil {
				log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), userID)
				continue
			}
			utils.CopyStructFields(&userInfo, user)
			userInfoList = append(userInfoList, &userInfo)
		}
	} else {

		return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil
	}
W
wenxu12345 已提交
91 92
	log.NewInfo(req.OperationID, "GetUserInfo rpc return ", pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList})
	return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList}, nil
W
wenxu12345 已提交
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
}

func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) {
	log.NewInfo(req.OperationID, "SetReceiveMessageOpt args ", req.String())
	m := make(map[string]int, len(req.ConversationIDList))
	for _, v := range req.ConversationIDList {
		m[v] = int(req.Opt)
	}
	err := db.DB.SetMultiConversationMsgOpt(req.FromUserID, m)
	if err != nil {
		log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req)
		return &pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	}
	resp := pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}}

	for _, v := range req.ConversationIDList {
programor_guo's avatar
programor_guo 已提交
109
		resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: req.Opt})
W
wenxu12345 已提交
110 111 112 113 114 115 116
	}
	log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String())
	return &resp, nil
}

func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) {
	log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String())
programor_guo's avatar
programor_guo 已提交
117
	m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIDList)
W
wenxu12345 已提交
118
	if err != nil {
programor_guo's avatar
programor_guo 已提交
119
		log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIDList)
W
wenxu12345 已提交
120 121 122 123
		return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	}
	resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}}
	for k, v := range m {
programor_guo's avatar
programor_guo 已提交
124
		resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)})
W
wenxu12345 已提交
125 126 127 128 129 130 131
	}
	log.NewInfo(req.OperationID, "GetReceiveMessageOpt rpc return ", resp.String())
	return &resp, nil
}

func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) {
	log.NewInfo(req.OperationID, "GetAllConversationMsgOpt args ", req.String())
programor_guo's avatar
programor_guo 已提交
132
	m, err := db.DB.GetAllConversationMsgOpt(req.FromUserID)
W
wenxu12345 已提交
133
	if err != nil {
programor_guo's avatar
programor_guo 已提交
134
		log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req.FromUserID)
W
wenxu12345 已提交
135 136 137 138
		return &pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	}
	resp := pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{}}
	for k, v := range m {
programor_guo's avatar
programor_guo 已提交
139
		resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)})
W
wenxu12345 已提交
140 141 142 143 144 145
	}
	log.NewInfo(req.OperationID, "GetAllConversationMsgOpt rpc return ", resp.String())
	return &resp, nil
}
func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) {
	log.NewInfo(req.OperationID, "DeleteUsers args ", req.String())
programor_guo's avatar
programor_guo 已提交
146
	if !token_verify.IsMangerUserID(req.OpUserID) {
W
wenxu12345 已提交
147 148 149 150 151 152
		log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID)
		return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, FailedUserIDList: req.DeleteUserIDList}, nil
	}
	var common pbUser.CommonResp
	resp := pbUser.DeleteUsersResp{CommonResp: &common}
	for _, userID := range req.DeleteUserIDList {
programor_guo's avatar
err log  
programor_guo 已提交
153 154
		i := imdb.DeleteUser(userID)
		if i == 0 {
programor_guo's avatar
err log  
programor_guo 已提交
155
			log.NewError(req.OperationID, "delete user error", userID)
W
wenxu12345 已提交
156 157 158 159 160 161 162 163 164 165
			common.ErrCode = 201
			common.ErrMsg = "some uid deleted failed"
			resp.FailedUserIDList = append(resp.FailedUserIDList, userID)
		}
	}
	log.NewInfo(req.OperationID, "DeleteUsers rpc return ", resp.String())
	return &resp, nil
}

func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq) (*pbUser.GetAllUserIDResp, error) {
W
wenxu12345 已提交
166
	log.NewInfo(req.OperationID, "GetAllUserID args ", req.String())
programor_guo's avatar
programor_guo 已提交
167
	if !token_verify.IsMangerUserID(req.OpUserID) {
W
wenxu12345 已提交
168 169 170 171 172 173 174 175 176 177 178 179 180 181
		log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID)
		return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
	}
	uidList, err := imdb.SelectAllUserID()
	if err != nil {
		log.NewError(req.OperationID, "SelectAllUserID false ", err.Error())
		return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	} else {
		log.NewInfo(req.OperationID, "GetAllUserID rpc return ", pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{}, UserIDList: uidList})
		return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{}, UserIDList: uidList}, nil
	}
}

func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) {
W
wenxu12345 已提交
182
	log.NewInfo(req.OperationID, "AccountCheck args ", req.String())
programor_guo's avatar
programor_guo 已提交
183
	if !token_verify.IsMangerUserID(req.OpUserID) {
W
wenxu12345 已提交
184 185 186 187
		log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID)
		return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
	}
	uidList, err := imdb.SelectSomeUserID(req.CheckUserIDList)
programor_guo's avatar
programor_guo 已提交
188
	log.NewDebug(req.OperationID, "from db uid list is:", uidList)
W
wenxu12345 已提交
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
	if err != nil {
		log.NewError(req.OperationID, "SelectSomeUserID failed ", err.Error(), req.CheckUserIDList)
		return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	} else {
		var r []*pbUser.AccountCheckResp_SingleUserStatus
		for _, v := range req.CheckUserIDList {
			temp := new(pbUser.AccountCheckResp_SingleUserStatus)
			temp.UserID = v
			if utils.IsContain(v, uidList) {
				temp.AccountStatus = constant.Registered
			} else {
				temp.AccountStatus = constant.UnRegistered
			}
			r = append(r, temp)
		}
		resp := pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: 0, ErrMsg: ""}, ResultList: r}
		log.NewInfo(req.OperationID, "AccountCheck rpc return ", resp.String())
		return &resp, nil
	}

}

func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (*pbUser.UpdateUserInfoResp, error) {
W
wenxu12345 已提交
212 213
	log.NewInfo(req.OperationID, "UpdateUserInfo args ", req.String())
	if !token_verify.CheckAccess(req.OpUserID, req.UserInfo.UserID) {
W
wenxu12345 已提交
214 215 216 217
		log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.UserInfo.UserID)
		return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
	}

W
cms  
wangchuxiao 已提交
218
	var user db.Users
W
wenxu12345 已提交
219
	utils.CopyStructFields(&user, req.UserInfo)
W
wenxu12345 已提交
220
	if req.UserInfo.Birth != 0 {
W
wenxu12345 已提交
221
		user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth))
W
wenxu12345 已提交
222
	}
W
wenxu12345 已提交
223 224 225 226 227 228 229 230
	err := imdb.UpdateUserInfo(user)
	if err != nil {
		log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), user)
		return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
	}
	etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
	client := pbFriend.NewFriendClient(etcdConn)
	newReq := &pbFriend.GetFriendListReq{
W
wenxu12345 已提交
231
		CommID: &pbFriend.CommID{OperationID: req.OperationID, FromUserID: req.UserInfo.UserID, OpUserID: req.OpUserID},
W
wenxu12345 已提交
232 233 234 235 236 237 238
	}

	RpcResp, err := client.GetFriendList(context.Background(), newReq)
	if err != nil {
		log.NewError(req.OperationID, "GetFriendList failed ", err.Error(), newReq)
		return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil
	}
W
wenxu12345 已提交
239
	for _, v := range RpcResp.FriendInfoList {
W
wenxu12345 已提交
240
		chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, v.FriendUser.UserID)
W
wenxu12345 已提交
241
	}
W
wenxu12345 已提交
242
	chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID)
W
wenxu12345 已提交
243 244
	return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil
}
W
cms  
wangchuxiao 已提交
245

W
wangchuxiao 已提交
246
func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq) (*pbUser.GetUserByIdResp, error) {
W
cms  
wangchuxiao 已提交
247
	log.NewInfo(req.OperationID, "GetUser args ", req.String())
W
wangchuxiao 已提交
248
	resp := &pbUser.GetUserByIdResp{User: &pbUser.User{}}
W
cms  
wangchuxiao 已提交
249 250 251 252
	user, err := imdb.GetUserByUserID(req.UserId)
	if err != nil {
		return resp, nil
	}
W
add  
wangchuxiao 已提交
253 254 255 256
	isBlock, err := imdb.UserIsBlock(req.UserId)
	if err != nil {
		return resp, err
	}
W
cms  
wangchuxiao 已提交
257 258 259 260 261
	resp.User = &pbUser.User{
		ProfilePhoto: user.FaceURL,
		Nickname:     user.Nickname,
		UserId:       user.UserID,
		CreateTime:   user.CreateTime.String(),
W
wangchuxiao 已提交
262
		IsBlock:      isBlock,
W
cms  
wangchuxiao 已提交
263
	}
W
cms  
wangchuxiao 已提交
264 265 266 267 268
	return resp, nil
}

func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) {
	log.NewInfo(req.OperationID, "GetUsers args ", req.String())
W
group  
wangchuxiao 已提交
269
	resp := &pbUser.GetUsersResp{User: []*pbUser.User{}}
W
cms  
wangchuxiao 已提交
270 271 272 273 274
	users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber)
	if err != nil {
		return resp, nil
	}
	for _, v := range users {
W
cms  
wangchuxiao 已提交
275 276 277 278 279 280 281
		isBlock, err := imdb.UserIsBlock(v.UserID)
		if err == nil {
			user := &pbUser.User{
				ProfilePhoto: v.FaceURL,
				UserId:       v.UserID,
				CreateTime:   v.CreateTime.String(),
				Nickname:     v.Nickname,
W
group  
wangchuxiao 已提交
282
				IsBlock:      isBlock,
W
cms  
wangchuxiao 已提交
283 284 285
			}
			resp.User = append(resp.User, user)
		}
W
cms  
wangchuxiao 已提交
286
	}
W
cms  
wangchuxiao 已提交
287 288 289 290

	resp.Pagination = &sdkws.ResponsePagination{}
	resp.Pagination.ShowNumber = req.Pagination.ShowNumber
	resp.Pagination.CurrentPage = req.Pagination.PageNumber
W
cms  
wangchuxiao 已提交
291 292 293 294 295 296 297 298 299
	return resp, nil
}

func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) (*pbUser.ResignUserResp, error) {
	log.NewInfo(req.OperationID, "ResignUser args ", req.String())
	return &pbUser.ResignUserResp{}, nil
}

func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) {
W
cms  
wangchuxiao 已提交
300
	log.NewInfo(req.OperationID, "AlterUser args ", req.String())
W
group  
wangchuxiao 已提交
301 302 303 304 305 306 307 308 309 310 311 312
	resp := &pbUser.AlterUserResp{}
	user := db.Users{
		PhoneNumber: strconv.FormatInt(req.PhoneNumber, 10),
		Nickname:    req.Nickname,
		Email:       req.Email,
		UserID:      req.UserId,
	}
	if err := imdb.UpdateUserInfo(user); err != nil {
		log.NewError(req.OperationID, err)
		return resp, err
	}
	return resp, nil
W
cms  
wangchuxiao 已提交
313 314 315
}

func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) {
W
cms  
wangchuxiao 已提交
316 317 318 319 320 321 322
	log.NewInfo(req.OperationID, "AddUser args ", req.String())
	resp := &pbUser.AddUserResp{}
	err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name)
	if err != nil {
		return resp, constant.ErrDB
	}
	return resp, nil
W
cms  
wangchuxiao 已提交
323 324 325
}

func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (*pbUser.BlockUserResp, error) {
W
cms  
wangchuxiao 已提交
326 327 328 329 330
	log.NewInfo(req.OperationID, "BlockUser args ", req.String())
	fmt.Println("BlockUser args ", req.String())
	resp := &pbUser.BlockUserResp{}
	err := imdb.BlockUser(req.UserId, req.EndDisableTime)
	if err != nil {
W
wangchuxiao 已提交
331
		fmt.Println(err)
W
cms  
wangchuxiao 已提交
332 333 334
		return resp, constant.ErrDB
	}
	return resp, nil
W
cms  
wangchuxiao 已提交
335 336 337
}

func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) {
W
cms  
wangchuxiao 已提交
338 339 340 341 342 343 344
	log.NewInfo(req.OperationID, "UnBlockUser args ", req.String())
	resp := &pbUser.UnBlockUserResp{}
	err := imdb.UnBlockUser(req.UserId)
	if err != nil {
		return resp, constant.ErrDB
	}
	return resp, nil
W
cms  
wangchuxiao 已提交
345 346 347
}

func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) {
W
cms  
wangchuxiao 已提交
348 349
	log.NewInfo(req.OperationID, "GetBlockUsers args ", req.String())
	resp := &pbUser.GetBlockUsersResp{}
W
wangchuxiao 已提交
350
	blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber)
W
cms  
wangchuxiao 已提交
351 352 353 354 355 356 357
	if err != nil {
		return resp, constant.ErrDB
	}
	if err != nil {
		return resp, constant.ErrDB
	}
	for _, v := range blockUsers {
W
wangchuxiao 已提交
358 359 360 361 362 363 364 365
		resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{
			User: &pbUser.User{
				ProfilePhoto: v.User.FaceURL,
				Nickname:     v.User.Nickname,
				UserId:       v.User.UserID,
				IsBlock:      true,
			},
			BeginDisableTime: (v.BeginDisableTime).String(),
W
group  
wangchuxiao 已提交
366
			EndDisableTime:   (v.EndDisableTime).String(),
W
cms  
wangchuxiao 已提交
367 368 369 370 371
		})
	}
	resp.Pagination = &sdkws.ResponsePagination{}
	resp.Pagination.ShowNumber = req.Pagination.ShowNumber
	resp.Pagination.CurrentPage = req.Pagination.PageNumber
W
wangchuxiao 已提交
372
	fmt.Println(resp)
W
cms  
wangchuxiao 已提交
373
	return resp, nil
W
cms  
wangchuxiao 已提交
374
}
W
wangchuxiao 已提交
375

W
wangchuxiao 已提交
376
func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUserByIdReq) (*pbUser.GetBlockUserByIdResp, error) {
W
cms dev  
wangchuxiao 已提交
377
	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetBlockUserById args ", req.String())
W
wangchuxiao 已提交
378
	resp := &pbUser.GetBlockUserByIdResp{}
W
group  
wangchuxiao 已提交
379 380
	user, err := imdb.GetBlockUserById(req.UserId)
	if err != nil {
W
wangchuxiao 已提交
381
		log.NewError(req.OperationID, utils.GetSelfFuncName(), err)
W
wangchuxiao 已提交
382 383
		return resp, err
	}
W
wangchuxiao 已提交
384 385 386 387 388 389 390 391 392 393
	resp.BlockUser = &pbUser.BlockUser{
		User: &pbUser.User{
			ProfilePhoto: user.User.FaceURL,
			Nickname:     user.User.Nickname,
			UserId:       user.User.UserID,
			IsBlock:      true,
		},
		BeginDisableTime: (user.BeginDisableTime).String(),
		EndDisableTime:   (user.EndDisableTime).String(),
	}
W
wangchuxiao 已提交
394
	return resp, nil
W
wangchuxiao 已提交
395
}
W
wangchuxiao 已提交
396

W
wangchuxiao 已提交
397 398 399 400 401 402 403 404
func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (*pbUser.DeleteUserResp, error) {
	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String())
	resp := &pbUser.DeleteUserResp{}
	if row := imdb.DeleteUser(req.UserId); row == 0 {
		log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete error", row)
		return resp, constant.ErrDB
	}
	return resp, nil
W
group  
wangchuxiao 已提交
405
}