diff --git a/pkg/common/cmd/api.go b/pkg/common/cmd/api.go index dc64b639b..701cc05c1 100644 --- a/pkg/common/cmd/api.go +++ b/pkg/common/cmd/api.go @@ -18,8 +18,8 @@ import ( "context" "github.com/openimsdk/open-im-server/v3/internal/api" config2 "github.com/openimsdk/open-im-server/v3/pkg/common/config" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" + "github.com/openimsdk/tools/system/program" "github.com/spf13/cobra" ) @@ -29,7 +29,7 @@ type ApiCmd struct { } func NewApiCmd(name string) *ApiCmd { - ret := &ApiCmd{RootCmd: NewRootCmd(genutil.GetProcessName(), name)} + ret := &ApiCmd{RootCmd: NewRootCmd(program.GetProcessName(), name)} ret.ctx = context.WithValue(context.Background(), "version", config2.Version) ret.SetRootCmdPt(ret) ret.addPreRun() diff --git a/pkg/common/cmd/cron_task.go b/pkg/common/cmd/cron_task.go index ffe85ef4a..9183c0d8f 100644 --- a/pkg/common/cmd/cron_task.go +++ b/pkg/common/cmd/cron_task.go @@ -18,7 +18,7 @@ import ( "context" "github.com/openimsdk/open-im-server/v3/internal/tools" "github.com/openimsdk/open-im-server/v3/pkg/common/config" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" + "github.com/openimsdk/tools/system/program" "github.com/spf13/cobra" ) @@ -29,7 +29,7 @@ type CronTaskCmd struct { } func NewCronTaskCmd(name string) *CronTaskCmd { - ret := &CronTaskCmd{RootCmd: NewRootCmd(genutil.GetProcessName(), name, WithCronTaskLogName()), + ret := &CronTaskCmd{RootCmd: NewRootCmd(program.GetProcessName(), name, WithCronTaskLogName()), initFunc: tools.StartTask} ret.ctx = context.WithValue(context.Background(), "version", config.Version) ret.addRunE() diff --git a/pkg/common/cmd/msg_gateway.go b/pkg/common/cmd/msg_gateway.go index 06a5862b2..2ad88bc1a 100644 --- a/pkg/common/cmd/msg_gateway.go +++ b/pkg/common/cmd/msg_gateway.go @@ -17,10 +17,10 @@ package cmd import ( "context" config2 "github.com/openimsdk/open-im-server/v3/pkg/common/config" + "github.com/openimsdk/tools/system/program" "log" "github.com/openimsdk/open-im-server/v3/internal/msggateway" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/spf13/cobra" ) @@ -31,7 +31,7 @@ type MsgGatewayCmd struct { } func NewMsgGatewayCmd(name string) *MsgGatewayCmd { - ret := &MsgGatewayCmd{RootCmd: NewRootCmd(genutil.GetProcessName(), name)} + ret := &MsgGatewayCmd{RootCmd: NewRootCmd(program.GetProcessName(), name)} ret.ctx = context.WithValue(context.Background(), "version", config2.Version) ret.addRunE() ret.SetRootCmdPt(ret) diff --git a/pkg/common/cmd/msg_transfer.go b/pkg/common/cmd/msg_transfer.go index e2243b0eb..e5cc55cc4 100644 --- a/pkg/common/cmd/msg_transfer.go +++ b/pkg/common/cmd/msg_transfer.go @@ -17,9 +17,9 @@ package cmd import ( "context" config2 "github.com/openimsdk/open-im-server/v3/pkg/common/config" + "github.com/openimsdk/tools/system/program" "github.com/openimsdk/open-im-server/v3/internal/msgtransfer" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/spf13/cobra" ) @@ -30,7 +30,7 @@ type MsgTransferCmd struct { } func NewMsgTransferCmd(name string) *MsgTransferCmd { - ret := &MsgTransferCmd{RootCmd: NewRootCmd(genutil.GetProcessName(), name)} + ret := &MsgTransferCmd{RootCmd: NewRootCmd(program.GetProcessName(), name)} ret.ctx = context.WithValue(context.Background(), "version", config2.Version) ret.addRunE() ret.SetRootCmdPt(ret) diff --git a/pkg/common/cmd/msg_utils.go b/pkg/common/cmd/msg_utils.go index b14218724..5e2a67343 100644 --- a/pkg/common/cmd/msg_utils.go +++ b/pkg/common/cmd/msg_utils.go @@ -17,7 +17,7 @@ package cmd import ( "context" "github.com/openimsdk/open-im-server/v3/internal/tools" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" + "github.com/openimsdk/tools/system/program" "github.com/spf13/cobra" ) @@ -139,7 +139,7 @@ func (s *SeqCmd) GetSeqCmd() *cobra.Command { s.Command.Run = func(cmdLines *cobra.Command, args []string) { _, err := tools.InitMsgTool(context.Background(), s.MsgTool.Config) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } userID := s.getUserIDFlag(cmdLines) superGroupID := s.getSuperGroupIDFlag(cmdLines) diff --git a/pkg/common/cmd/rpc.go b/pkg/common/cmd/rpc.go index 577070d12..8d511a7d5 100644 --- a/pkg/common/cmd/rpc.go +++ b/pkg/common/cmd/rpc.go @@ -17,10 +17,10 @@ package cmd import ( "context" "errors" + "github.com/openimsdk/tools/system/program" config2 "github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/open-im-server/v3/pkg/common/startrpc" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/openimsdk/tools/discovery" "github.com/openimsdk/tools/errs" @@ -38,7 +38,7 @@ type RpcCmd struct { } func NewRpcCmd(name string, initFunc rpcInitFuc) *RpcCmd { - ret := &RpcCmd{RootCmd: NewRootCmd(genutil.GetProcessName(), name), initFunc: initFunc} + ret := &RpcCmd{RootCmd: NewRootCmd(program.GetProcessName(), name), initFunc: initFunc} ret.ctx = context.WithValue(context.Background(), "version", config2.Version) ret.addPreRun() ret.addRunE() diff --git a/pkg/common/config/parse.go b/pkg/common/config/parse.go index eda322858..9860644a1 100644 --- a/pkg/common/config/parse.go +++ b/pkg/common/config/parse.go @@ -16,12 +16,12 @@ package config import ( _ "embed" + "github.com/openimsdk/tools/field" "gopkg.in/yaml.v3" "os" "path/filepath" "github.com/openimsdk/open-im-server/v3/pkg/msgprocessor" - "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/openimsdk/tools/errs" ) @@ -42,7 +42,7 @@ func GetDefaultConfigPath() (string, error) { return "", errs.WrapMsg(err, "failed to get executable path") } - configPath, err := genutil.OutDir(filepath.Join(filepath.Dir(executablePath), "../config/")) + configPath, err := field.OutDir(filepath.Join(filepath.Dir(executablePath), "../config/")) if err != nil { return "", errs.WrapMsg(err, "failed to get output directory", "outDir", filepath.Join(filepath.Dir(executablePath), "../config/")) } @@ -55,7 +55,7 @@ func GetProjectRoot() (string, error) { if err != nil { return "", errs.Wrap(err) } - projectRoot, err := genutil.OutDir(filepath.Join(filepath.Dir(executablePath), "../../../../..")) + projectRoot, err := field.OutDir(filepath.Join(filepath.Dir(executablePath), "../../../../..")) if err != nil { return "", errs.Wrap(err) } diff --git a/pkg/rpcclient/auth.go b/pkg/rpcclient/auth.go index 6fdd78ef6..97ace08f9 100644 --- a/pkg/rpcclient/auth.go +++ b/pkg/rpcclient/auth.go @@ -16,17 +16,16 @@ package rpcclient import ( "context" - - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/auth" - "github.com/openimsdk/tools/discoveryregistry" + "github.com/openimsdk/tools/discovery" + "github.com/openimsdk/tools/system/program" "google.golang.org/grpc" ) -func NewAuth(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) *Auth { +func NewAuth(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) *Auth { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := auth.NewAuthClient(conn) return &Auth{discov: discov, conn: conn, Client: client} @@ -35,5 +34,5 @@ func NewAuth(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName stri type Auth struct { conn grpc.ClientConnInterface Client auth.AuthClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry } diff --git a/pkg/rpcclient/friend.go b/pkg/rpcclient/friend.go index a348401ed..404e8d427 100644 --- a/pkg/rpcclient/friend.go +++ b/pkg/rpcclient/friend.go @@ -16,24 +16,24 @@ package rpcclient import ( "context" + "github.com/openimsdk/tools/system/program" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/friend" sdkws "github.com/openimsdk/protocol/sdkws" - "github.com/openimsdk/tools/discoveryregistry" + "github.com/openimsdk/tools/discovery" "google.golang.org/grpc" ) type Friend struct { conn grpc.ClientConnInterface Client friend.FriendClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry } -func NewFriend(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) *Friend { +func NewFriend(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) *Friend { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := friend.NewFriendClient(conn) return &Friend{discov: discov, conn: conn, Client: client} @@ -41,7 +41,7 @@ func NewFriend(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName st type FriendRpcClient Friend -func NewFriendRpcClient(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) FriendRpcClient { +func NewFriendRpcClient(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) FriendRpcClient { return FriendRpcClient(*NewFriend(discov, rpcRegisterName)) } diff --git a/pkg/rpcclient/group.go b/pkg/rpcclient/group.go index 1756211db..ed5a4ee57 100644 --- a/pkg/rpcclient/group.go +++ b/pkg/rpcclient/group.go @@ -16,26 +16,26 @@ package rpcclient import ( "context" + "github.com/openimsdk/open-im-server/v3/pkg/common/servererrs" + "github.com/openimsdk/tools/system/program" + "github.com/openimsdk/tools/utils/datautil" "strings" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/openimsdk/protocol/group" "github.com/openimsdk/protocol/sdkws" - "github.com/openimsdk/tools/discoveryregistry" - "github.com/openimsdk/tools/errs" - "github.com/openimsdk/tools/utils" + "github.com/openimsdk/tools/discovery" ) type Group struct { Client group.GroupClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry } -func NewGroup(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) *Group { +func NewGroup(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) *Group { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := group.NewGroupClient(conn) return &Group{discov: discov, Client: client} @@ -43,7 +43,7 @@ func NewGroup(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName str type GroupRpcClient Group -func NewGroupRpcClient(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) GroupRpcClient { +func NewGroupRpcClient(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) GroupRpcClient { return GroupRpcClient(*NewGroup(discov, rpcRegisterName)) } @@ -55,10 +55,10 @@ func (g *GroupRpcClient) GetGroupInfos(ctx context.Context, groupIDs []string, c return nil, err } if complete { - if ids := utils.Single(groupIDs, utils.Slice(resp.GroupInfos, func(e *sdkws.GroupInfo) string { + if ids := datautil.Single(groupIDs, datautil.Slice(resp.GroupInfos, func(e *sdkws.GroupInfo) string { return e.GroupID })); len(ids) > 0 { - return nil, errs.ErrGroupIDNotFound.WrapMsg(strings.Join(ids, ",")) + return nil, servererrs.ErrGroupIDNotFound.WrapMsg(strings.Join(ids, ",")) } } return resp.GroupInfos, nil @@ -81,7 +81,7 @@ func (g *GroupRpcClient) GetGroupInfoMap( if err != nil { return nil, err } - return utils.SliceToMap(groups, func(e *sdkws.GroupInfo) string { + return datautil.SliceToMap(groups, func(e *sdkws.GroupInfo) string { return e.GroupID }), nil } @@ -100,10 +100,10 @@ func (g *GroupRpcClient) GetGroupMemberInfos( return nil, err } if complete { - if ids := utils.Single(userIDs, utils.Slice(resp.Members, func(e *sdkws.GroupMemberFullInfo) string { + if ids := datautil.Single(userIDs, datautil.Slice(resp.Members, func(e *sdkws.GroupMemberFullInfo) string { return e.UserID })); len(ids) > 0 { - return nil, errs.ErrNotInGroupYet.WrapMsg(strings.Join(ids, ",")) + return nil, servererrs.ErrNotInGroupYet.WrapMsg(strings.Join(ids, ",")) } } return resp.Members, nil @@ -131,7 +131,7 @@ func (g *GroupRpcClient) GetGroupMemberInfoMap( if err != nil { return nil, err } - return utils.SliceToMap(members, func(e *sdkws.GroupMemberFullInfo) string { + return datautil.SliceToMap(members, func(e *sdkws.GroupMemberFullInfo) string { return e.UserID }), nil } diff --git a/pkg/rpcclient/grouphash/grouphash.go b/pkg/rpcclient/grouphash/grouphash.go index c518550dc..6fda8e063 100644 --- a/pkg/rpcclient/grouphash/grouphash.go +++ b/pkg/rpcclient/grouphash/grouphash.go @@ -19,10 +19,10 @@ import ( "crypto/md5" "encoding/binary" "encoding/json" + "github.com/openimsdk/tools/utils/datautil" "github.com/openimsdk/protocol/group" "github.com/openimsdk/protocol/sdkws" - "github.com/openimsdk/tools/utils" ) func NewGroupHashFromGroupClient(x group.GroupClient) *GroupHash { @@ -79,9 +79,9 @@ func (gh *GroupHash) GetGroupHash(ctx context.Context, groupID string) (uint64, if err != nil { return 0, err } - utils.Sort(userIDs, true) + datautil.Sort(userIDs, true) } - memberMap := utils.SliceToMap(members, func(e *sdkws.GroupMemberFullInfo) string { + memberMap := datautil.SliceToMap(members, func(e *sdkws.GroupMemberFullInfo) string { return e.UserID }) res := make([]*sdkws.GroupMemberFullInfo, 0, len(members)) diff --git a/pkg/rpcclient/msg.go b/pkg/rpcclient/msg.go index 4f6d1f0c3..f3a017c68 100644 --- a/pkg/rpcclient/msg.go +++ b/pkg/rpcclient/msg.go @@ -18,16 +18,18 @@ import ( "context" "encoding/json" "fmt" + "github.com/openimsdk/tools/system/program" + "github.com/openimsdk/tools/utils/idutil" + "github.com/openimsdk/tools/utils/jsonutil" + "github.com/openimsdk/tools/utils/timeutil" "github.com/openimsdk/open-im-server/v3/pkg/common/config" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/constant" "github.com/openimsdk/protocol/msg" "github.com/openimsdk/protocol/sdkws" - "github.com/openimsdk/tools/discoveryregistry" + "github.com/openimsdk/tools/discovery" "github.com/openimsdk/tools/errs" "github.com/openimsdk/tools/log" - "github.com/openimsdk/tools/utils" "google.golang.org/grpc" "google.golang.org/protobuf/proto" ) @@ -129,13 +131,13 @@ func newSessionTypeConf() map[int32]int32 { type Message struct { conn grpc.ClientConnInterface Client msg.MsgClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry } -func NewMessage(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) *Message { +func NewMessage(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) *Message { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := msg.NewMsgClient(conn) return &Message{discov: discov, conn: conn, Client: client} @@ -143,7 +145,7 @@ func NewMessage(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName s type MessageRpcClient Message -func NewMessageRpcClient(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) MessageRpcClient { +func NewMessageRpcClient(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) MessageRpcClient { return MessageRpcClient(*NewMessage(discov, rpcRegisterName)) } @@ -258,10 +260,10 @@ func WithRpcGetUserName() NotificationOptions { } func (s *NotificationSender) NotificationWithSesstionType(ctx context.Context, sendID, recvID string, contentType, sesstionType int32, m proto.Message, opts ...NotificationOptions) (err error) { - n := sdkws.NotificationElem{Detail: utils.StructToJsonString(m)} + n := sdkws.NotificationElem{Detail: jsonutil.StructToJsonString(m)} content, err := json.Marshal(&n) if err != nil { - return errs.WrapMsg(err, "json.Marshal failed", "sendID", sendID, "recvID", recvID, "contentType", contentType, "msg", utils.StructToJsonString(m)) + return errs.WrapMsg(err, "json.Marshal failed", "sendID", sendID, "recvID", recvID, "contentType", contentType, "msg", jsonutil.StructToJsonString(m)) } notificationOpt := ¬ificationOpt{} for _, opt := range opts { @@ -288,8 +290,8 @@ func (s *NotificationSender) NotificationWithSesstionType(ctx context.Context, s if msg.SessionType == constant.SuperGroupChatType { msg.GroupID = recvID } - msg.CreateTime = utils.GetCurrentTimestampByMill() - msg.ClientMsgID = utils.GetMsgID(sendID) + msg.CreateTime = timeutil.GetCurrentTimestampByMill() + msg.ClientMsgID = idutil.GetMsgIDByMD5(sendID) optionsConfig := s.contentTypeConf[contentType] if sendID == recvID && contentType == constant.HasReadReceipt { optionsConfig.ReliabilityLevel = constant.UnreliableNotification diff --git a/pkg/rpcclient/push.go b/pkg/rpcclient/push.go index 1e77264ad..0cac9db98 100644 --- a/pkg/rpcclient/push.go +++ b/pkg/rpcclient/push.go @@ -16,23 +16,23 @@ package rpcclient import ( "context" + "github.com/openimsdk/tools/discovery" + "github.com/openimsdk/tools/system/program" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/push" - "github.com/openimsdk/tools/discoveryregistry" "google.golang.org/grpc" ) type Push struct { conn grpc.ClientConnInterface Client push.PushMsgServiceClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry } -func NewPush(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) *Push { +func NewPush(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) *Push { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } return &Push{ discov: discov, @@ -43,7 +43,7 @@ func NewPush(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName stri type PushRpcClient Push -func NewPushRpcClient(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName string) PushRpcClient { +func NewPushRpcClient(discov discovery.SvcDiscoveryRegistry, rpcRegisterName string) PushRpcClient { return PushRpcClient(*NewPush(discov, rpcRegisterName)) } diff --git a/pkg/rpcclient/third.go b/pkg/rpcclient/third.go index 7995e452f..6c28aa443 100644 --- a/pkg/rpcclient/third.go +++ b/pkg/rpcclient/third.go @@ -17,27 +17,28 @@ package rpcclient import ( "context" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" + "github.com/openimsdk/tools/system/program" + "github.com/openimsdk/protocol/third" - "github.com/openimsdk/tools/discoveryregistry" + "github.com/openimsdk/tools/discovery" "google.golang.org/grpc" ) type Third struct { conn grpc.ClientConnInterface Client third.ThirdClient - discov discoveryregistry.SvcDiscoveryRegistry + discov discovery.SvcDiscoveryRegistry GrafanaUrl string } -func NewThird(discov discoveryregistry.SvcDiscoveryRegistry, rpcRegisterName, grafanaUrl string) *Third { +func NewThird(discov discovery.SvcDiscoveryRegistry, rpcRegisterName, grafanaUrl string) *Third { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := third.NewThirdClient(conn) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } return &Third{discov: discov, Client: client, conn: conn, GrafanaUrl: grafanaUrl} } diff --git a/pkg/rpcclient/user.go b/pkg/rpcclient/user.go index 2ef0a49de..1c0e6289a 100644 --- a/pkg/rpcclient/user.go +++ b/pkg/rpcclient/user.go @@ -17,12 +17,12 @@ package rpcclient import ( "context" "github.com/openimsdk/open-im-server/v3/pkg/common/servererrs" + "github.com/openimsdk/tools/system/program" "github.com/openimsdk/tools/utils/datautil" "strings" "github.com/openimsdk/open-im-server/v3/pkg/authverify" "github.com/openimsdk/open-im-server/v3/pkg/common/config" - util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/protocol/sdkws" "github.com/openimsdk/protocol/user" "github.com/openimsdk/tools/discovery" @@ -44,7 +44,7 @@ func NewUser(discov discovery.SvcDiscoveryRegistry, rpcRegisterName, messageGate manager *config.Manager, imAdmin *config.IMAdmin) *User { conn, err := discov.GetConn(context.Background(), rpcRegisterName) if err != nil { - util.ExitWithError(err) + program.ExitWithError(err) } client := user.NewUserClient(conn) return &User{Discov: discov, Client: client,