You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.4 KiB
60 lines
2.4 KiB
package user
|
|
|
|
import (
|
|
"Open_IM/pkg/common/constant"
|
|
"Open_IM/pkg/common/db"
|
|
"Open_IM/pkg/common/log"
|
|
pbUser "Open_IM/pkg/proto/user"
|
|
"context"
|
|
)
|
|
|
|
func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) {
|
|
m := make(map[string]int, len(req.ConversationId))
|
|
for _, v := range req.ConversationId {
|
|
m[v] = int(req.Opt)
|
|
}
|
|
err := db.DB.SetMultiConversationMsgOpt(req.UId, m)
|
|
if err != nil {
|
|
log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req)
|
|
return &pbUser.SetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil
|
|
}
|
|
var resp pbUser.SetReceiveMessageOptResp
|
|
resp.ErrCode = 0
|
|
|
|
for _, v := range req.ConversationId {
|
|
resp.OptResult = append(resp.OptResult, &pbUser.OptResult{ConversationId: v, Result: 0})
|
|
}
|
|
log.NewInfo(req.OperationID, "SetReceiveMessageOpt req, resp ", req, resp)
|
|
return &resp, nil
|
|
}
|
|
|
|
func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) {
|
|
m, err := db.DB.GetMultiConversationMsgOpt(req.UId, req.ConversationId)
|
|
if err != nil {
|
|
log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req)
|
|
return &pbUser.GetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil
|
|
}
|
|
var resp pbUser.GetReceiveMessageOptResp
|
|
resp.ErrCode = 0
|
|
for k, v := range m {
|
|
resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)})
|
|
}
|
|
log.NewInfo(req.OperationID, "GetReceiveMessageOpt, req, resp", req, resp)
|
|
return &resp, nil
|
|
}
|
|
|
|
func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) {
|
|
m, err := db.DB.GetAllConversationMsgOpt(req.UId)
|
|
if err != nil {
|
|
log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req)
|
|
return &pbUser.GetAllConversationMsgOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil
|
|
}
|
|
var resp pbUser.GetAllConversationMsgOptResp
|
|
resp.ErrCode = 0
|
|
for k, v := range m {
|
|
resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)})
|
|
}
|
|
log.NewInfo(req.OperationID, "GetAllConversationMsgOpt, req, resp", req, resp)
|
|
return &resp, nil
|
|
}
|