|
@@ -2,6 +2,7 @@ package logic
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"context"
|
|
"context"
|
|
|
|
|
+ "slowwild/internal/constants"
|
|
|
"slowwild/internal/svc"
|
|
"slowwild/internal/svc"
|
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
|
@@ -34,7 +35,11 @@ func NewCreatePostLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Create
|
|
|
|
|
|
|
|
// 发布帖子
|
|
// 发布帖子
|
|
|
func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwildserver.CreatePostRsp, error) {
|
|
func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwildserver.CreatePostRsp, error) {
|
|
|
- if in.UserId <= 0 || in.Content == "" {
|
|
|
|
|
|
|
+ userId, err := cast.ToInt64E(l.ctx.Value(constants.UserIDKey))
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, errorx.NewCodeError(50001, "用户未登录")
|
|
|
|
|
+ }
|
|
|
|
|
+ if userId <= 0 || in.Content == "" {
|
|
|
return nil, errorx.ErrInvalidParam
|
|
return nil, errorx.ErrInvalidParam
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -44,7 +49,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 开启事务
|
|
// 开启事务
|
|
|
- err := l.svcCtx.UserModel.Transaction(l.ctx, func(tx *gorm.DB) error {
|
|
|
|
|
|
|
+ err = l.svcCtx.UserModel.Transaction(l.ctx, func(tx *gorm.DB) error {
|
|
|
postModel := model.NewPostModel(tx, l.svcCtx.Redis)
|
|
postModel := model.NewPostModel(tx, l.svcCtx.Redis)
|
|
|
postContentModel := model.NewPostContentModel(tx)
|
|
postContentModel := model.NewPostContentModel(tx)
|
|
|
userModel := model.NewUserModel(tx)
|
|
userModel := model.NewUserModel(tx)
|
|
@@ -78,7 +83,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
CreatedOn: time.Now().Unix(),
|
|
CreatedOn: time.Now().Unix(),
|
|
|
ModifiedOn: time.Now().Unix(),
|
|
ModifiedOn: time.Now().Unix(),
|
|
|
},
|
|
},
|
|
|
- UserId: in.UserId,
|
|
|
|
|
|
|
+ UserId: userId,
|
|
|
Name: tag.Name,
|
|
Name: tag.Name,
|
|
|
HotNum: 0,
|
|
HotNum: 0,
|
|
|
})
|
|
})
|
|
@@ -121,7 +126,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
CreatedOn: time.Now().Unix(),
|
|
CreatedOn: time.Now().Unix(),
|
|
|
ModifiedOn: time.Now().Unix(),
|
|
ModifiedOn: time.Now().Unix(),
|
|
|
},
|
|
},
|
|
|
- UserId: in.UserId,
|
|
|
|
|
|
|
+ UserId: userId,
|
|
|
PostType: in.Type,
|
|
PostType: in.Type,
|
|
|
Visibility: int8(in.Visibility),
|
|
Visibility: int8(in.Visibility),
|
|
|
Tags: strings.Join(tagNames, ","),
|
|
Tags: strings.Join(tagNames, ","),
|
|
@@ -153,7 +158,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
ModifiedOn: time.Now().Unix(),
|
|
ModifiedOn: time.Now().Unix(),
|
|
|
},
|
|
},
|
|
|
PostId: post.ID,
|
|
PostId: post.ID,
|
|
|
- UserId: in.UserId,
|
|
|
|
|
|
|
+ UserId: userId,
|
|
|
Title: in.Title,
|
|
Title: in.Title,
|
|
|
Content: in.Content, // 保存原始内容
|
|
Content: in.Content, // 保存原始内容
|
|
|
ContentSummary: contentSummary, // 保存处理后的摘要
|
|
ContentSummary: contentSummary, // 保存处理后的摘要
|
|
@@ -181,7 +186,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
|
|
|
|
|
// 发送站内信给被艾特的用户
|
|
// 发送站内信给被艾特的用户
|
|
|
for _, user := range atUsers {
|
|
for _, user := range atUsers {
|
|
|
- err = messageModel.SendNotification(l.ctx, in.UserId, user.ID, 1, "你被艾特了", "你被艾特在一条动态中", post.ID, 0, 0)
|
|
|
|
|
|
|
+ err = messageModel.SendNotification(l.ctx, userId, user.ID, 1, "你被艾特了", "你被艾特在一条动态中", post.ID, 0, 0)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
@@ -189,7 +194,7 @@ func (l *CreatePostLogic) CreatePost(in *slowwildserver.CreatePostReq) (*slowwil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 增加用户的帖子数
|
|
// 增加用户的帖子数
|
|
|
- if err := userModel.IncrementTweetCount(l.ctx, in.UserId); err != nil {
|
|
|
|
|
|
|
+ if err := userModel.IncrementTweetCount(l.ctx, userId); err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|