This commit is contained in:
solosw
2026-01-05 14:11:34 +08:00
parent 35ef825371
commit 99b11b04e4
658 changed files with 99266 additions and 0 deletions
+168
View File
@@ -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)
}
+53
View File
@@ -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) // 批量文件上传
}
}
+27
View File
@@ -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
}
+123
View File
@@ -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) // 获取对账统计数据
}
}