feat: update

This commit is contained in:
Rogee
2025-05-23 20:07:34 +08:00
parent 9b38699764
commit 57cb0a750b
53 changed files with 741 additions and 982 deletions

View File

@@ -1,7 +1,7 @@
package admin
import (
"quyun/app/models"
"quyun/app/model"
"quyun/app/requests"
"quyun/providers/ali"
@@ -19,8 +19,8 @@ type medias struct {
// @Bind pagination query
// @Bind query query
func (ctl *medias) List(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery) (*requests.Pager, error) {
cond := models.Medias.BuildConditionWithKey(query.Keyword)
return models.Medias.List(ctx.Context(), pagination, cond)
cond := model.MediasModel.BuildConditionWithKey(query.Keyword)
return model.MediasModel.List(ctx.Context(), pagination, cond)
}
// Show media
@@ -28,7 +28,7 @@ func (ctl *medias) List(ctx fiber.Ctx, pagination *requests.Pagination, query *L
// @Router /admin/medias/:id [get]
// @Bind id path
func (ctl *medias) Show(ctx fiber.Ctx, id int64) error {
media, err := models.Medias.GetByID(ctx.Context(), id)
media, err := model.MediasModel.GetByID(ctx.Context(), id)
if err != nil {
return ctx.SendString("Media not found")
}
@@ -46,7 +46,7 @@ func (ctl *medias) Show(ctx fiber.Ctx, id int64) error {
// @Router /admin/medias/:id [delete]
// @Bind id path
func (ctl *medias) Delete(ctx fiber.Ctx, id int64) error {
media, err := models.Medias.GetByID(ctx.Context(), id)
media, err := model.MediasModel.GetByID(ctx.Context(), id)
if err != nil {
return ctx.SendString("Media not found")
}
@@ -55,7 +55,7 @@ func (ctl *medias) Delete(ctx fiber.Ctx, id int64) error {
return err
}
if err := models.Medias.Delete(ctx.Context(), id); err != nil {
if err := model.MediasModel.Delete(ctx.Context(), id); err != nil {
return err
}
return ctx.SendStatus(fiber.StatusNoContent)

View File

@@ -3,7 +3,7 @@ package admin
import (
"fmt"
"quyun/app/models"
"quyun/app/model"
"quyun/app/requests"
"quyun/database/fields"
"quyun/providers/wepay"
@@ -28,35 +28,35 @@ type orders struct {
// @Bind pagination query
// @Bind query query
func (ctl *orders) List(ctx fiber.Ctx, pagination *requests.Pagination, query *OrderListQuery) (*requests.Pager, error) {
cond := models.Orders.BuildConditionWithKey(query.OrderNumber, query.UserID)
return models.Orders.List(ctx.Context(), pagination, cond)
cond := model.OrdersModel.BuildConditionWithKey(query.OrderNumber, query.UserID)
return model.OrdersModel.List(ctx.Context(), pagination, cond)
}
// Refund
// @Router /admin/orders/:id/refund [post]
// @Bind id path
func (ctl *orders) Refund(ctx fiber.Ctx, id int64) error {
order, err := models.Orders.GetByID(ctx.Context(), id)
order, err := model.OrdersModel.GetByID(ctx.Context(), id)
if err != nil {
return err
}
post, err := models.Posts.GetByID(ctx.Context(), order.PostID)
post, err := model.PostsModel.GetByID(ctx.Context(), order.PostID)
if err != nil {
return err
}
if order.PaymentMethod == "balance" {
if err := models.Users.AddBalance(ctx.Context(), order.UserID, order.Meta.Data.CostBalance); err != nil {
if err := model.UsersModel.AddBalance(ctx.Context(), order.UserID, order.Meta.Data.CostBalance); err != nil {
return errors.Wrap(err, "add balance failed")
}
if err := models.Users.RevokePosts(ctx.Context(), order.UserID, order.PostID); err != nil {
if err := model.UsersModel.RevokePosts(ctx.Context(), order.UserID, order.PostID); err != nil {
return errors.Wrap(err, "revoke posts failed")
}
order.Status = fields.OrderStatusRefundSuccess
if err := models.Orders.Update(ctx.Context(), order); err != nil {
if err := model.OrdersModel.Update(ctx.Context(), order); err != nil {
return errors.Wrap(err, "update order failed")
}
@@ -82,7 +82,7 @@ func (ctl *orders) Refund(ctx fiber.Ctx, id int64) error {
order.RefundTransactionID = resp.RefundId
order.Status = fields.OrderStatusRefundProcessing
if err := models.Orders.Update(ctx.Context(), order); err != nil {
if err := model.OrdersModel.Update(ctx.Context(), order); err != nil {
return err
}

View File

@@ -1,11 +1,10 @@
package admin
import (
"quyun/app/models"
"quyun/app/model"
"quyun/app/requests"
"quyun/database/conds"
"quyun/database/fields"
"quyun/database/schemas/public/model"
"github.com/gofiber/fiber/v3"
"github.com/samber/lo"
@@ -29,7 +28,7 @@ func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Li
// conds.Post_Status(fields.PostStatusPublished),
conds.Post_Like(query.Keyword),
}
pager, err := models.Posts.List(ctx.Context(), pagination, conds...)
pager, err := model.PostsModel.List(ctx.Context(), pagination, conds...)
if err != nil {
return nil, err
}
@@ -38,7 +37,7 @@ func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Li
return item.ID
})
if len(postIds) > 0 {
postCntMap, err := models.Posts.BoughtStatistics(ctx.Context(), postIds)
postCntMap, err := model.PostsModel.BoughtStatistics(ctx.Context(), postIds)
if err != nil {
return pager, err
}
@@ -86,7 +85,7 @@ func (ctl *posts) Create(ctx fiber.Ctx, form *PostForm) error {
}
if form.Medias != nil {
medias, err := models.Medias.GetByIds(ctx.Context(), form.Medias)
medias, err := model.MediasModel.GetByIds(ctx.Context(), form.Medias)
if err != nil {
return err
}
@@ -100,7 +99,7 @@ func (ctl *posts) Create(ctx fiber.Ctx, form *PostForm) error {
post.Assets = fields.ToJson(assets)
}
if err := models.Posts.Create(ctx.Context(), &post); err != nil {
if err := model.PostsModel.Create(ctx.Context(), &post); err != nil {
return err
}
return nil
@@ -112,7 +111,7 @@ func (ctl *posts) Create(ctx fiber.Ctx, form *PostForm) error {
// @Bind id path
// @Bind form body
func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *PostForm) error {
oldPost, err := models.Posts.GetByID(ctx.Context(), id)
oldPost, err := model.PostsModel.GetByID(ctx.Context(), id)
if err != nil {
return err
}
@@ -135,7 +134,7 @@ func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *PostForm) error {
}
if form.Medias != nil {
medias, err := models.Medias.GetByIds(ctx.Context(), form.Medias)
medias, err := model.MediasModel.GetByIds(ctx.Context(), form.Medias)
if err != nil {
return err
}
@@ -149,7 +148,7 @@ func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *PostForm) error {
post.Assets = fields.ToJson(assets)
}
if err := models.Posts.Update(ctx.Context(), id, post); err != nil {
if err := model.PostsModel.Update(ctx.Context(), id, post); err != nil {
return err
}
return nil
@@ -160,7 +159,7 @@ func (ctl *posts) Update(ctx fiber.Ctx, id int64, form *PostForm) error {
// @Router /admin/posts/:id [delete]
// @Bind id path
func (ctl *posts) Delete(ctx fiber.Ctx, id int64) error {
post, err := models.Posts.GetByID(ctx.Context(), id)
post, err := model.PostsModel.GetByID(ctx.Context(), id)
if err != nil {
return err
}
@@ -168,7 +167,7 @@ func (ctl *posts) Delete(ctx fiber.Ctx, id int64) error {
return fiber.ErrNotFound
}
if err := models.Posts.DeleteByID(ctx.Context(), id); err != nil {
if err := model.PostsModel.DeleteByID(ctx.Context(), id); err != nil {
return err
}
return nil
@@ -185,12 +184,12 @@ type PostItem struct {
// @Router /admin/posts/:id [get]
// @Bind id path
func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*PostItem, error) {
post, err := models.Posts.GetByID(ctx.Context(), id)
post, err := model.PostsModel.GetByID(ctx.Context(), id)
if err != nil {
return nil, err
}
medias, err := models.Medias.GetByIds(ctx.Context(), lo.Map(post.Assets.Data, func(asset fields.MediaAsset, _ int) int64 {
medias, err := model.MediasModel.GetByIds(ctx.Context(), lo.Map(post.Assets.Data, func(asset fields.MediaAsset, _ int) int64 {
return asset.Media
}))
if err != nil {
@@ -208,15 +207,15 @@ func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*PostItem, error) {
// @Bind id path
// @Bind userId path
func (ctl *posts) SendTo(ctx fiber.Ctx, id, userId int64) error {
if _, err := models.Posts.GetByID(ctx.Context(), id); err != nil {
if _, err := model.PostsModel.GetByID(ctx.Context(), id); err != nil {
return err
}
if _, err := models.Users.GetByID(ctx.Context(), userId); err != nil {
if _, err := model.UsersModel.GetByID(ctx.Context(), userId); err != nil {
return err
}
if err := models.Posts.SendTo(ctx.Context(), id, userId); err != nil {
if err := model.PostsModel.SendTo(ctx.Context(), id, userId); err != nil {
return err
}
return nil

View File

@@ -1,9 +1,9 @@
package admin
import (
"quyun/app/models"
"quyun/app/model"
"quyun/database/fields"
"quyun/database/schemas/public/table"
"quyun/database/table"
. "github.com/go-jet/jet/v2/postgres"
"github.com/gofiber/fiber/v3"
@@ -29,31 +29,31 @@ func (s *statistics) statistics(ctx fiber.Ctx) (*StatisticsResponse, error) {
var err error
statistics.PostDraft, err = models.Posts.Count(ctx.Context(), table.Posts.Status.EQ(Int(int64(fields.PostStatusDraft))))
statistics.PostDraft, err = model.PostsModel.Count(ctx.Context(), table.Posts.Status.EQ(Int(int64(fields.PostStatusDraft))))
if err != nil {
return nil, err
}
statistics.PostPublished, err = models.Posts.Count(ctx.Context(), table.Posts.Status.EQ(Int(int64(fields.PostStatusPublished))))
statistics.PostPublished, err = model.PostsModel.Count(ctx.Context(), table.Posts.Status.EQ(Int(int64(fields.PostStatusPublished))))
if err != nil {
return nil, err
}
statistics.Media, err = models.Medias.Count(ctx.Context())
statistics.Media, err = model.MediasModel.Count(ctx.Context())
if err != nil {
return nil, err
}
statistics.Order, err = models.Orders.Count(ctx.Context(), table.Orders.Status.EQ(Int(int64(fields.OrderStatusCompleted))))
statistics.Order, err = model.OrdersModel.Count(ctx.Context(), table.Orders.Status.EQ(Int(int64(fields.OrderStatusCompleted))))
if err != nil {
return nil, err
}
statistics.User, err = models.Users.Count(ctx.Context(), BoolExp(Bool(true)))
statistics.User, err = model.UsersModel.Count(ctx.Context(), BoolExp(Bool(true)))
if err != nil {
return nil, err
}
statistics.Amount, err = models.Orders.SumAmount(ctx.Context())
statistics.Amount, err = model.OrdersModel.SumAmount(ctx.Context())
if err != nil {
return nil, err
}

View File

@@ -6,8 +6,7 @@ import (
"path/filepath"
"quyun/app/jobs"
"quyun/app/models"
"quyun/database/schemas/public/model"
"quyun/app/model"
"quyun/providers/ali"
"quyun/providers/app"
"quyun/providers/job"
@@ -39,7 +38,7 @@ type PreCheckResp struct {
// @Bind ext path
// @Bind mime query
func (up *uploads) PreUploadCheck(ctx fiber.Ctx, md5, ext, mime string) (*PreCheckResp, error) {
_, err := models.Medias.GetByHash(ctx.Context(), md5)
_, err := model.MediasModel.GetByHash(ctx.Context(), md5)
if err != nil && errors.Is(err, qrm.ErrNoRows) {
preSign, err := up.oss.PreSignUpload(ctx.Context(), fmt.Sprintf("%s.%s", md5, ext), mime)
if err != nil {
@@ -64,7 +63,7 @@ type PostUploadedForm struct {
// @Router /admin/uploads/post-uploaded-action [post]
// @Bind body body
func (up *uploads) PostUploadedAction(ctx fiber.Ctx, body *PostUploadedForm) error {
m, err := models.Medias.GetByHash(ctx.Context(), body.Md5)
m, err := model.MediasModel.GetByHash(ctx.Context(), body.Md5)
if err != nil && !errors.Is(err, qrm.ErrNoRows) {
return err
}
@@ -76,7 +75,7 @@ func (up *uploads) PostUploadedAction(ctx fiber.Ctx, body *PostUploadedForm) err
Hash: body.Md5,
Path: filepath.Join(UPLOAD_PATH, body.Md5+filepath.Ext(body.OriginalName)),
}
if err := models.Medias.Create(ctx.Context(), m); err != nil {
if err := model.MediasModel.Create(ctx.Context(), m); err != nil {
return err
}

View File

@@ -1,9 +1,8 @@
package admin
import (
"quyun/app/models"
"quyun/app/model"
"quyun/app/requests"
"quyun/database/schemas/public/model"
"github.com/gofiber/fiber/v3"
)
@@ -21,8 +20,8 @@ type users struct{}
// @Bind pagination query
// @Bind query query
func (ctl *users) List(ctx fiber.Ctx, pagination *requests.Pagination, query *UserListQuery) (*requests.Pager, error) {
cond := models.Users.BuildConditionWithKey(query.Keyword)
return models.Users.List(ctx.Context(), pagination, cond)
cond := model.UsersModel.BuildConditionWithKey(query.Keyword)
return model.UsersModel.List(ctx.Context(), pagination, cond)
}
// Show user
@@ -30,7 +29,7 @@ func (ctl *users) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Us
// @Router /admin/users/:id [get]
// @Bind id path
func (ctl *users) Show(ctx fiber.Ctx, id int64) (*model.Users, error) {
return models.Users.GetByID(ctx.Context(), id)
return model.UsersModel.GetByID(ctx.Context(), id)
}
// Articles show user bought articles
@@ -39,7 +38,7 @@ func (ctl *users) Show(ctx fiber.Ctx, id int64) (*model.Users, error) {
// @Bind id path
// @Bind pagination query
func (ctl *users) Articles(ctx fiber.Ctx, id int64, pagination *requests.Pagination) (*requests.Pager, error) {
return models.Posts.Bought(ctx.Context(), id, pagination)
return model.PostsModel.Bought(ctx.Context(), id, pagination)
}
type UserBalance struct {
@@ -52,5 +51,5 @@ type UserBalance struct {
// @Bind id path
// @Bind balance body
func (ctl *users) Balance(ctx fiber.Ctx, id int64, balance *UserBalance) error {
return models.Users.AddBalance(ctx.Context(), id, balance.Balance)
return model.UsersModel.AddBalance(ctx.Context(), id, balance.Balance)
}