Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions backend/app/services/agent_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -10470,10 +10470,16 @@ def _matches(u: dict) -> bool:
from app.database import async_session as _async_session
from sqlalchemy import select as _sa_select
from app.models.org import OrgMember as _OrgMember
from app.models.agent import Agent as _AgentModel
async with _async_session() as _db:
_r = await _db.execute(
_sa_select(_OrgMember).where(_OrgMember.name.ilike(f"%{name}%"))
_agent_tenant_id = await _db.execute(
_sa_select(_AgentModel.tenant_id).where(_AgentModel.id == agent_id)
)
_tid = _agent_tenant_id.scalar_one_or_none()
_query = _sa_select(_OrgMember).where(_OrgMember.name.ilike(f"%{name}%"))
if _tid:
_query = _query.where(_OrgMember.tenant_id == _tid)
_r = await _db.execute(_query)
_org_members = _r.scalars().all()
if _org_members:
lines = [f"🔍 从通讯录找到 {len(_org_members)} 位匹配「{name}」的用户:\n"]
Expand All @@ -10496,10 +10502,16 @@ def _matches(u: dict) -> bool:
from app.database import async_session as _async_session
from sqlalchemy import select as _sa_select
from app.models.user import User as _User
from app.models.agent import Agent as _AgentModel2
async with _async_session() as _db:
_r = await _db.execute(
_sa_select(_User).where(_User.display_name.ilike(f"%{name}%"))
)
_agent_tenant_id2 = await _db.execute(
_sa_select(_AgentModel2.tenant_id).where(_AgentModel2.id == agent_id)
)
_tid2 = _agent_tenant_id2.scalar_one_or_none()
_query2 = _sa_select(_User).where(_User.display_name.ilike(f"%{name}%"))
if _tid2:
_query2 = _query2.where(_User.tenant_id == _tid2)
_r = await _db.execute(_query2)
_platform_users = _r.scalars().all()
for _pu in _platform_users:
_uid = getattr(_pu, "feishu_user_id", None)
Expand Down
15 changes: 14 additions & 1 deletion backend/app/services/feishu_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -558,12 +558,18 @@ async def upload_and_send_file(self, app_id: str, app_secret: str,

# Send text accompany message first if provided
if accompany_msg:
await client.post(
text_resp = await client.post(
f"{FEISHU_SEND_MSG_URL}?receive_id_type={receive_id_type}",
json={"receive_id": receive_id, "msg_type": "text",
"content": _json.dumps({"text": accompany_msg})},
headers=headers,
)
if text_resp.status_code != 200:
logger.error(
f"[Feishu] Failed to send text accompany message: "
f"status={text_resp.status_code}, body={text_resp.text}, "
f"receive_id={receive_id}, receive_id_type={receive_id_type}"
)

# Send file message
resp = await client.post(
Expand All @@ -572,6 +578,13 @@ async def upload_and_send_file(self, app_id: str, app_secret: str,
"content": _json.dumps({"file_key": file_key})},
headers=headers,
)
if resp.status_code != 200:
logger.error(
f"[Feishu] Failed to send file message: "
f"status={resp.status_code}, body={resp.text}, "
f"receive_id={receive_id}, receive_id_type={receive_id_type}, "
f"file_key={file_key}"
)
return resp.json()

# --- Bitable (多维表格) API ---
Expand Down