Fix API errors and improve customer discovery with real web results

- Fix usage/stats 500: use Date() not datetime.date() for SQL cast
- Fix customers 422: raise size limit to 1000
- Replace unreliable MCP client with direct Bing batch search for discovery
- Batch all search queries in one browser session (faster)
- Show real company names/URLs from Bing, not generic templates
- Smart filter for non-business results (news, blogs, forums)
- Fallback suggestions when search results are insufficient
- Frontend: clickable contact URLs, provider indicator, better layout
This commit is contained in:
TradeMate Dev
2026-05-27 10:29:23 +08:00
parent bed5c7abef
commit ab06990e73
7 changed files with 223 additions and 163 deletions
+3 -2
View File
@@ -2,6 +2,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select, func
from fastapi import HTTPException, Depends
from datetime import datetime, date
from sqlalchemy import Date
import logging
from app.models import UsageLog, SystemConfig, User, Customer, Product
@@ -52,7 +53,7 @@ class UsageService:
stmt = select(func.count()).where(
UsageLog.user_id == user_id,
UsageLog.action == action,
func.cast(UsageLog.created_at, date) == today,
func.cast(UsageLog.created_at, Date) == today,
)
result = await self.db.execute(stmt)
return result.scalar() or 0
@@ -64,7 +65,7 @@ class UsageService:
), 0)).where(
UsageLog.user_id == user_id,
UsageLog.action == "translate",
func.cast(UsageLog.created_at, date) == today,
func.cast(UsageLog.created_at, Date) == today,
)
result = await self.db.execute(stmt)
return result.scalar() or 0