""" 睿美云接口注册表 定义所有可用的睿美云开放接口,包括: - 接口路径 - 请求方法 - 参数说明 - 接口分组 接口命名规则: {模块}.{操作} 例如: customer.search, order.list, treat.page """ from typing import Dict, Any, Optional, List from dataclasses import dataclass @dataclass class ApiDefinition: """接口定义""" method: str # GET / POST path: str # API 路径 description: str # 接口描述 module: str # 所属模块 params: Optional[List[str]] = None # URL 参数列表 body_required: bool = False # 是否需要请求体 # 睿美云开放接口注册表 RUIMEIYUN_APIS: Dict[str, Dict[str, Any]] = { # ======================================== # 客户模块 (customer) # ======================================== "customer.sync": { "method": "POST", "path": "/api/v1/tpos/customer/info-sync", "description": "客户档案新增/编辑", "module": "customer", "body_required": True }, "customer.search": { "method": "GET", "path": "/api/v1/tpos/customer/customer-search", "description": "获取客户信息列表(支持姓名、电话、档案号模糊查询)", "module": "customer", "params": ["keyword", "createDateStart", "createDateEnd", "tenantId", "page", "size", "lastCustomerId"] }, "customer.detail": { "method": "GET", "path": "/api/v1/tpos/customer/customer-by-id", "description": "根据客户ID获取详细信息", "module": "customer", "params": ["customerId"] }, "customer.rebate_list": { "method": "POST", "path": "/api/v1/tpos/customer/my-rebate-list", "description": "获取客户返利列表", "module": "customer", "body_required": True }, "customer.rebate_detail": { "method": "GET", "path": "/api/v1/tpos/customer/my-rebate-detail", "description": "获取返利详情", "module": "customer", "params": ["rebateId"] }, "customer.clue_list": { "method": "POST", "path": "/api/v1/tpos/customer/customer-clue-list", "description": "获取客户线索列表", "module": "customer", "body_required": True }, "customer.label_list": { "method": "GET", "path": "/api/v1/tpos/customer/customer-label-list", "description": "获取客户标签列表", "module": "customer", "params": ["tenantId"] }, "customer.gold_list": { "method": "POST", "path": "/api/v1/tpos/customer/customer-gold-list", "description": "获取金卡客户列表", "module": "customer", "body_required": True }, "customer.plan_list": { "method": "GET", "path": "/api/v1/tpos/customer/get-all-plan", "description": "获取所有客户计划", "module": "customer", "params": ["tenantId"] }, "customer.transfer_pool": { "method": "POST", "path": "/api/v1/tpos/customer/transfer-pool", "description": "客户池转移", "module": "customer", "body_required": True }, "customer.pool_info": { "method": "GET", "path": "/api/v1/tpos/customer/get-pool-info", "description": "获取客户池信息", "module": "customer", "params": ["customerId"] }, "customer.qw_info": { "method": "GET", "path": "/api/v1/tpos/customer/customer-qw-info", "description": "获取客户企微信息", "module": "customer", "params": ["customerId"] }, "customer.sign_search": { "method": "POST", "path": "/api/v1/tpos/customer/customer-sign-search", "description": "客户签到搜索", "module": "customer", "body_required": True }, # ======================================== # 门店模块 (tenant) # ======================================== "tenant.list": { "method": "GET", "path": "/api/v1/tpos/common/tenantList", "description": "获取门店信息列表", "module": "tenant", "params": [] }, # ======================================== # 回访模块 (visit) # ======================================== "visit.type_list": { "method": "GET", "path": "/api/v1/tpos/visit/get-visit-type", "description": "获取回访类型列表", "module": "visit", "params": ["tenantId"] }, "visit.way_type_list": { "method": "GET", "path": "/api/v1/tpos/visit/get-visit-way-type", "description": "获取回访方式类型列表", "module": "visit", "params": ["tenantId"] }, "visit.page": { "method": "POST", "path": "/api/v1/tpos/visit/get-visit-page", "description": "分页获取回访记录", "module": "visit", "body_required": True }, "visit.create": { "method": "POST", "path": "/api/v1/tpos/visit/create-visit", "description": "新增回访记录", "module": "visit", "body_required": True }, "visit.template_type": { "method": "GET", "path": "/api/v1/tpos/visit/visit-template-type", "description": "获取回访模板类型", "module": "visit", "params": ["tenantId"] }, # ======================================== # 报备模块 (preparation) # ======================================== "preparation.add": { "method": "POST", "path": "/api/v1/tpos/preparation/add", "description": "新增报备", "module": "preparation", "body_required": True }, "preparation.query": { "method": "POST", "path": "/api/v1/tpos/preparation/get-preparation", "description": "查询报备", "module": "preparation", "body_required": True }, # ======================================== # 员工模块 (user) # ======================================== "user.page": { "method": "GET", "path": "/api/v1/tpos/user/get-page", "description": "分页获取员工列表", "module": "user", "params": ["page", "size", "tenantId", "keyword"] }, "user.dept_tree": { "method": "GET", "path": "/api/v1/tpos/basic/dept-tree", "description": "获取部门树结构", "module": "user", "params": ["tenantId"] }, "user.role_list": { "method": "GET", "path": "/api/v1/tpos/role/getRoleList", "description": "获取角色列表", "module": "user", "params": ["tenantId"] }, # ======================================== # 卡券模块 (coupon) # ======================================== "coupon.customer_page": { "method": "GET", "path": "/api/v1/tpos/coupon/customer-coupon-page", "description": "分页获取客户卡券", "module": "coupon", "params": ["customerId", "page", "size"] }, "coupon.customer_list": { "method": "GET", "path": "/api/v1/tpos/coupon/customer-coupon-list", "description": "获取客户卡券列表", "module": "coupon", "params": ["customerId"] }, "coupon.use": { "method": "POST", "path": "/api/v1/tpos/coupon/use-coupon", "description": "使用卡券", "module": "coupon", "body_required": True }, "coupon.page": { "method": "GET", "path": "/api/v1/tpos/coupon/coupon-page", "description": "分页获取卡券信息", "module": "coupon", "params": ["page", "size", "tenantId"] }, "coupon.send": { "method": "POST", "path": "/api/v1/tpos/coupon/send-coupon", "description": "发送卡券", "module": "coupon", "body_required": True }, "coupon.gift": { "method": "POST", "path": "/api/v1/tpos/coupon/gift-coupon", "description": "卡券赠送(小程序分享)", "module": "coupon", "body_required": True }, "coupon.receive": { "method": "POST", "path": "/api/v1/tpos/coupon/receive-coupon", "description": "领取卡券(小程序分享)", "module": "coupon", "body_required": True }, # ======================================== # 营销模块 (marketing) # ======================================== "marketing.appoint_card_page": { "method": "GET", "path": "/api/v1/tpos/marketing/appoint-card-page", "description": "线上预约-名片管理", "module": "marketing", "params": ["page", "size", "tenantId"] }, "marketing.graphic_message_list": { "method": "GET", "path": "/api/v1/tpos/marketing/graphic-message-list", "description": "内容管理-图文消息", "module": "marketing", "params": ["tenantId"] }, # ======================================== # 积分模块 (integral) # ======================================== "integral.customer": { "method": "GET", "path": "/api/v1/tpos/integral/getCusIntegral", "description": "获取客户积分", "module": "integral", "params": ["customerId"] }, "integral.score_record_page": { "method": "GET", "path": "/api/v1/tpos/integral/score-record-page", "description": "获取客户积分/成长值分页信息", "module": "integral", "params": ["customerId", "page", "size"] }, "integral.growth_upgrade": { "method": "POST", "path": "/api/v1/tpos/integral/query-customer-growth-upgrade", "description": "查询客户成长升级信息", "module": "integral", "body_required": True }, # ======================================== # 订单模块 (order) # ======================================== "order.billing_page": { "method": "GET", "path": "/api/v1/tpos/order/billing-page", "description": "获取订单信息列表", "module": "order", "params": ["customerId", "page", "size", "startDate", "endDate"] }, "order.payment_detail": { "method": "GET", "path": "/api/v1/tpos/order/payment-detail", "description": "获取费用单详细信息", "module": "order", "params": ["billingId"] }, "order.add_billing": { "method": "POST", "path": "/api/v1/tpos/order/add-billing", "description": "开单", "module": "order", "body_required": True }, "order.add_billing_review": { "method": "POST", "path": "/api/v1/tpos/order/add-billing-review", "description": "开单审核", "module": "order", "body_required": True }, "order.enable_billing": { "method": "GET", "path": "/api/v1/tpos/order/enable-billing", "description": "可操作的订单项", "module": "order", "params": ["billingId"] }, "order.refund": { "method": "POST", "path": "/api/v1/tpos/order/refund", "description": "订单退款", "module": "order", "body_required": True }, "order.gift_project": { "method": "POST", "path": "/api/v1/tpos/order/gift-project", "description": "项目转赠(小程序分享)", "module": "order", "body_required": True }, "order.receive_project": { "method": "POST", "path": "/api/v1/tpos/order/receive-project", "description": "领取赠送项目(小程序分享)", "module": "order", "body_required": True }, "order.equity_card_page": { "method": "GET", "path": "/api/v1/tpos/order/billing-equity-card-page", "description": "获取客户权益卡列表", "module": "order", "params": ["customerId", "page", "size"] }, "order.balance_recharge_page": { "method": "GET", "path": "/api/v1/tpos/order/balance-recharge-page", "description": "储值充值记录", "module": "order", "params": ["customerId", "page", "size"] }, "order.balance_deduction_page": { "method": "GET", "path": "/api/v1/tpos/order/balance-deduction-page", "description": "储值抵扣记录", "module": "order", "params": ["customerId", "page", "size"] }, "order.balance_refund_page": { "method": "GET", "path": "/api/v1/tpos/order/balance-refund-page", "description": "储值退款记录", "module": "order", "params": ["customerId", "page", "size"] }, "order.balance_transfer_page": { "method": "GET", "path": "/api/v1/tpos/order/balance-transfer-page", "description": "储值转赠记录", "module": "order", "params": ["customerId", "page", "size"] }, "order.integral_mall_page": { "method": "GET", "path": "/api/v1/tpos/order/integral-mall-exchange-page", "description": "获取积分兑换订单信息列表", "module": "order", "params": ["customerId", "page", "size"] }, "order.add_external": { "method": "POST", "path": "/api/v1/tpos/order/add-order-external", "description": "外部订单创建", "module": "order", "body_required": True }, "order.refund_external": { "method": "POST", "path": "/api/v1/tpos/order/refund-order-external", "description": "外部订单退款", "module": "order", "body_required": True }, "order.customer_billing_list": { "method": "POST", "path": "/api/v1/tpos/order/get-customer-billing-list", "description": "获取客户订单列表", "module": "order", "body_required": True }, "order.cashier_record_list": { "method": "POST", "path": "/api/v1/tpos/order/get-cashierRecord-list", "description": "获取收银记录列表", "module": "order", "body_required": True }, # ======================================== # 治疗模块 (treat) # ======================================== "treat.untreated_page": { "method": "GET", "path": "/api/v1/tpos/treat/untreated-page", "description": "查询客户未治疗记录", "module": "treat", "params": ["customerId", "page", "size"] }, "treat.already_treated_page": { "method": "GET", "path": "/api/v1/tpos/treat/already-treated-page", "description": "查询客户已治疗记录", "module": "treat", "params": ["customerId", "page", "size"] }, "treat.page_review": { "method": "GET", "path": "/api/v1/tpos/treat/treated-page-review", "description": "分页获取治疗数据", "module": "treat", "params": ["page", "size", "tenantId"] }, "treat.operating_room_list": { "method": "GET", "path": "/api/v1/tpos/treat/get-operating-room-list", "description": "获取治疗时查询的手术间信息", "module": "treat", "params": ["tenantId"] }, "treat.begin_info": { "method": "GET", "path": "/api/v1/tpos/treat/get-begin-treat-info", "description": "获取治疗中和已治疗的数据", "module": "treat", "params": ["treatId"] }, "treat.deduct_verify": { "method": "POST", "path": "/api/v1/tpos/treat/treat-deduct-verify", "description": "进行核销和划扣", "module": "treat", "body_required": True }, "treat.cancel_deduct": { "method": "POST", "path": "/api/v1/tpos/treat/cancel-deduct", "description": "取消划扣", "module": "treat", "body_required": True }, "treat.cancel_verify": { "method": "POST", "path": "/api/v1/tpos/treat/cancel-verify", "description": "取消核销", "module": "treat", "body_required": True }, "treat.deduct_verify_detail": { "method": "GET", "path": "/api/v1/tpos/treat/get-treated-deduct-and-verify-detail", "description": "已治疗的核销和划扣详情信息", "module": "treat", "params": ["treatId"] }, "treat.roles": { "method": "GET", "path": "/api/v1/tpos/treat/get-treatment-roles", "description": "获取所有的治疗岗位列表", "module": "treat", "params": ["tenantId"] }, "treat.scrm_list": { "method": "POST", "path": "/api/v1/tpos/treat/scrmTreatList", "description": "小程序-我的治疗(新版)", "module": "treat", "body_required": True }, # ======================================== # 照片模块 (photo) # ======================================== "photo.add": { "method": "POST", "path": "/api/v1/tpos/common/addPhoto", "description": "外部七牛照片转存至睿美云", "module": "photo", "body_required": True }, "photo.add_open": { "method": "POST", "path": "/api/v1/tpos/common/addPhotoOpen", "description": "外部照片路径转存至睿美云", "module": "photo", "body_required": True }, "photo.upload": { "method": "POST", "path": "/api/v1/tpos/common/upload_customer_photo", "description": "上传照片到睿美云", "module": "photo", "body_required": True }, "photo.page": { "method": "GET", "path": "/api/v1/tpos/common/photoPage", "description": "通过客户id分页查询照片信息", "module": "photo", "params": ["customerId", "page", "size"] }, "photo.skin_update": { "method": "POST", "path": "/api/v1/tpos/skin_image/update_skin_file", "description": "皮肤检测类图片上传", "module": "photo", "body_required": True }, # ======================================== # 基础数据模块 (basic) # ======================================== "basic.project_page": { "method": "GET", "path": "/api/v1/tpos/basic/project-page", "description": "分页获取项目列表", "module": "basic", "params": ["page", "size", "tenantId", "keyword"] }, "basic.project_type_tree": { "method": "GET", "path": "/api/v1/tpos/basic/project-type-tree", "description": "获取项目分类树", "module": "basic", "params": ["tenantId"] }, "basic.project_detail": { "method": "GET", "path": "/api/v1/tpos/basic/project-detail", "description": "获取项目详情", "module": "basic", "params": ["projectId"] }, "basic.package_page": { "method": "GET", "path": "/api/v1/tpos/basic/package-page", "description": "分页获取套餐列表", "module": "basic", "params": ["page", "size", "tenantId"] }, "basic.package_type_tree": { "method": "GET", "path": "/api/v1/tpos/basic/package-type-tree", "description": "获取套餐分类树", "module": "basic", "params": ["tenantId"] }, "basic.package_detail": { "method": "GET", "path": "/api/v1/tpos/basic/package-detail", "description": "获取套餐详情", "module": "basic", "params": ["packageId"] }, "basic.annual_card_page": { "method": "GET", "path": "/api/v1/tpos/basic/annual-card-page", "description": "分页获取年卡列表", "module": "basic", "params": ["page", "size", "tenantId"] }, "basic.annual_card_type_tree": { "method": "GET", "path": "/api/v1/tpos/basic/annual-card-type-tree", "description": "获取年卡分类树", "module": "basic", "params": ["tenantId"] }, "basic.annual_card_detail": { "method": "GET", "path": "/api/v1/tpos/basic/annual-card-detail", "description": "获取年卡详情", "module": "basic", "params": ["cardId"] }, "basic.time_card_page": { "method": "GET", "path": "/api/v1/tpos/basic/time-card-page", "description": "分页获取次卡列表", "module": "basic", "params": ["page", "size", "tenantId"] }, "basic.time_card_type_tree": { "method": "GET", "path": "/api/v1/tpos/basic/time-card-type-tree", "description": "获取次卡分类树", "module": "basic", "params": ["tenantId"] }, "basic.time_card_detail": { "method": "GET", "path": "/api/v1/tpos/basic/time-card-detail", "description": "获取次卡详情", "module": "basic", "params": ["cardId"] }, # ======================================== # 预约模块 (cusbespeak) # ======================================== "appointment.add": { "method": "POST", "path": "/api/v1/tpos/cusbespeak/add", "description": "新增预约", "module": "appointment", "body_required": True }, "appointment.update": { "method": "POST", "path": "/api/v1/tpos/cusbespeak/update", "description": "修改预约", "module": "appointment", "body_required": True }, "appointment.confirm": { "method": "POST", "path": "/api/v1/tpos/cusbespeak/confirm", "description": "确认预约", "module": "appointment", "body_required": True }, "appointment.cancel": { "method": "POST", "path": "/api/v1/tpos/cusbespeak/cancel", "description": "取消预约", "module": "appointment", "body_required": True }, "appointment.page": { "method": "POST", "path": "/api/v1/tpos/cusbespeak/page", "description": "预约分页查询", "module": "appointment", "body_required": True }, "appointment.doctor_list": { "method": "GET", "path": "/api/v1/tpos/cusbespeak/doctor-list", "description": "获取可选择的预约医生", "module": "appointment", "params": ["tenantId"] }, "appointment.schedule": { "method": "GET", "path": "/api/v1/tpos/cusbespeak/schedule", "description": "查询预约专家排班", "module": "appointment", "params": ["doctorId", "date"] }, # ======================================== # 渠道模块 (channel) # ======================================== "channel.type_select": { "method": "GET", "path": "/api/v1/tpos/channel/type-select", "description": "整合渠道类型选择(建档,报备)", "module": "channel", "params": ["tenantId"] }, "channel.list_by_type": { "method": "GET", "path": "/api/v1/tpos/channel/list-by-type", "description": "通过渠道类型获取渠道列表", "module": "channel", "params": ["typeId", "tenantId"] }, "channel.info": { "method": "GET", "path": "/api/v1/tpos/channel/info", "description": "查询渠道信息", "module": "channel", "params": ["channelId"] }, "channel.media_info": { "method": "GET", "path": "/api/v1/tpos/channel/media-info", "description": "查询运营媒体信息", "module": "channel", "params": ["mediaId"] }, # ======================================== # 接待模块 (reception) # ======================================== "reception.triage_list": { "method": "GET", "path": "/api/v1/tpos/reception/triage-list", "description": "可用的接待分诊人列表", "module": "reception", "params": ["tenantId"] }, "reception.add": { "method": "POST", "path": "/api/v1/tpos/reception/add", "description": "新增接待", "module": "reception", "body_required": True }, "reception.query": { "method": "GET", "path": "/api/v1/tpos/reception/query", "description": "查询客户接待信息", "module": "reception", "params": ["customerId"] }, "reception.sign_init": { "method": "GET", "path": "/api/v1/tpos/reception/sign-init", "description": "客户扫码签到初始化数据(小程序)", "module": "reception", "params": ["tenantId"] }, "reception.sign": { "method": "POST", "path": "/api/v1/tpos/reception/sign", "description": "客户扫码签到(小程序)", "module": "reception", "body_required": True }, # ======================================== # 咨询模块 (consult) # ======================================== "consult.add": { "method": "POST", "path": "/api/v1/tpos/consult/add", "description": "新增咨询", "module": "consult", "body_required": True }, "consult.update": { "method": "POST", "path": "/api/v1/tpos/consult/update", "description": "修改咨询", "module": "consult", "body_required": True }, # ======================================== # 病历模块 (medical_record) # ======================================== "medical_record.add": { "method": "POST", "path": "/api/v1/tpos/medical-record/add", "description": "新增病历", "module": "medical_record", "body_required": True }, "medical_record.update": { "method": "POST", "path": "/api/v1/tpos/medical-record/update", "description": "修改病历", "module": "medical_record", "body_required": True }, "medical_record.delete": { "method": "POST", "path": "/api/v1/tpos/medical-record/delete", "description": "删除病历", "module": "medical_record", "body_required": True }, } def get_api_definition(api_name: str) -> Optional[Dict[str, Any]]: """ 获取接口定义 Args: api_name: 接口名称,如 customer.search Returns: 接口定义字典,不存在则返回 None """ return RUIMEIYUN_APIS.get(api_name) def get_api_list_by_module(module: str) -> List[Dict[str, Any]]: """ 按模块获取接口列表 Args: module: 模块名称,如 customer, order Returns: 该模块下的接口列表 """ result = [] for name, definition in RUIMEIYUN_APIS.items(): if definition.get("module") == module: result.append({"name": name, **definition}) return result def get_all_modules() -> List[str]: """获取所有模块名称""" modules = set() for definition in RUIMEIYUN_APIS.values(): if "module" in definition: modules.add(definition["module"]) return sorted(list(modules)) def get_api_summary() -> Dict[str, int]: """获取接口统计""" summary = {} for definition in RUIMEIYUN_APIS.values(): module = definition.get("module", "unknown") summary[module] = summary.get(module, 0) + 1 return summary