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

@@ -51,8 +51,9 @@ func (r *Routes) Name() string {
func (r *Routes) Register(router fiber.Router) {
// Register routes for controller: Common
r.log.Debugf("Registering route: Post /v1/upload -> common.Upload")
router.Post("/v1/upload"[len(r.Path()):], DataFunc2(
router.Post("/v1/upload"[len(r.Path()):], DataFunc3(
r.common.Upload,
Local[*models.User]("__ctx_user"),
File[multipart.FileHeader]("file"),
Body[string]("type"),
))
@@ -90,72 +91,86 @@ func (r *Routes) Register(router fiber.Router) {
))
// Register routes for controller: Creator
r.log.Debugf("Registering route: Delete /v1/creator/contents/:id -> creator.DeleteContent")
router.Delete("/v1/creator/contents/:id"[len(r.Path()):], Func1(
router.Delete("/v1/creator/contents/:id"[len(r.Path()):], Func2(
r.creator.DeleteContent,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
))
r.log.Debugf("Registering route: Delete /v1/creator/payout-accounts -> creator.RemovePayoutAccount")
router.Delete("/v1/creator/payout-accounts"[len(r.Path()):], Func1(
router.Delete("/v1/creator/payout-accounts"[len(r.Path()):], Func2(
r.creator.RemovePayoutAccount,
Local[*models.User]("__ctx_user"),
QueryParam[string]("id"),
))
r.log.Debugf("Registering route: Get /v1/creator/contents -> creator.ListContents")
router.Get("/v1/creator/contents"[len(r.Path()):], DataFunc1(
router.Get("/v1/creator/contents"[len(r.Path()):], DataFunc2(
r.creator.ListContents,
Local[*models.User]("__ctx_user"),
Query[dto.CreatorContentListFilter]("filter"),
))
r.log.Debugf("Registering route: Get /v1/creator/dashboard -> creator.Dashboard")
router.Get("/v1/creator/dashboard"[len(r.Path()):], DataFunc0(
router.Get("/v1/creator/dashboard"[len(r.Path()):], DataFunc1(
r.creator.Dashboard,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/creator/orders -> creator.ListOrders")
router.Get("/v1/creator/orders"[len(r.Path()):], DataFunc1(
router.Get("/v1/creator/orders"[len(r.Path()):], DataFunc2(
r.creator.ListOrders,
Local[*models.User]("__ctx_user"),
Query[dto.CreatorOrderListFilter]("filter"),
))
r.log.Debugf("Registering route: Get /v1/creator/payout-accounts -> creator.ListPayoutAccounts")
router.Get("/v1/creator/payout-accounts"[len(r.Path()):], DataFunc0(
router.Get("/v1/creator/payout-accounts"[len(r.Path()):], DataFunc1(
r.creator.ListPayoutAccounts,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/creator/settings -> creator.GetSettings")
router.Get("/v1/creator/settings"[len(r.Path()):], DataFunc0(
router.Get("/v1/creator/settings"[len(r.Path()):], DataFunc1(
r.creator.GetSettings,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Post /v1/creator/apply -> creator.Apply")
router.Post("/v1/creator/apply"[len(r.Path()):], Func1(
router.Post("/v1/creator/apply"[len(r.Path()):], Func2(
r.creator.Apply,
Local[*models.User]("__ctx_user"),
Body[dto.ApplyForm]("form"),
))
r.log.Debugf("Registering route: Post /v1/creator/contents -> creator.CreateContent")
router.Post("/v1/creator/contents"[len(r.Path()):], Func1(
router.Post("/v1/creator/contents"[len(r.Path()):], Func2(
r.creator.CreateContent,
Local[*models.User]("__ctx_user"),
Body[dto.ContentCreateForm]("form"),
))
r.log.Debugf("Registering route: Post /v1/creator/orders/:id/refund -> creator.Refund")
router.Post("/v1/creator/orders/:id/refund"[len(r.Path()):], Func2(
router.Post("/v1/creator/orders/:id/refund"[len(r.Path()):], Func3(
r.creator.Refund,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
Body[dto.RefundForm]("form"),
))
r.log.Debugf("Registering route: Post /v1/creator/payout-accounts -> creator.AddPayoutAccount")
router.Post("/v1/creator/payout-accounts"[len(r.Path()):], Func1(
router.Post("/v1/creator/payout-accounts"[len(r.Path()):], Func2(
r.creator.AddPayoutAccount,
Local[*models.User]("__ctx_user"),
Body[dto.PayoutAccount]("form"),
))
r.log.Debugf("Registering route: Post /v1/creator/withdraw -> creator.Withdraw")
router.Post("/v1/creator/withdraw"[len(r.Path()):], Func1(
router.Post("/v1/creator/withdraw"[len(r.Path()):], Func2(
r.creator.Withdraw,
Local[*models.User]("__ctx_user"),
Body[dto.WithdrawForm]("form"),
))
r.log.Debugf("Registering route: Put /v1/creator/contents/:id -> creator.UpdateContent")
router.Put("/v1/creator/contents/:id"[len(r.Path()):], Func2(
router.Put("/v1/creator/contents/:id"[len(r.Path()):], Func3(
r.creator.UpdateContent,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
Body[dto.ContentUpdateForm]("form"),
))
r.log.Debugf("Registering route: Put /v1/creator/settings -> creator.UpdateSettings")
router.Put("/v1/creator/settings"[len(r.Path()):], Func1(
router.Put("/v1/creator/settings"[len(r.Path()):], Func2(
r.creator.UpdateSettings,
Local[*models.User]("__ctx_user"),
Body[dto.Settings]("form"),
))
// Register routes for controller: Storage
@@ -175,18 +190,21 @@ func (r *Routes) Register(router fiber.Router) {
))
// Register routes for controller: Tenant
r.log.Debugf("Registering route: Delete /v1/tenants/:id/follow -> tenant.Unfollow")
router.Delete("/v1/tenants/:id/follow"[len(r.Path()):], Func1(
router.Delete("/v1/tenants/:id/follow"[len(r.Path()):], Func2(
r.tenant.Unfollow,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
))
r.log.Debugf("Registering route: Get /v1/tenants/:id -> tenant.Get")
router.Get("/v1/tenants/:id"[len(r.Path()):], DataFunc1(
router.Get("/v1/tenants/:id"[len(r.Path()):], DataFunc2(
r.tenant.Get,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
))
r.log.Debugf("Registering route: Post /v1/tenants/:id/follow -> tenant.Follow")
router.Post("/v1/tenants/:id/follow"[len(r.Path()):], Func1(
router.Post("/v1/tenants/:id/follow"[len(r.Path()):], Func2(
r.tenant.Follow,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
))
// Register routes for controller: Transaction
@@ -196,13 +214,15 @@ func (r *Routes) Register(router fiber.Router) {
PathParam[string]("id"),
))
r.log.Debugf("Registering route: Post /v1/orders -> transaction.Create")
router.Post("/v1/orders"[len(r.Path()):], DataFunc1(
router.Post("/v1/orders"[len(r.Path()):], DataFunc2(
r.transaction.Create,
Local[*models.User]("__ctx_user"),
Body[dto.OrderCreateForm]("form"),
))
r.log.Debugf("Registering route: Post /v1/orders/:id/pay -> transaction.Pay")
router.Post("/v1/orders/:id/pay"[len(r.Path()):], DataFunc2(
router.Post("/v1/orders/:id/pay"[len(r.Path()):], DataFunc3(
r.transaction.Pay,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
Body[dto.OrderPayForm]("form"),
))
@@ -213,13 +233,15 @@ func (r *Routes) Register(router fiber.Router) {
))
// Register routes for controller: User
r.log.Debugf("Registering route: Delete /v1/me/favorites/:contentId -> user.RemoveFavorite")
router.Delete("/v1/me/favorites/:contentId"[len(r.Path()):], Func1(
router.Delete("/v1/me/favorites/:contentId"[len(r.Path()):], Func2(
r.user.RemoveFavorite,
Local[*models.User]("__ctx_user"),
PathParam[string]("contentId"),
))
r.log.Debugf("Registering route: Delete /v1/me/likes/:contentId -> user.RemoveLike")
router.Delete("/v1/me/likes/:contentId"[len(r.Path()):], Func1(
router.Delete("/v1/me/likes/:contentId"[len(r.Path()):], Func2(
r.user.RemoveLike,
Local[*models.User]("__ctx_user"),
PathParam[string]("contentId"),
))
r.log.Debugf("Registering route: Get /v1/me -> user.Me")
@@ -228,69 +250,83 @@ func (r *Routes) Register(router fiber.Router) {
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/me/coupons -> user.MyCoupons")
router.Get("/v1/me/coupons"[len(r.Path()):], DataFunc1(
router.Get("/v1/me/coupons"[len(r.Path()):], DataFunc2(
r.user.MyCoupons,
Local[*models.User]("__ctx_user"),
QueryParam[string]("status"),
))
r.log.Debugf("Registering route: Get /v1/me/favorites -> user.Favorites")
router.Get("/v1/me/favorites"[len(r.Path()):], DataFunc0(
router.Get("/v1/me/favorites"[len(r.Path()):], DataFunc1(
r.user.Favorites,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/me/following -> user.Following")
router.Get("/v1/me/following"[len(r.Path()):], DataFunc0(
router.Get("/v1/me/following"[len(r.Path()):], DataFunc1(
r.user.Following,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/me/library -> user.Library")
router.Get("/v1/me/library"[len(r.Path()):], DataFunc0(
router.Get("/v1/me/library"[len(r.Path()):], DataFunc1(
r.user.Library,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/me/likes -> user.Likes")
router.Get("/v1/me/likes"[len(r.Path()):], DataFunc0(
router.Get("/v1/me/likes"[len(r.Path()):], DataFunc1(
r.user.Likes,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Get /v1/me/notifications -> user.Notifications")
router.Get("/v1/me/notifications"[len(r.Path()):], DataFunc2(
router.Get("/v1/me/notifications"[len(r.Path()):], DataFunc3(
r.user.Notifications,
Local[*models.User]("__ctx_user"),
QueryParam[string]("type"),
QueryParam[int]("page"),
))
r.log.Debugf("Registering route: Get /v1/me/orders -> user.ListOrders")
router.Get("/v1/me/orders"[len(r.Path()):], DataFunc1(
router.Get("/v1/me/orders"[len(r.Path()):], DataFunc2(
r.user.ListOrders,
Local[*models.User]("__ctx_user"),
QueryParam[string]("status"),
))
r.log.Debugf("Registering route: Get /v1/me/orders/:id -> user.GetOrder")
router.Get("/v1/me/orders/:id"[len(r.Path()):], DataFunc1(
router.Get("/v1/me/orders/:id"[len(r.Path()):], DataFunc2(
r.user.GetOrder,
Local[*models.User]("__ctx_user"),
PathParam[string]("id"),
))
r.log.Debugf("Registering route: Get /v1/me/wallet -> user.Wallet")
router.Get("/v1/me/wallet"[len(r.Path()):], DataFunc0(
router.Get("/v1/me/wallet"[len(r.Path()):], DataFunc1(
r.user.Wallet,
Local[*models.User]("__ctx_user"),
))
r.log.Debugf("Registering route: Post /v1/me/favorites -> user.AddFavorite")
router.Post("/v1/me/favorites"[len(r.Path()):], Func1(
router.Post("/v1/me/favorites"[len(r.Path()):], Func2(
r.user.AddFavorite,
Local[*models.User]("__ctx_user"),
QueryParam[string]("contentId"),
))
r.log.Debugf("Registering route: Post /v1/me/likes -> user.AddLike")
router.Post("/v1/me/likes"[len(r.Path()):], Func1(
router.Post("/v1/me/likes"[len(r.Path()):], Func2(
r.user.AddLike,
Local[*models.User]("__ctx_user"),
QueryParam[string]("contentId"),
))
r.log.Debugf("Registering route: Post /v1/me/realname -> user.RealName")
router.Post("/v1/me/realname"[len(r.Path()):], Func1(
router.Post("/v1/me/realname"[len(r.Path()):], Func2(
r.user.RealName,
Local[*models.User]("__ctx_user"),
Body[dto.RealNameForm]("form"),
))
r.log.Debugf("Registering route: Post /v1/me/wallet/recharge -> user.Recharge")
router.Post("/v1/me/wallet/recharge"[len(r.Path()):], DataFunc1(
router.Post("/v1/me/wallet/recharge"[len(r.Path()):], DataFunc2(
r.user.Recharge,
Local[*models.User]("__ctx_user"),
Body[dto.RechargeForm]("form"),
))
r.log.Debugf("Registering route: Put /v1/me -> user.Update")
router.Put("/v1/me"[len(r.Path()):], Func1(
router.Put("/v1/me"[len(r.Path()):], Func2(
r.user.Update,
Local[*models.User]("__ctx_user"),
Body[dto.UserUpdate]("form"),
))