feat(marketing): user profile update, ad placement management, logo limits

- Add PUT /auth/profile endpoint for nickname and avatar updates
- Add ad_placements table and CRUD admin API for managing ad units
- Add GET /marketing/ad-config public API for mini-program to fetch ad config
- Reduce logo limit from 10 to 3 per user, add 2MB file size validation

Made-with: Cursor
This commit is contained in:
nepiedg
2026-04-04 04:02:06 +08:00
parent b4170b4863
commit 1c0aeb152a
11 changed files with 347 additions and 7 deletions
+13 -2
View File
@@ -13,6 +13,7 @@ func registerAdminRoutes(
categoryHandler *marketinghandler.CategoryHandler,
templateHandler *marketinghandler.TemplateHandler,
downloadHandler *marketinghandler.DownloadHandler,
adPlacementHandler *marketinghandler.AdPlacementHandler,
) {
if handler == nil {
return
@@ -107,11 +108,21 @@ func registerAdminRoutes(
marketing.PUT("/templates/:id", templateHandler.AdminUpdate)
marketing.DELETE("/templates/:id", templateHandler.AdminDelete)
marketing.GET("/stats", downloadHandler.AdminStats)
marketing.POST("/upload/oss/token", downloadHandler.AdminUploadToken)
marketing.GET("/stats", downloadHandler.AdminStats)
marketing.POST("/upload/oss/token", downloadHandler.AdminUploadToken)
marketing.POST("/upload", downloadHandler.AdminUploadFile)
}
if adPlacementHandler != nil {
ads := protected.Group("/marketing/ad-placements")
{
ads.GET("", adPlacementHandler.AdminList)
ads.POST("", adPlacementHandler.AdminCreate)
ads.PUT("/:id", adPlacementHandler.AdminUpdate)
ads.DELETE("/:id", adPlacementHandler.AdminDelete)
}
}
}
}
}
}