正在显示
1 个修改的文件
包含
29 行增加
和
33 行删除
@@ -54,8 +54,8 @@ func (l *MiniSubscribeLogic) getOpenId(conn transaction.Conn, userId int64) (str | @@ -54,8 +54,8 @@ func (l *MiniSubscribeLogic) getOpenId(conn transaction.Conn, userId int64) (str | ||
54 | return userWechat.OpenId, nil | 54 | return userWechat.OpenId, nil |
55 | } | 55 | } |
56 | 56 | ||
57 | -// saveAndDecrease 保存并扣减订阅消息 | ||
58 | -func (l *MiniSubscribeLogic) saveAndDecrease(conn transaction.Conn, companyId, userId int64, mType int, msg *subscribe.Message, sendErr error) error { | 57 | +// sendAndDecrease 保存并扣减订阅消息 |
58 | +func (l *MiniSubscribeLogic) sendAndDecrease(conn transaction.Conn, companyId, userId int64, mType int, msg *subscribe.Message) error { | ||
59 | templateData := make(map[string]interface{}) | 59 | templateData := make(map[string]interface{}) |
60 | _ = copier.Copy(&templateData, msg.Data) | 60 | _ = copier.Copy(&templateData, msg.Data) |
61 | subscribeMessage := &domain.MessageSubscribe{ | 61 | subscribeMessage := &domain.MessageSubscribe{ |
@@ -66,27 +66,33 @@ func (l *MiniSubscribeLogic) saveAndDecrease(conn transaction.Conn, companyId, u | @@ -66,27 +66,33 @@ func (l *MiniSubscribeLogic) saveAndDecrease(conn transaction.Conn, companyId, u | ||
66 | TemplateId: msg.TemplateID, | 66 | TemplateId: msg.TemplateID, |
67 | TemplateData: templateData, | 67 | TemplateData: templateData, |
68 | } | 68 | } |
69 | - if sendErr != nil { | 69 | + //获取订阅次数 |
70 | + userSubscribe, err := l.svcCtx.UserSubscribeRepository.FindOneByType(l.ctx, conn, companyId, userId, mType) | ||
71 | + if err != nil || userSubscribe.Count <= 0 { | ||
70 | subscribeMessage.Result = "fail" | 72 | subscribeMessage.Result = "fail" |
71 | - subscribeMessage.Error = sendErr.Error() | 73 | + subscribeMessage.Error = "订阅次数已用完" |
72 | } else { | 74 | } else { |
73 | - subscribeMessage.Result = "ok" | 75 | + //扣减订阅次数 |
76 | + userSubscribe.Count = userSubscribe.Count - 1 | ||
77 | + _, err = l.svcCtx.UserSubscribeRepository.Update(l.ctx, conn, userSubscribe) | ||
78 | + if err != nil { | ||
79 | + return err | ||
80 | + } | ||
81 | + //发送订阅消息 | ||
82 | + subCtx := l.getSubScribe() | ||
83 | + sendErr := subCtx.Send(msg) | ||
84 | + if sendErr != nil { | ||
85 | + subscribeMessage.Result = "fail" | ||
86 | + subscribeMessage.Error = sendErr.Error() | ||
87 | + } else { | ||
88 | + subscribeMessage.Result = "ok" | ||
89 | + } | ||
74 | } | 90 | } |
75 | - _, err := l.svcCtx.MessageSubscribeRepository.Insert(l.ctx, conn, subscribeMessage) | 91 | + //保存订阅结果 |
92 | + _, err = l.svcCtx.MessageSubscribeRepository.Insert(l.ctx, conn, subscribeMessage) | ||
76 | if err != nil { | 93 | if err != nil { |
77 | return err | 94 | return err |
78 | } | 95 | } |
79 | - //扣减次数 | ||
80 | - if sendErr == nil { | ||
81 | - userSubscribe, err := l.svcCtx.UserSubscribeRepository.FindOneByType(l.ctx, conn, companyId, userId, mType) | ||
82 | - if err == nil && userSubscribe.Count > 0 { | ||
83 | - userSubscribe.Count = userSubscribe.Count - 1 | ||
84 | - _, err = l.svcCtx.UserSubscribeRepository.Update(l.ctx, conn, userSubscribe) | ||
85 | - if err != nil { | ||
86 | - return err | ||
87 | - } | ||
88 | - } | ||
89 | - } | ||
90 | return nil | 96 | return nil |
91 | } | 97 | } |
92 | 98 | ||
@@ -123,7 +129,6 @@ func (l *MiniSubscribeLogic) getReplyCommentUserInfo(conn transaction.Conn, comp | @@ -123,7 +129,6 @@ func (l *MiniSubscribeLogic) getReplyCommentUserInfo(conn transaction.Conn, comp | ||
123 | // @param article 文章 | 129 | // @param article 文章 |
124 | // @param comment 评论 | 130 | // @param comment 评论 |
125 | func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain.Article, comment *domain.ArticleComment) error { | 131 | func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain.Article, comment *domain.ArticleComment) error { |
126 | - subCtx := l.getSubScribe() | ||
127 | //评论用户+职位 例: 张三-董事办 | 132 | //评论用户+职位 例: 张三-董事办 |
128 | fromUserName, err := l.getReplyCommentUserInfo(conn, comment.CompanyId, comment.FromUserId) | 133 | fromUserName, err := l.getReplyCommentUserInfo(conn, comment.CompanyId, comment.FromUserId) |
129 | if err != nil { | 134 | if err != nil { |
@@ -156,8 +161,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | @@ -156,8 +161,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | ||
156 | userCount, err := l.svcCtx.ArticleCommentRepository.CommentUserCount(l.ctx, conn, comment.CompanyId, comment.ArticleId) | 161 | userCount, err := l.svcCtx.ArticleCommentRepository.CommentUserCount(l.ctx, conn, comment.CompanyId, comment.ArticleId) |
157 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("您的帖子最近已有%v人评论,点击查看详情", userCount)} | 162 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("您的帖子最近已有%v人评论,点击查看详情", userCount)} |
158 | //发送微信订阅消息 | 163 | //发送微信订阅消息 |
159 | - err = subCtx.Send(msg) | ||
160 | - err = l.saveAndDecrease(conn, comment.CompanyId, article.AuthorId, domain.SubscribeTypeReplyComment, msg, err) | 164 | + err = l.sendAndDecrease(conn, comment.CompanyId, article.AuthorId, domain.SubscribeTypeReplyComment, msg) |
161 | if err != nil { | 165 | if err != nil { |
162 | return xerr.NewErrMsgErr("评论失败", err) | 166 | return xerr.NewErrMsgErr("评论失败", err) |
163 | } | 167 | } |
@@ -173,8 +177,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | @@ -173,8 +177,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | ||
173 | if err == nil { | 177 | if err == nil { |
174 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("您的评论最近已有%v人回复,点击查看详情", replyCount)} | 178 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("您的评论最近已有%v人回复,点击查看详情", replyCount)} |
175 | //发送微信订阅消息 | 179 | //发送微信订阅消息 |
176 | - err = subCtx.Send(msg) | ||
177 | - err = l.saveAndDecrease(conn, comment.CompanyId, comment.ToUserId, domain.SubscribeTypeReplyComment, msg, err) | 180 | + err = l.sendAndDecrease(conn, comment.CompanyId, comment.ToUserId, domain.SubscribeTypeReplyComment, msg) |
178 | if err != nil { | 181 | if err != nil { |
179 | return xerr.NewErrMsgErr("评论失败", err) | 182 | return xerr.NewErrMsgErr("评论失败", err) |
180 | } | 183 | } |
@@ -194,8 +197,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | @@ -194,8 +197,7 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | ||
194 | //备注 | 197 | //备注 |
195 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("%v在评论中提到了你", comment.FromUser.Name)} | 198 | msg.Data["thing9"] = &subscribe.DataItem{Value: fmt.Sprintf("%v在评论中提到了你", comment.FromUser.Name)} |
196 | //发送微信订阅消息 | 199 | //发送微信订阅消息 |
197 | - err = subCtx.Send(msg) | ||
198 | - err = l.saveAndDecrease(conn, comment.CompanyId, at.Id, domain.SubscribeTypeReplyComment, msg, err) | 200 | + err = l.sendAndDecrease(conn, comment.CompanyId, at.Id, domain.SubscribeTypeReplyComment, msg) |
199 | if err != nil { | 201 | if err != nil { |
200 | return xerr.NewErrMsgErr("评论失败", err) | 202 | return xerr.NewErrMsgErr("评论失败", err) |
201 | } | 203 | } |
@@ -206,7 +208,6 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | @@ -206,7 +208,6 @@ func (l *MiniSubscribeLogic) ReplyComment(conn transaction.Conn, article *domain | ||
206 | 208 | ||
207 | // LikeArticle 帖子点赞订阅消息 | 209 | // LikeArticle 帖子点赞订阅消息 |
208 | func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain.Article, userInfo *domain.User) error { | 210 | func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain.Article, userInfo *domain.User) error { |
209 | - subCtx := l.getSubScribe() | ||
210 | openId, err := l.getOpenId(conn, article.AuthorId) | 211 | openId, err := l.getOpenId(conn, article.AuthorId) |
211 | if err != nil || openId == "" { | 212 | if err != nil || openId == "" { |
212 | return nil | 213 | return nil |
@@ -233,8 +234,7 @@ func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain. | @@ -233,8 +234,7 @@ func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain. | ||
233 | }, | 234 | }, |
234 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, | 235 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, |
235 | } | 236 | } |
236 | - err = subCtx.Send(msg) | ||
237 | - err = l.saveAndDecrease(conn, article.CompanyId, article.AuthorId, domain.SubscribeTypeLike, msg, err) | 237 | + err = l.sendAndDecrease(conn, article.CompanyId, article.AuthorId, domain.SubscribeTypeLike, msg) |
238 | if err != nil { | 238 | if err != nil { |
239 | return xerr.NewErrMsgErr("点赞失败", err) | 239 | return xerr.NewErrMsgErr("点赞失败", err) |
240 | } | 240 | } |
@@ -243,7 +243,6 @@ func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain. | @@ -243,7 +243,6 @@ func (l *MiniSubscribeLogic) LikeArticle(conn transaction.Conn, article *domain. | ||
243 | 243 | ||
244 | // LikeComment 点赞评论订阅消息 | 244 | // LikeComment 点赞评论订阅消息 |
245 | func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain.ArticleComment, userInfo *domain.User) error { | 245 | func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain.ArticleComment, userInfo *domain.User) error { |
246 | - subCtx := l.getSubScribe() | ||
247 | openId, err := l.getOpenId(conn, comment.FromUserId) | 246 | openId, err := l.getOpenId(conn, comment.FromUserId) |
248 | if err != nil || openId == "" { | 247 | if err != nil || openId == "" { |
249 | return nil | 248 | return nil |
@@ -271,8 +270,7 @@ func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain. | @@ -271,8 +270,7 @@ func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain. | ||
271 | }, | 270 | }, |
272 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, | 271 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, |
273 | } | 272 | } |
274 | - err = subCtx.Send(msg) | ||
275 | - err = l.saveAndDecrease(conn, comment.CompanyId, comment.FromUserId, domain.SubscribeTypeLike, msg, err) | 273 | + err = l.sendAndDecrease(conn, comment.CompanyId, comment.FromUserId, domain.SubscribeTypeLike, msg) |
276 | if err != nil { | 274 | if err != nil { |
277 | return xerr.NewErrMsgErr("点赞失败", err) | 275 | return xerr.NewErrMsgErr("点赞失败", err) |
278 | } | 276 | } |
@@ -281,7 +279,6 @@ func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain. | @@ -281,7 +279,6 @@ func (l *MiniSubscribeLogic) LikeComment(conn transaction.Conn, comment *domain. | ||
281 | 279 | ||
282 | // FollowArticle 发帖关注更新提醒 | 280 | // FollowArticle 发帖关注更新提醒 |
283 | func (l *MiniSubscribeLogic) FollowArticle(conn transaction.Conn, article *domain.Article) error { | 281 | func (l *MiniSubscribeLogic) FollowArticle(conn transaction.Conn, article *domain.Article) error { |
284 | - subCtx := l.getSubScribe() | ||
285 | //获取关注帖子作者的人员 | 282 | //获取关注帖子作者的人员 |
286 | _, userInfo, err := l.svcCtx.UserFollowRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithKV("toUserIds", []int64{article.AuthorId})) | 283 | _, userInfo, err := l.svcCtx.UserFollowRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithKV("toUserIds", []int64{article.AuthorId})) |
287 | if err == nil && len(userInfo) > 0 { | 284 | if err == nil && len(userInfo) > 0 { |
@@ -308,8 +305,7 @@ func (l *MiniSubscribeLogic) FollowArticle(conn transaction.Conn, article *domai | @@ -308,8 +305,7 @@ func (l *MiniSubscribeLogic) FollowArticle(conn transaction.Conn, article *domai | ||
308 | }, | 305 | }, |
309 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, | 306 | MiniprogramState: l.svcCtx.Config.Wechat.QrcodeEnv, |
310 | } | 307 | } |
311 | - err = subCtx.Send(msg) | ||
312 | - err = l.saveAndDecrease(conn, article.CompanyId, item.FromUserId, domain.SubscribeTypeFollow, msg, err) | 308 | + err = l.sendAndDecrease(conn, article.CompanyId, item.FromUserId, domain.SubscribeTypeFollow, msg) |
313 | if err != nil { | 309 | if err != nil { |
314 | return xerr.NewErrMsgErr("保存订阅消息失败", err) | 310 | return xerr.NewErrMsgErr("保存订阅消息失败", err) |
315 | } | 311 | } |
-
请 注册 或 登录 后发表评论