From 389ea2c726a0760a62dcf0d9e5df734fc680630d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 16 Jun 2022 12:41:31 +0800 Subject: [PATCH] add global recv opt --- internal/rpc/user/user.go | 17 ++++++++++++----- .../db/mysql_model/im_mysql_model/user_model.go | 14 +++++++++++--- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 6127691c5..47d8251c2 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -364,12 +364,19 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetUserGlobalMsgRecvOpt failed ", err.Error(), user) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + err = imdb.UpdateUserInfoByMap(user, m) + 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 + } + } else { + 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 + } } - err := imdb.UpdateUserInfo(user, m) - 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{ diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 9806ce9eb..e3d507081 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -86,16 +86,24 @@ func GetUserNameByUserID(userID string) (string, error) { return user.Nickname, nil } -func UpdateUserInfo(user db.User, m ...map[string]interface{}) error { +func UpdateUserInfo(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } dbConn.LogMode(false) err = dbConn.Table("users").Where("user_id=?", user.UserID).Update(&user).Error - if len(m) > 0 { - err = dbConn.Table("users").Where("user_id=?", user.UserID).Updates(m[0]).Error + + return err +} + +func UpdateUserInfoByMap(user db.User, m map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err } + dbConn.LogMode(false) + err = dbConn.Table("users").Where("user_id=?", user.UserID).Updates(m).Error return err }