From 55d7c6e6728176c439f7392e9d89a906f669c6cc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 21:02:37 +0800 Subject: [PATCH] add log --- internal/demo/register/send_code.go | 2 +- internal/rpc/group/group.go | 20 +++++++++++++++++-- .../mysql_model/im_mysql_model/group_model.go | 15 +++++++------- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index ad5fda3d6..37e355b46 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -60,9 +60,9 @@ func SendVerificationCode(c *gin.Context) { case constant.VerificationCodeForReset: accountKey = account + "_" + constant.VerificationCodeForResetSuffix } - log.NewInfo(params.OperationID, params.UsedFor,"begin store redis", accountKey) rand.Seed(time.Now().UnixNano()) code := 100000 + rand.Intn(900000) + log.NewInfo(params.OperationID, params.UsedFor,"begin store redis", accountKey, code) err := db.DB.SetAccountCode(accountKey, code, config.Config.Demo.CodeTTL) if err != nil { log.NewError(params.OperationID, "set redis error", accountKey, "err", err.Error()) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7d5fd547f..2ab59b6ca 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -778,10 +778,26 @@ func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} - if err := imdb.OperateGroupRole(req.UserId, req.GroupId, req.RoleLevel); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "OperateGroupRole error", err.Error()) + oldOwnerUserID, err := imdb.GetGroupMaster(req.GroupId) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) return resp, http.WrapError(constant.ErrDB) } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + var reqPb pbGroup.TransferGroupOwnerReq + reqPb.OperationID = req.OperationID + reqPb.NewOwnerUserID = req.UserId + reqPb.GroupID = req.GroupId + reqPb.OpUserID = "cms admin" + reqPb.OldOwnerUserID = oldOwnerUserID.UserID + reply, err := client.TransferGroupOwner(context.Background(), &reqPb) + if reply.CommonResp.ErrCode != 0 || err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "TransferGroupOwner rpc failed") + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + } + } return resp, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 46ec80738..a9fe13236 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -116,10 +116,10 @@ func DeleteGroup(groupId string) error { return nil } -func OperateGroupRole(userId, groupId string, roleLevel int32) error { +func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return err + return "", "", err } dbConn.LogMode(true) groupMember := db.GroupMember{ @@ -133,7 +133,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { } switch roleLevel { case constant.GroupOwner: - return dbConn.Transaction(func(tx *gorm.DB) error { + err = dbConn.Transaction(func(tx *gorm.DB) error { result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Update(&db.GroupMember{ RoleLevel: constant.GroupOrdinaryUsers, }) @@ -153,14 +153,15 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { } return nil }) + case constant.GroupOrdinaryUsers: - return dbConn.Transaction(func(tx *gorm.DB) error { + err = dbConn.Transaction(func(tx *gorm.DB) error { result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster) if result.Error != nil { return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } if groupMaster.UserID == userId { return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId)) @@ -170,13 +171,13 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } } return nil }) } - return nil + return "", "", nil } func GetGroupsCountNum(group db.Group) (int32, error) {