feat: 更新用户上下文处理,服务方法显式接受用户参数,简化上下文调用

This commit is contained in:
2025-12-30 23:01:35 +08:00
parent 54de243fa1
commit e6a8e3f321
7 changed files with 211 additions and 156 deletions

View File

@@ -3,10 +3,9 @@ package v1
import (
"quyun/v2/app/http/v1/dto"
"quyun/v2/app/services"
"quyun/v2/pkg/consts"
"quyun/v2/database/models"
"github.com/gofiber/fiber/v3"
"github.com/spf13/cast"
)
// @provider
@@ -22,10 +21,10 @@ type Creator struct{}
// @Produce json
// @Param form body dto.ApplyForm true "Apply form"
// @Success 200 {string} string "Application submitted"
// @Bind user local key(__ctx_user)
// @Bind form body
func (c *Creator) Apply(ctx fiber.Ctx, form *dto.ApplyForm) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.Apply(ctx.Context(), uid, form)
func (c *Creator) Apply(ctx fiber.Ctx, user *models.User, form *dto.ApplyForm) error {
return services.Creator.Apply(ctx.Context(), user.ID, form)
}
// Get creator dashboard stats
@@ -37,9 +36,9 @@ func (c *Creator) Apply(ctx fiber.Ctx, form *dto.ApplyForm) error {
// @Accept json
// @Produce json
// @Success 200 {object} dto.DashboardStats
func (c *Creator) Dashboard(ctx fiber.Ctx) (*dto.DashboardStats, error) {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.Dashboard(ctx.Context(), uid)
// @Bind user local key(__ctx_user)
func (c *Creator) Dashboard(ctx fiber.Ctx, user *models.User) (*dto.DashboardStats, error) {
return services.Creator.Dashboard(ctx.Context(), user.ID)
}
// List creator contents
@@ -54,10 +53,14 @@ func (c *Creator) Dashboard(ctx fiber.Ctx) (*dto.DashboardStats, error) {
// @Param genre query string false "Genre"
// @Param keyword query string false "Keyword"
// @Success 200 {array} dto.ContentItem
// @Bind user local key(__ctx_user)
// @Bind filter query
func (c *Creator) ListContents(ctx fiber.Ctx, filter *dto.CreatorContentListFilter) ([]dto.ContentItem, error) {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.ListContents(ctx.Context(), uid, filter)
func (c *Creator) ListContents(
ctx fiber.Ctx,
user *models.User,
filter *dto.CreatorContentListFilter,
) ([]dto.ContentItem, error) {
return services.Creator.ListContents(ctx.Context(), user.ID, filter)
}
// Create/Publish content
@@ -70,10 +73,10 @@ func (c *Creator) ListContents(ctx fiber.Ctx, filter *dto.CreatorContentListFilt
// @Produce json
// @Param form body dto.ContentCreateForm true "Content form"
// @Success 200 {string} string "Created"
// @Bind user local key(__ctx_user)
// @Bind form body
func (c *Creator) CreateContent(ctx fiber.Ctx, form *dto.ContentCreateForm) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.CreateContent(ctx.Context(), uid, form)
func (c *Creator) CreateContent(ctx fiber.Ctx, user *models.User, form *dto.ContentCreateForm) error {
return services.Creator.CreateContent(ctx.Context(), user.ID, form)
}
// Update content
@@ -87,11 +90,11 @@ func (c *Creator) CreateContent(ctx fiber.Ctx, form *dto.ContentCreateForm) erro
// @Param id path string true "Content ID"
// @Param form body dto.ContentUpdateForm true "Update form"
// @Success 200 {string} string "Updated"
// @Bind user local key(__ctx_user)
// @Bind id path
// @Bind form body
func (c *Creator) UpdateContent(ctx fiber.Ctx, id string, form *dto.ContentUpdateForm) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.UpdateContent(ctx.Context(), uid, id, form)
func (c *Creator) UpdateContent(ctx fiber.Ctx, user *models.User, id string, form *dto.ContentUpdateForm) error {
return services.Creator.UpdateContent(ctx.Context(), user.ID, id, form)
}
// Delete content
@@ -104,10 +107,10 @@ func (c *Creator) UpdateContent(ctx fiber.Ctx, id string, form *dto.ContentUpdat
// @Produce json
// @Param id path string true "Content ID"
// @Success 200 {string} string "Deleted"
// @Bind user local key(__ctx_user)
// @Bind id path
func (c *Creator) DeleteContent(ctx fiber.Ctx, id string) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.DeleteContent(ctx.Context(), uid, id)
func (c *Creator) DeleteContent(ctx fiber.Ctx, user *models.User, id string) error {
return services.Creator.DeleteContent(ctx.Context(), user.ID, id)
}
// List sales orders
@@ -121,10 +124,14 @@ func (c *Creator) DeleteContent(ctx fiber.Ctx, id string) error {
// @Param status query string false "Status"
// @Param keyword query string false "Keyword"
// @Success 200 {array} dto.Order
// @Bind user local key(__ctx_user)
// @Bind filter query
func (c *Creator) ListOrders(ctx fiber.Ctx, filter *dto.CreatorOrderListFilter) ([]dto.Order, error) {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.ListOrders(ctx.Context(), uid, filter)
func (c *Creator) ListOrders(
ctx fiber.Ctx,
user *models.User,
filter *dto.CreatorOrderListFilter,
) ([]dto.Order, error) {
return services.Creator.ListOrders(ctx.Context(), user.ID, filter)
}
// Process refund
@@ -138,11 +145,11 @@ func (c *Creator) ListOrders(ctx fiber.Ctx, filter *dto.CreatorOrderListFilter)
// @Param id path string true "Order ID"
// @Param form body dto.RefundForm true "Refund form"
// @Success 200 {string} string "Processed"
// @Bind user local key(__ctx_user)
// @Bind id path
// @Bind form body
func (c *Creator) Refund(ctx fiber.Ctx, id string, form *dto.RefundForm) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.ProcessRefund(ctx.Context(), uid, id, form)
func (c *Creator) Refund(ctx fiber.Ctx, user *models.User, id string, form *dto.RefundForm) error {
return services.Creator.ProcessRefund(ctx.Context(), user.ID, id, form)
}
// Get channel settings
@@ -154,9 +161,9 @@ func (c *Creator) Refund(ctx fiber.Ctx, id string, form *dto.RefundForm) error {
// @Accept json
// @Produce json
// @Success 200 {object} dto.Settings
func (c *Creator) GetSettings(ctx fiber.Ctx) (*dto.Settings, error) {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.GetSettings(ctx.Context(), uid)
// @Bind user local key(__ctx_user)
func (c *Creator) GetSettings(ctx fiber.Ctx, user *models.User) (*dto.Settings, error) {
return services.Creator.GetSettings(ctx.Context(), user.ID)
}
// Update channel settings
@@ -169,10 +176,10 @@ func (c *Creator) GetSettings(ctx fiber.Ctx) (*dto.Settings, error) {
// @Produce json
// @Param form body dto.Settings true "Settings form"
// @Success 200 {string} string "Updated"
// @Bind user local key(__ctx_user)
// @Bind form body
func (c *Creator) UpdateSettings(ctx fiber.Ctx, form *dto.Settings) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.UpdateSettings(ctx.Context(), uid, form)
func (c *Creator) UpdateSettings(ctx fiber.Ctx, user *models.User, form *dto.Settings) error {
return services.Creator.UpdateSettings(ctx.Context(), user.ID, form)
}
// List payout accounts
@@ -184,9 +191,9 @@ func (c *Creator) UpdateSettings(ctx fiber.Ctx, form *dto.Settings) error {
// @Accept json
// @Produce json
// @Success 200 {array} dto.PayoutAccount
func (c *Creator) ListPayoutAccounts(ctx fiber.Ctx) ([]dto.PayoutAccount, error) {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.ListPayoutAccounts(ctx.Context(), uid)
// @Bind user local key(__ctx_user)
func (c *Creator) ListPayoutAccounts(ctx fiber.Ctx, user *models.User) ([]dto.PayoutAccount, error) {
return services.Creator.ListPayoutAccounts(ctx.Context(), user.ID)
}
// Add payout account
@@ -199,10 +206,10 @@ func (c *Creator) ListPayoutAccounts(ctx fiber.Ctx) ([]dto.PayoutAccount, error)
// @Produce json
// @Param form body dto.PayoutAccount true "Account form"
// @Success 200 {string} string "Added"
// @Bind user local key(__ctx_user)
// @Bind form body
func (c *Creator) AddPayoutAccount(ctx fiber.Ctx, form *dto.PayoutAccount) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.AddPayoutAccount(ctx.Context(), uid, form)
func (c *Creator) AddPayoutAccount(ctx fiber.Ctx, user *models.User, form *dto.PayoutAccount) error {
return services.Creator.AddPayoutAccount(ctx.Context(), user.ID, form)
}
// Remove payout account
@@ -215,10 +222,10 @@ func (c *Creator) AddPayoutAccount(ctx fiber.Ctx, form *dto.PayoutAccount) error
// @Produce json
// @Param id query string true "Account ID"
// @Success 200 {string} string "Removed"
// @Bind user local key(__ctx_user)
// @Bind id query
func (c *Creator) RemovePayoutAccount(ctx fiber.Ctx, id string) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.RemovePayoutAccount(ctx.Context(), uid, id)
func (c *Creator) RemovePayoutAccount(ctx fiber.Ctx, user *models.User, id string) error {
return services.Creator.RemovePayoutAccount(ctx.Context(), user.ID, id)
}
// Request withdrawal
@@ -231,8 +238,8 @@ func (c *Creator) RemovePayoutAccount(ctx fiber.Ctx, id string) error {
// @Produce json
// @Param form body dto.WithdrawForm true "Withdraw form"
// @Success 200 {string} string "Withdrawal requested"
// @Bind user local key(__ctx_user)
// @Bind form body
func (c *Creator) Withdraw(ctx fiber.Ctx, form *dto.WithdrawForm) error {
uid := cast.ToInt64(ctx.Locals(consts.CtxKeyUser))
return services.Creator.Withdraw(ctx.Context(), uid, form)
func (c *Creator) Withdraw(ctx fiber.Ctx, user *models.User, form *dto.WithdrawForm) error {
return services.Creator.Withdraw(ctx.Context(), user.ID, form)
}