webadmin端增加商铺日志

This commit is contained in:
2026-07-07 12:12:12 +08:00
parent e25b208545
commit 6572799264
20 changed files with 919 additions and 5 deletions
+1
View File
@@ -10,3 +10,4 @@ export * from './settlement';
export * from './ops';
export * from './ticket';
export * from './user-log';
export * from './store-log';
+63
View File
@@ -0,0 +1,63 @@
export type StoreLogCategory =
| 'login'
| 'wechat_auth'
| 'redeem'
| 'payout'
| 'store_ops';
export const STORE_LOG_EVENT_CATEGORIES: Record<StoreLogCategory, readonly string[]> = {
login: ['store_sms_send', 'store_sms_login', 'store_sms_verify_fail', 'store_login_success'],
wechat_auth: ['store_wechat_login', 'store_wechat_bind'],
redeem: ['store_redeem_preview', 'store_redeem_confirm'],
payout: ['store_payout_created', 'store_payout_paid'],
store_ops: ['store_status_change'],
};
export const STORE_LOG_CATEGORY_OPTIONS: Array<{ value: StoreLogCategory | ''; label: string }> = [
{ value: '', label: '全部' },
{ value: 'login', label: '登录' },
{ value: 'wechat_auth', label: '授权' },
{ value: 'redeem', label: '核销' },
{ value: 'payout', label: '提现/打款' },
{ value: 'store_ops', label: '门店操作' },
];
export const STORE_LOG_CATEGORY_LABELS: Record<StoreLogCategory | '', string> = {
'': '全部',
login: '登录',
wechat_auth: '授权',
redeem: '核销',
payout: '提现/打款',
store_ops: '门店操作',
};
export function resolveStoreLogCategory(eventName: string): StoreLogCategory | null {
for (const [category, events] of Object.entries(STORE_LOG_EVENT_CATEGORIES) as Array<
[StoreLogCategory, readonly string[]]
>) {
if (events.includes(eventName)) return category;
}
return null;
}
export function eventNamesForStoreLogCategory(category: string): string[] | undefined {
if (!category) return undefined;
return [...(STORE_LOG_EVENT_CATEGORIES[category as StoreLogCategory] ?? [])];
}
export interface StoreLogRowDto {
id: string;
source: 'analytics' | 'redeem_record' | 'store_payout';
storeId: string;
storeAccountId: string | null;
storeName: string | null;
accountName: string | null;
accountPhone: string | null;
category: StoreLogCategory | null;
eventName: string;
clientApp: string | null;
refType: string | null;
refId: string | null;
extraJson: Record<string, unknown> | null;
createdAt: string;
}