小程序订阅消息每订阅一次只能发一条,用户无法持续收到通知。改为接入微信 服务号模板消息,用户关注服务号后可无限次接收推送通知。 新增功能: - ServiceAccountNotificationService:服务号模板消息发送服务 - 服务号事件回调(subscribe/unsubscribe)+ 手机号验证绑定流程 - PendingServiceBinding 模型:存储关注者的 openid 待绑定记录 - 小程序 bind-service 页面:输入手机号完成绑定 - 三个详情页(审批/任务/发厂)增加"绑定微信通知"入口 - web-sales NotificationBell 增加服务号关注引导 - web-admin SystemPage/ConfigPage 增加服务号绑定状态和模板配置展示 修复问题: - EventBus 和 _notify_status_change 重复发送微信消息(业务员收到2条) - EventBus order_status_changed 事件缺少模板映射导致微信通知静默丢失 - 所有微信发送失败被 except Exception: pass 静默吞掉,增加日志 - 定时任务(欠款/沉默客户/物流超时)不触发 WebSocket 实时通知 - reminder_method 配置未生效 Co-Authored-By: Claude <noreply@anthropic.com>
56 lines
2.5 KiB
Python
56 lines
2.5 KiB
Python
"""
|
||
API 总路由注册模块
|
||
|
||
职责:
|
||
创建全局 APIRouter 实例(api_router),并按顺序挂载各业务子路由:
|
||
- 基础路由(健康检查等)
|
||
- 认证、订单、销售流程、客户、产品、供应商
|
||
- 物流、文件、AI、提醒、业务员、报表
|
||
- 系统配置、定价、审计日志、系统管理
|
||
|
||
该模块被 FastAPI 应用主入口引用,是所有 HTTP 接口的统一入口。
|
||
"""
|
||
from fastapi import APIRouter
|
||
|
||
from backend.app.api.ai import router as ai_router
|
||
from backend.app.api.audit_logs import router as audit_logs_router
|
||
from backend.app.api.auth import router as auth_router
|
||
from backend.app.api.configs import router as configs_router
|
||
from backend.app.api.customers import router as customers_router
|
||
from backend.app.api.files import router as files_router
|
||
from backend.app.api.h5_bind_service import router as h5_bind_router
|
||
from backend.app.api.logistics import router as logistics_router
|
||
from backend.app.api.orders import router as orders_router
|
||
from backend.app.api.pricing import router as pricing_router
|
||
from backend.app.api.sales_flow import router as sales_flow_router
|
||
from backend.app.api.products import router as products_router
|
||
from backend.app.api.reminders import router as reminders_router
|
||
from backend.app.api.reports import router as reports_router
|
||
from backend.app.api.salesman import router as salesman_router
|
||
from backend.app.api.router import router as base_router
|
||
from backend.app.api.suppliers import router as suppliers_router
|
||
from backend.app.api.system import router as system_router
|
||
from backend.app.api.wechat_callback import router as wechat_callback_router
|
||
|
||
# 全局 API 路由实例,挂载到 FastAPI 应用
|
||
api_router = APIRouter()
|
||
api_router.include_router(base_router)
|
||
api_router.include_router(auth_router)
|
||
api_router.include_router(wechat_callback_router)
|
||
api_router.include_router(h5_bind_router)
|
||
api_router.include_router(orders_router)
|
||
api_router.include_router(sales_flow_router)
|
||
api_router.include_router(customers_router)
|
||
api_router.include_router(products_router)
|
||
api_router.include_router(suppliers_router)
|
||
api_router.include_router(logistics_router)
|
||
api_router.include_router(files_router)
|
||
api_router.include_router(ai_router)
|
||
api_router.include_router(reminders_router)
|
||
api_router.include_router(salesman_router)
|
||
api_router.include_router(reports_router)
|
||
api_router.include_router(configs_router)
|
||
api_router.include_router(pricing_router)
|
||
api_router.include_router(audit_logs_router)
|
||
api_router.include_router(system_router)
|