feat: update

This commit is contained in:
rogeecn
2025-03-22 20:04:30 +08:00
parent ea6db56fb3
commit ea15a51556
4 changed files with 71 additions and 2 deletions

40
app/http/admin/posts.go Normal file
View File

@@ -0,0 +1,40 @@
package admin
import (
"quyun/app/models"
"quyun/app/requests"
"quyun/database/schemas/public/model"
"github.com/gofiber/fiber/v3"
)
type ListQuery struct {
Key *string `query:"key"`
}
// @provider
type posts struct{}
// List posts
// @Router /v1/admin/posts [get]
// @Bind pagination query
// @Bind query query
func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery) (*requests.Pager, error) {
cond := models.Posts.BuildConditionWithKey(query.Key)
return models.Posts.List(ctx.Context(), pagination, cond)
}
// Create
// @Router /v1/admin/posts [post]
// @Bind form body
func (ctl *posts) Create(ctx fiber.Ctx, form *model.Posts) error {
return nil
}
// Update posts
// @Router /v1/admin/posts/:id [put]
// @Bind id path
// @Bind form body
func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *model.Posts) error {
return nil
}

View File

@@ -17,12 +17,21 @@ func Provide(opts ...opt.Option) error {
}); err != nil {
return err
}
if err := container.Container.Provide(func() (*posts, error) {
obj := &posts{}
return obj, nil
}); err != nil {
return err
}
if err := container.Container.Provide(func(
medias *medias,
posts *posts,
uploads *uploads,
) (contracts.HttpRoute, error) {
obj := &Routes{
medias: medias,
posts: posts,
uploads: uploads,
}
if err := obj.Prepare(); err != nil {

View File

@@ -10,12 +10,14 @@ import (
. "go.ipao.vip/atom/fen"
"mime/multipart"
"quyun/app/requests"
"quyun/database/schemas/public/model"
)
// @provider contracts.HttpRoute atom.GroupRoutes
type Routes struct {
log *log.Entry `inject:"false"`
medias *medias
posts *posts
uploads *uploads
}
@@ -35,6 +37,24 @@ func (r *Routes) Register(router fiber.Router) {
Query[requests.Pagination]("pagination"),
))
// 注册路由组: posts
router.Get("/v1/admin/posts", DataFunc2(
r.posts.List,
Query[requests.Pagination]("pagination"),
Query[ListQuery]("query"),
))
router.Post("/v1/admin/posts", Func1(
r.posts.Create,
Body[model.Posts]("form"),
))
router.Put("/v1/admin/posts/:id", Func2(
r.posts.Update,
PathParam[int64]("id"),
Body[model.Posts]("form"),
))
// 注册路由组: uploads
router.Post("/v1/admin/uploads/:md5/chunks/:idx", Func3(
r.uploads.Chunks,

View File

@@ -150,7 +150,7 @@ func (m *postsModel) List(ctx context.Context, pagination *requests.Pagination,
}, nil
}
func (m *postsModel) IsUserBought(ctx context.Context, userId int64, postId int64) (bool, error) {
func (m *postsModel) IsUserBought(ctx context.Context, userId, postId int64) (bool, error) {
tbl := table.UserPosts
stmt := tbl.
SELECT(tbl.ID).
@@ -175,7 +175,7 @@ func (m *postsModel) IsUserBought(ctx context.Context, userId int64, postId int6
return userPost.ID > 0, nil
}
func (m *postsModel) Buy(ctx context.Context, userId int64, postId int64) error {
func (m *postsModel) Buy(ctx context.Context, userId, postId int64) error {
tbl := table.UserPosts
post, err := m.GetByID(ctx, postId)