作者 tangxvhui

评论的结构中增加记录url文本

@@ -90,9 +90,10 @@ type ( @@ -90,9 +90,10 @@ type (
90 SectionId int64 `json:"sectionId"` // 段落id 90 SectionId int64 `json:"sectionId"` // 段落id
91 FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取 91 FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
92 CompanyId int64 `json:",optional"` // 服务端自动获取 92 CompanyId int64 `json:",optional"` // 服务端自动获取
93 - Pid int64 `json:"pid"` // 回复那个评论的id 93 + Pid int64 `json:"pid,optional"` // 回复那个评论的id
94 Content string `json:"content"` // 评论的内容 94 Content string `json:"content"` // 评论的内容
95 - AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 95 + AtWho []CommentAtWho `json:"atWho,optional"` // 填写评论时@的人
  96 + MatchUrl map[string]string `json:"matchUrl,optional"` // 评论内容中的url文本
96 } 97 }
97 98
98 CommentAtWho { 99 CommentAtWho {
@@ -115,6 +116,7 @@ type ( @@ -115,6 +116,7 @@ type (
115 CountUserLove int `json:"countUserLove"` // 用户点赞数量 116 CountUserLove int `json:"countUserLove"` // 用户点赞数量
116 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 117 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
117 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 118 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  119 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
118 CreatedAt int64 `json:"createdAt"` // 120 CreatedAt int64 `json:"createdAt"` //
119 } 121 }
120 ) 122 )
@@ -155,6 +157,7 @@ type ( @@ -155,6 +157,7 @@ type (
155 CountUserLove int `json:"countUserLove"` // 用户点赞数量 157 CountUserLove int `json:"countUserLove"` // 用户点赞数量
156 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 158 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
157 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 159 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  160 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
158 CreatedAt int64 `json:"createdAt"` // 161 CreatedAt int64 `json:"createdAt"` //
159 MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞) 162 MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
160 Content string `json:"content"` // 评论的内容 163 Content string `json:"content"` // 评论的内容
@@ -253,6 +256,8 @@ type ( @@ -253,6 +256,8 @@ type (
253 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 256 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
254 CreatedAt int64 `json:"createdAt"` // 评论时间 257 CreatedAt int64 `json:"createdAt"` // 评论时间
255 Content string `json:"content"` // 评论的内容 258 Content string `json:"content"` // 评论的内容
  259 + AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  260 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
256 Show int `json:"show"` // 显示状态 261 Show int `json:"show"` // 显示状态
257 } 262 }
258 ) 263 )
@@ -132,6 +132,11 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini @@ -132,6 +132,11 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini
132 CountAdminLove: 0, 132 CountAdminLove: 0,
133 Show: domain.CommentShowEnable, 133 Show: domain.CommentShowEnable,
134 AtWho: []domain.UserSimple{}, 134 AtWho: []domain.UserSimple{},
  135 + MatchUrl: map[string]string{},
  136 + }
  137 +
  138 + for k, v := range req.MatchUrl {
  139 + newComment.MatchUrl[k] = v
135 } 140 }
136 141
137 if selctionInfo != nil { 142 if selctionInfo != nil {
@@ -89,6 +89,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt @@ -89,6 +89,7 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
89 CountUserLove: commentInfo.CountUserLove, 89 CountUserLove: commentInfo.CountUserLove,
90 CountAdminLove: commentInfo.CountAdminLove, 90 CountAdminLove: commentInfo.CountAdminLove,
91 AtWho: []types.CommentAtWho{}, 91 AtWho: []types.CommentAtWho{},
  92 + MatchUrl: map[string]string{},
92 CreatedAt: commentInfo.CreatedAt, 93 CreatedAt: commentInfo.CreatedAt,
93 MeLoveFlag: 0, 94 MeLoveFlag: 0,
94 Content: commentInfo.Content, 95 Content: commentInfo.Content,
@@ -96,6 +97,9 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt @@ -96,6 +97,9 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
96 if _, ok := flagMap[commentInfo.Id]; ok { 97 if _, ok := flagMap[commentInfo.Id]; ok {
97 commentResp.MeLoveFlag = 1 98 commentResp.MeLoveFlag = 1
98 } 99 }
  100 + for k, v := range commentInfo.MatchUrl {
  101 + commentResp.MatchUrl[k] = v
  102 + }
99 for _, val := range commentInfo.AtWho { 103 for _, val := range commentInfo.AtWho {
100 commentResp.AtWho = append(commentResp.AtWho, types.CommentAtWho{ 104 commentResp.AtWho = append(commentResp.AtWho, types.CommentAtWho{
101 Id: val.Id, 105 Id: val.Id,
@@ -132,12 +136,16 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt @@ -132,12 +136,16 @@ func (l *MiniGetArticleCommentLogic) MiniGetArticleComment(req *types.MiniGetArt
132 CountUserLove: val.CountUserLove, 136 CountUserLove: val.CountUserLove,
133 CountAdminLove: val.CountAdminLove, 137 CountAdminLove: val.CountAdminLove,
134 AtWho: []types.CommentAtWho{}, 138 AtWho: []types.CommentAtWho{},
  139 + MatchUrl: map[string]string{},
135 CreatedAt: val.CreatedAt, 140 CreatedAt: val.CreatedAt,
136 MeLoveFlag: 0, 141 MeLoveFlag: 0,
137 } 142 }
138 if _, ok := flagMap[val.Id]; ok { 143 if _, ok := flagMap[val.Id]; ok {
139 reply.MeLoveFlag = 1 144 reply.MeLoveFlag = 1
140 } 145 }
  146 + for key, url := range val.MatchUrl {
  147 + reply.MatchUrl[key] = url
  148 + }
141 for _, val2 := range val.AtWho { 149 for _, val2 := range val.AtWho {
142 reply.AtWho = append(reply.AtWho, types.CommentAtWho{ 150 reply.AtWho = append(reply.AtWho, types.CommentAtWho{
143 Id: val2.Id, 151 Id: val2.Id,
@@ -100,6 +100,7 @@ func (l *MiniListArticleCommentLogic) MiniListArticleComment(req *types.MiniList @@ -100,6 +100,7 @@ func (l *MiniListArticleCommentLogic) MiniListArticleComment(req *types.MiniList
100 CountUserLove: val.CountUserLove, 100 CountUserLove: val.CountUserLove,
101 CountAdminLove: val.CountAdminLove, 101 CountAdminLove: val.CountAdminLove,
102 AtWho: []types.CommentAtWho{}, 102 AtWho: []types.CommentAtWho{},
  103 + MatchUrl: map[string]string{},
103 CreatedAt: val.CreatedAt, 104 CreatedAt: val.CreatedAt,
104 MeLoveFlag: 0, 105 MeLoveFlag: 0,
105 Content: val.Content, 106 Content: val.Content,
@@ -111,7 +112,9 @@ func (l *MiniListArticleCommentLogic) MiniListArticleComment(req *types.MiniList @@ -111,7 +112,9 @@ func (l *MiniListArticleCommentLogic) MiniListArticleComment(req *types.MiniList
111 if _, ok := flagMap[val.Id]; ok { 112 if _, ok := flagMap[val.Id]; ok {
112 item.Comment.MeLoveFlag = 1 113 item.Comment.MeLoveFlag = 1
113 } 114 }
114 - 115 + for key2, val2 := range val.MatchUrl {
  116 + item.Comment.MatchUrl[key2] = val2
  117 + }
115 for _, val2 := range val.AtWho { 118 for _, val2 := range val.AtWho {
116 item.Comment.AtWho = append(item.Comment.AtWho, types.CommentAtWho{ 119 item.Comment.AtWho = append(item.Comment.AtWho, types.CommentAtWho{
117 Id: val2.Id, 120 Id: val2.Id,
@@ -174,6 +177,7 @@ func (l *MiniListArticleCommentLogic) listCommentReply(commentId int64, loveFlag @@ -174,6 +177,7 @@ func (l *MiniListArticleCommentLogic) listCommentReply(commentId int64, loveFlag
174 CountUserLove: val.CountUserLove, 177 CountUserLove: val.CountUserLove,
175 CountAdminLove: val.CountAdminLove, 178 CountAdminLove: val.CountAdminLove,
176 AtWho: []types.CommentAtWho{}, 179 AtWho: []types.CommentAtWho{},
  180 + MatchUrl: map[string]string{},
177 CreatedAt: val.CreatedAt, 181 CreatedAt: val.CreatedAt,
178 MeLoveFlag: 0, 182 MeLoveFlag: 0,
179 Content: val.Content, 183 Content: val.Content,
@@ -182,6 +186,9 @@ func (l *MiniListArticleCommentLogic) listCommentReply(commentId int64, loveFlag @@ -182,6 +186,9 @@ func (l *MiniListArticleCommentLogic) listCommentReply(commentId int64, loveFlag
182 if _, ok := loveFlagMap[val.Id]; ok { 186 if _, ok := loveFlagMap[val.Id]; ok {
183 item.MeLoveFlag = 1 187 item.MeLoveFlag = 1
184 } 188 }
  189 + for key2, val2 := range val.MatchUrl {
  190 + item.MatchUrl[key2] = val2
  191 + }
185 for _, val2 := range val.AtWho { 192 for _, val2 := range val.AtWho {
186 item.AtWho = append(item.AtWho, types.CommentAtWho{ 193 item.AtWho = append(item.AtWho, types.CommentAtWho{
187 Id: val2.Id, 194 Id: val2.Id,
@@ -56,6 +56,9 @@ func (l *MiniTop5ArticleCommentLogic) MiniTop5ArticleComment(req *types.MiniTop5 @@ -56,6 +56,9 @@ func (l *MiniTop5ArticleCommentLogic) MiniTop5ArticleComment(req *types.MiniTop5
56 if _, ok := flagMap[val.Id]; ok { 56 if _, ok := flagMap[val.Id]; ok {
57 item.MeLoveFlag = 1 57 item.MeLoveFlag = 1
58 } 58 }
  59 + for key, url := range val.MatchUrl {
  60 + item.MatchUrl[key] = url
  61 + }
59 for _, val2 := range val.AtWho { 62 for _, val2 := range val.AtWho {
60 item.AtWho = append(item.AtWho, types.CommentAtWho{ 63 item.AtWho = append(item.AtWho, types.CommentAtWho{
61 Id: val2.Id, 64 Id: val2.Id,
@@ -95,6 +98,7 @@ func NewArticleCommentItem(val *domain.ArticleComment) types.ArticleCommentItem @@ -95,6 +98,7 @@ func NewArticleCommentItem(val *domain.ArticleComment) types.ArticleCommentItem
95 CountUserLove: val.CountUserLove, 98 CountUserLove: val.CountUserLove,
96 CountAdminLove: val.CountAdminLove, 99 CountAdminLove: val.CountAdminLove,
97 AtWho: []types.CommentAtWho{}, 100 AtWho: []types.CommentAtWho{},
  101 + MatchUrl: map[string]string{},
98 CreatedAt: val.CreatedAt, 102 CreatedAt: val.CreatedAt,
99 MeLoveFlag: 0, 103 MeLoveFlag: 0,
100 Content: val.Content, 104 Content: val.Content,
@@ -21,9 +21,10 @@ type MiniCreateArticleCommentRequest struct { @@ -21,9 +21,10 @@ type MiniCreateArticleCommentRequest struct {
21 SectionId int64 `json:"sectionId"` // 段落id 21 SectionId int64 `json:"sectionId"` // 段落id
22 FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取 22 FromUserId int64 `json:",optional"` // 填写文章的人,服务端自动获取
23 CompanyId int64 `json:",optional"` // 服务端自动获取 23 CompanyId int64 `json:",optional"` // 服务端自动获取
24 - Pid int64 `json:"pid"` // 回复那个评论的id 24 + Pid int64 `json:"pid,optional"` // 回复那个评论的id
25 Content string `json:"content"` // 评论的内容 25 Content string `json:"content"` // 评论的内容
26 - AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 26 + AtWho []CommentAtWho `json:"atWho,optional"` // 填写评论时@的人
  27 + MatchUrl map[string]string `json:"matchUrl,optional"` // 评论内容中的url文本
27 } 28 }
28 29
29 type CommentAtWho struct { 30 type CommentAtWho struct {
@@ -47,6 +48,7 @@ type MiniCreateArticleCommentResponse struct { @@ -47,6 +48,7 @@ type MiniCreateArticleCommentResponse struct {
47 CountUserLove int `json:"countUserLove"` // 用户点赞数量 48 CountUserLove int `json:"countUserLove"` // 用户点赞数量
48 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 49 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
49 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 50 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  51 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
50 CreatedAt int64 `json:"createdAt"` // 52 CreatedAt int64 `json:"createdAt"` //
51 } 53 }
52 54
@@ -85,6 +87,7 @@ type ArticleCommentItem struct { @@ -85,6 +87,7 @@ type ArticleCommentItem struct {
85 CountUserLove int `json:"countUserLove"` // 用户点赞数量 87 CountUserLove int `json:"countUserLove"` // 用户点赞数量
86 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 88 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
87 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人 89 AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  90 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
88 CreatedAt int64 `json:"createdAt"` // 91 CreatedAt int64 `json:"createdAt"` //
89 MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞) 92 MeLoveFlag int `json:"meLoveFlag"` //当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
90 Content string `json:"content"` // 评论的内容 93 Content string `json:"content"` // 评论的内容
@@ -172,6 +175,8 @@ type SystemArticleCommentSearchItem struct { @@ -172,6 +175,8 @@ type SystemArticleCommentSearchItem struct {
172 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 175 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
173 CreatedAt int64 `json:"createdAt"` // 评论时间 176 CreatedAt int64 `json:"createdAt"` // 评论时间
174 Content string `json:"content"` // 评论的内容 177 Content string `json:"content"` // 评论的内容
  178 + AtWho []CommentAtWho `json:"atWho"` // 填写评论时@的人
  179 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中的url文本
175 Show int `json:"show"` // 显示状态 180 Show int `json:"show"` // 显示状态
176 } 181 }
177 182
@@ -27,11 +27,13 @@ type ArticleComment struct { @@ -27,11 +27,13 @@ type ArticleComment struct {
27 ToUserId int64 // 回复谁的评论 27 ToUserId int64 // 回复谁的评论
28 ToUser domain.UserSimple `gorm:"type:jsonb;serializer:json"` // 回复谁的评论 28 ToUser domain.UserSimple `gorm:"type:jsonb;serializer:json"` // 回复谁的评论
29 AtWho []domain.UserSimple `gorm:"type:jsonb;serializer:json"` // 填写评论@的人 29 AtWho []domain.UserSimple `gorm:"type:jsonb;serializer:json"` // 填写评论@的人
  30 + MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 评论内容中出现的url. 用于页面上进行匹配文本后进行特殊显示处理
30 Content string // 评论内容 31 Content string // 评论内容
31 CountReply int // 回复数量 32 CountReply int // 回复数量
32 CountUserLove int // 用户点赞数量 33 CountUserLove int // 用户点赞数量
33 CountAdminLove int // 运营点赞数量 34 CountAdminLove int // 运营点赞数量
34 Show int // 评论的展示状态(0显示、1不显示) 35 Show int // 评论的展示状态(0显示、1不显示)
  36 +
35 } 37 }
36 38
37 func (m *ArticleComment) TableName() string { 39 func (m *ArticleComment) TableName() string {
@@ -199,6 +199,7 @@ func (repository *ArticleCommentRepository) ModelToDomainModel(from *models.Arti @@ -199,6 +199,7 @@ func (repository *ArticleCommentRepository) ModelToDomainModel(from *models.Arti
199 CountAdminLove: from.CountAdminLove, 199 CountAdminLove: from.CountAdminLove,
200 Show: domain.CommentShow(from.Show), 200 Show: domain.CommentShow(from.Show),
201 AtWho: from.AtWho, 201 AtWho: from.AtWho,
  202 + MatchUrl: from.MatchUrl,
202 } 203 }
203 // err := copier.Copy(to, from) 204 // err := copier.Copy(to, from)
204 return to, nil 205 return to, nil
@@ -228,6 +229,7 @@ func (repository *ArticleCommentRepository) DomainModelToModel(from *domain.Arti @@ -228,6 +229,7 @@ func (repository *ArticleCommentRepository) DomainModelToModel(from *domain.Arti
228 CountUserLove: from.CountUserLove, 229 CountUserLove: from.CountUserLove,
229 CountAdminLove: from.CountAdminLove, 230 CountAdminLove: from.CountAdminLove,
230 Show: int(from.Show), 231 Show: int(from.Show),
  232 + MatchUrl: from.MatchUrl,
231 } 233 }
232 // err := copier.Copy(to, from) 234 // err := copier.Copy(to, from)
233 return to, nil 235 return to, nil
@@ -28,7 +28,8 @@ type ArticleComment struct { @@ -28,7 +28,8 @@ type ArticleComment struct {
28 CountUserLove int `json:"countUserLove"` // 用户点赞数量 28 CountUserLove int `json:"countUserLove"` // 用户点赞数量
29 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 29 CountAdminLove int `json:"countAdminLove"` // 运营点赞数量
30 Show CommentShow `json:"showState"` // 评论的展示状态(1显示、2不显示) 30 Show CommentShow `json:"showState"` // 评论的展示状态(1显示、2不显示)
31 - AtWho []UserSimple `json:"atWho"` // 填写评论时@的人 31 + AtWho []UserSimple `json:"atWho"` // 填写评论时@的人. 评论内容中出现的@人,用于页面上进行匹配文本后进行特殊显示处理
  32 + MatchUrl map[string]string `json:"matchUrl"` // 评论内容中出现的url. 用于页面上进行匹配文本后进行特殊显示处理
32 // ...more 33 // ...more
33 } 34 }
34 35