1.0
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"awesomeProject/internal/handlers"
|
||||
"awesomeProject/internal/middleware"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// SetupAdminRoutes 设置管理端路由
|
||||
func SetupAdminRoutes(router *gin.Engine) {
|
||||
// 管理端路由组
|
||||
adminGroup := router.Group("/back/admin")
|
||||
|
||||
// 应用JWT中间件
|
||||
adminGroup.Use(middleware.JWTMiddleware)
|
||||
|
||||
// 创建handler实例
|
||||
userHandler := &handlers.AdminUserHandler{}
|
||||
orderHandler := &handlers.AdminOrderHandler{}
|
||||
scoreHandler := &handlers.AdminScoreHandler{}
|
||||
productHandler := &handlers.AdminProductHandler{}
|
||||
configHandler := &handlers.AdminConfigHandler{}
|
||||
paymentHandler := &handlers.AdminPaymentHandler{}
|
||||
orderMessageHandler := &handlers.AdminOrderMessageHandler{}
|
||||
bannerHandler := &handlers.AdminBannerHandler{}
|
||||
|
||||
// 用户管理路由(管理员和代理商都可访问,但代理商有限制)
|
||||
userRoutes := adminGroup.Group("/users")
|
||||
|
||||
userRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
||||
{
|
||||
userRoutes.GET("", userHandler.GetUsers) // 获取用户列表
|
||||
|
||||
userRoutes.GET("/:id", userHandler.GetUser) // 获取单个用户信息
|
||||
userRoutes.GET("/stats", userHandler.GetUserStats) // 获取用户统计
|
||||
userRoutes.GET("/search-stats", userHandler.SearchUserStats) // 搜索用户统计
|
||||
// 以下接口仅管理员可访问
|
||||
userRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
|
||||
userRoutes.POST("", userHandler.CreateUser) // 创建用户
|
||||
userRoutes.PUT("/:id", userHandler.UpdateUser) // 更新用户
|
||||
userRoutes.PUT("/:id/expiry", userHandler.SetUserExpiryDate) // 设置用户过期时间
|
||||
userRoutes.DELETE("/:id", userHandler.DeleteUser) // 删除用户
|
||||
}
|
||||
|
||||
// 用户库存管理路由(仅管理员可访问)
|
||||
warehouseRoutes := adminGroup.Group("/warehouse")
|
||||
warehouseRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
{
|
||||
warehouseRoutes.GET("/users", userHandler.GetAllUserWarehouses) // 获取所有用户库存汇总
|
||||
}
|
||||
|
||||
// 订单管理路由(管理员和代理商都可访问,但代理商有限制)
|
||||
orderRoutes := adminGroup.Group("/orders")
|
||||
orderRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
||||
{
|
||||
// 买单管理
|
||||
purchaseGroup := orderRoutes.Group("/purchase")
|
||||
{
|
||||
purchaseGroup.GET("", orderHandler.GetPurchaseOrders) // 获取买单列表
|
||||
purchaseGroup.GET("/stats", orderHandler.GetOrderStats) // 获取订单统计
|
||||
purchaseGroup.GET("/trend", orderHandler.GetOrderTrend) // 获取订单趋势
|
||||
purchaseGroup.GET("/activities", orderHandler.GetRecentActivities) // 获取最近活动
|
||||
purchaseGroup.GET("/:id", orderHandler.GetPurchaseOrder) // 获取单个买单详情
|
||||
|
||||
// 以下接口仅管理员可访问
|
||||
purchaseGroup.Use(middleware.AdminRoleMiddleware())
|
||||
purchaseGroup.PUT("/:id/status", orderHandler.UpdatePurchaseOrderStatus) // 更新买单状态
|
||||
}
|
||||
|
||||
// 卖单管理
|
||||
salesGroup := orderRoutes.Group("/sales")
|
||||
{
|
||||
salesGroup.GET("", orderHandler.GetSalesOrders) // 获取卖单列表
|
||||
salesGroup.GET("/:id", orderHandler.GetSalesOrder) // 获取单个卖单详情
|
||||
|
||||
// 以下接口仅管理员可访问
|
||||
salesGroup.Use(middleware.AdminRoleMiddleware())
|
||||
salesGroup.PUT("/:id/status", orderHandler.UpdateSalesOrderStatus) // 更新卖单状态
|
||||
}
|
||||
|
||||
// 订单留言管理(管理员和代理商都可访问)
|
||||
orderRoutes.GET("/:order_id/messages", orderMessageHandler.GetOrderMessages) // 获取订单留言列表
|
||||
orderRoutes.POST("/:order_id/messages", orderMessageHandler.CreateOrderMessage) // 创建订单留言
|
||||
}
|
||||
|
||||
// 积分管理路由(管理员和代理商都可访问,但代理商有限制)
|
||||
scoreRoutes := adminGroup.Group("/scores")
|
||||
scoreRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
||||
{
|
||||
scoreRoutes.GET("", scoreHandler.GetScoreRecords) // 获取积分记录列表
|
||||
scoreRoutes.GET("/stats", scoreHandler.GetScoreStats) // 获取积分统计
|
||||
scoreRoutes.GET("/:id", scoreHandler.GetScoreRecord) // 获取单个积分记录详情
|
||||
|
||||
// 以下接口仅管理员可访问
|
||||
scoreRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
scoreRoutes.POST("", scoreHandler.CreateScoreRecord) // 创建积分记录
|
||||
scoreRoutes.PUT("/:id", scoreHandler.UpdateScoreRecord) // 更新积分记录
|
||||
scoreRoutes.DELETE("/:id", scoreHandler.DeleteScoreRecord) // 删除积分记录
|
||||
}
|
||||
|
||||
// 商品管理路由(仅管理员可访问)
|
||||
productRoutes := adminGroup.Group("/products")
|
||||
productRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
{
|
||||
// 商品分类管理
|
||||
categoryGroup := productRoutes.Group("/categories")
|
||||
{
|
||||
categoryGroup.GET("", productHandler.GetProductCategories) // 获取分类列表
|
||||
categoryGroup.POST("", productHandler.CreateProductCategory) // 创建分类
|
||||
categoryGroup.PUT("/:id", productHandler.UpdateProductCategory) // 更新分类
|
||||
categoryGroup.DELETE("/:id", productHandler.DeleteProductCategory) // 删除分类
|
||||
}
|
||||
|
||||
// 一级商品管理
|
||||
primaryGroup := productRoutes.Group("/primary")
|
||||
{
|
||||
primaryGroup.GET("", productHandler.GetPrimaryProducts) // 获取一级商品列表
|
||||
primaryGroup.GET("/stats", productHandler.GetProductStats) // 获取商品统计
|
||||
primaryGroup.GET("/:id", productHandler.GetPrimaryProduct) // 获取单个一级商品详情
|
||||
primaryGroup.POST("", productHandler.CreatePrimaryProduct) // 创建一级商品
|
||||
primaryGroup.PUT("/:id", productHandler.UpdatePrimaryProduct) // 更新一级商品
|
||||
primaryGroup.DELETE("/:id", productHandler.DeletePrimaryProduct) // 删除一级商品
|
||||
}
|
||||
|
||||
// 二级商品管理(仅查看)
|
||||
secondaryGroup := productRoutes.Group("/secondary")
|
||||
{
|
||||
secondaryGroup.GET("", productHandler.GetSecondaryProducts) // 获取二级商品列表
|
||||
}
|
||||
}
|
||||
|
||||
// 系统配置管理路由(仅管理员可访问)
|
||||
configRoutes := adminGroup.Group("/configs")
|
||||
configRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
{
|
||||
configRoutes.GET("", configHandler.GetSystemConfigs) // 获取系统配置列表
|
||||
configRoutes.GET("/:id", configHandler.GetSystemConfig) // 获取单个系统配置
|
||||
configRoutes.POST("", configHandler.CreateSystemConfig) // 创建系统配置
|
||||
configRoutes.PUT("/:id", configHandler.UpdateSystemConfig) // 更新系统配置
|
||||
configRoutes.DELETE("/:id", configHandler.DeleteSystemConfig) // 删除系统配置
|
||||
}
|
||||
|
||||
// 管理员付款方式路由
|
||||
paymentRoutes := adminGroup.Group("/payment")
|
||||
{
|
||||
paymentRoutes.GET("/info", paymentHandler.GetPaymentInfo) // 获取管理员付款方式信息(无需权限验证,用户购买时需要查看)
|
||||
|
||||
// 以下接口仅管理员可访问
|
||||
paymentRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
paymentRoutes.PUT("/info", paymentHandler.UpdatePaymentInfo) // 更新管理员付款方式信息
|
||||
}
|
||||
|
||||
// 轮播图管理路由(仅管理员可访问)
|
||||
bannerRoutes := adminGroup.Group("/banners")
|
||||
bannerRoutes.Use(middleware.AdminRoleMiddleware())
|
||||
{
|
||||
bannerRoutes.GET("", bannerHandler.GetBanners) // 获取轮播图列表
|
||||
bannerRoutes.GET("/:id", bannerHandler.GetBanner) // 获取单个轮播图
|
||||
bannerRoutes.POST("", bannerHandler.CreateBanner) // 创建轮播图
|
||||
bannerRoutes.PUT("/:id", bannerHandler.UpdateBanner) // 更新轮播图
|
||||
bannerRoutes.DELETE("/:id", bannerHandler.DeleteBanner) // 删除轮播图
|
||||
}
|
||||
|
||||
// 公共配置查询路由(根据key获取配置,无需权限验证)
|
||||
adminGroup.GET("/config/:key", configHandler.GetConfigByKey)
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"awesomeProject/internal/common"
|
||||
"awesomeProject/internal/handlers"
|
||||
"awesomeProject/internal/middleware"
|
||||
"awesomeProject/internal/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// SetupPublicRoutes 设置公共路由
|
||||
func SetupPublicRoutes(router *gin.Engine) {
|
||||
// 创建handler实例
|
||||
authHandler := &handlers.AuthHandler{}
|
||||
uploadHandler := handlers.NewUploadHandler()
|
||||
|
||||
// 公共路由组
|
||||
publicGroup := router.Group("/back")
|
||||
publicGroup.POST("/upload", uploadHandler.UploadFile)
|
||||
publicGroup.GET("/config", func(context *gin.Context) {
|
||||
|
||||
db := common.GetDB()
|
||||
key := context.DefaultQuery("key", "")
|
||||
if key == "" {
|
||||
context.JSON(200, common.Error(500, "键值对为空"))
|
||||
return
|
||||
}
|
||||
var config models.SystemConfig
|
||||
db.Where("config_key=?", key).First(&config)
|
||||
context.JSON(200, common.Success(config.ConfigValue))
|
||||
})
|
||||
// 认证相关路由(无需token验证)
|
||||
authGroup := publicGroup.Group("/auth")
|
||||
{
|
||||
authGroup.POST("/login", authHandler.Login) // 用户登录
|
||||
authGroup.POST("/register", authHandler.Register) // 用户注册
|
||||
authGroup.POST("/send-sms", authHandler.SendSMS) // 发送短信验证码
|
||||
}
|
||||
|
||||
// 需要token验证的公共路由
|
||||
protectedGroup := publicGroup.Group("")
|
||||
|
||||
protectedGroup.Use(middleware.JWTMiddleware)
|
||||
{
|
||||
protectedGroup.GET("/current-user", authHandler.GetCurrentUser) // 获取当前用户信息
|
||||
protectedGroup.PUT("/update-profile", authHandler.UpdateProfile) // 更新个人信息
|
||||
protectedGroup.PUT("/change-password", authHandler.ChangePassword) // 修改密码
|
||||
|
||||
// 文件上传路由
|
||||
// 单文件上传
|
||||
protectedGroup.POST("/upload/batch", uploadHandler.BatchUploadFiles) // 批量文件上传
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"awesomeProject/internal/middleware"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// SetupRouter 设置路由
|
||||
func SetupRouter() *gin.Engine {
|
||||
// 创建gin引擎
|
||||
router := gin.Default()
|
||||
|
||||
// 添加全局中间件
|
||||
router.Use(middleware.CORSMiddleware())
|
||||
|
||||
// 设置公共路由(如登录、注册等)
|
||||
SetupPublicRoutes(router)
|
||||
|
||||
// 设置管理端路由
|
||||
SetupAdminRoutes(router)
|
||||
|
||||
// 设置用户端路由
|
||||
SetupUserRoutes(router)
|
||||
|
||||
return router
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
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) // 获取对账统计数据
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user