parent
e8763f32d0
commit
26c3c30b82
@ -0,0 +1,39 @@
|
||||
.PHONY: all build run gotool install clean help
|
||||
|
||||
NAME=open_im_office
|
||||
BIN_DIR=../../../bin/
|
||||
|
||||
OS:= $(or $(os),linux)
|
||||
ARCH:=$(or $(arch),amd64)
|
||||
all: gotool build
|
||||
|
||||
ifeq ($(OS),windows)
|
||||
|
||||
BINARY_NAME=${NAME}.exe
|
||||
|
||||
else
|
||||
|
||||
BINARY_NAME=${NAME}
|
||||
|
||||
endif
|
||||
|
||||
build:
|
||||
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH}; go build -ldflags="-w -s" -o ${BINARY_NAME}
|
||||
|
||||
run:
|
||||
@go run ./
|
||||
|
||||
gotool:
|
||||
go fmt ./
|
||||
go vet ./
|
||||
|
||||
install:build
|
||||
mv ${BINARY_NAME} ${BIN_DIR}
|
||||
|
||||
clean:
|
||||
@if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
package office
|
||||
|
||||
import (
|
||||
"github.com/OpenIMSDK/Open-IM-Server/internal/rpc/office"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/cmd"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||
)
|
||||
|
||||
func main() {
|
||||
rpcCmd := cmd.NewRpcCmd("office")
|
||||
rpcCmd.AddPortFlag()
|
||||
rpcCmd.AddPrometheusPortFlag()
|
||||
if err := rpcCmd.Exec(); err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImOfficeName, office.Start); err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/office"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
func NewOffice(c discoveryregistry.SvcDiscoveryRegistry) *Office {
|
||||
conn, err := c.GetConn(context.Background(), config.Config.RpcRegisterName.OpenImOfficeName)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return &Office{conn: conn}
|
||||
}
|
||||
|
||||
type Office struct {
|
||||
conn *grpc.ClientConn
|
||||
}
|
||||
|
||||
func (o *Office) client(ctx context.Context) (office.OfficeClient, error) {
|
||||
return office.NewOfficeClient(o.conn), nil
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
package office
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/unrelation"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/office"
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error {
|
||||
mongo, err := unrelation.NewMongo()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//rdb, err := cache.NewRedis()
|
||||
//if err != nil {
|
||||
// return err
|
||||
//}
|
||||
office.RegisterOfficeServiceServer(server, &officeServer{
|
||||
officeDatabase: controller.NewOfficeDatabase(mongo),
|
||||
msgRpcClient: rpcclient.NewMsgClient(client),
|
||||
user: rpcclient.NewUserClient(client),
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
type officeServer struct {
|
||||
officeDatabase controller.OfficeDatabase
|
||||
user *rpcclient.UserClient
|
||||
msgRpcClient *rpcclient.MsgClient
|
||||
}
|
||||
|
||||
func (o *officeServer) GetUserTags(ctx context.Context, req *office.GetUserTagsReq) (*office.GetUserTagsResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) CreateTag(ctx context.Context, req *office.CreateTagReq) (*office.CreateTagResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) DeleteTag(ctx context.Context, req *office.DeleteTagReq) (*office.DeleteTagResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) SetTag(ctx context.Context, req *office.SetTagReq) (*office.SetTagResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) SendMsg2Tag(ctx context.Context, req *office.SendMsg2TagReq) (*office.SendMsg2TagResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) GetTagSendLogs(ctx context.Context, req *office.GetTagSendLogsReq) (*office.GetTagSendLogsResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) GetUserTagByID(ctx context.Context, req *office.GetUserTagByIDReq) (*office.GetUserTagByIDResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) CreateOneWorkMoment(ctx context.Context, req *office.CreateOneWorkMomentReq) (*office.CreateOneWorkMomentResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) DeleteOneWorkMoment(ctx context.Context, req *office.DeleteOneWorkMomentReq) (*office.DeleteOneWorkMomentResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) LikeOneWorkMoment(ctx context.Context, req *office.LikeOneWorkMomentReq) (*office.LikeOneWorkMomentResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) CommentOneWorkMoment(ctx context.Context, req *office.CommentOneWorkMomentReq) (*office.CommentOneWorkMomentResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) DeleteComment(ctx context.Context, req *office.DeleteCommentReq) (*office.DeleteCommentResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) GetWorkMomentByID(ctx context.Context, req *office.GetWorkMomentByIDReq) (*office.GetWorkMomentByIDResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) ChangeWorkMomentPermission(ctx context.Context, req *office.ChangeWorkMomentPermissionReq) (*office.ChangeWorkMomentPermissionResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) GetUserWorkMoments(ctx context.Context, req *office.GetUserWorkMomentsReq) (*office.GetUserWorkMomentsResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) GetUserFriendWorkMoments(ctx context.Context, req *office.GetUserFriendWorkMomentsReq) (*office.GetUserFriendWorkMomentsResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (o *officeServer) SetUserWorkMomentsLevel(ctx context.Context, req *office.SetUserWorkMomentsLevelReq) (*office.SetUserWorkMomentsLevelResp, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/unrelation"
|
||||
)
|
||||
|
||||
func NewOfficeDatabase(mgo *unrelation.Mongo) OfficeDatabase {
|
||||
return &officeDatabase{mgo: mgo}
|
||||
}
|
||||
|
||||
type OfficeDatabase interface {
|
||||
// table.unrelation.office.go
|
||||
// unrelation.office.go
|
||||
}
|
||||
|
||||
type officeDatabase struct {
|
||||
mgo *unrelation.Mongo
|
||||
}
|
@ -0,0 +1 @@
|
||||
package unrelation
|
@ -0,0 +1 @@
|
||||
package unrelation
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,278 @@
|
||||
syntax = "proto3";
|
||||
package OpenIMServer.office;
|
||||
import "sdkws/sdkws.proto";
|
||||
option go_package = "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/office";
|
||||
|
||||
message TagUser {
|
||||
string userID = 1;
|
||||
string userName = 2;
|
||||
}
|
||||
|
||||
message Tag {
|
||||
string tagID = 1;
|
||||
string tagName = 2;
|
||||
repeated TagUser userList = 3;
|
||||
}
|
||||
|
||||
message GetUserTagsReq{
|
||||
string userID = 1;
|
||||
string operationID = 2;
|
||||
}
|
||||
|
||||
message GetUserTagsResp{
|
||||
repeated Tag tags = 1;
|
||||
}
|
||||
|
||||
message CreateTagReq {
|
||||
string tagName = 1;
|
||||
string userID = 2;
|
||||
repeated string userIDList = 3;
|
||||
string operationID = 4;
|
||||
}
|
||||
|
||||
message CreateTagResp {
|
||||
}
|
||||
|
||||
message DeleteTagReq {
|
||||
string userID = 1;
|
||||
string tagID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message DeleteTagResp {
|
||||
}
|
||||
|
||||
message SetTagReq {
|
||||
string userID = 1;
|
||||
string tagID = 2;
|
||||
string newName = 3;
|
||||
repeated string increaseUserIDList = 4;
|
||||
repeated string reduceUserIDList = 5;
|
||||
string operationID = 6;
|
||||
}
|
||||
|
||||
message SetTagResp {
|
||||
}
|
||||
|
||||
message SendMsg2TagReq {
|
||||
repeated string tagList = 1;
|
||||
repeated string UserList = 2;
|
||||
repeated string GroupList = 3;
|
||||
string sendID = 4;
|
||||
int32 senderPlatformID = 5;
|
||||
string content = 6;
|
||||
string operationID = 7;
|
||||
}
|
||||
|
||||
message SendMsg2TagResp {
|
||||
}
|
||||
|
||||
message GetTagSendLogsReq {
|
||||
sdkws.RequestPagination Pagination = 1;
|
||||
string userID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message TagSendLog {
|
||||
repeated TagUser userList = 1;
|
||||
string content = 2;
|
||||
int64 sendTime = 3;
|
||||
}
|
||||
|
||||
message GetTagSendLogsResp {
|
||||
repeated TagSendLog tagSendLogs = 1;
|
||||
}
|
||||
|
||||
message GetUserTagByIDReq {
|
||||
string userID = 1;
|
||||
string tagID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message GetUserTagByIDResp {
|
||||
Tag tag = 1;
|
||||
}
|
||||
|
||||
/// WorkMoment
|
||||
|
||||
message LikeUser {
|
||||
string userID = 1;
|
||||
string userName = 2;
|
||||
}
|
||||
|
||||
message NotificationUser {
|
||||
string userID = 1;
|
||||
string userName = 2;
|
||||
}
|
||||
|
||||
message Comment {
|
||||
string userID = 1;
|
||||
string userName = 2;
|
||||
string faceURL = 3;
|
||||
string replyUserID = 4;
|
||||
string replyUserName = 5;
|
||||
string contentID = 6;
|
||||
string content = 7;
|
||||
int32 createTime = 8;
|
||||
}
|
||||
|
||||
message PermissionGroup {
|
||||
string groupName = 1;
|
||||
string groupID = 2;
|
||||
}
|
||||
|
||||
message WorkMomentUser {
|
||||
string userID = 1;
|
||||
string userName = 2;
|
||||
}
|
||||
|
||||
message WorkMoment {
|
||||
string workMomentID = 1;
|
||||
string userID = 2;
|
||||
string userName = 3;
|
||||
string faceURL = 4;
|
||||
string content = 5;
|
||||
repeated WorkMomentUser likeUserList = 6;
|
||||
repeated Comment comments = 7;
|
||||
int32 permission = 8;
|
||||
repeated WorkMomentUser permissionUserList = 9;
|
||||
repeated PermissionGroup permissionGroupList = 10;
|
||||
repeated WorkMomentUser atUserList = 11;
|
||||
int32 createTime = 12;
|
||||
}
|
||||
|
||||
message CreateOneWorkMomentReq {
|
||||
WorkMoment workMoment = 1;
|
||||
string operationID = 2;
|
||||
}
|
||||
|
||||
message CreateOneWorkMomentResp {
|
||||
}
|
||||
|
||||
message DeleteOneWorkMomentReq {
|
||||
string workMomentID = 1;
|
||||
string userID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message DeleteOneWorkMomentResp {
|
||||
}
|
||||
|
||||
message LikeOneWorkMomentReq {
|
||||
string userID = 1;
|
||||
string WorkMomentID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message LikeOneWorkMomentResp {
|
||||
}
|
||||
|
||||
message CommentOneWorkMomentReq {
|
||||
string userID = 1;
|
||||
string workMomentID = 2;
|
||||
string replyUserID = 3;
|
||||
string content = 4;
|
||||
string operationID = 5;
|
||||
}
|
||||
|
||||
message CommentOneWorkMomentResp {
|
||||
}
|
||||
|
||||
message DeleteCommentReq {
|
||||
string workMomentID = 1;
|
||||
string contentID = 2;
|
||||
string opUserID = 3;
|
||||
string operationID = 4;
|
||||
}
|
||||
|
||||
message DeleteCommentResp {
|
||||
}
|
||||
|
||||
message GetWorkMomentByIDReq {
|
||||
string workMomentID = 1;
|
||||
string opUserID = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message GetWorkMomentByIDResp {
|
||||
WorkMoment workMoment = 2;
|
||||
}
|
||||
|
||||
message ChangeWorkMomentPermissionReq {
|
||||
string workMomentID = 1;
|
||||
string opUserID = 2;
|
||||
int32 permission = 3;
|
||||
repeated string permissionUserIDList = 4;
|
||||
string operationID = 5;
|
||||
}
|
||||
|
||||
message ChangeWorkMomentPermissionResp {
|
||||
}
|
||||
|
||||
message GetUserWorkMomentsReq {
|
||||
string userID = 1;
|
||||
string opUserID = 2;
|
||||
sdkws.RequestPagination Pagination = 3;
|
||||
string operationID = 4;
|
||||
}
|
||||
|
||||
message GetUserWorkMomentsResp {
|
||||
repeated WorkMoment workMoments = 1;
|
||||
}
|
||||
|
||||
message GetUserFriendWorkMomentsReq {
|
||||
string userID = 1;
|
||||
sdkws.RequestPagination Pagination = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message GetUserFriendWorkMomentsResp {
|
||||
repeated WorkMoment workMoments = 1;
|
||||
}
|
||||
|
||||
message WorkMomentNotificationMsg {
|
||||
int32 notificationMsgType = 1;
|
||||
string replyUserName = 2;
|
||||
string replyUserID = 3;
|
||||
string content = 4;
|
||||
string contentID = 5;
|
||||
string workMomentID = 6;
|
||||
string userID = 7;
|
||||
string userName = 8;
|
||||
string faceURL = 9;
|
||||
string workMomentContent = 10;
|
||||
int32 createTime = 11;
|
||||
}
|
||||
|
||||
message SetUserWorkMomentsLevelReq {
|
||||
string userID = 1;
|
||||
int32 level = 2;
|
||||
string operationID = 3;
|
||||
}
|
||||
|
||||
message SetUserWorkMomentsLevelResp {
|
||||
}
|
||||
|
||||
service Office {
|
||||
rpc GetUserTags(GetUserTagsReq) returns(GetUserTagsResp);
|
||||
rpc CreateTag(CreateTagReq) returns(CreateTagResp);
|
||||
rpc DeleteTag(DeleteTagReq) returns(DeleteTagResp);
|
||||
rpc SetTag(SetTagReq) returns(SetTagResp);
|
||||
rpc SendMsg2Tag(SendMsg2TagReq) returns(SendMsg2TagResp);
|
||||
rpc GetTagSendLogs(GetTagSendLogsReq) returns(GetTagSendLogsResp);
|
||||
rpc GetUserTagByID(GetUserTagByIDReq) returns(GetUserTagByIDResp);
|
||||
|
||||
rpc CreateOneWorkMoment(CreateOneWorkMomentReq) returns(CreateOneWorkMomentResp);
|
||||
rpc DeleteOneWorkMoment(DeleteOneWorkMomentReq) returns(DeleteOneWorkMomentResp);
|
||||
rpc LikeOneWorkMoment(LikeOneWorkMomentReq) returns(LikeOneWorkMomentResp);
|
||||
rpc CommentOneWorkMoment(CommentOneWorkMomentReq) returns(CommentOneWorkMomentResp);
|
||||
rpc DeleteComment(DeleteCommentReq) returns(DeleteCommentResp);
|
||||
rpc GetWorkMomentByID(GetWorkMomentByIDReq) returns(GetWorkMomentByIDResp);
|
||||
rpc ChangeWorkMomentPermission(ChangeWorkMomentPermissionReq) returns(ChangeWorkMomentPermissionResp);
|
||||
/// user self
|
||||
rpc GetUserWorkMoments(GetUserWorkMomentsReq) returns(GetUserWorkMomentsResp);
|
||||
/// users friend
|
||||
rpc GetUserFriendWorkMoments(GetUserFriendWorkMomentsReq) returns(GetUserFriendWorkMomentsResp);
|
||||
rpc SetUserWorkMomentsLevel(SetUserWorkMomentsLevelReq) returns(SetUserWorkMomentsLevelResp);
|
||||
}
|
||||
|
Loading…
Reference in new issue