mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-24 18:36:19 +08:00
Merge remote-tracking branch 'origin/errcode' into errcode
This commit is contained in:
commit
2a33eaf4ea
@ -233,7 +233,3 @@ func (m *Message) CheckMsgIsSendSuccess(c *gin.Context) {
|
|||||||
func (m *Message) GetUsersOnlineStatus(c *gin.Context) {
|
func (m *Message) GetUsersOnlineStatus(c *gin.Context) {
|
||||||
a2r.Call(msg.MsgClient.GetSendMsgStatus, m.client, c)
|
a2r.Call(msg.MsgClient.GetSendMsgStatus, m.client, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Message) AccountCheck(c *gin.Context) {
|
|
||||||
a2r.Call(msg.MsgClient.GetSendMsgStatus, m.client, c)
|
|
||||||
}
|
|
||||||
|
@ -140,7 +140,6 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal
|
|||||||
msgGroup.POST("/batch_send_msg", m.ManagementBatchSendMsg)
|
msgGroup.POST("/batch_send_msg", m.ManagementBatchSendMsg)
|
||||||
msgGroup.POST("/check_msg_is_send_success", m.CheckMsgIsSendSuccess)
|
msgGroup.POST("/check_msg_is_send_success", m.CheckMsgIsSendSuccess)
|
||||||
msgGroup.POST("/get_users_online_status", m.GetUsersOnlineStatus)
|
msgGroup.POST("/get_users_online_status", m.GetUsersOnlineStatus)
|
||||||
msgGroup.POST("/account_check", m.AccountCheck)
|
|
||||||
//msgGroup.POST("/set_message_reaction_extensions", msg.SetMessageReactionExtensions)
|
//msgGroup.POST("/set_message_reaction_extensions", msg.SetMessageReactionExtensions)
|
||||||
//msgGroup.POST("/get_message_list_reaction_extensions", msg.GetMessageListReactionExtensions)
|
//msgGroup.POST("/get_message_list_reaction_extensions", msg.GetMessageListReactionExtensions)
|
||||||
//msgGroup.POST("/add_message_reaction_extensions", msg.AddMessageReactionExtensions)
|
//msgGroup.POST("/add_message_reaction_extensions", msg.AddMessageReactionExtensions)
|
||||||
|
@ -2,9 +2,9 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/a2r"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/a2r"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
|
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/user"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/user"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@ -25,11 +25,6 @@ func (u *User) client() (user.UserClient, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
log.NewInfo("client", conn, err)
|
|
||||||
conns, err := u.c.GetConns(config.Config.RpcRegisterName.OpenImUserName)
|
|
||||||
log.NewInfo("conns", conns, err)
|
|
||||||
}()
|
|
||||||
return user.NewUserClient(conn), nil
|
return user.NewUserClient(conn), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package push
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush"
|
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush/fcm"
|
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush/fcm"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush/getui"
|
"github.com/OpenIMSDK/Open-IM-Server/internal/push/offlinepush/getui"
|
||||||
|
@ -202,7 +202,12 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
|
|||||||
if err := tokenverify.CheckAccessV3(ctx, req.FromUserID); err != nil {
|
if err := tokenverify.CheckAccessV3(ctx, req.FromUserID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
total, members, err := s.GroupDatabase.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, req.Pagination.PageNumber, req.Pagination.ShowNumber)
|
var pageNumber, showNumber int32
|
||||||
|
if req.Pagination != nil {
|
||||||
|
pageNumber = req.Pagination.PageNumber
|
||||||
|
showNumber = req.Pagination.ShowNumber
|
||||||
|
}
|
||||||
|
total, members, err := s.GroupDatabase.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, pageNumber, showNumber)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,11 @@ import (
|
|||||||
|
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/relation"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/relation"
|
||||||
tablerelation "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
tablerelation "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/tx"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify"
|
||||||
registry "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
registry "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
||||||
@ -36,6 +38,10 @@ func Start(client registry.SvcDiscoveryRegistry, server *grpc.Server) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
rdb, err := cache.NewRedis()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := db.AutoMigrate(&tablerelation.UserModel{}); err != nil {
|
if err := db.AutoMigrate(&tablerelation.UserModel{}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -46,8 +52,10 @@ func Start(client registry.SvcDiscoveryRegistry, server *grpc.Server) error {
|
|||||||
for k, v := range config.Config.Manager.AppManagerUid {
|
for k, v := range config.Config.Manager.AppManagerUid {
|
||||||
users = append(users, &tablerelation.UserModel{UserID: v, Nickname: config.Config.Manager.Nickname[k]})
|
users = append(users, &tablerelation.UserModel{UserID: v, Nickname: config.Config.Manager.Nickname[k]})
|
||||||
}
|
}
|
||||||
|
userDB := relation.NewUserGorm(db)
|
||||||
|
cache := cache.NewUserCacheRedis(rdb, userDB, cache.GetDefaultOpt())
|
||||||
u := &userServer{
|
u := &userServer{
|
||||||
UserDatabase: controller.NewUserDatabase(relation.NewUserGorm(db)),
|
UserDatabase: controller.NewUserDatabase(userDB, cache, tx.NewGorm(db)),
|
||||||
notification: notification.NewCheck(client),
|
notification: notification.NewCheck(client),
|
||||||
userCheck: check.NewUserCheck(client),
|
userCheck: check.NewUserCheck(client),
|
||||||
friendCheck: check.NewFriendChecker(client),
|
friendCheck: check.NewFriendChecker(client),
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/relation"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/relation"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/tx"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/unrelation"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/unrelation"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext"
|
||||||
@ -47,8 +48,9 @@ func InitMsgTool() (*MsgTool, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
userDB := relation.NewUserGorm(db)
|
||||||
msgDatabase := controller.InitMsgDatabase(rdb, mongo.GetDatabase())
|
msgDatabase := controller.InitMsgDatabase(rdb, mongo.GetDatabase())
|
||||||
userDatabase := controller.NewUserDatabase(relation.NewUserGorm(db))
|
userDatabase := controller.NewUserDatabase(userDB, cache.NewUserCacheRedis(rdb, relation.NewUserGorm(db), cache.GetDefaultOpt()), tx.NewGorm(db))
|
||||||
groupDatabase := controller.InitGroupDatabase(db, rdb, mongo.GetDatabase())
|
groupDatabase := controller.InitGroupDatabase(db, rdb, mongo.GetDatabase())
|
||||||
msgTool := NewMsgTool(msgDatabase, userDatabase, groupDatabase)
|
msgTool := NewMsgTool(msgDatabase, userDatabase, groupDatabase)
|
||||||
return msgTool, nil
|
return msgTool, nil
|
||||||
|
@ -50,6 +50,7 @@ type POfflinePush struct {
|
|||||||
Desc string `yaml:"desc"`
|
Desc string `yaml:"desc"`
|
||||||
Ext string `yaml:"ext"`
|
Ext string `yaml:"ext"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PDefaultTips struct {
|
type PDefaultTips struct {
|
||||||
Tips string `yaml:"tips"`
|
Tips string `yaml:"tips"`
|
||||||
}
|
}
|
||||||
|
9
pkg/common/db/cache/group.go
vendored
9
pkg/common/db/cache/group.go
vendored
@ -49,6 +49,7 @@ type GroupCache interface {
|
|||||||
|
|
||||||
GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relationTb.GroupMemberModel, err error)
|
GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relationTb.GroupMemberModel, err error)
|
||||||
GetGroupMembersInfo(ctx context.Context, groupID string, userID []string, roleLevel []int32) (groupMembers []*relationTb.GroupMemberModel, err error)
|
GetGroupMembersInfo(ctx context.Context, groupID string, userID []string, roleLevel []int32) (groupMembers []*relationTb.GroupMemberModel, err error)
|
||||||
|
GetAllGroupMembersInfo(ctx context.Context, groupID string) (groupMembers []*relationTb.GroupMemberModel, err error)
|
||||||
DelGroupMembersInfo(groupID string, userID ...string) GroupCache
|
DelGroupMembersInfo(groupID string, userID ...string) GroupCache
|
||||||
|
|
||||||
GetGroupMemberNum(ctx context.Context, groupID string) (memberNum int64, err error)
|
GetGroupMemberNum(ctx context.Context, groupID string) (memberNum int64, err error)
|
||||||
@ -301,6 +302,14 @@ func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, groupID strin
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *GroupCacheRedis) GetAllGroupMembersInfo(ctx context.Context, groupID string) (groupMembers []*relationTb.GroupMemberModel, err error) {
|
||||||
|
groupMemberIDs, err := g.GetGroupMemberIDs(ctx, groupID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return g.GetGroupMembersInfo(ctx, groupID, groupMemberIDs, nil)
|
||||||
|
}
|
||||||
|
|
||||||
func (g *GroupCacheRedis) GetAllGroupMemberInfo(ctx context.Context, groupID string) ([]*relationTb.GroupMemberModel, error) {
|
func (g *GroupCacheRedis) GetAllGroupMemberInfo(ctx context.Context, groupID string) ([]*relationTb.GroupMemberModel, error) {
|
||||||
groupMemberIDs, err := g.GetGroupMemberIDs(ctx, groupID)
|
groupMemberIDs, err := g.GetGroupMemberIDs(ctx, groupID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
8
pkg/common/db/cache/user.go
vendored
8
pkg/common/db/cache/user.go
vendored
@ -20,9 +20,9 @@ type UserCache interface {
|
|||||||
NewCache() UserCache
|
NewCache() UserCache
|
||||||
GetUserInfo(ctx context.Context, userID string) (userInfo *relationTb.UserModel, err error)
|
GetUserInfo(ctx context.Context, userID string) (userInfo *relationTb.UserModel, err error)
|
||||||
GetUsersInfo(ctx context.Context, userIDs []string) ([]*relationTb.UserModel, error)
|
GetUsersInfo(ctx context.Context, userIDs []string) ([]*relationTb.UserModel, error)
|
||||||
DelUsersInfo(userIDs []string) UserCache
|
DelUsersInfo(userIDs ...string) UserCache
|
||||||
GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error)
|
GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error)
|
||||||
DelUsersGlobalRecvMsgOpt(userIDs []string) UserCache
|
DelUsersGlobalRecvMsgOpt(userIDs ...string) UserCache
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserCacheRedis struct {
|
type UserCacheRedis struct {
|
||||||
@ -82,7 +82,7 @@ func (u *UserCacheRedis) GetUsersInfo(ctx context.Context, userIDs []string) ([]
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserCacheRedis) DelUsersInfo(userIDs []string) UserCache {
|
func (u *UserCacheRedis) DelUsersInfo(userIDs ...string) UserCache {
|
||||||
var keys []string
|
var keys []string
|
||||||
for _, userID := range userIDs {
|
for _, userID := range userIDs {
|
||||||
keys = append(keys, u.getUserInfoKey(userID))
|
keys = append(keys, u.getUserInfoKey(userID))
|
||||||
@ -98,7 +98,7 @@ func (u *UserCacheRedis) GetUserGlobalRecvMsgOpt(ctx context.Context, userID str
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserCacheRedis) DelUsersGlobalRecvMsgOpt(userIDs []string) UserCache {
|
func (u *UserCacheRedis) DelUsersGlobalRecvMsgOpt(userIDs ...string) UserCache {
|
||||||
var keys []string
|
var keys []string
|
||||||
for _, userID := range userIDs {
|
for _, userID := range userIDs {
|
||||||
keys = append(keys, u.getUserGlobalRecvMsgOptKey(userID))
|
keys = append(keys, u.getUserGlobalRecvMsgOptKey(userID))
|
||||||
|
@ -184,7 +184,17 @@ func (g *groupDatabase) FindGroupMember(ctx context.Context, groupIDs []string,
|
|||||||
return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels)
|
return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
|
func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) {
|
||||||
|
if roleLevels == nil && pageNumber == 0 && showNumber == 0 {
|
||||||
|
for _, groupID := range groupIDs {
|
||||||
|
groupMembers, err := g.cache.GetAllGroupMembersInfo(ctx, groupID)
|
||||||
|
if err != nil {
|
||||||
|
return 0, nil, err
|
||||||
|
}
|
||||||
|
totalGroupMembers = append(totalGroupMembers, groupMembers...)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber)
|
return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@ package controller
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/tx"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/errs"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/errs"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/utils"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/utils"
|
||||||
)
|
)
|
||||||
@ -30,10 +33,12 @@ type UserDatabase interface {
|
|||||||
|
|
||||||
type userDatabase struct {
|
type userDatabase struct {
|
||||||
userDB relation.UserModelInterface
|
userDB relation.UserModelInterface
|
||||||
|
cache cache.UserCache
|
||||||
|
tx tx.Tx
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUserDatabase(userDB relation.UserModelInterface) UserDatabase {
|
func NewUserDatabase(userDB relation.UserModelInterface, cache cache.UserCache, tx tx.Tx) UserDatabase {
|
||||||
return &userDatabase{userDB: userDB}
|
return &userDatabase{userDB: userDB, cache: cache, tx: tx}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *userDatabase) InitOnce(ctx context.Context, users []*relation.UserModel) (err error) {
|
func (u *userDatabase) InitOnce(ctx context.Context, users []*relation.UserModel) (err error) {
|
||||||
@ -53,7 +58,7 @@ func (u *userDatabase) InitOnce(ctx context.Context, users []*relation.UserModel
|
|||||||
|
|
||||||
// 获取指定用户的信息 如有userID未找到 也返回错误
|
// 获取指定用户的信息 如有userID未找到 也返回错误
|
||||||
func (u *userDatabase) FindWithError(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
func (u *userDatabase) FindWithError(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
||||||
users, err = u.userDB.Find(ctx, userIDs)
|
users, err = u.cache.GetUsersInfo(ctx, userIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -65,7 +70,7 @@ func (u *userDatabase) FindWithError(ctx context.Context, userIDs []string) (use
|
|||||||
|
|
||||||
// 获取指定用户的信息 如有userID未找到 不返回错误
|
// 获取指定用户的信息 如有userID未找到 不返回错误
|
||||||
func (u *userDatabase) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
func (u *userDatabase) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
|
||||||
users, err = u.userDB.Find(ctx, userIDs)
|
users, err = u.cache.GetUsersInfo(ctx, userIDs)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,12 +81,25 @@ func (u *userDatabase) Create(ctx context.Context, users []*relation.UserModel)
|
|||||||
|
|
||||||
// 更新(非零值) 外部保证userID存在
|
// 更新(非零值) 外部保证userID存在
|
||||||
func (u *userDatabase) Update(ctx context.Context, user *relation.UserModel) (err error) {
|
func (u *userDatabase) Update(ctx context.Context, user *relation.UserModel) (err error) {
|
||||||
return u.userDB.Update(ctx, user)
|
return u.tx.Transaction(func(tx any) error {
|
||||||
|
err = u.userDB.Update(ctx, user)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return u.cache.DelUsersInfo(user.UserID).ExecDel(ctx)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新(零值) 外部保证userID存在
|
// 更新(零值) 外部保证userID存在
|
||||||
func (u *userDatabase) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
|
func (u *userDatabase) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
|
||||||
return u.userDB.UpdateByMap(ctx, userID, args)
|
return u.tx.Transaction(func(tx any) error {
|
||||||
|
err = u.userDB.UpdateByMap(ctx, userID, args)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return u.cache.DelUsersInfo(userID).ExecDel(ctx)
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取,如果没找到,不返回错误
|
// 获取,如果没找到,不返回错误
|
||||||
|
@ -12,7 +12,7 @@ func GormPage[E any](db *gorm.DB, pageNumber, showNumber int32) (uint32, []*E, e
|
|||||||
return 0, nil, errs.Wrap(err)
|
return 0, nil, errs.Wrap(err)
|
||||||
}
|
}
|
||||||
var es []*E
|
var es []*E
|
||||||
if err := db.Limit(int(showNumber)).Offset(int(pageNumber * showNumber)).Find(&es).Error; err != nil {
|
if err := db.Limit(int(showNumber)).Offset(int((pageNumber - 1) * showNumber)).Find(&es).Error; err != nil {
|
||||||
return 0, nil, errs.Wrap(err)
|
return 0, nil, errs.Wrap(err)
|
||||||
}
|
}
|
||||||
return uint32(count), es, nil
|
return uint32(count), es, nil
|
||||||
|
@ -2,6 +2,9 @@ package startrpc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant"
|
||||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
|
||||||
@ -14,13 +17,12 @@ import (
|
|||||||
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
"net"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error {
|
func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error {
|
||||||
fmt.Println("start", rpcRegisterName, "rpc server, port: ", rpcPort, "prometheusPort:", prometheusPort, ", OpenIM version: ", config.Version)
|
fmt.Println("start", rpcRegisterName, "rpc server, port: ", rpcPort, "prometheusPort:", prometheusPort, ", OpenIM version: ", config.Version)
|
||||||
log.NewPrivateLog(constant.LogFileName)
|
log.NewPrivateLog(constant.LogFileName)
|
||||||
listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", config.Config.ListenIP, rpcPort))
|
listener, err := net.Listen("tcp", net.JoinHostPort(config.Config.ListenIP, strconv.Itoa(rpcPort)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user