```mermaid
---
title: 5.套餐分配流程
---
flowchart TD
    开始((开始))
    --> 登录系统[使用超管 平台或代理账号登录]

    登录系统 --> 权限判断{是否具备套餐分配权限?}
    权限判断 -->|否| 无权限结束[无权限，流程终止]
    权限判断 -->|是| 进入套餐分配[进入套餐分配管理]

    subgraph 分配准备
        进入套餐分配 --> 选择目标店铺[选择被分配店铺]
        选择目标店铺 --> 操作者判断{是否为超管或平台账号?}
        操作者判断 -->|是| 跨级允许[可跨级选择目标店铺]
        跨级允许 --> 选择系列和套餐[选择要分配的系列与套餐]
        操作者判断 -->|否| 下级校验{目标店铺是否直属下级?}
        下级校验 -->|否| 重选店铺[仅可分配给直属下级]
        重选店铺 --> 选择目标店铺
        下级校验 -->|是| 选择系列和套餐

        选择系列和套餐 --> 套餐权限校验{是否拥有该系列和套餐分配权限?}
        套餐权限校验 -->|否| 更换套餐[更换系列或套餐后重试]
        更换套餐 --> 选择系列和套餐
        套餐权限校验 -->|是| 填写分配规则[填写成本价 零售价 上架状态]
    end

    subgraph 规则检查阶段
        填写分配规则 --> 规则说明[分配规则说明<br/>1 下级成本价不能低于本级成本价<br/>2 仅能分配自己有权限的套餐<br/>3 给下级的一次性佣金额不能超过本级可得金额]
        规则说明 --> 规则校验{是否满足分配规则?}
        规则校验 -->|否| 调整规则[调整分配规则后重试]
        调整规则 --> 填写分配规则
        规则校验 -->|是| 提交分配[提交套餐分配]
    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
    style 失败处理 fill:#FFCCBC,stroke:#E64A19
    style 异常处理 fill:#FFCCBC,stroke:#E64A19

    classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px
    class 权限判断,操作者判断,下级校验,套餐权限校验,规则校验,提交结果,验收结果 decision
```
