diff --git a/service/impl/base_post.go b/service/impl/base_post.go index d0ca1d0..e5f7a06 100644 --- a/service/impl/base_post.go +++ b/service/impl/base_post.go @@ -334,10 +334,20 @@ func (b basePostServiceImpl) CreateOrUpdate(ctx context.Context, post *entity.Po if postCount > 0 { return xerr.BadParam.New("").WithMsg("文章别名已存在(Article alias already exists)").WithStatus(xerr.StatusBadRequest) } + status := post.Status err = postDAL.WithContext(ctx).Create(post) if err != nil { return WrapDBErr(err) } + // 😅gorm not insert zero value: https://gorm.io/docs/create.html + if status == consts.PostStatusPublished { + _, err = postDAL.WithContext(ctx).Where(postDAL.ID.Eq(post.ID)).UpdateColumnSimple(postDAL.Status.Value(status)) + if err != nil { + return WrapDBErr(err) + } + post.Status = status + } + } else { // update post slugCount, err := postDAL.WithContext(ctx).Where(postDAL.Slug.Eq(post.Slug), postDAL.ID.Neq(post.ID)).Count() diff --git a/service/impl/install.go b/service/impl/install.go index 099b929..dd07cf9 100644 --- a/service/impl/install.go +++ b/service/impl/install.go @@ -180,11 +180,25 @@ func (i installServiceImpl) createDefaultPost(ctx context.Context, category *ent > 这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧! ` + formatContent := `

Hello Sonic

+

如果你看到了这一篇文章,那么证明你已经安装成功了,感谢使用 Sonic 进行创作,希望能够使用愉快。

+

相关链接

+ +

在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。

+
+

这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧!

+
+ ` postParam := param.Post{ Title: "Hello Sonic", Status: consts.PostStatusPublished, Slug: "hello-sonic", OriginalContent: content, + Content: formatContent, CategoryIDs: []int32{category.ID}, } return i.PostService.Create(ctx, &postParam)