feat: lead API加企微通知
This commit is contained in:
+24
-1
@@ -1,7 +1,7 @@
|
|||||||
"""AI获客 - 客户咨询接口"""
|
"""AI获客 - 客户咨询接口"""
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
import json, os, datetime
|
import json, os, datetime, urllib.request
|
||||||
|
|
||||||
router = APIRouter(prefix="/api/cma/lead", tags=["AI获客"])
|
router = APIRouter(prefix="/api/cma/lead", tags=["AI获客"])
|
||||||
|
|
||||||
@@ -11,6 +11,26 @@ class LeadRequest(BaseModel):
|
|||||||
requirement: str = ""
|
requirement: str = ""
|
||||||
source: str = "sxbh.ltd"
|
source: str = "sxbh.ltd"
|
||||||
|
|
||||||
|
def notify_wecom(name, phone, requirement, source):
|
||||||
|
"""推送到企微全员群"""
|
||||||
|
msg = {
|
||||||
|
"msgtype": "markdown",
|
||||||
|
"markdown": {
|
||||||
|
"content": f"## 🔔 新客户咨询\n**姓名**: {name}\n**电话**: {phone}\n**需求**: {requirement}\n**来源**: {source}\n**时间**: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M')}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
data = json.dumps(msg).encode('utf-8')
|
||||||
|
req = urllib.request.Request(
|
||||||
|
"http://127.0.0.1:8800/send",
|
||||||
|
data=data,
|
||||||
|
headers={"Content-Type": "application/json"},
|
||||||
|
method="POST"
|
||||||
|
)
|
||||||
|
urllib.request.urlopen(req, timeout=5)
|
||||||
|
except:
|
||||||
|
pass # 通知失败不影响主流程
|
||||||
|
|
||||||
@router.post("")
|
@router.post("")
|
||||||
def create_lead(data: LeadRequest):
|
def create_lead(data: LeadRequest):
|
||||||
"""接收客户咨询并保存"""
|
"""接收客户咨询并保存"""
|
||||||
@@ -23,4 +43,7 @@ def create_lead(data: LeadRequest):
|
|||||||
with open(f"{log_dir}/leads.json", "a") as f:
|
with open(f"{log_dir}/leads.json", "a") as f:
|
||||||
f.write(json.dumps(record, ensure_ascii=False) + "\n")
|
f.write(json.dumps(record, ensure_ascii=False) + "\n")
|
||||||
|
|
||||||
|
# 异步推送企微通知
|
||||||
|
notify_wecom(data.name, data.phone, data.requirement, data.source)
|
||||||
|
|
||||||
return {"success": True, "message": "咨询已提交,我们将在30分钟内联系您"}
|
return {"success": True, "message": "咨询已提交,我们将在30分钟内联系您"}
|
||||||
|
|||||||
Reference in New Issue
Block a user