Files
shangbangbang/internal/routers/user_router.go
T
solosw 99b11b04e4 1.0
2026-01-05 14:11:34 +08:00

124 lines
5.3 KiB
Go

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) // 获取对账统计数据
}
}