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.
 
 
 
 
 
 

75 lines
2.9 KiB

package comment_api
import (
"context"
"github.com/TremblingV5/DouTok/applications/comment/infra/misc"
"github.com/TremblingV5/DouTok/applications/comment/infra/rpc"
"github.com/TremblingV5/DouTok/applications/comment/services/comment_service"
"github.com/TremblingV5/DouTok/kitex_gen/comment"
"github.com/TremblingV5/DouTok/pkg/utils"
)
type CommentServiceImpl struct {
commentService *comment_service.Service
clients *rpc.Clients
}
func New(commentService *comment_service.Service, clients *rpc.Clients) *CommentServiceImpl {
return &CommentServiceImpl{
commentService: commentService,
clients: clients,
}
}
func (s *CommentServiceImpl) CommentAction(ctx context.Context, req *comment.DouyinCommentActionRequest) (resp *comment.DouyinCommentActionResponse, err error) {
if result := CheckCommentActionArgs(req); !result {
return s.packCommentActionResp(int32(misc.ParamsErr.ErrCode), misc.ParamsErr.ErrMsg, nil, req.UserId)
}
// 判断请求的动作,1为新加评论,2为删除评论
if req.ActionType == 1 {
result, err := s.commentService.AddComment(
ctx, req.VideoId, req.UserId, utils.GetSnowFlakeId().Int64(), 0, 0, req.CommentText,
)
if err != nil {
return s.packCommentActionResp(int32(misc.SystemErr.ErrCode), misc.SystemErr.ErrMsg, nil, req.UserId)
}
return s.packCommentActionResp(int32(misc.Success.ErrCode), misc.Success.ErrMsg, result, req.UserId)
} else if req.ActionType == 2 {
errNo, err := s.commentService.RmComment(ctx, req.UserId, req.CommentId)
if err != nil {
return s.packCommentActionResp(int32(errNo.ErrCode), errNo.ErrMsg, nil, req.UserId)
}
return s.packCommentActionResp(int32(misc.Success.ErrCode), misc.Success.ErrMsg, nil, req.UserId)
} else {
return s.packCommentActionResp(int32(misc.BindingErr.ErrCode), misc.BindingErr.ErrMsg, nil, req.UserId)
}
}
func (s *CommentServiceImpl) CommentCount(ctx context.Context, req *comment.DouyinCommentCountRequest) (resp *comment.DouyinCommentCountResponse, err error) {
if len(req.VideoIdList) == 0 {
return s.packCommentCountResp(int32(misc.ListEmptyErr.ErrCode), misc.ListEmptyErr.ErrMsg, nil)
}
res, errNo, err := s.commentService.CountComment(ctx, req.VideoIdList...)
if err != nil {
return s.packCommentCountResp(int32(errNo.ErrCode), errNo.ErrMsg, nil)
}
return s.packCommentCountResp(int32(errNo.ErrCode), errNo.ErrMsg, res)
}
func (s *CommentServiceImpl) CommentList(ctx context.Context, req *comment.DouyinCommentListRequest) (resp *comment.DouyinCommentListResponse, err error) {
if !CheckCommentListArgs(req) {
return s.packCommentListResp(int32(misc.VideoIdErr.ErrCode), misc.VideoIdErr.ErrMsg, nil)
}
res, errNo, err := s.commentService.ListComment(ctx, req.VideoId)
if err != nil {
return s.packCommentListResp(int32(errNo.ErrCode), errNo.ErrMsg, nil)
}
return s.packCommentListResp(int32(misc.Success.ErrCode), misc.Success.ErrMsg, res)
}