```mermaid
---
title: 10.退款流程
---
flowchart TD
    开始((开始))
    --> 发起退款[客户或运营发起退款申请]

    发起退款 --> 基础校验{订单是否允许退款?}
    基础校验 -->|否| 拒绝退款[不满足退款条件 流程终止]
    基础校验 -->|是| 进入审核[进入退款审核]

    subgraph 审核阶段
        进入审核 --> 核对订单信息[核对订单金额 支付状态 使用情况]
        核对订单信息 --> 退款类型判断{全额退款还是部分退款?}
        退款类型判断 -->|全额退款| 计算退款金额[确认全额退款金额]
        退款类型判断 -->|部分退款| 计算退款金额[确认部分退款金额]
        计算退款金额 --> 审核结果{审核是否通过?}
        审核结果 -->|否| 审核驳回[驳回并说明原因]
        审核结果 -->|是| 执行退款[执行退款]
    end

    subgraph 执行阶段
        执行退款 --> 退款结果{退款是否成功?}
        退款结果 -->|否| 退款失败处理[记录失败原因并继续跟进]
        退款失败处理 --> 二次处理{是否继续退款处理?}
        二次处理 -->|是| 执行退款
        二次处理 -->|否| 审核驳回
        退款结果 -->|是| 状态更新[更新订单为已退款并记录退款信息]
    end

    subgraph 联动处理
        状态更新 --> 佣金联动[处理相关佣金和账务联动]
        佣金联动 --> 结果通知[通知客户与相关角色]
        审核驳回 --> 结果通知
    end

    结果通知 --> 验收结果{退款结果是否符合预期?}
    验收结果 -->|否| 异常处理[记录异常并返回退款流程处理]
    异常处理 --> 进入审核
    验收结果 -->|是| 结束([流程结束])

    %% ==================== 样式美化 ====================
    style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px
    style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px
    style 拒绝退款 fill:#FFCDD2,stroke:#D32F2F
    style 审核驳回 fill:#FFCCBC,stroke:#E64A19
    style 退款失败处理 fill:#FFCCBC,stroke:#E64A19
    style 异常处理 fill:#FFCCBC,stroke:#E64A19

    classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px
    class 基础校验,退款类型判断,审核结果,退款结果,二次处理,验收结果 decision
```
