mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
office
This commit is contained in:
parent
8ed0f8ec73
commit
d75eb456dc
@ -153,6 +153,7 @@ func main() {
|
|||||||
officeGroup.POST("/get_user_work_moments", office.GetUserWorkMoments)
|
officeGroup.POST("/get_user_work_moments", office.GetUserWorkMoments)
|
||||||
officeGroup.POST("/get_user_friend_work_moments", office.GetUserFriendWorkMoments)
|
officeGroup.POST("/get_user_friend_work_moments", office.GetUserFriendWorkMoments)
|
||||||
officeGroup.POST("/set_user_work_moments_level", office.SetUserWorkMomentsLevel)
|
officeGroup.POST("/set_user_work_moments_level", office.SetUserWorkMomentsLevel)
|
||||||
|
officeGroup.POST("/delete_comment", office.DeleteComment)
|
||||||
}
|
}
|
||||||
|
|
||||||
organizationGroup := r.Group("/organization")
|
organizationGroup := r.Group("/organization")
|
||||||
|
@ -168,6 +168,44 @@ func CommentOneWorkMoment(c *gin.Context) {
|
|||||||
c.JSON(http.StatusOK, resp)
|
c.JSON(http.StatusOK, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DeleteComment(c *gin.Context) {
|
||||||
|
var (
|
||||||
|
req apiStruct.DeleteCommentReq
|
||||||
|
resp apiStruct.DeleteCommentResp
|
||||||
|
reqPb pbOffice.DeleteCommentReq
|
||||||
|
respPb *pbOffice.DeleteCommentResp
|
||||||
|
)
|
||||||
|
if err := c.BindJSON(&req); err != nil {
|
||||||
|
log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
|
||||||
|
if err := utils.CopyStructFields(&reqPb, req); err != nil {
|
||||||
|
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), err.Error())
|
||||||
|
}
|
||||||
|
var ok bool
|
||||||
|
ok, reqPb.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName)
|
||||||
|
client := pbOffice.NewOfficeServiceClient(etcdConn)
|
||||||
|
respPb, err := client.DeleteComment(context.Background(), &reqPb)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.OperationID, utils.GetSelfFuncName(), "DeleteComment rpc failed", err.Error())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "DeleteComment rpc server failed" + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := utils.CopyStructFields(&resp, respPb.CommonResp); err != nil {
|
||||||
|
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error())
|
||||||
|
}
|
||||||
|
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
}
|
||||||
|
|
||||||
func GetWorkMomentByID(c *gin.Context) {
|
func GetWorkMomentByID(c *gin.Context) {
|
||||||
var (
|
var (
|
||||||
req apiStruct.GetWorkMomentByIDReq
|
req apiStruct.GetWorkMomentByIDReq
|
||||||
@ -261,6 +299,7 @@ func GetUserWorkMoments(c *gin.Context) {
|
|||||||
Comments: make([]*apiStruct.Comment, len(v.Comments)),
|
Comments: make([]*apiStruct.Comment, len(v.Comments)),
|
||||||
LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)),
|
LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)),
|
||||||
AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)),
|
AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)),
|
||||||
|
Permission: v.Permission,
|
||||||
}
|
}
|
||||||
for i, comment := range v.Comments {
|
for i, comment := range v.Comments {
|
||||||
workMoment.Comments[i] = &apiStruct.Comment{
|
workMoment.Comments[i] = &apiStruct.Comment{
|
||||||
@ -344,6 +383,7 @@ func GetUserFriendWorkMoments(c *gin.Context) {
|
|||||||
Comments: make([]*apiStruct.Comment, len(v.Comments)),
|
Comments: make([]*apiStruct.Comment, len(v.Comments)),
|
||||||
LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)),
|
LikeUserList: make([]*apiStruct.WorkMomentUser, len(v.LikeUserList)),
|
||||||
AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)),
|
AtUserList: make([]*apiStruct.WorkMomentUser, len(v.AtUserList)),
|
||||||
|
Permission: v.Permission,
|
||||||
}
|
}
|
||||||
for i, comment := range v.Comments {
|
for i, comment := range v.Comments {
|
||||||
workMoment.Comments[i] = &apiStruct.Comment{
|
workMoment.Comments[i] = &apiStruct.Comment{
|
||||||
|
@ -311,6 +311,20 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *officeServer) DeleteComment(_ context.Context, req *pbOffice.DeleteCommentReq) (resp *pbOffice.DeleteCommentResp, err error) {
|
||||||
|
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String())
|
||||||
|
resp = &pbOffice.DeleteCommentResp{CommonResp: &pbOffice.CommonResp{}}
|
||||||
|
err = db.DB.DeleteComment(req.WorkMomentID, req.ContentID, req.OpUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetWorkMomentByID failed", err.Error())
|
||||||
|
resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg
|
||||||
|
resp.CommonResp.ErrCode = constant.ErrDB.ErrCode
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String())
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
// count and distinct permission users
|
// count and distinct permission users
|
||||||
func (s *officeServer) getPermissionUserIDList(operationID string, groupList []*pbOffice.PermissionGroup, userList []*pbOffice.WorkMomentUser) []string {
|
func (s *officeServer) getPermissionUserIDList(operationID string, groupList []*pbOffice.PermissionGroup, userList []*pbOffice.WorkMomentUser) []string {
|
||||||
var permissionUserIDList []string
|
var permissionUserIDList []string
|
||||||
|
@ -34,6 +34,14 @@ type CommentOneWorkMomentResp struct {
|
|||||||
CommResp
|
CommResp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DeleteCommentReq struct {
|
||||||
|
office.DeleteCommentReq
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteCommentResp struct {
|
||||||
|
CommResp
|
||||||
|
}
|
||||||
|
|
||||||
type WorkMomentsUserCommonReq struct {
|
type WorkMomentsUserCommonReq struct {
|
||||||
PageNumber int32 `json:"pageNumber" binding:"required"`
|
PageNumber int32 `json:"pageNumber" binding:"required"`
|
||||||
ShowNumber int32 `json:"showNumber" binding:"required"`
|
ShowNumber int32 `json:"showNumber" binding:"required"`
|
||||||
@ -54,6 +62,7 @@ type WorkMoment struct {
|
|||||||
UserName string `json:"userName"`
|
UserName string `json:"userName"`
|
||||||
AtUserList []*WorkMomentUser `json:"atUsers"`
|
AtUserList []*WorkMomentUser `json:"atUsers"`
|
||||||
CreateTime int32 `json:"createTime"`
|
CreateTime int32 `json:"createTime"`
|
||||||
|
Permission int32 `json:"permission"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type WorkMomentUser struct {
|
type WorkMomentUser struct {
|
||||||
|
@ -716,6 +716,18 @@ func (d *DataBases) DeleteOneWorkMoment(workMomentID string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *DataBases) DeleteComment(workMomentID, contentID, opUserID string) error {
|
||||||
|
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
|
||||||
|
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment)
|
||||||
|
_, err := c.UpdateOne(ctx, bson.D{{"work_moment_id", workMomentID},
|
||||||
|
{"$or", bson.A{
|
||||||
|
bson.D{{"user_id", opUserID}},
|
||||||
|
bson.D{{"comments", bson.M{"$elemMatch": bson.M{"user_id": opUserID}}}},
|
||||||
|
},
|
||||||
|
}}, bson.M{"$pull": bson.M{"comments": bson.M{"content_id": contentID}}})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func (d *DataBases) GetWorkMomentByID(workMomentID string) (*WorkMoment, error) {
|
func (d *DataBases) GetWorkMomentByID(workMomentID string) (*WorkMoment, error) {
|
||||||
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
|
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
|
||||||
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment)
|
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -195,6 +195,17 @@ message CommentOneWorkMomentResp {
|
|||||||
CommonResp commonResp = 1;
|
CommonResp commonResp = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DeleteCommentReq {
|
||||||
|
string workMomentID = 1;
|
||||||
|
string contentID = 2;
|
||||||
|
string opUserID = 3;
|
||||||
|
string operationID = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DeleteCommentResp {
|
||||||
|
CommonResp commonResp = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message GetWorkMomentByIDReq {
|
message GetWorkMomentByIDReq {
|
||||||
string workMomentID = 1;
|
string workMomentID = 1;
|
||||||
string opUserID = 2;
|
string opUserID = 2;
|
||||||
@ -280,6 +291,7 @@ service OfficeService {
|
|||||||
rpc DeleteOneWorkMoment(DeleteOneWorkMomentReq) returns(DeleteOneWorkMomentResp);
|
rpc DeleteOneWorkMoment(DeleteOneWorkMomentReq) returns(DeleteOneWorkMomentResp);
|
||||||
rpc LikeOneWorkMoment(LikeOneWorkMomentReq) returns(LikeOneWorkMomentResp);
|
rpc LikeOneWorkMoment(LikeOneWorkMomentReq) returns(LikeOneWorkMomentResp);
|
||||||
rpc CommentOneWorkMoment(CommentOneWorkMomentReq) returns(CommentOneWorkMomentResp);
|
rpc CommentOneWorkMoment(CommentOneWorkMomentReq) returns(CommentOneWorkMomentResp);
|
||||||
|
rpc DeleteComment(DeleteCommentReq) returns(DeleteCommentResp);
|
||||||
rpc GetWorkMomentByID(GetWorkMomentByIDReq) returns(GetWorkMomentByIDResp);
|
rpc GetWorkMomentByID(GetWorkMomentByIDReq) returns(GetWorkMomentByIDResp);
|
||||||
rpc ChangeWorkMomentPermission(ChangeWorkMomentPermissionReq) returns(ChangeWorkMomentPermissionResp);
|
rpc ChangeWorkMomentPermission(ChangeWorkMomentPermissionReq) returns(ChangeWorkMomentPermissionResp);
|
||||||
/// user self
|
/// user self
|
||||||
|
Loading…
x
Reference in New Issue
Block a user