Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode

This commit is contained in:
wangchuxiao
2023-01-13 19:08:01 +08:00
20 changed files with 1231 additions and 1549 deletions
+8
View File
@@ -16,6 +16,14 @@ type ErrInfo struct {
DetailErrMsg string
}
func NewErrInfo(code int32, msg, detail string) *ErrInfo {
return &ErrInfo{
ErrCode: code,
ErrMsg: msg,
DetailErrMsg: detail,
}
}
func (e *ErrInfo) Error() string {
return "errMsg: " + e.ErrMsg + " detail errMsg: " + e.DetailErrMsg
}
@@ -8,8 +8,6 @@ import (
"time"
)
var FriendDB *gorm.DB
type Friend struct {
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`
FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"`
@@ -18,49 +16,54 @@ type Friend struct {
AddSource int32 `gorm:"column:add_source"`
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
Ex string `gorm:"column:ex;size:1024"`
db *gorm.DB `gorm:"-"`
}
func (*Friend) Create(ctx context.Context, friends []*Friend) (err error) {
func NewFriend(db *gorm.DB) *Friend {
return &Friend{db: db}
}
func (f *Friend) Create(ctx context.Context, friends []*Friend) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
}()
err = utils.Wrap(FriendDB.Create(&friends).Error, "")
err = utils.Wrap(f.db.Create(&friends).Error, "")
return err
}
func (*Friend) Delete(ctx context.Context, ownerUserID string, friendUserIDs []string) (err error) {
func (f *Friend) Delete(ctx context.Context, ownerUserID string, friendUserIDs []string) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserIDs", friendUserIDs)
}()
err = utils.Wrap(FriendDB.Where("owner_user_id = ? and friend_user_id in (?)", ownerUserID, friendUserIDs).Delete(&Friend{}).Error, "")
err = utils.Wrap(f.db.Where("owner_user_id = ? and friend_user_id in (?)", ownerUserID, friendUserIDs).Delete(&Friend{}).Error, "")
return err
}
func (*Friend) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
func (f *Friend) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
}()
return utils.Wrap(FriendDB.Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
return utils.Wrap(f.db.Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
}
func (*Friend) Update(ctx context.Context, friends []*Friend) (err error) {
func (f *Friend) Update(ctx context.Context, friends []*Friend) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
}()
return utils.Wrap(FriendDB.Updates(&friends).Error, "")
return utils.Wrap(f.db.Updates(&friends).Error, "")
}
func (*Friend) Find(ctx context.Context, ownerUserID string) (friends []*Friend, err error) {
func (f *Friend) Find(ctx context.Context, ownerUserID string) (friends []*Friend, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
}()
err = utils.Wrap(FriendDB.Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
err = utils.Wrap(f.db.Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
return friends, err
}
func (*Friend) Take(ctx context.Context, ownerUserID, friendUserID string) (group *Group, err error) {
group = &Group{}
defer trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "group", *group)
err = utils.Wrap(FriendDB.Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(group).Error, "")
return group, err
func (f *Friend) Take(ctx context.Context, ownerUserID, friendUserID string) (friend *Friend, err error) {
friend = &Friend{}
defer trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "group", *friend)
err = utils.Wrap(f.db.Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error, "")
return friend, err
}
@@ -1,7 +1,9 @@
package im_mysql_model
import (
"Open_IM/pkg/common/trace_log"
"Open_IM/pkg/utils"
"context"
"gorm.io/gorm"
"time"
)
@@ -18,10 +20,56 @@ type FriendRequest struct {
HandleMsg string `gorm:"column:handle_msg;size:255"`
HandleTime time.Time `gorm:"column:handle_time"`
Ex string `gorm:"column:ex;size:1024"`
db *gorm.DB `gorm:"-"`
}
func (FriendRequest) TableName() string {
return "friend_requests"
func NewFriendRequest(db *gorm.DB) *FriendRequest {
return &FriendRequest{db: db}
}
func (f *FriendRequest) Create(ctx context.Context, friends []*FriendRequest) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
}()
err = utils.Wrap(f.db.Create(&friends).Error, "")
return err
}
func (f *FriendRequest) Delete(ctx context.Context, fromUserID, toUserID string) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "toUserID", toUserID)
}()
err = utils.Wrap(f.db.Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Delete(&FriendRequest{}).Error, "")
return err
}
func (f *FriendRequest) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
}()
return utils.Wrap(f.db.Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
}
func (f *FriendRequest) Update(ctx context.Context, friends []*FriendRequest) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
}()
return utils.Wrap(f.db.Updates(&friends).Error, "")
}
func (f *FriendRequest) Find(ctx context.Context, ownerUserID string) (friends []*FriendRequest, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
}()
err = utils.Wrap(f.db.Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
return friends, err
}
func (f *FriendRequest) Take(ctx context.Context, ownerUserID, friendUserID string) (friend *FriendRequest, err error) {
friend = &FriendRequest{}
defer trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "group", *friend)
err = utils.Wrap(f.db.Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error, "")
return friend, err
}
// who apply to add me
@@ -57,12 +57,12 @@ func (*Group) Update(ctx context.Context, groups []*Group) (err error) {
return utils.Wrap(GroupDB.Updates(&groups).Error, "")
}
func (*Group) Find(ctx context.Context, groupIDs []string) (groupList []*Group, err error) {
func (*Group) Find(ctx context.Context, groupIDs []string) (groups []*Group, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDList", groupIDs, "groupList", groupList)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs, "groups", groups)
}()
err = utils.Wrap(GroupDB.Where("group_id in (?)", groupIDs).Find(&groupList).Error, "")
return groupList, err
err = utils.Wrap(GroupDB.Where("group_id in (?)", groupIDs).Find(&groups).Error, "")
return groups, err
}
func (*Group) Take(ctx context.Context, groupID string) (group *Group, err error) {
@@ -1,24 +1,13 @@
package im_mysql_model
//type GroupRequest struct {
// UserID string `gorm:"column:user_id;primaryKey;"`
// GroupID string `gorm:"column:group_id;primaryKey;"`
// HandleResult int32 `gorm:"column:handle_result"`
// ReqMsg string `gorm:"column:req_msg"`
// HandledMsg string `gorm:"column:handled_msg"`
// ReqTime time.Time `gorm:"column:req_time"`
// HandleUserID string `gorm:"column:handle_user_id"`
// HandledTime time.Time `gorm:"column:handle_time"`
// Ex string `gorm:"column:ex"`
//}
//
//func UpdateGroupRequest(groupRequest GroupRequest) error {
// if groupRequest.HandledTime.Unix() < 0 {
// groupRequest.HandledTime = utils.UnixSecondToTime(0)
// }
// return db.DB.MysqlDB.DefaultGormDB().Table("group_requests").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Updates(&groupRequest).Error
//}
//
//func InsertIntoGroupRequest(toInsertInfo GroupRequest) error {
// DelGroupRequestByGroupIDAndUserID(toInsertInfo.GroupID, toInsertInfo.UserID)
// if toInsertInfo.HandledTime.Unix() < 0 {
@@ -40,7 +29,7 @@ package im_mysql_model
// }
// return nil
//}
//
//func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*GroupRequest, error) {
// var groupRequest GroupRequest
// err := db.DB.MysqlDB.DefaultGormDB().Table("group_requests").Where("user_id=? and group_id=?", userID, groupID).Take(&groupRequest).Error
@@ -49,7 +38,7 @@ package im_mysql_model
// }
// return &groupRequest, nil
//}
//
//func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error {
// return db.DB.MysqlDB.DefaultGormDB().Table("group_requests").Where("group_id=? and user_id=?", groupID, userID).Delete(GroupRequest{}).Error
//}
@@ -62,8 +51,8 @@ package im_mysql_model
// }
// return groupRequestList, nil
//}
// received
//
//received
//func GetRecvGroupApplicationList(userID string) ([]GroupRequest, error) {
// var groupRequestList []GroupRequest
// memberList, err := GetGroupMemberListByUserID(userID)
@@ -87,7 +76,7 @@ package im_mysql_model
// err := db.DB.MysqlDB.DefaultGormDB().Table("group_requests").Where("user_id=?", userID).Find(&groupRequestList).Error
// return groupRequestList, err
//}
//
//
//func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) {
//
@@ -149,7 +138,7 @@ package im_mysql_model
//
// return &group.GroupApplicationResponseResp{}, nil
//}
//
//func FindGroupBeInvitedRequestInfoByUidAndGroupID(groupId, uid string) (*GroupRequest, error) {
// dbConn, err := db.DB.MysqlDB.DefaultGormDB()
// if err != nil {
@@ -163,7 +152,7 @@ package im_mysql_model
// return &beInvitedRequestUserInfo, nil
//
//}
//
//func InsertGroupRequest(groupId, fromUser, fromUserNickName, fromUserFaceUrl, toUser, requestMsg, handledMsg string, handleStatus int) error {
// return nil
//}
@@ -1,7 +1,6 @@
package im_mysql_model
import (
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/trace_log"
"Open_IM/pkg/utils"
"context"
@@ -31,35 +30,35 @@ func (GroupRequest) TableName() string {
func (*GroupRequest) Create(ctx context.Context, groupRequests []*GroupRequest) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupRequests", groupRequests)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
}()
return utils.Wrap(GroupRequestDB.Create(&groupRequests).Error, utils.GetSelfFuncName())
}
func (*GroupRequest) Delete(ctx context.Context, groupRequests []*GroupRequest) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupRequests", groupRequests)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
}()
return utils.Wrap(GroupRequestDB.Delete(&groupRequests).Error, utils.GetSelfFuncName())
}
func (*GroupRequest) UpdateByMap(ctx context.Context, groupID string, userID string, args map[string]interface{}) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupID", groupID, "userID", userID, "args", args)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "args", args)
}()
return utils.Wrap(GroupRequestDB.Where("group_id = ? and user_id = ? ", groupID, userID).Updates(args).Error, utils.GetSelfFuncName())
}
func (*GroupRequest) Update(ctx context.Context, groupRequests []*GroupRequest) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupRequests", groupRequests)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
}()
return utils.Wrap(GroupRequestDB.Updates(&groupRequests).Error, utils.GetSelfFuncName())
}
func (*GroupRequest) Find(ctx context.Context, groupRequests []*GroupRequest) (resultGroupRequests []*GroupRequest, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupRequests", groupRequests, "resultGroupRequests", resultGroupRequests)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests, "resultGroupRequests", resultGroupRequests)
}()
var where [][]interface{}
for _, groupMember := range groupRequests {
@@ -71,163 +70,7 @@ func (*GroupRequest) Find(ctx context.Context, groupRequests []*GroupRequest) (r
func (*GroupRequest) Take(ctx context.Context, groupID string, userID string) (groupRequest *GroupRequest, err error) {
groupRequest = &GroupRequest{}
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "groupID", groupID, "userID", userID, "groupRequest", *groupRequest)
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupRequest", *groupRequest)
}()
return groupRequest, utils.Wrap(GroupRequestDB.Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, utils.GetSelfFuncName())
}
//func UpdateGroupRequest(groupRequest GroupRequest) error {
// if groupRequest.HandledTime.Unix() < 0 {
// groupRequest.HandledTime = utils.UnixSecondToTime(0)
// }
// return db.DB.MysqlDB.DefaultGormDB().Table("group_requests").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Updates(&groupRequest).Error
//}
func InsertIntoGroupRequest(toInsertInfo GroupRequest) error {
DelGroupRequestByGroupIDAndUserID(toInsertInfo.GroupID, toInsertInfo.UserID)
if toInsertInfo.HandledTime.Unix() < 0 {
toInsertInfo.HandledTime = utils.UnixSecondToTime(0)
}
u := GroupRequestDB.Table("group_requests").Where("group_id=? and user_id=?", toInsertInfo.GroupID, toInsertInfo.UserID).Updates(&toInsertInfo)
if u.RowsAffected != 0 {
return nil
}
toInsertInfo.ReqTime = time.Now()
if toInsertInfo.HandledTime.Unix() < 0 {
toInsertInfo.HandledTime = utils.UnixSecondToTime(0)
}
err := GroupRequestDB.Create(&toInsertInfo).Error
if err != nil {
return err
}
return nil
}
func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*GroupRequest, error) {
var groupRequest GroupRequest
err := GroupRequestDB.Where("user_id=? and group_id=?", userID, groupID).Take(&groupRequest).Error
if err != nil {
return nil, err
}
return &groupRequest, nil
}
func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error {
return GroupRequestDB.Table("group_requests").Where("group_id=? and user_id=?", groupID, userID).Delete(GroupRequest{}).Error
}
func GetGroupRequestByGroupID(groupID string) ([]GroupRequest, error) {
var groupRequestList []GroupRequest
err := GroupRequestDB.Table("group_requests").Where("group_id=?", groupID).Find(&groupRequestList).Error
if err != nil {
return nil, err
}
return groupRequestList, nil
}
// received
func GetRecvGroupApplicationList(userID string) ([]GroupRequest, error) {
var groupRequestList []GroupRequest
memberList, err := GetGroupMemberListByUserID(userID)
if err != nil {
return nil, utils.Wrap(err, utils.GetSelfFuncName())
}
for _, v := range memberList {
if v.RoleLevel > constant.GroupOrdinaryUsers {
list, err := GetGroupRequestByGroupID(v.GroupID)
if err != nil {
continue
}
groupRequestList = append(groupRequestList, list...)
}
}
return groupRequestList, nil
}
func GetUserReqGroupByUserID(userID string) ([]GroupRequest, error) {
var groupRequestList []GroupRequest
err := GroupRequestDB.Table("group_requests").Where("user_id=?", userID).Find(&groupRequestList).Error
return groupRequestList, err
}
//
//func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) {
//
// ownerUser, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID)
// if err != nil {
// log.ErrorByKv("FindGroupMemberInfoByGroupIdAndUserId failed", pb.OperationID, "groupId", pb.GroupID, "ownerID", pb.OwnerID)
// return nil, err
// }
// if ownerUser.AdministratorLevel <= 0 {
// return nil, errors.New("insufficient permissions")
// }
//
// dbConn, err := db.DB.MysqlDB.DefaultGormDB()
// if err != nil {
// return nil, err
// }
// var groupRequest GroupRequest
// err = dbConn.Raw("select * from `group_request` where handled_user = ? and group_id = ? and from_user_id = ? and to_user_id = ?",
// "", pb.GroupID, pb.FromUserID, pb.ToUserID).Scan(&groupRequest).Error
// if err != nil {
// log.ErrorByKv("find group_request info failed", pb.OperationID, "groupId", pb.GroupID, "fromUserId", pb.FromUserID, "toUserId", pb.OwnerID)
// return nil, err
// }
//
// if groupRequest.Flag != 0 {
// return nil, errors.New("application has already handle")
// }
//
// var saveFlag int
// if pb.HandleResult == 0 {
// saveFlag = -1
// } else if pb.HandleResult == 1 {
// saveFlag = 1
// } else {
// return nil, errors.New("parma HandleResult error")
// }
// err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and from_user_id = ? and to_user_id = ?",
// saveFlag, pb.HandledMsg, pb.OwnerID, groupRequest.GroupID, groupRequest.FromUserID, groupRequest.ToUserID).Error
// if err != nil {
// log.ErrorByKv("update group request failed", pb.OperationID, "groupID", pb.GroupID, "flag", saveFlag, "ownerId", pb.OwnerID, "fromUserId", pb.FromUserID, "toUserID", pb.ToUserID)
// return nil, err
// }
//
// if saveFlag == 1 {
// if groupRequest.ToUserID == "0" {
// err = InsertIntoGroupMember(pb.GroupID, pb.FromUserID, groupRequest.FromUserNickname, groupRequest.FromUserFaceUrl, 0)
// if err != nil {
// log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID)
// return nil, err
// }
// } else {
// err = InsertIntoGroupMember(pb.GroupID, pb.ToUserID, groupRequest.ToUserNickname, groupRequest.ToUserFaceUrl, 0)
// if err != nil {
// log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID)
// return nil, err
// }
// }
// }
//
// return &group.GroupApplicationResponseResp{}, nil
//}
//func FindGroupBeInvitedRequestInfoByUidAndGroupID(groupId, uid string) (*GroupRequest, error) {
// dbConn, err := db.DB.MysqlDB.DefaultGormDB()
// if err != nil {
// return nil, err
// }
// var beInvitedRequestUserInfo GroupRequest
// err = dbConn.Table("group_request").Where("to_user_id=? and group_id=?", uid, groupId).Find(&beInvitedRequestUserInfo).Error
// if err != nil {
// return nil, err
// }
// return &beInvitedRequestUserInfo, nil
//
//}
//func InsertGroupRequest(groupId, fromUser, fromUserNickName, fromUserFaceUrl, toUser, requestMsg, handledMsg string, handleStatus int) error {
// return nil
//}
@@ -8,8 +8,6 @@ import (
"time"
)
var BlackDB *gorm.DB
type Black struct {
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`
BlockUserID string `gorm:"column:block_user_id;primary_key;size:64"`
@@ -17,6 +15,65 @@ type Black struct {
AddSource int32 `gorm:"column:add_source"`
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
Ex string `gorm:"column:ex;size:1024"`
db *gorm.DB `gorm:"-"`
}
func NewBlack(db *gorm.DB) *Black {
return &Black{db: db}
}
func (b *Black) Create(ctx context.Context, blacks []*Black) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "blacks", blacks)
}()
return utils.Wrap(b.db.Create(&blacks).Error, "")
}
func (b *Black) Delete(ctx context.Context, blacks []*Black) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "blacks", blacks)
}()
return utils.Wrap(GroupMemberDB.Delete(blacks).Error, "")
}
func (b *Black) UpdateByMap(ctx context.Context, ownerUserID, blockUserID string, args map[string]interface{}) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "ownerUserID", ownerUserID, "blockUserID", blockUserID, "args", args)
}()
return utils.Wrap(b.db.Where("block_user_id = ? and block_user_id = ?", ownerUserID, blockUserID).Updates(args).Error, "")
}
func (b *Black) Update(ctx context.Context, blacks []*Black) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "blacks", blacks)
}()
return utils.Wrap(b.db.Updates(&blacks).Error, "")
}
func (b *Black) Find(ctx context.Context, blacks []Black) (blackList []*Black, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "blacks", blacks, "blackList", blackList)
}()
var where [][]interface{}
for _, black := range blacks {
where = append(where, []interface{}{black.OwnerUserID, black.BlockUserID})
}
return blackList, utils.Wrap(GroupMemberDB.Where("(owner_user_id, block_user_id) in ?", where).Find(&blackList).Error, "")
}
func (b *Black) Take(ctx context.Context, blackID string) (black *Black, err error) {
black = &Black{}
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "blackID", blackID, "black", *black)
}()
return black, utils.Wrap(b.db.Where("black_id = ?", blackID).Take(black).Error, "")
}
func (b *Black) FindByOwnerUserID(ctx context.Context, ownerUserID string) (blackList []*Black, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "ownerUserID", ownerUserID, "blackList", blackList)
}()
return blackList, utils.Wrap(GroupMemberDB.Where("owner_user_id = ?", ownerUserID).Find(&blackList).Error, "")
}
func InsertInToUserBlackList(ctx context.Context, black Black) (err error) {
@@ -47,7 +104,7 @@ func GetBlackListByUserID(ownerUserID string) ([]Black, error) {
func GetBlackIDListByUserID(ownerUserID string) ([]string, error) {
var blackIDList []string
err := BlackDB.Where("owner_user_id=?", ownerUserID).Pluck("block_user_id", &blackIDList).Error
err := b.db.Where("owner_user_id=?", ownerUserID).Pluck("block_user_id", &blackIDList).Error
if err != nil {
return nil, err
}
@@ -20,22 +20,6 @@ type BlackList struct {
EndDisableTime time.Time `gorm:"column:end_disable_time"`
}
type User struct {
UserID string `gorm:"column:user_id;primary_key;size:64"`
Nickname string `gorm:"column:name;size:255"`
FaceURL string `gorm:"column:face_url;size:255"`
Gender int32 `gorm:"column:gender"`
PhoneNumber string `gorm:"column:phone_number;size:32"`
Birth time.Time `gorm:"column:birth"`
Email string `gorm:"column:email;size:64"`
Ex string `gorm:"column:ex;size:1024"`
CreateTime time.Time `gorm:"column:create_time;index:create_time"`
AppMangerLevel int32 `gorm:"column:app_manger_level"`
GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"`
status int32 `gorm:"column:status"`
}
func UserRegister(user User) error {
user.CreateTime = time.Now()
if user.AppMangerLevel == 0 {
@@ -0,0 +1,66 @@
package im_mysql_model
import (
"Open_IM/pkg/common/trace_log"
"Open_IM/pkg/utils"
"context"
"gorm.io/gorm"
"time"
)
var userDB *gorm.DB
type User struct {
UserID string `gorm:"column:user_id;primary_key;size:64"`
Nickname string `gorm:"column:name;size:255"`
FaceURL string `gorm:"column:face_url;size:255"`
Gender int32 `gorm:"column:gender"`
PhoneNumber string `gorm:"column:phone_number;size:32"`
Birth time.Time `gorm:"column:birth"`
Email string `gorm:"column:email;size:64"`
Ex string `gorm:"column:ex;size:1024"`
CreateTime time.Time `gorm:"column:create_time;index:create_time"`
AppMangerLevel int32 `gorm:"column:app_manger_level"`
GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"`
status int32 `gorm:"column:status"`
}
func (*User) Create(ctx context.Context, users []*User) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "users", users)
}()
err = utils.Wrap(userDB.Create(&users).Error, "")
return err
}
func (*User) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "args", args)
}()
return utils.Wrap(userDB.Where("user_id = ?", userID).Updates(args).Error, "")
}
func (*User) Update(ctx context.Context, users []*User) (err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "users", users)
}()
return utils.Wrap(userDB.Updates(&users).Error, "")
}
func (*User) Find(ctx context.Context, userIDs []string) (users []*User, err error) {
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userIDs", userIDs, "users", users)
}()
err = utils.Wrap(userDB.Where("user_id in (?)", userIDs).Find(&users).Error, "")
return users, err
}
func (*User) Take(ctx context.Context, userID string) (user *User, err error) {
user = &User{}
defer func() {
trace_log.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID, "user", *user)
}()
err = utils.Wrap(userDB.Where("user_id = ?", userID).Take(&user).Error, "")
return user, err
}
File diff suppressed because it is too large Load Diff
+49 -95
View File
@@ -13,57 +13,44 @@ message GroupAddMemberInfo{
message CreateGroupReq{
repeated GroupAddMemberInfo initMemberList = 1;
server_api_params.GroupInfo groupInfo = 2;
string operationID = 3;
string opUserID = 4; //app manager or group owner
string ownerUserID = 5; //owner
}
message CreateGroupResp{
server_api_params.CommonResp commonResp = 1;
server_api_params.GroupInfo groupInfo = 3;
}
message GetGroupsInfoReq{
repeated string groupIDList = 1;
string operationID = 2;
string opUserID = 3; //No verification permission
}
message GetGroupsInfoResp{
server_api_params.CommonResp commonResp = 1;
repeated server_api_params.GroupInfo groupInfoList = 3;
}
message SetGroupInfoReq{
server_api_params.GroupInfoForSet groupInfoForSet = 1;
string opUserID = 2; //app manager or group owner
string operationID = 3;
}
message SetGroupInfoResp{
server_api_params.CommonResp commonResp = 1;
}
message GetGroupApplicationListReq {
string opUserID = 1; //app manager or group owner(manager)
string operationID = 2;
string fromUserID = 3; //owner or manager
server_api_params.RequestPagination pagination = 1;
string fromUserID = 3; //owner or admin
}
message GetGroupApplicationListResp {
server_api_params.CommonResp commonResp = 1;
int32 total = 1;
repeated server_api_params.GroupRequest groupRequestList = 3;
}
message GetUserReqApplicationListReq{
string userID = 1;
string opUserID = 2;
string operationID = 3;
server_api_params.RequestPagination pagination = 2;
}
message GetUserReqApplicationListResp{
server_api_params.CommonResp commonResp = 1;
int32 total = 1;
repeated server_api_params.GroupRequest groupRequestList = 2;
}
@@ -72,76 +59,59 @@ message TransferGroupOwnerReq {
string groupID = 1;
string oldOwnerUserID = 2;
string newOwnerUserID = 3;
string operationID = 4;
string opUserID = 5; //app manager or group owner
}
message TransferGroupOwnerResp{
server_api_params.CommonResp commonResp = 1;
}
message JoinGroupReq{
string groupID = 1;
string reqMessage = 2;
string opUserID = 3;
string operationID = 4;
int32 joinSource = 5;
string inviterUserID = 6;
}
message JoinGroupResp{
server_api_params.CommonResp commonResp = 1;
}
message GroupApplicationResponseReq{
string operationID = 1;
string opUserID = 2;
string groupID = 3;
string fromUserID = 4; //
string handledMsg = 5;
int32 handleResult = 6;
}
message GroupApplicationResponseResp{
server_api_params.CommonResp commonResp = 1;
}
message QuitGroupReq{
string groupID = 1;
string operationID = 2;
string opUserID = 3;
}
message QuitGroupResp{
server_api_params.CommonResp commonResp = 1;
}
message GetGroupMemberListReq {
string groupID = 1;
string opUserID = 2; //No verification permission
string operationID = 3;
int32 filter = 4;
int32 nextSeq = 5;
server_api_params.RequestPagination pagination = 2;
}
message GetGroupMemberListResp {
server_api_params.CommonResp commonResp = 1;
int32 total = 1;
repeated server_api_params.GroupMemberFullInfo memberList = 3;
int32 nextSeq = 4;
}
message GetGroupMembersInfoReq {
string groupID = 1;
repeated string memberList = 2;
string opUserID = 3; //No verification permission
string operationID = 4;
}
message GetGroupMembersInfoResp {
server_api_params.CommonResp commonResp = 1;
repeated server_api_params.GroupMemberFullInfo memberList = 3;
}
@@ -149,8 +119,6 @@ message KickGroupMemberReq {
string groupID = 1;
repeated string kickedUserIDList = 2;
string reason = 3;
string operationID = 5;
string opUserID = 6; //app manger or group manager
}
message Id2Result {
@@ -159,44 +127,36 @@ message Id2Result {
}
message KickGroupMemberResp {
server_api_params.CommonResp commonResp = 1;
repeated Id2Result id2ResultList = 3;
}
message GetJoinedGroupListReq {
string fromUserID = 1;
string operationID = 2;
string opUserID = 3; //app manager or FromUserID
server_api_params.RequestPagination pagination = 2;
}
message GetJoinedGroupListResp{
server_api_params.CommonResp commonResp = 1;
int32 total = 1;
repeated server_api_params.GroupInfo groupList = 3;
}
message InviteUserToGroupReq {
string operationID = 2;
string groupID = 3;
string reason = 4;
repeated string invitedUserIDList = 5;
string opUserID = 6; //group member or app manager
}
message InviteUserToGroupResp {
server_api_params.CommonResp commonResp = 1;
repeated Id2Result id2ResultList = 3; // 0 ok, -1 error
}
message GetGroupAllMemberReq {
string groupID = 1;
string opUserID = 2; //No verification permission
string operationID = 3;
int32 offset = 4;
int32 count = 5;
}
message GetGroupAllMemberResp {
server_api_params.CommonResp commonResp = 1;
repeated server_api_params.GroupMemberFullInfo memberList = 3;
}
@@ -208,95 +168,74 @@ message CMSGroup {
message GetGroupsReq {
server_api_params.RequestPagination pagination = 1;
string groupName = 2;
string groupID = 3;
string operationID = 4;
server_api_params.RequestPagination pagination = 1;
string groupName = 2;
string groupID = 3;
}
message GetGroupsResp {
repeated CMSGroup groups = 1;
server_api_params.ResponsePagination pagination = 2;
int32 GroupNum = 3;
server_api_params.CommonResp commonResp = 4;
}
message GetGroupMemberReq {
string groupID = 1;
string operationID = 2;
}
message GetGroupMembersCMSReq {
string groupID = 1;
string userName = 2;
server_api_params.RequestPagination pagination = 3;
string operationID = 4;
}
message GetGroupMembersCMSResp {
repeated server_api_params.GroupMemberFullInfo members = 1;
server_api_params.ResponsePagination pagination = 2;
int32 memberNums = 3;
server_api_params.CommonResp commonResp = 4;
}
message DismissGroupReq{
string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
}
message DismissGroupResp{
server_api_params.CommonResp commonResp = 1;
}
message MuteGroupMemberReq{
string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
string userID = 4;
uint32 mutedSeconds = 5;
}
message MuteGroupMemberResp{
server_api_params.CommonResp commonResp = 1;
}
message CancelMuteGroupMemberReq{
string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
string userID = 4;
}
message CancelMuteGroupMemberResp{
server_api_params.CommonResp commonResp = 1;
}
message MuteGroupReq{
string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
}
message MuteGroupResp{
server_api_params.CommonResp commonResp = 1;
}
message CancelMuteGroupReq{
string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
}
message CancelMuteGroupResp{
server_api_params.CommonResp commonResp = 1;
}
@@ -305,41 +244,32 @@ message CancelMuteGroupResp{
message SetGroupMemberNicknameReq{
string groupID = 1;
string nickname = 2;
string opUserID = 3;
string operationID = 4;
string userID = 5;
}
message SetGroupMemberNicknameResp{
server_api_params.CommonResp commonResp = 1;
}
message GetJoinedSuperGroupListReq {
string operationID = 1;
server_api_params.RequestPagination pagination = 1;
string userID = 2;
string opUserID = 3;
}
message GetJoinedSuperGroupListResp {
server_api_params.CommonResp commonResp = 1;
int32 total = 1;
repeated server_api_params.GroupInfo groupList = 3;
}
message GetSuperGroupsInfoReq {
repeated string groupIDList = 1;
string operationID = 2;
string opUserID = 3; //No verification permission
}
message GetSuperGroupsInfoResp {
server_api_params.CommonResp commonResp = 1;
repeated server_api_params.GroupInfo groupInfoList = 3;
}
message SetGroupMemberInfoReq{
string groupID = 1;
string userID = 2;
string opUserID = 3;
string operationID = 4;
google.protobuf.StringValue nickname = 5;
google.protobuf.StringValue faceURL = 6;
google.protobuf.Int32Value roleLevel = 7;
@@ -347,53 +277,77 @@ message SetGroupMemberInfoReq{
}
message SetGroupMemberInfoResp{
server_api_params.CommonResp commonResp = 1;
}
message GetGroupAbstractInfoReq{
string groupID = 1;
string opUserID = 2;
string operationID = 3;
repeated string groupIDs = 1;
}
message GetGroupAbstractInfoResp{
server_api_params.CommonResp commonResp = 1;
message GroupAbstractInfo{
string groupID = 1;
int32 groupMemberNumber = 2;
uint64 groupMemberListHash = 3;
}
message GetGroupAbstractInfoResp{
repeated GroupAbstractInfo groupAbstractInfos = 1;
}
service group{
//创建群
rpc createGroup(CreateGroupReq) returns(CreateGroupResp);
//申请加群
rpc joinGroup(JoinGroupReq) returns(JoinGroupResp);
//退出群
rpc quitGroup(QuitGroupReq) returns(QuitGroupResp);
//获取指定群信息
rpc getGroupsInfo(GetGroupsInfoReq) returns(GetGroupsInfoResp);
//设置群信息
rpc setGroupInfo(SetGroupInfoReq) returns(SetGroupInfoResp);
//(以管理员或群主身份)获取群的加群申请
rpc getGroupApplicationList(GetGroupApplicationListReq) returns(GetGroupApplicationListResp);
//获取用户自己的主动加群申请
rpc getUserReqApplicationList(GetUserReqApplicationListReq) returns(GetUserReqApplicationListResp);
//转让群主
rpc transferGroupOwner(TransferGroupOwnerReq) returns(TransferGroupOwnerResp);
//群主或管理员处理进群申请
rpc groupApplicationResponse(GroupApplicationResponseReq) returns(GroupApplicationResponseResp);
//获取某个群的群成员
rpc getGroupMemberList(GetGroupMemberListReq) returns(GetGroupMemberListResp);
//获取某个群的指定群成员
rpc getGroupMembersInfo(GetGroupMembersInfoReq) returns(GetGroupMembersInfoResp);
//踢出群
rpc kickGroupMember(KickGroupMemberReq) returns (KickGroupMemberResp);
//获取某个人已加入群
rpc getJoinedGroupList(GetJoinedGroupListReq) returns (GetJoinedGroupListResp);
//邀请某些人进群
rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp);
rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp);
rpc GetGroups(GetGroupsReq) returns(GetGroupsResp);
rpc GetGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp);
//解散群
rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp);
//对某个群成员禁言
rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp);
//对某个群成员取消禁言
rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp);
//对某个群禁言
rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp);
//对某个群取消禁言
rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp);
rpc SetGroupMemberNickname(SetGroupMemberNicknameReq) returns (SetGroupMemberNicknameResp);
//获取某个用户加入的超级群
rpc GetJoinedSuperGroupList(GetJoinedSuperGroupListReq) returns (GetJoinedSuperGroupListResp);
//获取指定的超级群信息
rpc GetSuperGroupsInfo(GetSuperGroupsInfoReq) returns (GetSuperGroupsInfoResp);
//设置群成员昵称
rpc SetGroupMemberNickname(SetGroupMemberNicknameReq) returns (SetGroupMemberNicknameResp);
//设置群成员信息
rpc SetGroupMemberInfo(SetGroupMemberInfoReq) returns (SetGroupMemberInfoResp);
//获取群信息hash值
rpc GetGroupAbstractInfo(GetGroupAbstractInfoReq) returns (GetGroupAbstractInfoResp);
}
-4
View File
@@ -519,10 +519,6 @@ message RequestPagination {
int32 showNumber = 2;
}
message ResponsePagination {
int32 CurrentPage = 5;
int32 ShowNumber = 6;
}
///////////////////signal//////////////