package routers import ( "awesomeProject/internal/handlers" "awesomeProject/internal/middleware" "github.com/gin-gonic/gin" ) // SetupUserRoutes 设置用户端路由 func SetupUserRoutes(router *gin.Engine) { // 用户端路由组 userGroup := router.Group("/back/user") // 应用JWT中间件(用户端需要登录) userGroup.Use(middleware.JWTMiddleware) userGroup.Use(middleware.UserRoleMiddleware()) // 创建handler实例 productHandler := &handlers.UserProductHandler{} paymentHandler := &handlers.UserPaymentHandler{} addressHandler := &handlers.UserAddressHandler{} orderHandler := &handlers.UserOrderHandler{} warehouseHandler := &handlers.UserWarehouseHandler{} scoreHandler := &handlers.UserScoreHandler{} orderMessageHandler := &handlers.UserOrderMessageHandler{} reconciliationHandler := &handlers.UserReconciliationHandler{} bannerHandler := &handlers.UserBannerHandler{} // 首页数据路由 userGroup.GET("/home/data", productHandler.GetHomeData) // 获取首页数据(分类和一级商品) // 轮播图相关路由 userGroup.GET("/banners", bannerHandler.GetActiveBanners) // 获取启用的轮播图列表 // 商品相关路由 productRoutes := userGroup.Group("/products") { // 商品分类 productRoutes.GET("/categories", productHandler.GetProductCategories) // 获取商品分类列表 // 一级商品(官方商品) primaryGroup := productRoutes.Group("/primary") { primaryGroup.GET("", productHandler.GetPrimaryProducts) // 获取一级商品列表 primaryGroup.GET("/:id", productHandler.GetPrimaryProduct) // 获取一级商品详情 } // 二级商品(用户挂售商品) secondaryGroup := productRoutes.Group("/secondary") { secondaryGroup.GET("", productHandler.GetSecondaryProducts) // 获取二级商品列表 secondaryGroup.GET("/:id", productHandler.GetSecondaryProduct) // 获取二级商品详情 } } // 收款方式相关路由 paymentRoutes := userGroup.Group("/payment") { paymentRoutes.GET("/info", paymentHandler.GetPaymentInfo) // 获取收款方式信息 paymentRoutes.PUT("/info", paymentHandler.UpdatePaymentInfo) // 更新收款方式信息 } // 获取卖家收款信息 userGroup.GET("/seller/:id/info", paymentHandler.GetSellerInfo) // 获取卖家基本信息 userGroup.GET("/seller/:id/payment", paymentHandler.GetSellerPaymentInfo) // 获取卖家收款方式信息 // 收货地址相关路由 addressRoutes := userGroup.Group("/addresses") { addressRoutes.GET("", addressHandler.GetAddressList) // 获取收货地址列表 addressRoutes.GET("/:id", addressHandler.GetAddress) // 获取单个收货地址 addressRoutes.POST("", addressHandler.CreateAddress) // 创建收货地址 addressRoutes.PUT("/:id", addressHandler.UpdateAddress) // 更新收货地址 addressRoutes.DELETE("/:id", addressHandler.DeleteAddress) // 删除收货地址 addressRoutes.PUT("/:id/default", addressHandler.SetDefaultAddress) // 设置默认收货地址 } // 订单相关路由 orderRoutes := userGroup.Group("/orders") { // 买单相关 orderRoutes.POST("/purchase", orderHandler.CreatePurchaseOrder) // 创建买单 orderRoutes.GET("/purchase", orderHandler.GetPurchaseOrders) // 获取买单列表 orderRoutes.GET("/purchase/:id", orderHandler.GetPurchaseOrderDetail) // 获取买单详情 orderRoutes.PUT("/purchase/:id/confirm", orderHandler.ConfirmPurchaseOrder) // 确认买单(买家确认收货) orderRoutes.PUT("/purchase/:id/payment", orderHandler.UploadPaymentProof) // 上传付款凭证 orderRoutes.PUT("/purchase/:id/cancel", orderHandler.CancelOrder) // 取消订单 // 卖单相关 orderRoutes.GET("/sales", orderHandler.GetSalesOrders) // 获取卖单列表 orderRoutes.GET("/sales/:id", orderHandler.GetSalesOrderDetail) // 获取卖单详情 orderRoutes.PUT("/sales/:id/confirm", orderHandler.ConfirmSalesOrder) // 确认卖单(卖家确认发货) // 订单留言相关 orderRoutes.GET("/:order_id/messages", orderMessageHandler.GetOrderMessages) // 获取订单留言列表 orderRoutes.POST("/:order_id/messages", orderMessageHandler.CreateOrderMessage) // 创建订单留言 // 订单统计 orderRoutes.GET("/stats", orderHandler.GetOrderStats) // 获取订单统计信息 } // 仓库相关路由 warehouseRoutes := userGroup.Group("/warehouse") { warehouseRoutes.GET("", warehouseHandler.GetWarehouseList) // 获取仓库商品列表 warehouseRoutes.GET("/:id", warehouseHandler.GetWarehouseItem) // 获取单个仓库商品详情 warehouseRoutes.POST("/:id/sell", warehouseHandler.SellWarehouseItem) // 出售仓库商品 warehouseRoutes.GET("/stats", warehouseHandler.GetWarehouseStats) // 获取仓库统计信息 } // 积分相关路由 scoreRoutes := userGroup.Group("/scores") { scoreRoutes.GET("/records", scoreHandler.GetMyScoreRecords) // 获取我的积分记录列表 scoreRoutes.GET("/stats", scoreHandler.GetMyScoreStats) // 获取我的积分统计信息 } // 对账管理相关路由 reconciliationRoutes := userGroup.Group("/reconciliation") { reconciliationRoutes.GET("/stats", reconciliationHandler.GetReconciliationStats) // 获取对账统计数据 } }