mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
callback
This commit is contained in:
parent
16a56457ed
commit
bbe8c46df9
@ -91,12 +91,6 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.OwnerUserID)
|
log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.OwnerUserID)
|
||||||
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil
|
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil
|
||||||
}
|
}
|
||||||
canCreate, err := callbackBeforeCreateGroup(req)
|
|
||||||
if err != nil || !canCreate {
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, utils.GetSelfFuncName(), "callbackBeforeCreateGroup failed")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
groupId := req.GroupInfo.GroupID
|
groupId := req.GroupInfo.GroupID
|
||||||
if groupId == "" {
|
if groupId == "" {
|
||||||
@ -107,72 +101,82 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
utils.CopyStructFields(&groupInfo, req.GroupInfo)
|
utils.CopyStructFields(&groupInfo, req.GroupInfo)
|
||||||
groupInfo.CreatorUserID = req.OpUserID
|
groupInfo.CreatorUserID = req.OpUserID
|
||||||
groupInfo.GroupID = groupId
|
groupInfo.GroupID = groupId
|
||||||
err = imdb.InsertIntoGroup(groupInfo)
|
err := imdb.InsertIntoGroup(groupInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo)
|
log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo)
|
||||||
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
||||||
}
|
}
|
||||||
groupMember := db.GroupMember{}
|
|
||||||
us := &db.User{}
|
|
||||||
if req.OwnerUserID == "" {
|
|
||||||
goto initMemberList
|
|
||||||
}
|
|
||||||
us, err = imdb.GetUserByUserID(req.OwnerUserID)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OwnerUserID)
|
|
||||||
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
|
||||||
}
|
|
||||||
|
|
||||||
//to group member
|
|
||||||
groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID}
|
|
||||||
utils.CopyStructFields(&groupMember, us)
|
|
||||||
err = imdb.InsertIntoGroupMember(groupMember)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember)
|
|
||||||
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
|
||||||
}
|
|
||||||
|
|
||||||
initMemberList:
|
|
||||||
var okUserIDList []string
|
var okUserIDList []string
|
||||||
//to group member
|
|
||||||
for _, user := range req.InitMemberList {
|
if req.GroupInfo.GroupType == constant.NormalGroup {
|
||||||
us, err := imdb.GetUserByUserID(user.UserID)
|
groupMember := db.GroupMember{}
|
||||||
|
us := &db.User{}
|
||||||
|
if req.OwnerUserID == "" {
|
||||||
|
goto initMemberList
|
||||||
|
}
|
||||||
|
us, err = imdb.GetUserByUserID(req.OwnerUserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), user.UserID)
|
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OwnerUserID)
|
||||||
continue
|
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
||||||
}
|
}
|
||||||
if user.RoleLevel == constant.GroupOwner {
|
|
||||||
log.NewError(req.OperationID, "only one owner, failed ", user)
|
//to group member
|
||||||
continue
|
groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID}
|
||||||
}
|
|
||||||
groupMember.RoleLevel = user.RoleLevel
|
|
||||||
utils.CopyStructFields(&groupMember, us)
|
utils.CopyStructFields(&groupMember, us)
|
||||||
err = imdb.InsertIntoGroupMember(groupMember)
|
err = imdb.InsertIntoGroupMember(groupMember)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember)
|
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember)
|
||||||
continue
|
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB)
|
||||||
}
|
}
|
||||||
okUserIDList = append(okUserIDList, user.UserID)
|
|
||||||
}
|
initMemberList:
|
||||||
resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}}
|
var okUserIDList []string
|
||||||
group, err := imdb.GetGroupInfoByGroupID(groupId)
|
//to group member
|
||||||
if err != nil {
|
for _, user := range req.InitMemberList {
|
||||||
log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId)
|
us, err := imdb.GetUserByUserID(user.UserID)
|
||||||
resp.ErrCode = constant.ErrDB.ErrCode
|
if err != nil {
|
||||||
resp.ErrMsg = err.Error()
|
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), user.UserID)
|
||||||
return resp, nil
|
continue
|
||||||
}
|
}
|
||||||
utils.CopyStructFields(resp.GroupInfo, group)
|
if user.RoleLevel == constant.GroupOwner {
|
||||||
resp.GroupInfo.MemberCount, err = imdb.GetGroupMemberNumByGroupID(groupId)
|
log.NewError(req.OperationID, "only one owner, failed ", user)
|
||||||
if err != nil {
|
continue
|
||||||
log.NewError(req.OperationID, "GetGroupMemberNumByGroupID failed ", err.Error(), groupId)
|
}
|
||||||
resp.ErrCode = constant.ErrDB.ErrCode
|
groupMember.RoleLevel = user.RoleLevel
|
||||||
resp.ErrMsg = err.Error()
|
utils.CopyStructFields(&groupMember, us)
|
||||||
return resp, nil
|
err = imdb.InsertIntoGroupMember(groupMember)
|
||||||
}
|
if err != nil {
|
||||||
if req.OwnerUserID != "" {
|
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember)
|
||||||
resp.GroupInfo.OwnerUserID = req.OwnerUserID
|
continue
|
||||||
okUserIDList = append(okUserIDList, req.OwnerUserID)
|
}
|
||||||
|
okUserIDList = append(okUserIDList, user.UserID)
|
||||||
|
}
|
||||||
|
resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||||
|
group, err := imdb.GetGroupInfoByGroupID(groupId)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId)
|
||||||
|
resp.ErrCode = constant.ErrDB.ErrCode
|
||||||
|
resp.ErrMsg = err.Error()
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(resp.GroupInfo, group)
|
||||||
|
resp.GroupInfo.MemberCount, err = imdb.GetGroupMemberNumByGroupID(groupId)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.OperationID, "GetGroupMemberNumByGroupID failed ", err.Error(), groupId)
|
||||||
|
resp.ErrCode = constant.ErrDB.ErrCode
|
||||||
|
resp.ErrMsg = err.Error()
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
if req.OwnerUserID != "" {
|
||||||
|
resp.GroupInfo.OwnerUserID = req.OwnerUserID
|
||||||
|
okUserIDList = append(okUserIDList, req.OwnerUserID)
|
||||||
|
}
|
||||||
|
} else if req.GroupInfo.GroupType == constant.SuperGroup {
|
||||||
|
for _, v := range req.InitMemberList {
|
||||||
|
okUserIDList = append(okUserIDList, v.UserID)
|
||||||
|
}
|
||||||
|
//memberCount := len(okUserIDList)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(okUserIDList) != 0 {
|
if len(okUserIDList) != 0 {
|
||||||
|
@ -154,7 +154,8 @@ const (
|
|||||||
|
|
||||||
//GroupType
|
//GroupType
|
||||||
NormalGroup = 0
|
NormalGroup = 0
|
||||||
DepartmentGroup = 1
|
SuperGroup = 1
|
||||||
|
DepartmentGroup = 2
|
||||||
|
|
||||||
GroupBaned = 3
|
GroupBaned = 3
|
||||||
GroupBanPrivateChat = 4
|
GroupBanPrivateChat = 4
|
||||||
|
@ -878,6 +878,10 @@ func (d *DataBases) GetUserFriendWorkMoments(showNumber, pageNumber int32, userI
|
|||||||
return workMomentList, err
|
return workMomentList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *DataBases) CreateSuperGroup() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func generateTagID(tagName, userID string) string {
|
func generateTagID(tagName, userID string) string {
|
||||||
return utils.Md5(tagName + userID + strconv.Itoa(rand.Int()) + time.Now().String())
|
return utils.Md5(tagName + userID + strconv.Itoa(rand.Int()) + time.Now().String())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user