refactor(抽奖记录): 重构抽奖记录列表接口,支持按等级筛选 新增用户昵称、头像及奖品名称、图片等展示字段 优化分页逻辑,默认返回最新100条记录 feat(游戏): 添加扫雷游戏验证和结算接口 新增游戏票据验证和结算相关接口定义及Swagger文档 docs(API): 更新Swagger文档 更新抽奖记录和游戏相关接口的文档描述 style(路由): 添加游戏路由注释 添加扫雷游戏接口路由的占位注释
355 lines
24 KiB
Go
355 lines
24 KiB
Go
package router
|
||
|
||
import (
|
||
"bindbox-game/internal/alert"
|
||
activityapi "bindbox-game/internal/api/activity"
|
||
"bindbox-game/internal/api/admin"
|
||
appapi "bindbox-game/internal/api/app"
|
||
commonapi "bindbox-game/internal/api/common"
|
||
payapi "bindbox-game/internal/api/pay"
|
||
taskcenterapi "bindbox-game/internal/api/task_center"
|
||
userapi "bindbox-game/internal/api/user"
|
||
"bindbox-game/internal/dblogger"
|
||
"bindbox-game/internal/pkg/core"
|
||
"bindbox-game/internal/pkg/logger"
|
||
"bindbox-game/internal/pkg/redis"
|
||
"bindbox-game/internal/repository/mysql"
|
||
"bindbox-game/internal/router/interceptor"
|
||
"context"
|
||
|
||
"github.com/pkg/errors"
|
||
)
|
||
|
||
func NewHTTPMux(logger logger.CustomLogger, db mysql.Repo) (core.Mux, error) {
|
||
if logger == nil {
|
||
return nil, errors.New("logger required")
|
||
}
|
||
|
||
if db == nil {
|
||
return nil, errors.New("db required")
|
||
}
|
||
|
||
mux, err := core.New(logger,
|
||
core.WithEnableCors(),
|
||
core.WithEnableSwagger(),
|
||
core.WithEnablePProf(),
|
||
core.WithAlertNotify(alert.NotifyHandler()),
|
||
core.WithRequestLogger(dblogger.LoggerHandler(db)),
|
||
)
|
||
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
|
||
// Init Redis
|
||
if err := redis.Init(context.Background(), logger); err != nil {
|
||
panic(err)
|
||
}
|
||
rdb := redis.GetClient()
|
||
|
||
// 实例化拦截器
|
||
adminHandler := admin.New(logger, db)
|
||
activityHandler := activityapi.New(logger, db, rdb)
|
||
taskCenterHandler := taskcenterapi.New(logger, db)
|
||
userHandler := userapi.New(logger, db)
|
||
commonHandler := commonapi.New(logger, db)
|
||
payHandler := payapi.New(logger, db)
|
||
// minesweeperHandler := minesweeperapi.New(logger, db)
|
||
intc := interceptor.New(logger, db)
|
||
|
||
// 内部服务接口路由组 (供 Nakama 调用)
|
||
// internalRouter := mux.Group("/internal")
|
||
// {
|
||
// TODO: 添加IP白名单或Internal-Key验证中间件
|
||
// internalRouter.POST("/game/verify", minesweeperHandler.VerifyTicket())
|
||
// internalRouter.POST("/game/settle", minesweeperHandler.SettleGame())
|
||
// }
|
||
|
||
// 管理端非认证接口路由组
|
||
adminNonAuthApiRouter := mux.Group("/api/admin")
|
||
{
|
||
adminNonAuthApiRouter.POST("/login", adminHandler.Login())
|
||
}
|
||
|
||
// 管理端认证接口路由组
|
||
adminAuthApiRouter := mux.Group("/api/admin", core.WrapAuthHandler(intc.AdminTokenAuthVerify), intc.RequireAdminRole())
|
||
|
||
// 系统管理接口(为前端模板路径兼容,挂载到 /api)
|
||
systemApiRouter := mux.Group("/api", core.WrapAuthHandler(intc.AdminTokenAuthVerify), intc.RequireAdminRole())
|
||
{
|
||
// 管理员账号维护接口移除(未被前端使用)
|
||
|
||
adminAuthApiRouter.GET("/activity_categories", adminHandler.ListActivityCategories())
|
||
|
||
// 任务中心管理端
|
||
adminAuthApiRouter.GET("/task-center/tasks", taskCenterHandler.ListTasksForAdmin())
|
||
adminAuthApiRouter.POST("/task-center/tasks", taskCenterHandler.CreateTaskForAdmin())
|
||
adminAuthApiRouter.PUT("/task-center/tasks/:id", taskCenterHandler.ModifyTaskForAdmin())
|
||
adminAuthApiRouter.DELETE("/task-center/tasks/:id", taskCenterHandler.DeleteTaskForAdmin())
|
||
adminAuthApiRouter.POST("/task-center/tasks/:id/tiers", taskCenterHandler.UpsertTaskTiersForAdmin())
|
||
adminAuthApiRouter.GET("/task-center/tasks/:id/tiers", taskCenterHandler.ListTaskTiersForAdmin())
|
||
adminAuthApiRouter.POST("/task-center/tasks/:id/rewards", taskCenterHandler.UpsertTaskRewardsForAdmin())
|
||
adminAuthApiRouter.GET("/task-center/tasks/:id/rewards", taskCenterHandler.ListTaskRewardsForAdmin())
|
||
adminAuthApiRouter.POST("/task-center/events/order-paid", taskCenterHandler.SimulateOrderPaid())
|
||
adminAuthApiRouter.POST("/task-center/events/invite-success", taskCenterHandler.SimulateInviteSuccess())
|
||
|
||
// 工作台
|
||
adminAuthApiRouter.GET("/dashboard/cards", adminHandler.DashboardCards())
|
||
adminAuthApiRouter.GET("/dashboard/user_trend", adminHandler.DashboardUserTrend())
|
||
adminAuthApiRouter.GET("/dashboard/draw_trend", adminHandler.DashboardDrawTrend())
|
||
adminAuthApiRouter.GET("/dashboard/new_users", adminHandler.DashboardNewUsers())
|
||
adminAuthApiRouter.GET("/dashboard/draw_stream", adminHandler.DashboardDrawStream())
|
||
adminAuthApiRouter.GET("/dashboard/todos", adminHandler.DashboardTodos())
|
||
adminAuthApiRouter.GET("/dashboard/order_funnel", adminHandler.DashboardOrderFunnel())
|
||
adminAuthApiRouter.GET("/dashboard/activities", adminHandler.DashboardActivities())
|
||
adminAuthApiRouter.GET("/dashboard/activity_prize_analysis", adminHandler.DashboardActivityPrizeAnalysis())
|
||
adminAuthApiRouter.GET("/dashboard/user_overview", adminHandler.DashboardUserOverview())
|
||
adminAuthApiRouter.POST("/activities", adminHandler.CreateActivity())
|
||
adminAuthApiRouter.GET("/activities", adminHandler.ListActivities())
|
||
adminAuthApiRouter.PUT("/activities/:activity_id", adminHandler.ModifyActivity())
|
||
adminAuthApiRouter.DELETE("/activities/:activity_id", adminHandler.DeleteActivity())
|
||
adminAuthApiRouter.GET("/activities/:activity_id", adminHandler.GetActivityDetail())
|
||
adminAuthApiRouter.POST("/lottery/activities/:activity_id/scheduled_config", adminHandler.SetScheduledConfig())
|
||
adminAuthApiRouter.GET("/lottery/activities/:activity_id/scheduled_config", adminHandler.GetScheduledConfig())
|
||
adminAuthApiRouter.POST("/activities/:activity_id/copy", adminHandler.CopyActivity())
|
||
adminAuthApiRouter.GET("/activities/:activity_id/issues", adminHandler.ListActivityIssues())
|
||
adminAuthApiRouter.POST("/activities/:activity_id/issues", adminHandler.CreateActivityIssue())
|
||
adminAuthApiRouter.PUT("/activities/:activity_id/issues/:issue_id", adminHandler.ModifyActivityIssue())
|
||
adminAuthApiRouter.DELETE("/activities/:activity_id/issues/:issue_id", adminHandler.DeleteActivityIssue())
|
||
adminAuthApiRouter.POST("/activities/:activity_id/issues/:issue_id/rewards", adminHandler.CreateIssueRewards())
|
||
adminAuthApiRouter.GET("/activities/:activity_id/issues/:issue_id/rewards", adminHandler.ListIssueRewards())
|
||
adminAuthApiRouter.PUT("/activities/:activity_id/issues/:issue_id/rewards/:reward_id", adminHandler.ModifyIssueReward())
|
||
adminAuthApiRouter.PUT("/activities/:activity_id/issues/:issue_id/rewards/batch", adminHandler.BatchModifyIssueRewards())
|
||
adminAuthApiRouter.DELETE("/activities/:activity_id/issues/:issue_id/rewards/:reward_id", adminHandler.DeleteIssueReward())
|
||
|
||
// 已移除:批量造数/批量删除用户接口(未被前端使用)
|
||
|
||
// 商品管理:分类与商品
|
||
adminAuthApiRouter.POST("/product_categories", adminHandler.CreateProductCategory())
|
||
adminAuthApiRouter.PUT("/product_categories/:category_id", adminHandler.ModifyProductCategory())
|
||
adminAuthApiRouter.DELETE("/product_categories/:category_id", adminHandler.DeleteProductCategory())
|
||
adminAuthApiRouter.GET("/product_categories", adminHandler.ListProductCategories())
|
||
adminAuthApiRouter.POST("/products", intc.RequireAdminAction("product:create"), adminHandler.CreateProduct())
|
||
adminAuthApiRouter.PUT("/products/:product_id", intc.RequireAdminAction("product:modify"), adminHandler.ModifyProduct())
|
||
adminAuthApiRouter.PUT("/products/batch", intc.RequireAdminAction("product:batch:modify"), adminHandler.BatchUpdateProducts())
|
||
adminAuthApiRouter.DELETE("/products/:product_id", intc.RequireAdminAction("product:delete"), adminHandler.DeleteProduct())
|
||
adminAuthApiRouter.GET("/products", intc.RequireAdminAction("product:view"), adminHandler.ListProducts())
|
||
adminAuthApiRouter.POST("/auth/refresh", adminHandler.RefreshToken())
|
||
|
||
// 轮播图管理
|
||
adminAuthApiRouter.POST("/banners", intc.RequireAdminAction("banner:create"), adminHandler.CreateBanner())
|
||
adminAuthApiRouter.PUT("/banners/:banner_id", intc.RequireAdminAction("banner:modify"), adminHandler.ModifyBanner())
|
||
adminAuthApiRouter.DELETE("/banners/:banner_id", intc.RequireAdminAction("banner:delete"), adminHandler.DeleteBanner())
|
||
adminAuthApiRouter.GET("/banners", intc.RequireAdminAction("banner:view"), adminHandler.ListBanners())
|
||
|
||
// 渠道管理
|
||
adminAuthApiRouter.POST("/channels", intc.RequireAdminAction("channel:create"), adminHandler.CreateChannel())
|
||
adminAuthApiRouter.PUT("/channels/:channel_id", intc.RequireAdminAction("channel:modify"), adminHandler.ModifyChannel())
|
||
adminAuthApiRouter.DELETE("/channels/:channel_id", intc.RequireAdminAction("channel:delete"), adminHandler.DeleteChannel())
|
||
adminAuthApiRouter.GET("/channels", intc.RequireAdminAction("channel:view"), adminHandler.ListChannels())
|
||
adminAuthApiRouter.GET("/channels/:channel_id/stats", intc.RequireAdminAction("channel:view"), adminHandler.ChannelStats())
|
||
|
||
// 系统配置KV
|
||
adminAuthApiRouter.GET("/system/configs", adminHandler.ListSystemConfigs())
|
||
adminAuthApiRouter.POST("/system/configs", adminHandler.UpsertSystemConfig())
|
||
adminAuthApiRouter.PUT("/system/configs/:id", adminHandler.ModifySystemConfig())
|
||
adminAuthApiRouter.DELETE("/system/configs/:id", adminHandler.DeleteSystemConfig())
|
||
|
||
// 用户管理
|
||
adminAuthApiRouter.GET("/users", adminHandler.ListAppUsers())
|
||
adminAuthApiRouter.GET("/users/:user_id/invites", adminHandler.ListUserInvites())
|
||
adminAuthApiRouter.GET("/users/:user_id/orders", adminHandler.ListUserOrders())
|
||
adminAuthApiRouter.GET("/users/:user_id/coupons", adminHandler.ListUserCoupons())
|
||
adminAuthApiRouter.GET("/users/:user_id/coupons/:user_coupon_id/usage", adminHandler.ListUserCouponUsage())
|
||
adminAuthApiRouter.GET("/users/:user_id/points", adminHandler.ListUserPoints())
|
||
adminAuthApiRouter.GET("/users/:user_id/points/balance", adminHandler.GetUserPointsBalance())
|
||
adminAuthApiRouter.POST("/users/:user_id/points/add", adminHandler.AddUserPoints())
|
||
adminAuthApiRouter.POST("/users/:user_id/coupons/add", adminHandler.AddUserCoupon())
|
||
adminAuthApiRouter.POST("/users/:user_id/coupons/:user_coupon_id/void", adminHandler.VoidUserCoupon())
|
||
adminAuthApiRouter.POST("/users/:user_id/rewards/grant", adminHandler.GrantReward())
|
||
adminAuthApiRouter.GET("/users/:user_id/titles", adminHandler.ListUserTitles())
|
||
adminAuthApiRouter.POST("/users/:user_id/token", adminHandler.IssueUserToken())
|
||
adminAuthApiRouter.POST("/users/batch/points/add", adminHandler.BatchAddUserPoints())
|
||
adminAuthApiRouter.POST("/users/batch/coupons/add", adminHandler.BatchAddUserCoupons())
|
||
adminAuthApiRouter.POST("/users/batch/rewards/grant", adminHandler.BatchGrantUserRewards())
|
||
adminAuthApiRouter.GET("/users/:user_id/inventory", adminHandler.ListUserInventory())
|
||
adminAuthApiRouter.POST("/users/:user_id/inventory/:inventory_id/void", adminHandler.VoidUserInventory())
|
||
adminAuthApiRouter.GET("/users/:user_id/item_cards", adminHandler.ListUserItemCards())
|
||
adminAuthApiRouter.POST("/users/:user_id/item_cards/:user_item_card_id/void", adminHandler.VoidUserItemCard())
|
||
// 已移除:为指定用户签发APP令牌接口(未被前端使用)
|
||
// 系统称号与分配
|
||
adminAuthApiRouter.GET("/system_titles", intc.RequireAdminAction("title:view"), adminHandler.ListSystemTitles())
|
||
adminAuthApiRouter.POST("/users/:user_id/titles", intc.RequireAdminAction("title:assign"), adminHandler.AssignUserTitle())
|
||
adminAuthApiRouter.POST("/system_titles", intc.RequireAdminAction("title:create"), adminHandler.CreateSystemTitle())
|
||
adminAuthApiRouter.PUT("/system_titles/:title_id", intc.RequireAdminAction("title:modify"), adminHandler.ModifySystemTitle())
|
||
adminAuthApiRouter.DELETE("/system_titles/:title_id", intc.RequireAdminAction("title:delete"), adminHandler.DeleteSystemTitle())
|
||
adminAuthApiRouter.GET("/system_titles/:title_id/effects", intc.RequireAdminAction("title:view"), adminHandler.ListSystemTitleEffects())
|
||
adminAuthApiRouter.POST("/system_titles/:title_id/effects", intc.RequireAdminAction("title:effect:create"), adminHandler.CreateSystemTitleEffect())
|
||
adminAuthApiRouter.PUT("/system_titles/:title_id/effects/:effect_id", intc.RequireAdminAction("title:effect:modify"), adminHandler.ModifySystemTitleEffect())
|
||
adminAuthApiRouter.DELETE("/system_titles/:title_id/effects/:effect_id", intc.RequireAdminAction("title:effect:delete"), adminHandler.DeleteSystemTitleEffect())
|
||
|
||
// 小程序二维码生成
|
||
adminAuthApiRouter.POST("/miniapp/qrcode", adminHandler.GenerateMiniAppQRCode())
|
||
|
||
// 小程序发货信息管理(虚拟发货)
|
||
adminAuthApiRouter.POST("/miniapp/shipping/set_jump_path", adminHandler.SetMiniAppMsgJumpPath())
|
||
adminAuthApiRouter.POST("/miniapp/shipping/upload_virtual", adminHandler.UploadVirtualShippingForTransaction())
|
||
|
||
// 道具卡管理
|
||
adminAuthApiRouter.POST("/system_item_cards", intc.RequireAdminAction("itemcard:create"), adminHandler.CreateSystemItemCard())
|
||
adminAuthApiRouter.PUT("/system_item_cards/:item_card_id", intc.RequireAdminAction("itemcard:modify"), adminHandler.ModifySystemItemCard())
|
||
adminAuthApiRouter.DELETE("/system_item_cards/:item_card_id", intc.RequireAdminAction("itemcard:delete"), adminHandler.DeleteSystemItemCard())
|
||
adminAuthApiRouter.GET("/system_item_cards", intc.RequireAdminAction("itemcard:view"), adminHandler.ListSystemItemCards())
|
||
// 优惠券管理
|
||
adminAuthApiRouter.POST("/system_coupons", intc.RequireAdminAction("coupon:create"), adminHandler.CreateSystemCoupon())
|
||
adminAuthApiRouter.PUT("/system_coupons/:coupon_id", intc.RequireAdminAction("coupon:modify"), adminHandler.ModifySystemCoupon())
|
||
adminAuthApiRouter.DELETE("/system_coupons/:coupon_id", intc.RequireAdminAction("coupon:delete"), adminHandler.DeleteSystemCoupon())
|
||
adminAuthApiRouter.GET("/system_coupons", intc.RequireAdminAction("coupon:view"), adminHandler.ListSystemCoupons())
|
||
adminAuthApiRouter.POST("/users/:user_id/item_cards", adminHandler.AssignUserItemCard())
|
||
|
||
// 对对碰卡牌类型管理
|
||
adminAuthApiRouter.GET("/matching_card_types", adminHandler.ListMatchingCardTypes())
|
||
adminAuthApiRouter.POST("/matching_card_types", adminHandler.CreateMatchingCardType())
|
||
adminAuthApiRouter.PUT("/matching_card_types/:id", adminHandler.ModifyMatchingCardType())
|
||
adminAuthApiRouter.DELETE("/matching_card_types/:id", adminHandler.DeleteMatchingCardType())
|
||
|
||
// 发货统计
|
||
adminAuthApiRouter.GET("/ops_shipping_stats", intc.RequireAdminAction("ops:shipping:view"), adminHandler.ListShippingStats())
|
||
adminAuthApiRouter.GET("/ops_shipping_stats/:id", intc.RequireAdminAction("ops:shipping:view"), adminHandler.GetShippingStat())
|
||
adminAuthApiRouter.POST("/ops_shipping_stats", intc.RequireAdminAction("ops:shipping:write"), adminHandler.CreateShippingStat())
|
||
adminAuthApiRouter.PUT("/ops_shipping_stats/:id", intc.RequireAdminAction("ops:shipping:write"), adminHandler.ModifyShippingStat())
|
||
adminAuthApiRouter.DELETE("/ops_shipping_stats/:id", intc.RequireAdminAction("ops:shipping:write"), adminHandler.DeleteShippingStat())
|
||
|
||
// 发货订单管理
|
||
adminAuthApiRouter.GET("/shipping/orders", intc.RequireAdminAction("shipping:view"), adminHandler.ListShippingOrders())
|
||
adminAuthApiRouter.GET("/shipping/orders/:id", intc.RequireAdminAction("shipping:view"), adminHandler.GetShippingOrderDetail())
|
||
adminAuthApiRouter.PUT("/shipping/orders/batch", intc.RequireAdminAction("shipping:modify"), adminHandler.UpdateShippingBatch())
|
||
|
||
adminAuthApiRouter.POST("/pay/refunds", intc.RequireAdminAction("refund:create"), adminHandler.CreateRefund())
|
||
adminAuthApiRouter.GET("/pay/refunds", intc.RequireAdminAction("refund:view"), adminHandler.ListRefunds())
|
||
adminAuthApiRouter.GET("/pay/refunds/:refund_no", intc.RequireAdminAction("refund:view"), adminHandler.GetRefundDetail())
|
||
adminAuthApiRouter.GET("/lottery/issues/:issue_id/participants", adminHandler.GetIssueParticipants())
|
||
adminAuthApiRouter.POST("/lottery/issues/:issue_id/settle", adminHandler.SettleIssue())
|
||
adminAuthApiRouter.POST("/lottery/issues/:issue_id/simulate", adminHandler.SimulateIssue())
|
||
adminAuthApiRouter.GET("/ichiban/activities/:activity_id/issues/:issue_id/slots", adminHandler.ListIchibanSlots())
|
||
adminAuthApiRouter.GET("/ichiban/issues/:issue_id/slot/:slot_index", adminHandler.GetIchibanSlotDetail())
|
||
|
||
adminAuthApiRouter.POST("/activities/:activity_id/commitment/generate", adminHandler.GenerateActivityCommitmentGeneral())
|
||
adminAuthApiRouter.GET("/activities/:activity_id/commitment/summary", adminHandler.GetActivityCommitmentSummaryGeneral())
|
||
adminAuthApiRouter.POST("/pay/bills/import", adminHandler.ImportPaymentBill())
|
||
adminAuthApiRouter.GET("/pay/bills/diff", adminHandler.ListPaymentBillDiff())
|
||
adminAuthApiRouter.GET("/pay/orders", intc.RequireAdminAction("order:view"), adminHandler.ListPayOrders())
|
||
adminAuthApiRouter.GET("/pay/orders/:order_no", intc.RequireAdminAction("order:view"), adminHandler.GetPayOrderDetail())
|
||
adminAuthApiRouter.PUT("/pay/orders/:order_no/remark", intc.RequireAdminAction("order:modify"), adminHandler.UpdateOrderRemark())
|
||
adminAuthApiRouter.POST("/pay/orders/:order_no/cancel", intc.RequireAdminAction("order:cancel"), adminHandler.CancelOrder())
|
||
adminAuthApiRouter.PUT("/pay/orders/:order_no/consume", intc.RequireAdminAction("order:consume"), adminHandler.ConsumeOrder())
|
||
adminAuthApiRouter.POST("/pay/orders/:order_no/miniapp_shipping", intc.RequireAdminAction("order:miniapp_shipping"), adminHandler.UploadMiniAppVirtualShippingForOrder())
|
||
adminAuthApiRouter.GET("/pay/orders/export", intc.RequireAdminAction("order:export"), adminHandler.ExportPayOrders())
|
||
// 通用上传
|
||
systemApiRouter.POST("/common/upload/wangeditor", commonHandler.UploadWangEditorImage())
|
||
systemApiRouter.POST("/menu/ensure_titles", adminHandler.EnsureTitlesMenu())
|
||
}
|
||
|
||
// 系统管理:用户/角色/菜单
|
||
{
|
||
|
||
systemApiRouter.GET("/user/list", adminHandler.ListUsers())
|
||
systemApiRouter.GET("/role/list", adminHandler.ListRoles())
|
||
systemApiRouter.GET("/v3/system/menus/simple", adminHandler.ListSimpleMenus())
|
||
systemApiRouter.POST("/role", adminHandler.CreateRole())
|
||
systemApiRouter.PUT("/role/:role_id", adminHandler.ModifyRole())
|
||
systemApiRouter.DELETE("/role/:role_id", adminHandler.DeleteRole())
|
||
systemApiRouter.POST("/role/:role_id/users", adminHandler.AssignRoleUsers())
|
||
systemApiRouter.GET("/role/:role_id/users", adminHandler.ListRoleUsers())
|
||
systemApiRouter.DELETE("/role/:role_id/users/:admin_id", adminHandler.RemoveRoleUser())
|
||
systemApiRouter.POST("/menu", adminHandler.CreateMenu())
|
||
systemApiRouter.PUT("/menu/:menu_id", adminHandler.ModifyMenu())
|
||
systemApiRouter.DELETE("/menu/:menu_id", adminHandler.DeleteMenu())
|
||
systemApiRouter.GET("/menu/:menu_id/actions", adminHandler.ListMenuActions())
|
||
systemApiRouter.POST("/menu/:menu_id/actions", adminHandler.CreateMenuActions())
|
||
systemApiRouter.DELETE("/menu/:menu_id/actions/:action_id", adminHandler.DeleteMenuAction())
|
||
systemApiRouter.POST("/role/:role_id/menus", adminHandler.AssignRoleMenus())
|
||
systemApiRouter.POST("/role/:role_id/actions", adminHandler.AssignRoleActions())
|
||
systemApiRouter.GET("/system/recycle", adminHandler.ListRecycle())
|
||
systemApiRouter.POST("/system/recycle/restore", adminHandler.RestoreRecycle())
|
||
systemApiRouter.DELETE("/system/recycle", adminHandler.ForceDeleteRecycle())
|
||
}
|
||
|
||
// APP 端公开接口路由组
|
||
appPublicApiRouter := mux.Group("/api/app")
|
||
{
|
||
appPublicApiRouter.GET("/activities", activityHandler.ListActivities())
|
||
appPublicApiRouter.GET("/activities/:activity_id", activityHandler.GetActivityDetail())
|
||
appPublicApiRouter.GET("/activities/:activity_id/issues", activityHandler.ListActivityIssues())
|
||
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/rewards", activityHandler.ListIssueRewards())
|
||
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs", activityHandler.ListDrawLogs())
|
||
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs_grouped", activityHandler.ListDrawLogsByLevel())
|
||
|
||
// APP 端轮播图
|
||
appPublicApiRouter.GET("/banners", appapi.NewBanner(logger, db).ListBannersForApp())
|
||
appPublicApiRouter.GET("/notices", appapi.NewNotice(logger, db).ListNoticesForApp())
|
||
appPublicApiRouter.GET("/categories", appapi.NewCategory(logger, db).ListCategoriesForApp())
|
||
|
||
// 登录保持公开
|
||
appPublicApiRouter.POST("/users/weixin/login", userHandler.WeixinLogin())
|
||
appPublicApiRouter.POST("/address-share/submit", userHandler.SubmitAddressShare())
|
||
appPublicApiRouter.GET("/matching/card_types", activityHandler.ListMatchingCardTypes())
|
||
}
|
||
|
||
// APP 端认证接口路由组
|
||
appAuthApiRouter := mux.Group("/api/app", core.WrapAuthHandler(intc.AppTokenAuthVerify))
|
||
{
|
||
appAuthApiRouter.PUT("/users/:user_id", userHandler.ModifyUser())
|
||
appAuthApiRouter.GET("/users/:user_id/orders", userHandler.ListUserOrders())
|
||
appAuthApiRouter.GET("/users/:user_id/coupons", userHandler.ListUserCoupons())
|
||
appAuthApiRouter.GET("/users/:user_id/coupons/stats", userHandler.GetUserCouponStats())
|
||
appAuthApiRouter.GET("/users/:user_id/coupons/:user_coupon_id/usage", userHandler.ListUserCouponUsage())
|
||
appAuthApiRouter.GET("/users/:user_id/points", userHandler.ListUserPoints())
|
||
appAuthApiRouter.GET("/users/:user_id/points/balance", userHandler.GetUserPointsBalance())
|
||
appAuthApiRouter.GET("/users/:user_id/stats", userHandler.GetUserStats())
|
||
appAuthApiRouter.POST("/users/:user_id/phone/bind", userHandler.BindPhone())
|
||
appAuthApiRouter.GET("/users/:user_id/invites", userHandler.ListUserInvites())
|
||
appAuthApiRouter.GET("/users/:user_id/inventory", userHandler.ListUserInventory())
|
||
appAuthApiRouter.GET("/users/:user_id/shipments", userHandler.ListUserShipments())
|
||
appAuthApiRouter.GET("/users/:user_id/item_cards", userHandler.ListUserItemCards())
|
||
appAuthApiRouter.GET("/users/:user_id/item_cards/uses", userHandler.ListUserItemCardUses())
|
||
appAuthApiRouter.POST("/users/:user_id/addresses", userHandler.AddUserAddress())
|
||
appAuthApiRouter.GET("/users/:user_id/addresses", userHandler.ListUserAddresses())
|
||
appAuthApiRouter.PUT("/users/:user_id/addresses/:address_id/default", userHandler.SetDefaultUserAddress())
|
||
appAuthApiRouter.DELETE("/users/:user_id/addresses/:address_id", userHandler.DeleteUserAddress())
|
||
|
||
appAuthApiRouter.POST("/pay/wechat/jsapi/preorder", userHandler.WechatJSAPIPreorder())
|
||
appAuthApiRouter.POST("/lottery/join", activityHandler.JoinLottery())
|
||
|
||
// 任务中心 APP 端
|
||
appAuthApiRouter.GET("/task-center/tasks", taskCenterHandler.ListTasksForApp())
|
||
appAuthApiRouter.GET("/task-center/tasks/:id/progress/:user_id", taskCenterHandler.GetTaskProgressForApp())
|
||
appAuthApiRouter.POST("/task-center/tasks/:id/claim/:user_id", taskCenterHandler.ClaimTaskTierForApp())
|
||
|
||
appAuthApiRouter.GET("/activities/:activity_id/issues/:issue_id/choices", activityHandler.ListIssueChoices())
|
||
appAuthApiRouter.POST("/orders/test/create", userHandler.CreateTestOrder())
|
||
appAuthApiRouter.GET("/orders/:order_id", userHandler.GetOrderDetail())
|
||
appAuthApiRouter.POST("/orders/:order_id/cancel", userHandler.CancelOrder())
|
||
appAuthApiRouter.GET("/products", appapi.NewProduct(logger, db).ListProductsForApp())
|
||
appAuthApiRouter.GET("/products/:id", appapi.NewProduct(logger, db).GetProductDetailForApp())
|
||
appAuthApiRouter.GET("/store/items", appapi.NewStore(logger, db).ListStoreItemsForApp())
|
||
appAuthApiRouter.GET("/lottery/result", activityHandler.LotteryResultByOrder())
|
||
|
||
// 对对碰游戏
|
||
appAuthApiRouter.POST("/matching/preorder", activityHandler.PreOrderMatchingGame())
|
||
appAuthApiRouter.POST("/matching/check", activityHandler.CheckMatchingGame())
|
||
appAuthApiRouter.GET("/matching/state", activityHandler.GetMatchingGameState())
|
||
|
||
appAuthApiRouter.POST("/users/:user_id/inventory/address-share/create", userHandler.CreateAddressShare())
|
||
appAuthApiRouter.POST("/users/:user_id/inventory/address-share/revoke", userHandler.RevokeAddressShare())
|
||
appAuthApiRouter.POST("/users/:user_id/inventory/request-shipping", userHandler.RequestShippingBatch())
|
||
appAuthApiRouter.POST("/users/:user_id/inventory/redeem", userHandler.RedeemInventoryToPoints())
|
||
appAuthApiRouter.POST("/users/:user_id/points/redeem-coupon", userHandler.RedeemPointsToCoupon())
|
||
appAuthApiRouter.POST("/users/:user_id/points/redeem-product", userHandler.RedeemPointsToProduct())
|
||
appAuthApiRouter.POST("/users/:user_id/points/redeem-item-card", userHandler.RedeemPointsToItemCard())
|
||
}
|
||
// 微信支付平台回调(无需鉴权)
|
||
mux.Group("/api/pay").POST("/wechat/notify", payHandler.WechatNotify())
|
||
return mux, nil
|
||
}
|