板块创建成功
This commit is contained in:
@@ -4,6 +4,8 @@ import (
|
||||
v1 "TrangleAgent/api/forum/v1"
|
||||
"TrangleAgent/internal/dao"
|
||||
"TrangleAgent/internal/model"
|
||||
"TrangleAgent/internal/model/entity"
|
||||
"TrangleAgent/internal/model/response"
|
||||
"TrangleAgent/internal/service"
|
||||
"context"
|
||||
|
||||
@@ -36,7 +38,7 @@ func (s *sForumPosts) Create(ctx context.Context, req *v1.ForumPostsCreateReq) (
|
||||
}
|
||||
|
||||
//创建帖子
|
||||
insert := model.ForumPost{
|
||||
insert := entity.ForumPosts{
|
||||
BoardId: req.BoardId,
|
||||
UserId: req.UserId,
|
||||
Title: req.Title,
|
||||
@@ -46,6 +48,11 @@ func (s *sForumPosts) Create(ctx context.Context, req *v1.ForumPostsCreateReq) (
|
||||
CreatedAt: gtime.Now(),
|
||||
UpdatedAt: gtime.Now(),
|
||||
}
|
||||
|
||||
if insert.Status == "" {
|
||||
insert.Status = "normal"
|
||||
}
|
||||
|
||||
result, err := dao.ForumPosts.Ctx(ctx).Data(insert).Insert()
|
||||
if err != nil {
|
||||
return nil, gerror.Wrap(err, "创建帖子失败")
|
||||
@@ -69,14 +76,14 @@ func (s *sForumPosts) Update(ctx context.Context, req *v1.ForumPostsUpdateReq) (
|
||||
return nil, gerror.New("内容长度要在5-10000之间")
|
||||
}
|
||||
//只能修改 帖子标题 帖子正文 帖子封面图URL
|
||||
fields := []string{"title", "content", "cover_image"}
|
||||
//更新帖子
|
||||
_, err = dao.ForumPosts.Ctx(ctx).Data(model.ForumPost{
|
||||
_, err = dao.ForumPosts.Ctx(ctx).Data(entity.ForumPosts{
|
||||
Id: req.Id,
|
||||
Title: req.Title,
|
||||
Content: req.Content,
|
||||
CoverImage: req.CoverImage,
|
||||
}).Fields(fields).OmitEmpty().Update()
|
||||
UpdatedAt: gtime.Now(),
|
||||
}).Fields("title", "content", "cover_image", "updated_at").OmitEmpty().Update()
|
||||
if err != nil {
|
||||
return nil, gerror.Wrap(err, "更新帖子失败")
|
||||
}
|
||||
@@ -116,12 +123,48 @@ func (s *sForumPosts) List(ctx context.Context, req *v1.ForumPostsListReq) (res
|
||||
if req.BoardId != 0 {
|
||||
mod = mod.Where(dao.ForumPosts.Columns().BoardId, req.BoardId)
|
||||
}
|
||||
if req.UserId != 0 {
|
||||
mod = mod.Where(dao.ForumPosts.Columns().UserId, req.UserId)
|
||||
}
|
||||
if req.Status != "" {
|
||||
mod = mod.Where(dao.ForumPosts.Columns().Status, req.Status)
|
||||
}
|
||||
if req.IsPinned != 0 {
|
||||
mod = mod.Where(dao.ForumPosts.Columns().IsPinned, req.IsPinned)
|
||||
}
|
||||
if req.IsEssence != 0 {
|
||||
mod = mod.Where(dao.ForumPosts.Columns().IsEssence, req.IsEssence)
|
||||
}
|
||||
|
||||
// 排序:优先置顶,然后按创建时间倒序
|
||||
mod = mod.OrderDesc(dao.ForumPosts.Columns().IsPinned).OrderDesc(dao.ForumPosts.Columns().CreatedAt)
|
||||
|
||||
// 分页
|
||||
page := req.Page
|
||||
if page <= 0 {
|
||||
page = 1
|
||||
}
|
||||
size := req.PageSize
|
||||
if size <= 0 {
|
||||
size = 10
|
||||
}
|
||||
|
||||
total, err := mod.Count()
|
||||
if err != nil {
|
||||
return nil, gerror.Wrap(err, "获取帖子总数失败")
|
||||
}
|
||||
|
||||
var list []*model.ForumPostViewParams
|
||||
err = mod.Scan(&list)
|
||||
err = mod.Page(page, size).Scan(&list)
|
||||
if err != nil {
|
||||
return nil, gerror.Wrap(err, "查询帖子列表失败")
|
||||
}
|
||||
return &v1.ForumPostsListRes{
|
||||
PageResult: response.PageResult{
|
||||
Total: total,
|
||||
Page: page,
|
||||
PageSize: size,
|
||||
},
|
||||
List: list,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user