mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-12-10 14:54:41 +08:00
fix:fix lint errors in pkg/common/db/relation
and pkg/common/db/localcache
This commit is contained in:
parent
e7e48a8c74
commit
fc1a270057
@ -50,6 +50,7 @@ func (g *ConversationLocalCache) GetRecvMsgNotNotifyUserIDs(ctx context.Context,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return resp.UserIDs, nil
|
return resp.UserIDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,7 @@ func (g *GroupLocalCache) GetGroupMemberIDs(ctx context.Context, groupID string)
|
|||||||
localHashInfo, ok := g.cache[groupID]
|
localHashInfo, ok := g.cache[groupID]
|
||||||
if ok && localHashInfo.memberListHash == resp.GroupAbstractInfos[0].GroupMemberListHash {
|
if ok && localHashInfo.memberListHash == resp.GroupAbstractInfos[0].GroupMemberListHash {
|
||||||
g.lock.Unlock()
|
g.lock.Unlock()
|
||||||
|
|
||||||
return localHashInfo.userIDs, nil
|
return localHashInfo.userIDs, nil
|
||||||
}
|
}
|
||||||
g.lock.Unlock()
|
g.lock.Unlock()
|
||||||
@ -74,5 +75,6 @@ func (g *GroupLocalCache) GetGroupMemberIDs(ctx context.Context, groupID string)
|
|||||||
memberListHash: resp.GroupAbstractInfos[0].GroupMemberListHash,
|
memberListHash: resp.GroupAbstractInfos[0].GroupMemberListHash,
|
||||||
userIDs: groupMembersResp.UserIDs,
|
userIDs: groupMembersResp.UserIDs,
|
||||||
}
|
}
|
||||||
|
|
||||||
return g.cache[groupID].userIDs, nil
|
return g.cache[groupID].userIDs, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,10 +63,11 @@ func (b *BlackGorm) Find(
|
|||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
blacks []*relation.BlackModel,
|
blacks []*relation.BlackModel,
|
||||||
) (blackList []*relation.BlackModel, err error) {
|
) (blackList []*relation.BlackModel, err error) {
|
||||||
var where [][]interface{}
|
where := make([][]interface{}, 0, len(blacks))
|
||||||
for _, black := range blacks {
|
for _, black := range blacks {
|
||||||
where = append(where, []interface{}{black.OwnerUserID, black.BlockUserID})
|
where = append(where, []interface{}{black.OwnerUserID, black.BlockUserID})
|
||||||
}
|
}
|
||||||
|
|
||||||
return blackList, utils.Wrap(
|
return blackList, utils.Wrap(
|
||||||
b.db(ctx).Where("(owner_user_id, block_user_id) in ?", where).Find(&blackList).Error,
|
b.db(ctx).Where("(owner_user_id, block_user_id) in ?", where).Find(&blackList).Error,
|
||||||
"",
|
"",
|
||||||
@ -75,6 +76,7 @@ func (b *BlackGorm) Find(
|
|||||||
|
|
||||||
func (b *BlackGorm) Take(ctx context.Context, ownerUserID, blockUserID string) (black *relation.BlackModel, err error) {
|
func (b *BlackGorm) Take(ctx context.Context, ownerUserID, blockUserID string) (black *relation.BlackModel, err error) {
|
||||||
black = &relation.BlackModel{}
|
black = &relation.BlackModel{}
|
||||||
|
|
||||||
return black, utils.Wrap(
|
return black, utils.Wrap(
|
||||||
b.db(ctx).Where("owner_user_id = ? and block_user_id = ?", ownerUserID, blockUserID).Take(black).Error,
|
b.db(ctx).Where("owner_user_id = ? and block_user_id = ?", ownerUserID, blockUserID).Take(black).Error,
|
||||||
"",
|
"",
|
||||||
@ -96,6 +98,7 @@ func (b *BlackGorm) FindOwnerBlacks(
|
|||||||
showNumber,
|
showNumber,
|
||||||
)
|
)
|
||||||
total = int64(totalUint32)
|
total = int64(totalUint32)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
||||||
|
//nolint:staticcheck //tofix: SA1019: "github.com/golang/protobuf/jsonpb" is deprecated: Use the "google.golang.org/protobuf/encoding/protojson" package instead.
|
||||||
"github.com/golang/protobuf/jsonpb"
|
"github.com/golang/protobuf/jsonpb"
|
||||||
"github.com/jinzhu/copier"
|
"github.com/jinzhu/copier"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
@ -38,7 +40,10 @@ func NewChatLogGorm(db *gorm.DB) relation.ChatLogModelInterface {
|
|||||||
|
|
||||||
func (c *ChatLogGorm) Create(msg *pbmsg.MsgDataToMQ) error {
|
func (c *ChatLogGorm) Create(msg *pbmsg.MsgDataToMQ) error {
|
||||||
chatLog := new(relation.ChatLogModel)
|
chatLog := new(relation.ChatLogModel)
|
||||||
copier.Copy(chatLog, msg.MsgData)
|
err := copier.Copy(chatLog, msg.MsgData)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
switch msg.MsgData.SessionType {
|
switch msg.MsgData.SessionType {
|
||||||
case constant.GroupChatType, constant.SuperGroupChatType:
|
case constant.GroupChatType, constant.SuperGroupChatType:
|
||||||
chatLog.RecvID = msg.MsgData.GroupID
|
chatLog.RecvID = msg.MsgData.GroupID
|
||||||
@ -59,5 +64,6 @@ func (c *ChatLogGorm) Create(msg *pbmsg.MsgDataToMQ) error {
|
|||||||
}
|
}
|
||||||
chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime)
|
chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime)
|
||||||
chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime)
|
chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime)
|
||||||
|
|
||||||
return c.DB.Create(chatLog).Error
|
return c.DB.Create(chatLog).Error
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,7 @@ func (c *ConversationGorm) UpdateByMap(
|
|||||||
args map[string]interface{},
|
args map[string]interface{},
|
||||||
) (rows int64, err error) {
|
) (rows int64, err error) {
|
||||||
result := c.db(ctx).Where("owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Updates(args)
|
result := c.db(ctx).Where("owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Updates(args)
|
||||||
|
|
||||||
return result.RowsAffected, utils.Wrap(result.Error, "")
|
return result.RowsAffected, utils.Wrap(result.Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +80,7 @@ func (c *ConversationGorm) Find(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return conversations, err
|
return conversations, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,6 +89,7 @@ func (c *ConversationGorm) Take(
|
|||||||
userID, conversationID string,
|
userID, conversationID string,
|
||||||
) (conversation *relation.ConversationModel, err error) {
|
) (conversation *relation.ConversationModel, err error) {
|
||||||
cc := &relation.ConversationModel{}
|
cc := &relation.ConversationModel{}
|
||||||
|
|
||||||
return cc, utils.Wrap(
|
return cc, utils.Wrap(
|
||||||
c.db(ctx).Where("conversation_id = ? And owner_user_id = ?", conversationID, userID).Take(cc).Error,
|
c.db(ctx).Where("conversation_id = ? And owner_user_id = ?", conversationID, userID).Take(cc).Error,
|
||||||
"",
|
"",
|
||||||
@ -169,6 +172,7 @@ func (c *ConversationGorm) GetUserRecvMsgOpt(
|
|||||||
ownerUserID, conversationID string,
|
ownerUserID, conversationID string,
|
||||||
) (opt int, err error) {
|
) (opt int, err error) {
|
||||||
var conversation relation.ConversationModel
|
var conversation relation.ConversationModel
|
||||||
|
|
||||||
return int(
|
return int(
|
||||||
conversation.RecvMsgOpt,
|
conversation.RecvMsgOpt,
|
||||||
), utils.Wrap(
|
), utils.Wrap(
|
||||||
@ -219,6 +223,7 @@ func (c *ConversationGorm) GetConversationIDsNeedDestruct(
|
|||||||
|
|
||||||
func (c *ConversationGorm) GetConversationRecvMsgOpt(ctx context.Context, userID string, conversationID string) (int32, error) {
|
func (c *ConversationGorm) GetConversationRecvMsgOpt(ctx context.Context, userID string, conversationID string) (int32, error) {
|
||||||
var recvMsgOpt int32
|
var recvMsgOpt int32
|
||||||
|
|
||||||
return recvMsgOpt, errs.Wrap(
|
return recvMsgOpt, errs.Wrap(
|
||||||
c.db(ctx).
|
c.db(ctx).
|
||||||
Model(&relation.ConversationModel{}).
|
Model(&relation.ConversationModel{}).
|
||||||
@ -230,6 +235,7 @@ func (c *ConversationGorm) GetConversationRecvMsgOpt(ctx context.Context, userID
|
|||||||
|
|
||||||
func (c *ConversationGorm) GetConversationNotReceiveMessageUserIDs(ctx context.Context, conversationID string) ([]string, error) {
|
func (c *ConversationGorm) GetConversationNotReceiveMessageUserIDs(ctx context.Context, conversationID string) ([]string, error) {
|
||||||
var userIDs []string
|
var userIDs []string
|
||||||
|
|
||||||
return userIDs, errs.Wrap(
|
return userIDs, errs.Wrap(
|
||||||
c.db(ctx).
|
c.db(ctx).
|
||||||
Model(&relation.ConversationModel{}).
|
Model(&relation.ConversationModel{}).
|
||||||
|
|||||||
@ -50,6 +50,7 @@ func (f *FriendGorm) Delete(ctx context.Context, ownerUserID string, friendUserI
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,6 +85,7 @@ func (f *FriendGorm) UpdateRemark(ctx context.Context, ownerUserID, friendUserID
|
|||||||
}
|
}
|
||||||
m := make(map[string]interface{}, 1)
|
m := make(map[string]interface{}, 1)
|
||||||
m["remark"] = ""
|
m["remark"] = ""
|
||||||
|
|
||||||
return utils.Wrap(f.db(ctx).Where("owner_user_id = ?", ownerUserID).Updates(m).Error, "")
|
return utils.Wrap(f.db(ctx).Where("owner_user_id = ?", ownerUserID).Updates(m).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,6 +95,7 @@ func (f *FriendGorm) Take(
|
|||||||
ownerUserID, friendUserID string,
|
ownerUserID, friendUserID string,
|
||||||
) (friend *relation.FriendModel, err error) {
|
) (friend *relation.FriendModel, err error) {
|
||||||
friend = &relation.FriendModel{}
|
friend = &relation.FriendModel{}
|
||||||
|
|
||||||
return friend, utils.Wrap(
|
return friend, utils.Wrap(
|
||||||
f.db(ctx).Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error,
|
f.db(ctx).Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error,
|
||||||
"",
|
"",
|
||||||
@ -156,6 +159,7 @@ func (f *FriendGorm) FindOwnerFriends(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,6 +182,7 @@ func (f *FriendGorm) FindInWhoseFriends(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -74,6 +74,7 @@ func (f *FriendRequestGorm) Update(ctx context.Context, friendRequest *relation.
|
|||||||
fr2 := *friendRequest
|
fr2 := *friendRequest
|
||||||
fr2.FromUserID = ""
|
fr2.FromUserID = ""
|
||||||
fr2.ToUserID = ""
|
fr2.ToUserID = ""
|
||||||
|
|
||||||
return utils.Wrap(
|
return utils.Wrap(
|
||||||
f.db(ctx).
|
f.db(ctx).
|
||||||
Where("from_user_id = ? AND to_user_id =?", friendRequest.FromUserID, friendRequest.ToUserID).
|
Where("from_user_id = ? AND to_user_id =?", friendRequest.FromUserID, friendRequest.ToUserID).
|
||||||
@ -93,6 +94,7 @@ func (f *FriendRequestGorm) Find(
|
|||||||
f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Find(friendRequest).Error,
|
f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Find(friendRequest).Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return friendRequest, err
|
return friendRequest, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,6 +107,7 @@ func (f *FriendRequestGorm) Take(
|
|||||||
f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Take(friendRequest).Error,
|
f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Take(friendRequest).Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return friendRequest, err
|
return friendRequest, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +130,7 @@ func (f *FriendRequestGorm) FindToUserID(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +153,7 @@ func (f *FriendRequestGorm) FindFromUserID(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,5 +165,6 @@ func (f *FriendRequestGorm) FindBothFriendRequests(ctx context.Context, fromUser
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,6 +68,7 @@ func (g *GroupMemberGorm) UpdateRoleLevel(
|
|||||||
db := g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Updates(map[string]any{
|
db := g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Updates(map[string]any{
|
||||||
"role_level": roleLevel,
|
"role_level": roleLevel,
|
||||||
})
|
})
|
||||||
|
|
||||||
return db.RowsAffected, utils.Wrap(db.Error, "")
|
return db.RowsAffected, utils.Wrap(db.Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,6 +88,7 @@ func (g *GroupMemberGorm) Find(
|
|||||||
if len(roleLevels) > 0 {
|
if len(roleLevels) > 0 {
|
||||||
db = db.Where("role_level in (?)", roleLevels)
|
db = db.Where("role_level in (?)", roleLevels)
|
||||||
}
|
}
|
||||||
|
|
||||||
return groupMembers, utils.Wrap(db.Find(&groupMembers).Error, "")
|
return groupMembers, utils.Wrap(db.Find(&groupMembers).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,6 +98,7 @@ func (g *GroupMemberGorm) Take(
|
|||||||
userID string,
|
userID string,
|
||||||
) (groupMember *relation.GroupMemberModel, err error) {
|
) (groupMember *relation.GroupMemberModel, err error) {
|
||||||
groupMember = &relation.GroupMemberModel{}
|
groupMember = &relation.GroupMemberModel{}
|
||||||
|
|
||||||
return groupMember, utils.Wrap(
|
return groupMember, utils.Wrap(
|
||||||
g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error,
|
g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error,
|
||||||
"",
|
"",
|
||||||
@ -107,6 +110,7 @@ func (g *GroupMemberGorm) TakeOwner(
|
|||||||
groupID string,
|
groupID string,
|
||||||
) (groupMember *relation.GroupMemberModel, err error) {
|
) (groupMember *relation.GroupMemberModel, err error) {
|
||||||
groupMember = &relation.GroupMemberModel{}
|
groupMember = &relation.GroupMemberModel{}
|
||||||
|
|
||||||
return groupMember, utils.Wrap(
|
return groupMember, utils.Wrap(
|
||||||
g.db(ctx).Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error,
|
g.db(ctx).Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error,
|
||||||
"",
|
"",
|
||||||
@ -125,6 +129,7 @@ func (g *GroupMemberGorm) SearchMember(
|
|||||||
ormutil.GormIn(&db, "group_id", groupIDs)
|
ormutil.GormIn(&db, "group_id", groupIDs)
|
||||||
ormutil.GormIn(&db, "user_id", userIDs)
|
ormutil.GormIn(&db, "user_id", userIDs)
|
||||||
ormutil.GormIn(&db, "role_level", roleLevels)
|
ormutil.GormIn(&db, "role_level", roleLevels)
|
||||||
|
|
||||||
return ormutil.GormSearch[relation.GroupMemberModel](db, []string{"nickname"}, keyword, pageNumber, showNumber)
|
return ormutil.GormSearch[relation.GroupMemberModel](db, []string{"nickname"}, keyword, pageNumber, showNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +157,7 @@ func (g *GroupMemberGorm) FindJoinUserID(
|
|||||||
groupUsers[item.GroupID] = append(v, item.UserID)
|
groupUsers[item.GroupID] = append(v, item.UserID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return groupUsers, nil
|
return groupUsers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,6 +188,7 @@ func (g *GroupMemberGorm) FindUsersJoinedGroupID(ctx context.Context, userIDs []
|
|||||||
result[groupMember.UserID] = append(v, groupMember.GroupID)
|
result[groupMember.UserID] = append(v, groupMember.GroupID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,12 +61,14 @@ func (g *GroupGorm) Find(ctx context.Context, groupIDs []string) (groups []*rela
|
|||||||
|
|
||||||
func (g *GroupGorm) Take(ctx context.Context, groupID string) (group *relation.GroupModel, err error) {
|
func (g *GroupGorm) Take(ctx context.Context, groupID string) (group *relation.GroupModel, err error) {
|
||||||
group = &relation.GroupModel{}
|
group = &relation.GroupModel{}
|
||||||
|
|
||||||
return group, utils.Wrap(g.DB.Where("group_id = ?", groupID).Take(group).Error, "")
|
return group, utils.Wrap(g.DB.Where("group_id = ?", groupID).Take(group).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupGorm) Search(ctx context.Context, keyword string, pageNumber, showNumber int32) (total uint32, groups []*relation.GroupModel, err error) {
|
func (g *GroupGorm) Search(ctx context.Context, keyword string, pageNumber, showNumber int32) (total uint32, groups []*relation.GroupModel, err error) {
|
||||||
db := g.DB
|
db := g.DB
|
||||||
db = db.WithContext(ctx).Where("status!=?", constant.GroupStatusDismissed)
|
db = db.WithContext(ctx).Where("status!=?", constant.GroupStatusDismissed)
|
||||||
|
|
||||||
return ormutil.GormSearch[relation.GroupModel](db, []string{"name"}, keyword, pageNumber, showNumber)
|
return ormutil.GormSearch[relation.GroupModel](db, []string{"name"}, keyword, pageNumber, showNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,6 +84,7 @@ func (g *GroupGorm) CountTotal(ctx context.Context, before *time.Time) (count in
|
|||||||
if err := db.Count(&count).Error; err != nil {
|
if err := db.Count(&count).Error; err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return count, nil
|
return count, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +101,7 @@ func (g *GroupGorm) CountRangeEverydayTotal(ctx context.Context, start time.Time
|
|||||||
for _, r := range res {
|
for _, r := range res {
|
||||||
v[r.Date.Format("2006-01-02")] = r.Count
|
v[r.Date.Format("2006-01-02")] = r.Count
|
||||||
}
|
}
|
||||||
|
|
||||||
return v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -80,6 +80,7 @@ func (g *GroupRequestGorm) Take(
|
|||||||
userID string,
|
userID string,
|
||||||
) (groupRequest *relation.GroupRequestModel, err error) {
|
) (groupRequest *relation.GroupRequestModel, err error) {
|
||||||
groupRequest = &relation.GroupRequestModel{}
|
groupRequest = &relation.GroupRequestModel{}
|
||||||
|
|
||||||
return groupRequest, utils.Wrap(
|
return groupRequest, utils.Wrap(
|
||||||
g.DB.WithContext(ctx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error,
|
g.DB.WithContext(ctx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error,
|
||||||
utils.GetSelfFuncName(),
|
utils.GetSelfFuncName(),
|
||||||
@ -114,5 +115,6 @@ func (g *GroupRequestGorm) PageGroup(
|
|||||||
|
|
||||||
func (g *GroupRequestGorm) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (total int64, groupRequests []*relation.GroupRequestModel, err error) {
|
func (g *GroupRequestGorm) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (total int64, groupRequests []*relation.GroupRequestModel, err error) {
|
||||||
err = g.DB.WithContext(ctx).Where("group_id = ? and user_id in ?", groupID, userIDs).Find(&groupRequests).Error
|
err = g.DB.WithContext(ctx).Where("group_id = ? and user_id in ?", groupID, userIDs).Find(&groupRequests).Error
|
||||||
|
|
||||||
return int64(len(groupRequests)), groupRequests, utils.Wrap(err, utils.GetSelfFuncName())
|
return int64(len(groupRequests)), groupRequests, utils.Wrap(err, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ func (l *LogGorm) Search(ctx context.Context, keyword string, start time.Time, e
|
|||||||
db = l.db.WithContext(ctx).Where("create_time <= ?", end)
|
db = l.db.WithContext(ctx).Where("create_time <= ?", end)
|
||||||
}
|
}
|
||||||
db = db.Order("create_time desc")
|
db = db.Order("create_time desc")
|
||||||
|
|
||||||
return ormutil.GormSearch[relationtb.Log](db, []string{"user_id"}, keyword, pageNumber, showNumber)
|
return ormutil.GormSearch[relationtb.Log](db, []string{"user_id"}, keyword, pageNumber, showNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,6 +33,7 @@ func (l *LogGorm) Delete(ctx context.Context, logIDs []string, userID string) er
|
|||||||
if userID == "" {
|
if userID == "" {
|
||||||
return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Delete(&relationtb.Log{}).Error)
|
return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Delete(&relationtb.Log{}).Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Delete(&relationtb.Log{}).Error)
|
return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Delete(&relationtb.Log{}).Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,10 +42,15 @@ func (l *LogGorm) Get(ctx context.Context, logIDs []string, userID string) ([]*r
|
|||||||
if userID == "" {
|
if userID == "" {
|
||||||
return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Find(&logs).Error)
|
return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Find(&logs).Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Find(&logs).Error)
|
return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Find(&logs).Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLogGorm(db *gorm.DB) relationtb.LogInterface {
|
func NewLogGorm(db *gorm.DB) relationtb.LogInterface {
|
||||||
db.AutoMigrate(&relationtb.Log{})
|
err := db.AutoMigrate(&relationtb.Log{})
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
return &LogGorm{db: db}
|
return &LogGorm{db: db}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,5 +34,6 @@ func NewMetaDB(db *gorm.DB, table any) *MetaDB {
|
|||||||
|
|
||||||
func (g *MetaDB) db(ctx context.Context) *gorm.DB {
|
func (g *MetaDB) db(ctx context.Context) *gorm.DB {
|
||||||
db := g.DB.WithContext(ctx).Model(g.table)
|
db := g.DB.WithContext(ctx).Model(g.table)
|
||||||
|
|
||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -82,6 +83,7 @@ func newMysqlGormDB() (*gorm.DB, error) {
|
|||||||
sqlDB.SetConnMaxLifetime(time.Second * time.Duration(config.Config.Mysql.MaxLifeTime))
|
sqlDB.SetConnMaxLifetime(time.Second * time.Duration(config.Config.Mysql.MaxLifeTime))
|
||||||
sqlDB.SetMaxOpenConns(config.Config.Mysql.MaxOpenConn)
|
sqlDB.SetMaxOpenConns(config.Config.Mysql.MaxOpenConn)
|
||||||
sqlDB.SetMaxIdleConns(config.Config.Mysql.MaxIdleConn)
|
sqlDB.SetMaxIdleConns(config.Config.Mysql.MaxIdleConn)
|
||||||
|
|
||||||
return db, nil
|
return db, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,11 +96,13 @@ func connectToDatabase(dsn string, maxRetry int) (*gorm.DB, error) {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
return db, nil
|
return db, nil
|
||||||
}
|
}
|
||||||
if mysqlErr, ok := err.(*mysqldriver.MySQLError); ok && mysqlErr.Number == 1045 {
|
var mysqlErr *mysqldriver.MySQLError
|
||||||
|
if errors.As(err, &mysqlErr) && mysqlErr.Number == 1045 {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
time.Sleep(time.Duration(1) * time.Second)
|
time.Sleep(time.Duration(1) * time.Second)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,6 +110,7 @@ func connectToDatabase(dsn string, maxRetry int) (*gorm.DB, error) {
|
|||||||
func NewGormDB() (*gorm.DB, error) {
|
func NewGormDB() (*gorm.DB, error) {
|
||||||
specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound)
|
specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound)
|
||||||
specialerror.AddErrHandler(replaceDuplicateKey)
|
specialerror.AddErrHandler(replaceDuplicateKey)
|
||||||
|
|
||||||
return newMysqlGormDB()
|
return newMysqlGormDB()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,12 +118,15 @@ func replaceDuplicateKey(err error) errs.CodeError {
|
|||||||
if IsMysqlDuplicateKey(err) {
|
if IsMysqlDuplicateKey(err) {
|
||||||
return errs.ErrDuplicateKey
|
return errs.ErrDuplicateKey
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsMysqlDuplicateKey(err error) bool {
|
func IsMysqlDuplicateKey(err error) bool {
|
||||||
if mysqlErr, ok := err.(*mysqldriver.MySQLError); ok {
|
var mysqlErr *mysqldriver.MySQLError
|
||||||
|
if errors.As(err, &mysqlErr) {
|
||||||
return mysqlErr.Number == 1062
|
return mysqlErr.Number == 1062
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,10 +44,12 @@ func (o *ObjectInfoGorm) SetObject(ctx context.Context, obj *relation.ObjectMode
|
|||||||
if err := o.DB.WithContext(ctx).Where("name = ?", obj.Name).FirstOrCreate(obj).Error; err != nil {
|
if err := o.DB.WithContext(ctx).Where("name = ?", obj.Name).FirstOrCreate(obj).Error; err != nil {
|
||||||
return errs.Wrap(err)
|
return errs.Wrap(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *ObjectInfoGorm) Take(ctx context.Context, name string) (info *relation.ObjectModel, err error) {
|
func (o *ObjectInfoGorm) Take(ctx context.Context, name string) (info *relation.ObjectModel, err error) {
|
||||||
info = &relation.ObjectModel{}
|
info = &relation.ObjectModel{}
|
||||||
|
|
||||||
return info, errs.Wrap(o.DB.WithContext(ctx).Where("name = ?", name).Take(info).Error)
|
return info, errs.Wrap(o.DB.WithContext(ctx).Where("name = ?", name).Take(info).Error)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,6 +53,7 @@ func (u *UserGorm) Update(ctx context.Context, user *relation.UserModel) (err er
|
|||||||
// 获取指定用户信息 不存在,也不返回错误.
|
// 获取指定用户信息 不存在,也不返回错误.
|
||||||
func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
||||||
err = utils.Wrap(u.db(ctx).Where("user_id in (?)", userIDs).Find(&users).Error, "")
|
err = utils.Wrap(u.db(ctx).Where("user_id in (?)", userIDs).Find(&users).Error, "")
|
||||||
|
|
||||||
return users, err
|
return users, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relatio
|
|||||||
func (u *UserGorm) Take(ctx context.Context, userID string) (user *relation.UserModel, err error) {
|
func (u *UserGorm) Take(ctx context.Context, userID string) (user *relation.UserModel, err error) {
|
||||||
user = &relation.UserModel{}
|
user = &relation.UserModel{}
|
||||||
err = utils.Wrap(u.db(ctx).Where("user_id = ?", userID).Take(&user).Error, "")
|
err = utils.Wrap(u.db(ctx).Where("user_id = ?", userID).Take(&user).Error, "")
|
||||||
|
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +83,7 @@ func (u *UserGorm) Page(
|
|||||||
Error,
|
Error,
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,13 +91,14 @@ func (u *UserGorm) Page(
|
|||||||
func (u *UserGorm) GetAllUserID(ctx context.Context, pageNumber, showNumber int32) (userIDs []string, err error) {
|
func (u *UserGorm) GetAllUserID(ctx context.Context, pageNumber, showNumber int32) (userIDs []string, err error) {
|
||||||
if pageNumber == 0 || showNumber == 0 {
|
if pageNumber == 0 || showNumber == 0 {
|
||||||
return userIDs, errs.Wrap(u.db(ctx).Pluck("user_id", &userIDs).Error)
|
return userIDs, errs.Wrap(u.db(ctx).Pluck("user_id", &userIDs).Error)
|
||||||
} else {
|
|
||||||
return userIDs, errs.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Pluck("user_id", &userIDs).Error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return userIDs, errs.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Pluck("user_id", &userIDs).Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserGorm) GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error) {
|
func (u *UserGorm) GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error) {
|
||||||
err = u.db(ctx).Model(&relation.UserModel{}).Where("user_id = ?", userID).Pluck("global_recv_msg_opt", &opt).Error
|
err = u.db(ctx).Model(&relation.UserModel{}).Where("user_id = ?", userID).Pluck("global_recv_msg_opt", &opt).Error
|
||||||
|
|
||||||
return opt, err
|
return opt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,6 +110,7 @@ func (u *UserGorm) CountTotal(ctx context.Context, before *time.Time) (count int
|
|||||||
if err := db.Count(&count).Error; err != nil {
|
if err := db.Count(&count).Error; err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return count, nil
|
return count, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,5 +137,6 @@ func (u *UserGorm) CountRangeEverydayTotal(
|
|||||||
for _, r := range res {
|
for _, r := range res {
|
||||||
v[r.Date.Format("2006-01-02")] = r.Count
|
v[r.Date.Format("2006-01-02")] = r.Count
|
||||||
}
|
}
|
||||||
|
|
||||||
return v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user