陆运多条线路按段展示 TMS 费用名和时效,选定后再写回该条成本。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -158,6 +158,52 @@ def h5_air_route_pick(token: str, index: int = Form(default=-1)) -> HTMLResponse
|
||||
return HTMLResponse(render_air_route_ok())
|
||||
|
||||
|
||||
@router.get("/land-routes/{token}", response_class=HTMLResponse)
|
||||
def h5_land_route_open(token: str) -> HTMLResponse:
|
||||
"""打开陆运选线路页。身份只认 token。"""
|
||||
from agent.channel.h5.land_route_page import expired_land_route_page, render_land_route_page
|
||||
from agent.channel.h5.land_route_store import lookup_land_route_token
|
||||
|
||||
rec = lookup_land_route_token(token)
|
||||
if rec is None:
|
||||
return HTMLResponse(expired_land_route_page(), status_code=410)
|
||||
return HTMLResponse(render_land_route_page(rec))
|
||||
|
||||
|
||||
@router.post("/land-routes/{token}", response_class=HTMLResponse)
|
||||
def h5_land_route_pick(token: str, index: int = Form(default=-1)) -> HTMLResponse:
|
||||
"""
|
||||
选定陆运线路。请求线程只验 token、入出站队列,不查 TMS、不跑整图。
|
||||
"""
|
||||
from agent.channel.h5.land_route_page import (
|
||||
expired_land_route_page,
|
||||
render_land_route_ok,
|
||||
render_land_route_page,
|
||||
)
|
||||
from agent.channel.h5.land_route_store import lookup_land_route_token
|
||||
from agent.channel.queue import get_message_store
|
||||
from agent.policy.land_text_flow import get_land_text_flow
|
||||
|
||||
rec = lookup_land_route_token(token)
|
||||
if rec is None:
|
||||
return HTMLResponse(expired_land_route_page(), status_code=410)
|
||||
sender_id = str(rec.get("sender_id") or "").strip()
|
||||
if not sender_id:
|
||||
return HTMLResponse(expired_land_route_page(), status_code=410)
|
||||
|
||||
def reply(text: str, extra=None) -> None:
|
||||
store = get_message_store()
|
||||
store.enqueue_outbound(touser=sender_id, content=text, payload=dict(extra or {}))
|
||||
|
||||
phase = get_land_text_flow().select_land_route(
|
||||
sender_id=sender_id, index=int(index), reply=reply
|
||||
)
|
||||
logger.info("h5.land_route pick sender=%s phase=%s idx=%s", sender_id, phase, index)
|
||||
if phase in {"route_expired", "route_invalid"}:
|
||||
return HTMLResponse(render_land_route_page(rec), status_code=400)
|
||||
return HTMLResponse(render_land_route_ok())
|
||||
|
||||
|
||||
@router.get("/{token}")
|
||||
def h5_open(token: str) -> dict[str, Any]:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user