作者 郑周

1 点赞文章、评论 通知消息

2. 取消点赞          通知消息
@@ -2,6 +2,7 @@ package article @@ -2,6 +2,7 @@ package article
2 2
3 import ( 3 import (
4 "context" 4 "context"
  5 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/message"
5 6
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
@@ -97,6 +98,14 @@ func (l *MiniSetUserLikeLogic) cancelSetUserLikeArticle(req *types.MiniSetUserLi @@ -97,6 +98,14 @@ func (l *MiniSetUserLikeLogic) cancelSetUserLikeArticle(req *types.MiniSetUserLi
97 if err != nil { 98 if err != nil {
98 return err 99 return err
99 } 100 }
  101 +
  102 + // 删除点赞文章消息
  103 + var messageLogic = message.NewMiniBusinessLogic(l.ctx, l.svcCtx)
  104 + err = messageLogic.UnLikeArticle(c, articleInfo.Id)
  105 + if err != nil {
  106 + return err
  107 + }
  108 +
100 return nil 109 return nil
101 }, true) 110 }, true)
102 if err != nil { 111 if err != nil {
@@ -170,6 +179,14 @@ func (l *MiniSetUserLikeLogic) cancelSetUserLikeComment(req *types.MiniSetUserLi @@ -170,6 +179,14 @@ func (l *MiniSetUserLikeLogic) cancelSetUserLikeComment(req *types.MiniSetUserLi
170 if err != nil { 179 if err != nil {
171 return err 180 return err
172 } 181 }
  182 +
  183 + // 删除点赞评论消息
  184 + var messageLogic = message.NewMiniBusinessLogic(l.ctx, l.svcCtx)
  185 + err = messageLogic.UnLikeComment(c, commentInfo.ArticleId, commentInfo.Id)
  186 + if err != nil {
  187 + return err
  188 + }
  189 +
173 return nil 190 return nil
174 }, true) 191 }, true)
175 if err != nil { 192 if err != nil {
@@ -243,6 +260,14 @@ func (l *MiniSetUserLikeLogic) setUserLikeArticle(req *types.MiniSetUserLikeRequ @@ -243,6 +260,14 @@ func (l *MiniSetUserLikeLogic) setUserLikeArticle(req *types.MiniSetUserLikeRequ
243 if err != nil { 260 if err != nil {
244 return err 261 return err
245 } 262 }
  263 +
  264 + // 创建点赞消息
  265 + var messageLogic = message.NewMiniBusinessLogic(l.ctx, l.svcCtx)
  266 + err = messageLogic.LikeArticle(c, articleInfo.Id, articleInfo.AuthorId)
  267 + if err != nil {
  268 + return err
  269 + }
  270 +
246 return nil 271 return nil
247 }, true) 272 }, true)
248 if err != nil { 273 if err != nil {
@@ -324,6 +349,14 @@ func (l *MiniSetUserLikeLogic) setUserLikeComment(req *types.MiniSetUserLikeRequ @@ -324,6 +349,14 @@ func (l *MiniSetUserLikeLogic) setUserLikeComment(req *types.MiniSetUserLikeRequ
324 if err != nil { 349 if err != nil {
325 return err 350 return err
326 } 351 }
  352 +
  353 + // 创建点赞消息
  354 + var messageLogic = message.NewMiniBusinessLogic(l.ctx, l.svcCtx)
  355 + err = messageLogic.LikeComment(c, commentInfo.ArticleId, commentInfo.Id, commentInfo.FromUserId)
  356 + if err != nil {
  357 + return err
  358 + }
  359 +
327 return nil 360 return nil
328 }, true) 361 }, true)
329 if err != nil { 362 if err != nil {
@@ -222,8 +222,18 @@ func (l *MiniBusinessLogic) LikeArticle(conn transaction.Conn, articleId int64, @@ -222,8 +222,18 @@ func (l *MiniBusinessLogic) LikeArticle(conn transaction.Conn, articleId int64,
222 } 222 }
223 223
224 // LikeComment 点赞评论 224 // LikeComment 点赞评论
225 -func (l *MiniBusinessLogic) LikeComment(conn transaction.Conn, articleId int64, sectionId int64, commentId int64, at int64) (err error) {  
226 - return l.createMessage(conn, domain.MsgTypeLike, domain.OptTypeComment, articleId, sectionId, commentId, "", []int64{at}) 225 +func (l *MiniBusinessLogic) LikeComment(conn transaction.Conn, articleId int64, commentId int64, at int64) (err error) {
  226 + return l.createMessage(conn, domain.MsgTypeLike, domain.OptTypeComment, articleId, 0, commentId, "", []int64{at})
  227 +}
  228 +
  229 +// UnLikeArticle 取消点赞文章
  230 +func (l *MiniBusinessLogic) UnLikeArticle(conn transaction.Conn, articleId int64) (err error) {
  231 + return l.deleteMessage(conn, domain.OptTypeArticle, articleId, 0)
  232 +}
  233 +
  234 +// UnLikeComment 取消点赞评论
  235 +func (l *MiniBusinessLogic) UnLikeComment(conn transaction.Conn, articleId int64, commentId int64) (err error) {
  236 + return l.deleteMessage(conn, domain.OptTypeComment, articleId, commentId)
227 } 237 }
228 238
229 func (l *MiniBusinessLogic) createMessage( 239 func (l *MiniBusinessLogic) createMessage(
@@ -257,3 +267,27 @@ func (l *MiniBusinessLogic) createMessage( @@ -257,3 +267,27 @@ func (l *MiniBusinessLogic) createMessage(
257 } 267 }
258 return nil 268 return nil
259 } 269 }
  270 +
  271 +func (l *MiniBusinessLogic) deleteMessage(conn transaction.Conn, optType domain.MsgBusinessOpt, articleId int64, commentId int64) (err error) {
  272 + var userToken = contextdata.GetUserTokenFromCtx(l.ctx)
  273 +
  274 + queryOption := domain.NewQueryOptions().WithFindOnly().WithOffsetLimit(1, 1).
  275 + MustWithKV("type", domain.MsgTypeLike).
  276 + MustWithKV("optType", optType).
  277 + MustWithKV("companyId", userToken.CompanyId).
  278 + MustWithKV("recipientId", userToken.UserId).
  279 + MustWithKV("articleId", articleId).
  280 + MustWithKV("commentId", commentId)
  281 +
  282 + _, list, err := l.svcCtx.MessageBusinessRepository.Find(l.ctx, conn, queryOption)
  283 + if err != nil {
  284 + return err
  285 + }
  286 + for i := range list {
  287 + _, err = l.svcCtx.MessageBusinessRepository.Delete(l.ctx, conn, list[i])
  288 + if err != nil {
  289 + return err
  290 + }
  291 + }
  292 + return nil
  293 +}
@@ -121,9 +121,24 @@ func (repository *MessageBusinessRepository) Find(ctx context.Context, conn tran @@ -121,9 +121,24 @@ func (repository *MessageBusinessRepository) Find(ctx context.Context, conn tran
121 ) 121 )
122 queryFunc := func() (interface{}, error) { 122 queryFunc := func() (interface{}, error) {
123 tx = tx.Model(&ms).Order("id desc") 123 tx = tx.Model(&ms).Order("id desc")
  124 + if v, ok := queryOptions["type"]; ok {
  125 + tx.Where("type = ?", v)
  126 + }
  127 + if v, ok := queryOptions["optType"]; ok {
  128 + tx.Where("opt_type = ?", v)
  129 + }
124 if v, ok := queryOptions["companyId"]; ok { 130 if v, ok := queryOptions["companyId"]; ok {
125 tx.Where("company_id = ?", v) 131 tx.Where("company_id = ?", v)
126 } 132 }
  133 + if v, ok := queryOptions["recipientId"]; ok {
  134 + tx.Where("recipient_id = ?", v)
  135 + }
  136 + if v, ok := queryOptions["articleId"]; ok {
  137 + tx.Where("article_id = ?", v)
  138 + }
  139 + if v, ok := queryOptions["commentId"]; ok {
  140 + tx.Where("comment_id = ?", v)
  141 + }
127 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil { 142 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil {
128 return dms, tx.Error 143 return dms, tx.Error
129 } 144 }
@@ -36,7 +36,7 @@ const ( @@ -36,7 +36,7 @@ const (
36 36
37 const ( 37 const (
38 OptTypeArticle MsgBusinessOpt = 1 // 操作分类-针对文章 38 OptTypeArticle MsgBusinessOpt = 1 // 操作分类-针对文章
39 - OptTypeComment MsgBusinessOpt = 2 // 操作分类-针对评论() 39 + OptTypeComment MsgBusinessOpt = 2 // 操作分类-针对评论
40 OptTypeDiscussion MsgBusinessOpt = 3 // 操作分类-针对讨论 40 OptTypeDiscussion MsgBusinessOpt = 3 // 操作分类-针对讨论
41 ) 41 )
42 42