feat: 后台抽奖活动管理(Stage 1)
- 服务层:12 个 /v1/admin/lottery 接口封装与 API 类型定义 - 活动列表:状态筛选、上架/暂停(带确认)、编辑、管理、发次数 - 奖品管理:3×3 九宫格可视化编辑、概率预览、保底奖警告、佣金元↔分转换、无限库存 - 规则设置:chance_sources 动态编辑,eligibility 简单/高级(JSON)双模式,本地 rulecaps 校验(深度≤8/节点≤64/≤8KB),Stage 1 未接线警示 - 手动发次数:自动生成幂等 source_ref - 路由 /dashboard/lottery、Commerce 菜单项、en-US/zh-CN 双语文案 - 对接文档见 vpn/aaaa.txt(Stage 1)
This commit is contained in:
@@ -47,6 +47,9 @@ const DashboardOrderIndexLazyRouteImport =
|
||||
const DashboardMarketingIndexLazyRouteImport = createFileRoute(
|
||||
'/dashboard/marketing/',
|
||||
)()
|
||||
const DashboardLotteryIndexLazyRouteImport = createFileRoute(
|
||||
'/dashboard/lottery/',
|
||||
)()
|
||||
const DashboardInviteManagementIndexLazyRouteImport = createFileRoute(
|
||||
'/dashboard/invite-management/',
|
||||
)()
|
||||
@@ -226,6 +229,14 @@ const DashboardMarketingIndexLazyRoute =
|
||||
} as any).lazy(() =>
|
||||
import('./routes/dashboard/marketing/index.lazy').then((d) => d.Route),
|
||||
)
|
||||
const DashboardLotteryIndexLazyRoute =
|
||||
DashboardLotteryIndexLazyRouteImport.update({
|
||||
id: '/lottery/',
|
||||
path: '/lottery/',
|
||||
getParentRoute: () => DashboardRouteLazyRoute,
|
||||
} as any).lazy(() =>
|
||||
import('./routes/dashboard/lottery/index.lazy').then((d) => d.Route),
|
||||
)
|
||||
const DashboardInviteManagementIndexLazyRoute =
|
||||
DashboardInviteManagementIndexLazyRouteImport.update({
|
||||
id: '/invite-management/',
|
||||
@@ -411,6 +422,7 @@ export interface FileRoutesByFullPath {
|
||||
'/dashboard/family': typeof DashboardFamilyIndexLazyRoute
|
||||
'/dashboard/group': typeof DashboardGroupIndexLazyRoute
|
||||
'/dashboard/invite-management': typeof DashboardInviteManagementIndexLazyRoute
|
||||
'/dashboard/lottery': typeof DashboardLotteryIndexLazyRoute
|
||||
'/dashboard/marketing': typeof DashboardMarketingIndexLazyRoute
|
||||
'/dashboard/order': typeof DashboardOrderIndexLazyRoute
|
||||
'/dashboard/payment': typeof DashboardPaymentIndexLazyRoute
|
||||
@@ -448,6 +460,7 @@ export interface FileRoutesByTo {
|
||||
'/dashboard/family': typeof DashboardFamilyIndexLazyRoute
|
||||
'/dashboard/group': typeof DashboardGroupIndexLazyRoute
|
||||
'/dashboard/invite-management': typeof DashboardInviteManagementIndexLazyRoute
|
||||
'/dashboard/lottery': typeof DashboardLotteryIndexLazyRoute
|
||||
'/dashboard/marketing': typeof DashboardMarketingIndexLazyRoute
|
||||
'/dashboard/order': typeof DashboardOrderIndexLazyRoute
|
||||
'/dashboard/payment': typeof DashboardPaymentIndexLazyRoute
|
||||
@@ -488,6 +501,7 @@ export interface FileRoutesById {
|
||||
'/dashboard/family/': typeof DashboardFamilyIndexLazyRoute
|
||||
'/dashboard/group/': typeof DashboardGroupIndexLazyRoute
|
||||
'/dashboard/invite-management/': typeof DashboardInviteManagementIndexLazyRoute
|
||||
'/dashboard/lottery/': typeof DashboardLotteryIndexLazyRoute
|
||||
'/dashboard/marketing/': typeof DashboardMarketingIndexLazyRoute
|
||||
'/dashboard/order/': typeof DashboardOrderIndexLazyRoute
|
||||
'/dashboard/payment/': typeof DashboardPaymentIndexLazyRoute
|
||||
@@ -529,6 +543,7 @@ export interface FileRouteTypes {
|
||||
| '/dashboard/family'
|
||||
| '/dashboard/group'
|
||||
| '/dashboard/invite-management'
|
||||
| '/dashboard/lottery'
|
||||
| '/dashboard/marketing'
|
||||
| '/dashboard/order'
|
||||
| '/dashboard/payment'
|
||||
@@ -566,6 +581,7 @@ export interface FileRouteTypes {
|
||||
| '/dashboard/family'
|
||||
| '/dashboard/group'
|
||||
| '/dashboard/invite-management'
|
||||
| '/dashboard/lottery'
|
||||
| '/dashboard/marketing'
|
||||
| '/dashboard/order'
|
||||
| '/dashboard/payment'
|
||||
@@ -605,6 +621,7 @@ export interface FileRouteTypes {
|
||||
| '/dashboard/family/'
|
||||
| '/dashboard/group/'
|
||||
| '/dashboard/invite-management/'
|
||||
| '/dashboard/lottery/'
|
||||
| '/dashboard/marketing/'
|
||||
| '/dashboard/order/'
|
||||
| '/dashboard/payment/'
|
||||
@@ -744,6 +761,13 @@ declare module '@tanstack/react-router' {
|
||||
preLoaderRoute: typeof DashboardMarketingIndexLazyRouteImport
|
||||
parentRoute: typeof DashboardRouteLazyRoute
|
||||
}
|
||||
'/dashboard/lottery/': {
|
||||
id: '/dashboard/lottery/'
|
||||
path: '/lottery'
|
||||
fullPath: '/dashboard/lottery'
|
||||
preLoaderRoute: typeof DashboardLotteryIndexLazyRouteImport
|
||||
parentRoute: typeof DashboardRouteLazyRoute
|
||||
}
|
||||
'/dashboard/invite-management/': {
|
||||
id: '/dashboard/invite-management/'
|
||||
path: '/invite-management'
|
||||
@@ -926,6 +950,7 @@ interface DashboardRouteLazyRouteChildren {
|
||||
DashboardFamilyIndexLazyRoute: typeof DashboardFamilyIndexLazyRoute
|
||||
DashboardGroupIndexLazyRoute: typeof DashboardGroupIndexLazyRoute
|
||||
DashboardInviteManagementIndexLazyRoute: typeof DashboardInviteManagementIndexLazyRoute
|
||||
DashboardLotteryIndexLazyRoute: typeof DashboardLotteryIndexLazyRoute
|
||||
DashboardMarketingIndexLazyRoute: typeof DashboardMarketingIndexLazyRoute
|
||||
DashboardOrderIndexLazyRoute: typeof DashboardOrderIndexLazyRoute
|
||||
DashboardPaymentIndexLazyRoute: typeof DashboardPaymentIndexLazyRoute
|
||||
@@ -964,6 +989,7 @@ const DashboardRouteLazyRouteChildren: DashboardRouteLazyRouteChildren = {
|
||||
DashboardGroupIndexLazyRoute: DashboardGroupIndexLazyRoute,
|
||||
DashboardInviteManagementIndexLazyRoute:
|
||||
DashboardInviteManagementIndexLazyRoute,
|
||||
DashboardLotteryIndexLazyRoute: DashboardLotteryIndexLazyRoute,
|
||||
DashboardMarketingIndexLazyRoute: DashboardMarketingIndexLazyRoute,
|
||||
DashboardOrderIndexLazyRoute: DashboardOrderIndexLazyRoute,
|
||||
DashboardPaymentIndexLazyRoute: DashboardPaymentIndexLazyRoute,
|
||||
|
||||
Reference in New Issue
Block a user