feat(quality-owner): 增加优质号主、极品专区与无忧租号保险

- 支持保证金余额支付、在线支付开通及后台手动设置审计
- 新增极品专区发布权限、赔付方案与保险结算费率快照
- 优化首页、商品卡和个人中心的优质号主身份展示
This commit is contained in:
yml2213
2026-11-04 15:04:35 +08:00
parent 812e95e7d1
commit 98174c0e33
90 changed files with 3478 additions and 64 deletions
+19
View File
@@ -35,6 +35,7 @@ import (
"hfb_sys/backend/internal/modules/paymentaccount"
"hfb_sys/backend/internal/modules/paymentconfig"
"hfb_sys/backend/internal/modules/pickup"
"hfb_sys/backend/internal/modules/qualityowner"
"hfb_sys/backend/internal/modules/realname"
"hfb_sys/backend/internal/modules/supportgroup"
"hfb_sys/backend/internal/modules/systemconfig"
@@ -165,6 +166,10 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
if deps.DB != nil {
listingRepo = listing.NewRepository(deps.DB, chatCreator)
}
var qualityOwnerRepo *qualityowner.Repository
if deps.DB != nil {
qualityOwnerRepo = qualityowner.NewRepository(deps.DB)
}
var paymentRepo *payment.Repository
var orderRepo *order.Repository
if deps.DB != nil {
@@ -267,6 +272,9 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
if mohongRepo != nil {
paymentOpts = append(paymentOpts, payment.WithMohongRepo(mohongRepo))
}
if qualityOwnerRepo != nil {
paymentOpts = append(paymentOpts, payment.WithQualityOwnerRepo(qualityOwnerRepo))
}
paymentRepo = payment.NewRepository(deps.DB, paymentConfigRepo, orderRepo, paymentOpts...)
}
paymentService := payment.NewService(paymentRepo)
@@ -309,6 +317,8 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
}
systemConfigService := systemconfig.NewService(systemConfigRepo)
systemConfigHandler := systemconfig.NewHandler(systemConfigService)
qualityOwnerService := qualityowner.NewService(qualityOwnerRepo)
qualityOwnerHandler := qualityowner.NewHandler(qualityOwnerService)
var distributionRepo *distribution.Repository
if deps.DB != nil {
distributionRepo = distribution.NewRepository(deps.DB, deps.Redis)
@@ -477,6 +487,14 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
api.PUT("/me", requireAuth, userHandler.UpdateMe)
api.PUT("/password", requireAuth, authHandler.SetPassword)
qualityOwnerRoutes := api.Group("/quality-owner", requireAuth)
{
qualityOwnerRoutes.GET("/status", qualityOwnerHandler.Status)
qualityOwnerRoutes.POST("/activate", requireRealname, qualityOwnerHandler.Activate)
qualityOwnerRoutes.POST("/payment", requireRealname, paymentHandler.StartQualityOwner)
qualityOwnerRoutes.GET("/payment", paymentHandler.QueryQualityOwner)
}
if invitationHandler != nil {
api.GET("/invitations/code-info", invitationHandler.GetInviteInfo)
api.GET("/invitations/code-info/:code", invitationHandler.GetInviteInfo)
@@ -768,6 +786,7 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
adminRoutes.POST("/users/:id/manual-realname", requirePerm("user:manual_realname"), adminUserHandler.ManualRealname)
adminRoutes.POST("/users/:id/revoke-realname", requirePerm("user:revoke_realname"), adminUserHandler.RevokeRealname)
adminRoutes.POST("/users/:id/wallet/adjust", requirePerm("user:wallet_adjust"), adminUserHandler.AdjustWallet)
adminRoutes.POST("/users/:id/quality-owner", requirePerm("user:quality_owner"), qualityOwnerHandler.AdminSet)
adminRoutes.GET("/orders", requirePerm("order:list"), orderHandler.AdminList)
adminRoutes.GET("/listing-orders/:id/latest", requirePerm("order:view"), orderHandler.AdminLatestByListing)
adminRoutes.GET("/orders/:id", requirePerm("order:view"), orderHandler.AdminDetail)