57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
"""投后服务路由(回访/话术库/触达日志,业务在 service/advisor/visits.py)。"""
|
|
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from api.deps import require_advisor
|
|
from config.deps import get_db
|
|
from model.sys_user import SysUser
|
|
from schemas.advisor import VisitCreateReq
|
|
from service.advisor import visits as visits_service
|
|
from utils.response import success
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/visits", summary="回访记录列表")
|
|
async def list_visits(
|
|
customer_id: int | None = Query(None),
|
|
page: int = Query(1, ge=1),
|
|
page_size: int = Query(20, ge=1, le=100),
|
|
user: SysUser = Depends(require_advisor),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
return success(
|
|
await visits_service.list_visits(
|
|
db, user, customer_id=customer_id, page=page, page_size=page_size
|
|
)
|
|
)
|
|
|
|
|
|
@router.post("/visits", summary="新增回访留痕(不触发 Agent 记忆抽取)")
|
|
async def create_visit(
|
|
req: VisitCreateReq,
|
|
user: SysUser = Depends(require_advisor),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
return success(await visits_service.create_visit(db, user, req))
|
|
|
|
|
|
@router.get("/talk-templates", summary="合规话术库(内置,投顾参考)")
|
|
async def talk_templates(user: SysUser = Depends(require_advisor)):
|
|
return success(visits_service.list_talk_templates())
|
|
|
|
|
|
@router.get("/touch-logs", summary="触达留痕(站内信 + 回访)")
|
|
async def touch_logs(
|
|
customer_id: int = Query(...),
|
|
page: int = Query(1, ge=1),
|
|
page_size: int = Query(20, ge=1, le=100),
|
|
user: SysUser = Depends(require_advisor),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
return success(
|
|
await visits_service.list_touch_logs(
|
|
db, user, customer_id, page=page, page_size=page_size
|
|
)
|
|
)
|