94 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package routes
 | |
| 
 | |
| import (
 | |
| 	"tyapi-server/internal/infrastructure/http/handlers"
 | |
| 	sharedhttp "tyapi-server/internal/shared/http"
 | |
| 	"tyapi-server/internal/shared/middleware"
 | |
| 
 | |
| 	"go.uber.org/zap"
 | |
| )
 | |
| 
 | |
| // FinanceRoutes 财务路由注册器
 | |
| type FinanceRoutes struct {
 | |
| 	financeHandler      *handlers.FinanceHandler
 | |
| 	authMiddleware      *middleware.JWTAuthMiddleware
 | |
| 	adminAuthMiddleware *middleware.AdminAuthMiddleware
 | |
| 	logger              *zap.Logger
 | |
| }
 | |
| 
 | |
| // NewFinanceRoutes 创建财务路由注册器
 | |
| func NewFinanceRoutes(
 | |
| 	financeHandler *handlers.FinanceHandler,
 | |
| 	authMiddleware *middleware.JWTAuthMiddleware,
 | |
| 	adminAuthMiddleware *middleware.AdminAuthMiddleware,
 | |
| 	logger *zap.Logger,
 | |
| ) *FinanceRoutes {
 | |
| 	return &FinanceRoutes{
 | |
| 		financeHandler:      financeHandler,
 | |
| 		authMiddleware:      authMiddleware,
 | |
| 		adminAuthMiddleware: adminAuthMiddleware,
 | |
| 		logger:              logger,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Register 注册财务相关路由
 | |
| func (r *FinanceRoutes) Register(router *sharedhttp.GinRouter) {
 | |
| 	engine := router.GetEngine()
 | |
| 
 | |
| 	// 支付宝回调路由(不需要认证)
 | |
| 	alipayGroup := engine.Group("/api/v1/finance/alipay")
 | |
| 	{
 | |
| 		alipayGroup.POST("/callback", r.financeHandler.HandleAlipayCallback) // 支付宝异步回调
 | |
| 		alipayGroup.GET("/return", r.financeHandler.HandleAlipayReturn)      // 支付宝同步回调
 | |
| 	}
 | |
| 
 | |
| 	// 财务路由组,需要用户认证
 | |
| 	financeGroup := engine.Group("/api/v1/finance")
 | |
| 	financeGroup.Use(r.authMiddleware.Handle())
 | |
| 	{
 | |
| 		// 钱包相关路由
 | |
| 		walletGroup := financeGroup.Group("/wallet")
 | |
| 		{
 | |
| 			walletGroup.GET("", r.financeHandler.GetWallet)                             // 获取钱包信息
 | |
| 			walletGroup.GET("/transactions", r.financeHandler.GetUserWalletTransactions) // 获取钱包交易记录
 | |
| 			walletGroup.GET("/recharge-config", r.financeHandler.GetRechargeConfig)      // 获取充值配置
 | |
| 			walletGroup.POST("/alipay-recharge", r.financeHandler.CreateAlipayRecharge) // 创建支付宝充值订单
 | |
| 			walletGroup.GET("/recharge-records", r.financeHandler.GetUserRechargeRecords) // 用户充值记录分页
 | |
| 			walletGroup.GET("/alipay-order-status", r.financeHandler.GetAlipayOrderStatus) // 获取支付宝订单状态
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	// 发票相关路由,需要用户认证
 | |
| 	invoiceGroup := engine.Group("/api/v1/invoices")
 | |
| 	invoiceGroup.Use(r.authMiddleware.Handle())
 | |
| 	{
 | |
| 		invoiceGroup.POST("/apply", r.financeHandler.ApplyInvoice)                    // 申请开票
 | |
| 		invoiceGroup.GET("/info", r.financeHandler.GetUserInvoiceInfo)                // 获取用户发票信息
 | |
| 		invoiceGroup.PUT("/info", r.financeHandler.UpdateUserInvoiceInfo)             // 更新用户发票信息
 | |
| 		invoiceGroup.GET("/records", r.financeHandler.GetUserInvoiceRecords)          // 获取用户开票记录
 | |
| 		invoiceGroup.GET("/available-amount", r.financeHandler.GetAvailableAmount)    // 获取可开票金额
 | |
| 		invoiceGroup.GET("/:application_id/download", r.financeHandler.DownloadInvoiceFile) // 下载发票文件
 | |
| 	}
 | |
| 
 | |
| 	// 管理员财务路由组
 | |
| 	adminFinanceGroup := engine.Group("/api/v1/admin/finance")
 | |
| 	adminFinanceGroup.Use(r.adminAuthMiddleware.Handle())
 | |
| 	{
 | |
| 		adminFinanceGroup.POST("/transfer-recharge", r.financeHandler.TransferRecharge) // 对公转账充值
 | |
| 		adminFinanceGroup.POST("/gift-recharge", r.financeHandler.GiftRecharge)         // 赠送充值
 | |
| 		adminFinanceGroup.GET("/recharge-records", r.financeHandler.GetAdminRechargeRecords) // 管理员充值记录分页
 | |
| 	}
 | |
| 
 | |
| 	// 管理员发票相关路由组
 | |
| 	adminInvoiceGroup := engine.Group("/api/v1/admin/invoices")
 | |
| 	adminInvoiceGroup.Use(r.adminAuthMiddleware.Handle())
 | |
| 	{
 | |
| 		adminInvoiceGroup.GET("/pending", r.financeHandler.GetPendingApplications)                    // 获取待处理申请列表
 | |
| 		adminInvoiceGroup.POST("/:application_id/approve", r.financeHandler.ApproveInvoiceApplication) // 通过发票申请
 | |
| 		adminInvoiceGroup.POST("/:application_id/reject", r.financeHandler.RejectInvoiceApplication)   // 拒绝发票申请
 | |
| 		adminInvoiceGroup.GET("/:application_id/download", r.financeHandler.AdminDownloadInvoiceFile)  // 下载发票文件
 | |
| 	}
 | |
| 
 | |
| 	r.logger.Info("财务路由注册完成")
 | |
| }
 |