mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 19:32:17 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package group
 | 
						|
 | 
						|
import (
 | 
						|
	"Open_IM/pkg/common/config"
 | 
						|
	"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
 | 
						|
	"Open_IM/pkg/common/log"
 | 
						|
	pbGroup "Open_IM/pkg/proto/group"
 | 
						|
	"Open_IM/pkg/utils"
 | 
						|
	"context"
 | 
						|
)
 | 
						|
 | 
						|
func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) {
 | 
						|
	log.Info(req.Token, req.OperationID, "rpc join group is server,args=%s", req.String())
 | 
						|
	//Parse token, to find current user information
 | 
						|
	claims, err := utils.ParseToken(req.Token)
 | 
						|
	if err != nil {
 | 
						|
		log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
 | 
						|
		return &pbGroup.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil
 | 
						|
	}
 | 
						|
	applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID)
 | 
						|
	if err != nil {
 | 
						|
		log.Error(req.Token, req.OperationID, "No this user,err=%s", err.Error())
 | 
						|
		return &pbGroup.CommonResp{ErrorCode: config.ErrSearchUserInfo.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil
 | 
						|
	}
 | 
						|
 | 
						|
	_, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID)
 | 
						|
	if err == nil {
 | 
						|
		err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0")
 | 
						|
	}
 | 
						|
 | 
						|
	log.Info(req.Token, req.OperationID, "args: ", req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon)
 | 
						|
 | 
						|
	if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon); err != nil {
 | 
						|
		log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error())
 | 
						|
		return &pbGroup.CommonResp{ErrorCode: config.ErrJoinGroupApplication.ErrCode, ErrorMsg: config.ErrJoinGroupApplication.ErrMsg}, nil
 | 
						|
	}
 | 
						|
	////Find the the group owner
 | 
						|
	//groupCreatorInfo, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupCreator)
 | 
						|
	//if err != nil {
 | 
						|
	//	log.Error(req.Token, req.OperationID, "find group creator failed", err.Error())
 | 
						|
	//} else {
 | 
						|
	//	//Push message when join group chat
 | 
						|
	//	logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
 | 
						|
	//		SendID:      claims.UID,
 | 
						|
	//		RecvID:      groupCreatorInfo[0].Uid,
 | 
						|
	//		Content:     content_struct.NewContentStructString(0, "", req.String()),
 | 
						|
	//		SendTime:    utils.GetCurrentTimestampBySecond(),
 | 
						|
	//		MsgFrom:     constant.SysMsgType,
 | 
						|
	//		ContentType: constant.JoinGroupTip,
 | 
						|
	//		SessionType: constant.SingleChatType,
 | 
						|
	//		OperationID: req.OperationID,
 | 
						|
	//	})
 | 
						|
	//}
 | 
						|
 | 
						|
	log.Info(req.Token, req.OperationID, "rpc join group success return")
 | 
						|
	return &pbGroup.CommonResp{}, nil
 | 
						|
}
 |