作者 tangxvhui

创建评论和评论详情,

... ... @@ -50,41 +50,45 @@ type (
//评论的填写人
type CommentAuthor {
Id int64 `json:"id"` // 人员id
Name string `json:"name"` // 人员的名字
Avatar string `json:"avatar"` // 人员头像URL
Position string `json:"position"` // 职位
Company string `json:"company"` // 公司
Id int64 `json:"id"` // 人员id
Name string `json:"name"` // 人员的名字
Avatar string `json:"avatar,optional"` // 人员头像URL
Position string `json:"position,optional"` // 职位
Company string `json:"company,optional"` // 公司
}
// 小程序填写文章的评论
type (
MiniCreateArticleCommentRequest {
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
CompanyId int64 `json:",optional"` // 服务端自动获取
Pid int64 `json:"commnet"` // 回复那个评论的id
Content string `json:"content"` // 评论的内容
AtWho []int64 `json:"atWho"` // 填写评论时@的人
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
CompanyId int64 `json:",optional"` // 服务端自动获取
Pid int64 `json:"pid"` // 回复那个评论的id
Content string `json:"content"` // 评论的内容
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
}
CommentAtWho {
Id int64 `json:"id"`
Name string `json:"name,optional"`
}
MiniCreateArticleCommentResponse {
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAuthor `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
}
)
... ... @@ -108,29 +112,29 @@ type (
}
ArticleCommentItem {
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAuthor `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
}
)
// 小程序获取单个文章的评论
type (
MiniGetArticleCommentRequest {
CommentId int64 `path:"commentId"`
CommentId int64 `path:"id"`
CompanyId int64 `path:",optional"`
UserId int64 `path:",optional"`
}
... ...
... ... @@ -84,14 +84,17 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini
}
var atWhoList []*domain.User
if len(req.AtWho) > 0 {
queryOption := domain.NewQueryOptions().WithFindOnly().WithKV("ids", req.AtWho)
uids := []int64{}
for _, val := range req.AtWho {
uids = append(uids, val.Id)
}
queryOption := domain.NewQueryOptions().WithFindOnly().WithKV("ids", uids)
_, atWhoList, err = l.svcCtx.UserRepository.Find(l.ctx, conn, queryOption)
if err != nil {
return nil, xerr.NewErrMsgErr("检查@的人员失败", err)
}
}
// 处理文本内容
// content:=
content := template.HTMLEscapeString(req.Content)
newComment := domain.ArticleComment{
... ... @@ -178,7 +181,7 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini
Pid: newComment.Pid,
TopId: newComment.TopId,
ArtitcleId: newComment.ArticleId,
SectionId: newComment.ArticleId,
SectionId: newComment.SectionId,
FromUserId: newComment.FromUserId,
FromUser: types.CommentAuthor{
Id: newComment.FromUser.Id,
... ... @@ -199,17 +202,14 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini
CountReply: 0,
CountUserLove: 0,
CountAdminLove: 0,
AtWho: []types.CommentAuthor{},
AtWho: []types.CommentAtWho{},
CreatedAt: newComment.CreatedAt,
}
for _, val := range newComment.AtWho {
resp.AtWho = append(resp.AtWho, types.CommentAuthor{
Id: val.Id,
Name: val.Name,
Avatar: val.Avatar,
Position: val.Position,
Company: val.Company,
resp.AtWho = append(resp.AtWho, types.CommentAtWho{
Id: val.Id,
Name: val.Name,
})
}
... ...
... ... @@ -46,7 +46,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
queryOption = domain.NewQueryOptions().WithFindOnly().
MustWithKV("articleId", commentInfo.ArticleId).
MustWithKV("userId", req.UserId)
//TODO 获取我点赞的评论
// 获取我点赞的评论
_, userFlagList, err := l.svcCtx.UserLoveFlagRepository.Find(l.ctx, conn, queryOption)
if err != nil {
return nil, xerr.NewErrMsgErr("获取评论信息失败", err)
... ... @@ -83,7 +83,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
CountReply: commentInfo.CountReply,
CountUserLove: commentInfo.CountUserLove,
CountAdminLove: commentInfo.CountAdminLove,
AtWho: []types.CommentAuthor{},
AtWho: []types.CommentAtWho{},
CreatedAt: commentInfo.CreatedAt,
MeLoveFlag: 0,
}
... ... @@ -91,12 +91,9 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
commentResp.MeLoveFlag = 1
}
for _, val := range commentInfo.AtWho {
commentResp.AtWho = append(commentResp.AtWho, types.CommentAuthor{
Id: val.Id,
Name: val.Name,
Avatar: val.Avatar,
Position: val.Position,
Company: val.Company,
commentResp.AtWho = append(commentResp.AtWho, types.CommentAtWho{
Id: val.Id,
Name: val.Name,
})
}
allReply := []types.ArticleCommentItem{}
... ... @@ -106,7 +103,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
Pid: val.Pid,
TopId: val.TopId,
ArtitcleId: val.ArticleId,
SectionId: val.ArticleId,
SectionId: val.SectionId,
FromUserId: val.FromUserId,
FromUser: types.CommentAuthor{
Id: val.FromUser.Id,
... ... @@ -127,7 +124,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
CountReply: val.CountReply,
CountUserLove: val.CountUserLove,
CountAdminLove: val.CountAdminLove,
AtWho: []types.CommentAuthor{},
AtWho: []types.CommentAtWho{},
CreatedAt: val.CreatedAt,
MeLoveFlag: 0,
}
... ... @@ -135,14 +132,12 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
reply.MeLoveFlag = 1
}
for _, val2 := range val.AtWho {
reply.AtWho = append(reply.AtWho, types.CommentAuthor{
Id: val2.Id,
Name: val2.Name,
Avatar: val2.Avatar,
Position: val2.Position,
Company: val2.Company,
reply.AtWho = append(reply.AtWho, types.CommentAtWho{
Id: val2.Id,
Name: val2.Name,
})
}
allReply = append(allReply, reply)
}
resp = &types.MiniGetArticleCommentResponse{
ArticleCommentAndReply: types.ArticleCommentAndReply{
... ...
... ... @@ -9,39 +9,44 @@ type MiniArticleCommentAtUserResponse struct {
}
type CommentAuthor struct {
Id int64 `json:"id"` // 人员id
Name string `json:"name"` // 人员的名字
Avatar string `json:"avatar"` // 人员头像URL
Position string `json:"position"` // 职位
Company string `json:"company"` // 公司
Id int64 `json:"id"` // 人员id
Name string `json:"name"` // 人员的名字
Avatar string `json:"avatar,optional"` // 人员头像URL
Position string `json:"position,optional"` // 职位
Company string `json:"company,optional"` // 公司
}
type MiniCreateArticleCommentRequest struct {
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
CompanyId int64 `json:",optional"` // 服务端自动获取
Pid int64 `json:"commnet"` // 回复那个评论的id
Content string `json:"content"` // 评论的内容
AtWho []int64 `json:"atWho"` // 填写评论时@的人
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
CompanyId int64 `json:",optional"` // 服务端自动获取
Pid int64 `json:"pid"` // 回复那个评论的id
Content string `json:"content"` // 评论的内容
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
}
type CommentAtWho struct {
Id int64 `json:"id"`
Name string `json:"name,optional"`
}
type MiniCreateArticleCommentResponse struct {
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAuthor `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
}
type MiniListArticleCommentRequest struct {
... ... @@ -63,26 +68,26 @@ type ArticleCommentAndReply struct {
}
type ArticleCommentItem struct {
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAuthor `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
Id int64 `json:"id"`
Pid int64 `json:"pid"`
TopId int64 `json:"topId"`
ArtitcleId int64 `json:"articleId"` // 文章id
SectionId int64 `json:"sectionId"` // 段落id
FromUserId int64 `json:"fromUserId"` // 填写评论的人
FromUser CommentAuthor `json:"fromUser"` // 填写评论的人
ToUserId int64 `json:"toUserId"` // 回复哪个人
ToUser CommentAuthor `json:"toUser"` // 回复哪个人
SectionContent string `json:"sectionContent"` // 引用的文章内容文本
CountReply int `json:"countReply"` // 回复数量
CountUserLove int `json:"countUserLove"` // 用户点赞数量
CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
CreatedAt int64 `json:"createdAt"` //
MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
}
type MiniGetArticleCommentRequest struct {
CommentId int64 `path:"commentId"`
CommentId int64 `path:"id"`
CompanyId int64 `path:",optional"`
UserId int64 `path:",optional"`
}
... ...
... ... @@ -21,9 +21,13 @@ func (repository *ArticleCommentRepository) Insert(ctx context.Context, conn tra
m = &models.ArticleComment{}
tx = conn.DB()
)
if len(dm.AtWho) == 0 {
dm.AtWho = make([]domain.UserSimple, 0)
}
if m, err = repository.DomainModelToModel(dm); err != nil {
return nil, err
}
if tx = tx.Model(m).Save(m); tx.Error != nil {
return nil, tx.Error
}
... ... @@ -165,6 +169,7 @@ func (repository *ArticleCommentRepository) ModelToDomainModel(from *models.Arti
CountUserLove: from.CountUserLove,
CountAdminLove: from.CountAdminLove,
Show: domain.CommentShow(from.Show),
AtWho: from.AtWho,
}
// err := copier.Copy(to, from)
return to, nil
... ... @@ -176,6 +181,7 @@ func (repository *ArticleCommentRepository) DomainModelToModel(from *domain.Arti
CompanyId: from.CompanyId,
CreatedAt: from.CreatedAt,
UpdatedAt: from.UpdatedAt,
IsDel: 0,
DeletedAt: from.DeletedAt,
Version: from.Version,
Pid: from.Pid,
... ... @@ -187,6 +193,7 @@ func (repository *ArticleCommentRepository) DomainModelToModel(from *domain.Arti
FromUser: from.FromUser,
ToUserId: from.ToUser.Id,
ToUser: from.ToUser,
AtWho: from.AtWho,
Content: from.Content,
CountReply: from.CountReply,
CountUserLove: from.CountUserLove,
... ...