import db from '../config/database'; import { logger } from '../utils/logger'; import { AdviceService } from '../domains/Strategy/AdviceService'; export interface SocialTrend { keyword: string; platform: 'TikTok' | 'Instagram' | 'Pinterest'; growthRate: number; // 增长率 mentions: number; // 提及次数 relatedProducts: string[]; } /** * [BIZ_MKT_05] 基于社交热点趋势的爆款选品建议引擎 * @description 采集并分析社交媒体热词、标签及爆款视频,结合 AI 预测品类爆发点并推荐货源 */ export class SocialTrendSourcingService { /** * 发现并处理社交趋势 (BIZ_MKT_05) */ static async discoverTrends(tenantId: string): Promise { logger.info(`[SocialTrend] Discovering trends for Tenant: ${tenantId}`); // 1. 模拟采集社交热点数据 (实际中应集成外部 API 或爬虫) const trends = await this.mockCollectTrends(); for (const trend of trends) { // 2. 识别高增长热词 if (trend.growthRate > 0.5) { logger.info(`[SocialTrend] High growth trend detected: ${trend.keyword} (+${(trend.growthRate * 100).toFixed(0)}%)`); // 3. 自动触发策略建议 (BIZ_AI_16-EXT) await AdviceService.recordAdvice({ tenantId, shopId: 'DEFAULT', traceId: `TREND-${Date.now()}`, insight: { type: 'ARBITRAGE', title: `Social Trend Alert: ${trend.keyword}`, description: `The keyword "${trend.keyword}" is trending on ${trend.platform} with a ${ (trend.growthRate * 100).toFixed(0) }% growth rate. Potential for arbitrage.`, impact: 'high', confidence: 0.88, suggestedAction: `Source products related to "${trend.keyword}" from 1688 and test on Shopify.`, metadata: { keyword: trend.keyword, platform: trend.platform, growthRate: trend.growthRate, mentions: trend.mentions } } }); } } } private static async mockCollectTrends(): Promise { return [ { keyword: 'portable_espresso_maker', platform: 'TikTok', growthRate: 0.65, mentions: 12500, relatedProducts: [] }, { keyword: 'ergonomic_office_chair', platform: 'Instagram', growthRate: 0.2, mentions: 5400, relatedProducts: [] }, { keyword: 'smart_home_fragrance', platform: 'TikTok', growthRate: 0.8, mentions: 8900, relatedProducts: [] } ]; } }