diff --git a/docs/系统流程图/0.代理佣金体系设计流程.md b/docs/系统流程图/0.代理佣金体系设计流程.md new file mode 100644 index 0000000..31b49e6 --- /dev/null +++ b/docs/系统流程图/0.代理佣金体系设计流程.md @@ -0,0 +1,78 @@ +```mermaid +--- +title: 0.代理佣金体系设计流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[超管或平台账号登录] + + 登录系统 --> 权限判断{是否具备套餐和分配权限?} + 权限判断 -->|否| 无权限结束[无权限,流程终止] + 权限判断 -->|是| 进入套餐系列管理[进入套餐系列管理] + + subgraph 第一步_创建可分配的套餐 + 进入套餐系列管理 --> 创建套餐系列[创建套餐系列] + 创建套餐系列 --> 一次性规则设置{是否启用一次性佣金规则?} + 一次性规则设置 -->|否| 保存系列[保存系列] + 一次性规则设置 -->|是| 配置一次性规则[配置触发方式和金额规则] + 配置一次性规则 --> 保存系列 + + 保存系列 --> 进入套餐管理[进入套餐管理] + 进入套餐管理 --> 创建套餐[创建套餐并归属到该系列] + 创建套餐 --> 套餐发布校验{套餐信息是否完整可发布?} + 套餐发布校验 -->|否| 修正套餐信息[修正后重新保存] + 修正套餐信息 --> 创建套餐 + 套餐发布校验 -->|是| 进入分配环节[进入分配环节] + end + + 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 + style 调整套餐分配 fill:#FFCCBC,stroke:#E64A19 + style 异常回流 fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class 权限判断,一次性规则设置,套餐发布校验,下级校验,系列分配结果,套餐分配结果,是否继续下发,验收结果 decision +``` diff --git a/docs/系统流程图/0.佣金提现配置流程.md b/docs/系统流程图/0.佣金提现配置流程.md new file mode 100644 index 0000000..d019207 --- /dev/null +++ b/docs/系统流程图/0.佣金提现配置流程.md @@ -0,0 +1,61 @@ +```mermaid +--- +title: 0.佣金提现配置流程 +--- +flowchart TD + Start((开始)) + --> Login[使用平台管理员或有权限账号登录] + + Login --> HasPermission{是否有「提现配置管理」权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterSettingPage[进入佣金提现配置页面] + + subgraph SettingFlow[提现配置设置流程] + EnterSettingPage --> CheckCurrent[查看当前生效配置] + CheckCurrent --> NeedNewConfig{是否需要新增配置?} + + NeedNewConfig -->|否| KeepCurrent[继续沿用当前配置] + NeedNewConfig -->|是| FillConfig[填写配置项
每日提现次数、最低提现金额、手续费率] + + FillConfig --> ValidateConfig{配置内容是否有效?} + ValidateConfig -->|否| FixConfig[提示错误并重新填写] + FixConfig --> FillConfig + + ValidateConfig -->|是| SaveConfig[保存新配置] + SaveConfig --> AutoReplace[系统自动将旧配置失效] + AutoReplace --> NewConfigActive[新配置生效] + end + + subgraph VerifyFlow[生效验证流程] + KeepCurrent --> VerifyEntry[进入验收环节] + NewConfigActive --> VerifyEntry + + VerifyEntry --> CheckCurrentAfterSave[在「当前生效配置」核对最新参数] + CheckCurrentAfterSave --> CheckHistory[在「配置历史列表」核对新旧配置状态] + CheckHistory --> NeedBusinessVerify{是否需要做业务验证?} + + NeedBusinessVerify -->|否| VerifyPass[配置验收通过] + NeedBusinessVerify -->|是| GoWithdrawalTest[进入代理提现申请验证
(结合 8.代理佣金提现以及审批流程)] + + GoWithdrawalTest --> CheckMinAmount[核对最低提现金额规则是否生效] + CheckMinAmount --> CheckDailyLimit[核对每日提现次数限制是否生效] + CheckDailyLimit --> CheckFeeRate[核对手续费计算是否符合配置] + CheckFeeRate --> BusinessVerifyResult{业务验证是否通过?} + + BusinessVerifyResult -->|是| VerifyPass + BusinessVerifyResult -->|否| BackToSetting[返回提现配置页面调整后复测] + BackToSetting --> FillConfig + end + + VerifyPass --> End([流程结束]) + + %% ==================== 样式美化 ==================== + style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style End fill:#FF9999,stroke:#C62828,stroke-width:2px + style NoPermission fill:#FFCDD2,stroke:#D32F2F + style FixConfig fill:#FFCCBC,stroke:#E64A19 + style BackToSetting fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class HasPermission,NeedNewConfig,ValidateConfig,NeedBusinessVerify,BusinessVerifyResult decision +``` diff --git a/docs/系统流程图/0.套餐设计流程(包含佣金设计).md b/docs/系统流程图/0.套餐设计流程(包含佣金设计).md index e69de29..7af382a 100644 --- a/docs/系统流程图/0.套餐设计流程(包含佣金设计).md +++ b/docs/系统流程图/0.套餐设计流程(包含佣金设计).md @@ -0,0 +1,98 @@ +```mermaid +--- +title: 0.套餐设计流程(包含佣金设计) +--- +flowchart TD + Start((开始)) + --> Login[使用平台管理员账号登录] + + Login --> HasPermission{是否有套餐与分配管理权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterDesign[进入套餐系列与套餐管理] + + subgraph SeriesDesignFlow[系列与套餐设计] + EnterDesign --> CreateSeries[新建套餐系列] + CreateSeries --> EnableOneTime{是否启用一次性佣金?} + + EnableOneTime -->|否| SeriesReady[保存系列基础信息] + EnableOneTime -->|是| SetTrigger[设置触发方式
首充 或 累计充值] + + SetTrigger --> SetCommissionType{选择佣金模式} + SetCommissionType -->|固定模式| SetFixedCommission[设置固定佣金金额] + SetCommissionType -->|梯度模式| SetTierCommission[设置梯度档位与金额] + + SetFixedCommission --> SetValidity[设置规则生效时效] + SetTierCommission --> SetValidity + SetValidity --> SeriesReady + + SeriesReady --> CreatePackage[创建该系列下套餐] + CreatePackage --> SetPackageInfo[填写套餐信息
成本价、建议售价、周期、流量额度] + SetPackageInfo --> PackageReview{套餐信息是否完整?} + + PackageReview -->|否| FixPackageInfo[返回补充套餐信息] + FixPackageInfo --> SetPackageInfo + PackageReview -->|是| PackageReady[系列与套餐设计完成] + end + + subgraph ForceRechargeFlow[强充规则设计(单独分支)] + SetTrigger --> TriggerTypeCheck{触发方式是首充吗?} + TriggerTypeCheck -->|是| FirstRechargeRule[首充模式:设置首充门槛] + TriggerTypeCheck -->|否| AccumulatedRule[累计模式:设置累计门槛] + + FirstRechargeRule --> ForceRuleReady[强充规则确定] + AccumulatedRule --> NeedForceRecharge{累计模式是否启用强充?} + NeedForceRecharge -->|是| SetForceAmount[设置强充金额] + NeedForceRecharge -->|否| NoForceRecharge[不启用强充] + + SetForceAmount --> ForceRuleReady + NoForceRecharge --> ForceRuleReady + end + + PackageReady --> ToCommissionSystemFlow[进入 0.代理佣金体系设计流程] + ToCommissionSystemFlow --> ToAllocationFlow[进入 5.套餐分配流程(本图不展开)] + ForceRuleReady --> ToAllocationFlow + + ToAllocationFlow --> AllocationDone{是否已完成套餐分配?} + AllocationDone -->|否| WaitAllocation[先完成套餐分配后再验收] + WaitAllocation --> ToAllocationFlow + AllocationDone -->|是| StartAcceptance[开始业务验收] + + subgraph AcceptanceFlow[业务验收与佣金核对] + StartAcceptance --> AdminOrderVerify[后台创建测试订单并完成购买
用于验证套餐可购与基础佣金链] + AdminOrderVerify --> NeedCCheck{是否需要验收强充规则?} + + NeedCCheck -->|否| CheckCommissionEntry[进入后台「代理商资金管理」页面] + NeedCCheck -->|是| ClientOrderVerify[使用C端发起购买并完成支付] + + ClientOrderVerify --> HitForceRule{C端购买是否命中强充规则?} + HitForceRule -->|是| ForceRechargePath[按强充要求完成充值并继续购买] + HitForceRule -->|否| DirectBuyPath[按正常流程购买] + + ForceRechargePath --> CheckCommissionEntry + DirectBuyPath --> CheckCommissionEntry + + CheckCommissionEntry --> CheckAmount[在「佣金明细」核对佣金金额] + CheckAmount --> CheckOwner[在「佣金明细」核对佣金归属权] + CheckOwner --> CheckManualReview[在「佣金明细」筛选待审状态
核对是否进入人工核查] + CheckManualReview --> CommissionOK{验收是否通过?} + + CommissionOK -->|是| End([流程结束]) + CommissionOK -->|否| IssueType{问题属于哪类?} + IssueType -->|规则设计问题| BackToDesign[回到系列与佣金规则调整] + IssueType -->|分配问题| BackToAllocation[回到 5.套餐分配流程调整] + + BackToDesign --> EnterDesign + BackToAllocation --> ToAllocationFlow + end + + %% ==================== 样式美化 ==================== + style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style End fill:#FF9999,stroke:#C62828,stroke-width:2px + style NoPermission fill:#FFCDD2,stroke:#D32F2F + style BackToDesign fill:#FFCCBC,stroke:#E64A19 + style BackToAllocation fill:#FFCCBC,stroke:#E64A19 + style FixPackageInfo fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class HasPermission,EnableOneTime,SetCommissionType,PackageReview,TriggerTypeCheck,NeedForceRecharge,AllocationDone,NeedCCheck,HitForceRule,CommissionOK,IssueType decision +``` diff --git a/docs/系统流程图/0.微信配置流程.md b/docs/系统流程图/0.微信配置流程.md index e69de29..2d3740b 100644 --- a/docs/系统流程图/0.微信配置流程.md +++ b/docs/系统流程图/0.微信配置流程.md @@ -0,0 +1,97 @@ +```mermaid +--- +title: 0.微信配置流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[使用超级管理员或有权限的平台账号登录] + + 登录系统 --> 权限判断{是否具备微信配置管理权限?} + 权限判断 -->|否| 无权限结束[无权限,流程终止] + 权限判断 -->|是| 进入微信配置管理[进入微信配置管理] + + 进入微信配置管理 --> 选择操作{选择操作} + 选择操作 -->|新建配置| 选择通道类型 + 选择操作 -->|修改配置| 选择修改配置 + 选择操作 -->|激活配置| 选择激活配置 + 选择操作 -->|停用配置| 选择停用配置 + 选择操作 -->|删除配置| 选择删除配置 + + subgraph 新建与修改配置 + 选择通道类型{选择收款通道类型} + 选择通道类型 -->|微信直连| 填写微信通道信息[填写微信配置基础信息] + 选择通道类型 -->|富友通道| 填写富友通道信息[填写富友配置基础信息] + + 填写微信通道信息 --> 信息校验{信息是否完整且有效?} + 填写富友通道信息 --> 信息校验 + + 选择修改配置 --> 修改已有配置[调整已有配置的信息] + 修改已有配置 --> 信息校验 + + 信息校验 -->|否| 修正配置信息[修正信息后重新提交] + 修正配置信息 --> 信息校验 + 信息校验 -->|是| 提交保存[提交配置保存] + + 提交保存 --> 保存结果{保存是否成功?} + 保存结果 -->|否| 保存失败处理[记录原因并返回修正] + 保存失败处理 --> 修正配置信息 + 保存结果 -->|是| 保存成功[配置保存成功] + end + + 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 + 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 +``` diff --git a/docs/系统流程图/0.提现配置流程.md b/docs/系统流程图/0.提现配置流程.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/系统流程图/0.权限设置流程.md b/docs/系统流程图/0.权限设置流程.md index 8ae3291..5122b02 100644 --- a/docs/系统流程图/0.权限设置流程.md +++ b/docs/系统流程图/0.权限设置流程.md @@ -1,51 +1,49 @@ ```mermaid --- -title: 1.角色设计与权限分配业务流程 +title: 0.权限设置流程 --- flowchart TD - Start((开始)) - --> Login[使用超级管理员账号登录] + Start((开始)) + --> Login[使用超级管理员或有权限的平台账号登录] - Login --> IsSuperAdmin{是否为超级管理员?} + Login --> HasPermission{是否具备角色与权限管理权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterRolePage[进入角色与权限管理] - IsSuperAdmin -->|是| HasAccess[拥有权限] - IsSuperAdmin -->|否| CheckNewRolePermission{是否拥有「新建角色」权限?} + subgraph RoleDesignFlow[角色设计] + EnterRolePage --> SelectRoleType{选择角色类型} + SelectRoleType -->|平台角色| FillPlatformRole[填写平台角色信息] + SelectRoleType -->|代理角色| FillAgentRole[填写代理角色信息] - CheckNewRolePermission -->|是| HasAccess - CheckNewRolePermission -->|否| NoPermission[无权限,流程终止] + FillPlatformRole --> SetPermissionScope[设置角色可用功能范围] + FillAgentRole --> SetPermissionScope - HasAccess --> EnterRoleManagement[进入角色管理页面] - - subgraph 角色新建流程 - EnterRoleManagement --> ChooseRoleType{选择角色类型} - - ChooseRoleType -->|平台角色| CreatePlatform[新建平台角色] - ChooseRoleType -->|客户角色(代理)| CreateAgent[新建客户/代理角色] - - CreatePlatform --> CreateSuccess[新建成功] - CreateAgent --> CreateSuccess - - CreateSuccess --> AssignPermissions[为角色分配权限
(根据业务需求决定角色可使用功能)] + SetPermissionScope --> SaveRole[保存角色设置] + SaveRole --> RoleSaveResult{角色保存是否成功?} + RoleSaveResult -->|否| FixRoleData[修正角色信息后重试] + FixRoleData --> SelectRoleType + RoleSaveResult -->|是| BindRoleStart[进入账号绑定] end - AssignPermissions --> AssignRoleToAccount[将角色分配给具体账号] + subgraph BindAndVerifyFlow[账号绑定与验收] + BindRoleStart --> SelectAccount[选择需要生效的账号] + SelectAccount --> BindRole[为账号绑定角色] + BindRole --> VerifyLogin[使用该账号登录并核对可见功能] + VerifyLogin --> VerifyScope[核对权限范围与业务数据范围] + VerifyScope --> VerifyResult{验收是否通过?} - AssignRoleToAccount --> LoginWithAccount[使用被分配角色的账号登录系统] - - LoginWithAccount --> CheckPermission[检查账号权限是否正确] - - CheckPermission -->|正常| End([流程结束]) - CheckPermission -->|不正常| ReportIssue[提交问题 / Bug] - - ReportIssue -->|复测| EnterRoleManagement + VerifyResult -->|否| HandleException[记录异常并返回权限管理处理] + HandleException --> EnterRolePage + VerifyResult -->|是| End([流程结束]) + end %% ==================== 样式美化 ==================== style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px style End fill:#FF9999,stroke:#C62828,stroke-width:2px style NoPermission fill:#FFCDD2,stroke:#D32F2F - style HasAccess fill:#C8E6C9,stroke:#388E3C - style ReportIssue fill:#FFCCBC,stroke:#E64A19 + style FixRoleData fill:#FFCCBC,stroke:#E64A19 + style HandleException fill:#FFCCBC,stroke:#E64A19 classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px - class IsSuperAdmin,CheckNewRolePermission,ChooseRoleType,CheckPermission decision -``` \ No newline at end of file + class HasPermission,SelectRoleType,RoleSaveResult,VerifyResult decision +``` diff --git a/docs/系统流程图/0.资产导入流程.md b/docs/系统流程图/0.资产导入流程.md index e69de29..ecd0eb1 100644 --- a/docs/系统流程图/0.资产导入流程.md +++ b/docs/系统流程图/0.资产导入流程.md @@ -0,0 +1,73 @@ +```mermaid +--- +title: 0.资产导入流程 +--- +flowchart TD + Start((开始)) + --> Login[使用平台管理员或平台运营账号登录] + + Login --> HasPermission{是否有资产导入权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterImportPage[进入资产导入页面] + + EnterImportPage --> SelectType{选择导入类型} + SelectType -->|IoT卡导入| IotImport[进入 IoT卡导入] + SelectType -->|设备导入| DeviceImport[进入 设备导入] + + subgraph PrepareAndSubmitFlow[准备文件与提交任务] + IotImport --> DownloadTemplate[下载最新导入模板] + DeviceImport --> DownloadTemplate + + DownloadTemplate --> FillExcel[按模板填写 Excel 数据] + FillExcel --> FileReady{文件格式与内容是否合规?} + FileReady -->|否| FixExcel[修正文件后重新检查] + FixExcel --> FillExcel + + FileReady -->|是| UploadExcel[上传导入文件] + UploadExcel --> SubmitTask[提交导入任务] + SubmitTask --> TaskCreated[导入任务创建成功] + end + + subgraph TaskProcessFlow[任务处理与结果查看] + TaskCreated --> OpenTaskList[进入导入任务列表] + OpenTaskList --> CheckStatus{任务状态} + + CheckStatus -->|待处理/处理中| WaitAndRefresh[等待处理并刷新列表] + WaitAndRefresh --> OpenTaskList + + CheckStatus -->|失败| OpenTaskDetail[查看任务详情] + CheckStatus -->|已完成| OpenTaskDetail + + OpenTaskDetail --> CheckResult[查看成功数/跳过数/失败数
设备导入同时查看警告记录] + CheckResult --> NeedRetry{是否需要修正后重导?} + + NeedRetry -->|是| FixSourceData[修正源数据后重新导入] + FixSourceData --> UploadExcel + NeedRetry -->|否| GoVerifyAssets[进入资产数据验收] + end + + subgraph VerifyFlow[导入结果验收] + GoVerifyAssets --> VerifyType{验收类型} + + VerifyType -->|IoT卡| VerifyIot[在 IoT卡列表核对
ICCID/接入号/虚拟号/批次信息] + VerifyType -->|设备| VerifyDevice[在 设备列表核对
设备虚拟号/设备信息/卡绑定关系] + + VerifyIot --> VerifyPass{验收是否通过?} + VerifyDevice --> VerifyPass + + VerifyPass -->|否| BackToRetry[返回修正数据后重导] + BackToRetry --> FixSourceData + VerifyPass -->|是| End([流程结束]) + end + + %% ==================== 样式美化 ==================== + style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style End fill:#FF9999,stroke:#C62828,stroke-width:2px + style NoPermission fill:#FFCDD2,stroke:#D32F2F + style FixExcel fill:#FFCCBC,stroke:#E64A19 + style FixSourceData fill:#FFCCBC,stroke:#E64A19 + style BackToRetry fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class HasPermission,SelectType,FileReady,CheckStatus,NeedRetry,VerifyType,VerifyPass decision +``` diff --git a/docs/系统流程图/0.超级密码设置流程.md b/docs/系统流程图/0.超级密码设置流程.md index e69de29..d54e2f4 100644 --- a/docs/系统流程图/0.超级密码设置流程.md +++ b/docs/系统流程图/0.超级密码设置流程.md @@ -0,0 +1,62 @@ +```mermaid +--- +title: 0.超级密码设置与使用流程 +--- +flowchart TD + Start((开始)) + --> Login[使用超级管理员账号登录] + + Login --> IsSuperAdmin{是否为超级管理员?} + IsSuperAdmin -->|是| HasAccess[拥有操作权限] + IsSuperAdmin -->|否| NoPermission[无权限,流程终止] + + HasAccess --> EnterSuperAdminPage[进入超级密码设置页面] + EnterSuperAdminPage --> CheckStatus[查询超级密码是否已设置] + CheckStatus --> ChooseAction{选择操作} + + subgraph PasswordSettingFlow[超级密码设置流程] + ChooseAction -->|首次设置| FirstSet[输入新密码与确认密码] + ChooseAction -->|重置密码(可随时)| ResetPassword[输入新密码与确认密码] + + FirstSet --> ValidateInput{密码是否通过校验?} + ResetPassword --> ValidateInput + + ValidateInput -->|否| InputInvalid[提示错误并重新输入] + InputInvalid --> FirstSet + + ValidateInput -->|是| SavePassword[保存超级密码] + SavePassword --> SetSuccess[超级密码设置成功] + + SetSuccess -.->|后续可随时重置| ChooseAction + end + + subgraph PasswordUseFlow[超级密码使用流程-代理线下充值确认] + CreateOfflineOrder[创建代理线下充值订单] + CreateOfflineOrder --> ConfirmOperatorCheck{确认操作者是否超级管理员?} + + ConfirmOperatorCheck -->|否| NoPermission + ConfirmOperatorCheck -->|是| InputSuperPassword[输入超级密码进行二次确认] + + InputSuperPassword --> VerifyPassword{超级密码校验是否通过?} + VerifyPassword -->|否| VerifyFail[校验失败,禁止确认到账] + VerifyFail --> InputSuperPassword + + VerifyPassword -->|是| ConfirmOfflineRecharge[确认线下充值到账] + ConfirmOfflineRecharge --> UpdateRechargeStatus[系统完成充值入账并更新记录] + UpdateRechargeStatus --> RechargeSuccess[线下充值确认成功] + end + + SetSuccess -.-> CreateOfflineOrder + RechargeSuccess --> End([流程结束]) + + %% ==================== 样式美化 ==================== + style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style End fill:#FF9999,stroke:#C62828,stroke-width:2px + style NoPermission fill:#FFCDD2,stroke:#D32F2F + style HasAccess fill:#C8E6C9,stroke:#388E3C + style InputInvalid fill:#FFCCBC,stroke:#E64A19 + style VerifyFail fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class IsSuperAdmin,ChooseAction,ValidateInput,ConfirmOperatorCheck,VerifyPassword decision +``` diff --git a/docs/系统流程图/10.退款流程.md b/docs/系统流程图/10.退款流程.md index e69de29..39e5200 100644 --- a/docs/系统流程图/10.退款流程.md +++ b/docs/系统流程图/10.退款流程.md @@ -0,0 +1,53 @@ +```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 +``` diff --git a/docs/系统流程图/11.后台订单流程.md b/docs/系统流程图/11.后台订单流程.md index e69de29..81c7f1f 100644 --- a/docs/系统流程图/11.后台订单流程.md +++ b/docs/系统流程图/11.后台订单流程.md @@ -0,0 +1,84 @@ +```mermaid +--- +title: 11.后台订单流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[超管 平台或代理账号登录后台] + + 登录系统 --> 权限判断{是否具备后台下单权限?} + 权限判断 -->|否| 无权限结束[无权限 流程终止] + 权限判断 -->|是| 填写订单信息[选择资产 选择套餐 填写下单信息] + + 填写订单信息 --> 资产校验{资产归属和状态是否可下单?} + 资产校验 -->|否| 修正资产信息[调整资产或订单信息后重试] + 修正资产信息 --> 填写订单信息 + 资产校验 -->|是| 套餐校验{套餐是否在可售范围内?} + + 套餐校验 -->|否| 更换套餐[更换套餐后重试] + 更换套餐 --> 填写订单信息 + 套餐校验 -->|是| 套餐类型校验{本单购买主套餐还是加油包?} + + 套餐类型校验 -->|主套餐| 主套餐规则说明[主套餐规则
若当前已有生效主套餐
新主套餐进入排队] + 套餐类型校验 -->|加油包| 加油包前置校验{当前是否已有主套餐?} + 加油包前置校验 -->|否| 无主套餐结束[无主套餐不可购买加油包] + 加油包前置校验 -->|是| 加油包规则说明[加油包规则
1 加油包立即生效
2 有效期与当前主套餐一致] + + 主套餐规则说明 --> 后台规则说明[后台规则
后台订单不触发强充] + 加油包规则说明 --> 后台规则说明 + + 后台规则说明 --> 支付方式判断{选择支付方式} + 支付方式判断 -->|钱包支付| 进入钱包支付节点 + 支付方式判断 -->|线下支付| 进入线下支付节点 + + 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:#FFCDD2,stroke:#D32F2F + 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 +``` diff --git a/docs/系统流程图/12.C端订单流程.md b/docs/系统流程图/12.C端订单流程.md index e69de29..40fab85 100644 --- a/docs/系统流程图/12.C端订单流程.md +++ b/docs/系统流程图/12.C端订单流程.md @@ -0,0 +1,91 @@ +```mermaid +--- +title: 12.客户端订单流程 +--- +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:#FFCDD2,stroke:#D32F2F + 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 +``` diff --git a/docs/系统流程图/13.换货流程.md b/docs/系统流程图/13.换货流程.md index e69de29..d143023 100644 --- a/docs/系统流程图/13.换货流程.md +++ b/docs/系统流程图/13.换货流程.md @@ -0,0 +1,74 @@ +```mermaid +--- +title: 13.换货流程 +--- +flowchart TD + 开始((开始)) + --> 后台建单[后台发起换货申请] + + 后台建单 --> 建单校验{旧资产是否满足换货条件?} + 建单校验 -->|否| 建单失败[不满足条件 流程终止] + 建单校验 -->|是| 换货建单成功[换货单创建成功 待客户填写信息] + + subgraph 客户处理 + 换货建单成功 --> 客户通知[通知客户有待处理换货单] + 客户通知 --> 客户填写信息[客户填写收货信息] + 客户填写信息 --> 信息提交结果{提交是否成功?} + 信息提交结果 -->|否| 重新填写[修正信息后重新提交] + 重新填写 --> 客户填写信息 + 信息提交结果 -->|是| 待发货[进入待发货状态] + end + + subgraph 后台发货 + 待发货 --> 选择新资产[选择新资产并填写物流信息] + 选择新资产 --> 发货校验{新旧资产类型和状态是否匹配?} + 发货校验 -->|否| 更换新资产[更换新资产后重试] + 更换新资产 --> 选择新资产 + 发货校验 -->|是| 发货完成[完成发货并等待确认] + end + + 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 + style 异常回流 fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class 建单校验,信息提交结果,发货校验,迁移判断,转新结果,取消判断,验收结果 decision +``` diff --git a/docs/系统流程图/14.资产日常管控流程.md b/docs/系统流程图/14.资产日常管控流程.md index e69de29..2c552ed 100644 --- a/docs/系统流程图/14.资产日常管控流程.md +++ b/docs/系统流程图/14.资产日常管控流程.md @@ -0,0 +1,78 @@ +```mermaid +--- +title: 14.资产日常管控流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[运营或售后账号登录系统] + + 登录系统 --> 工作类型判断{本次处理哪类日常工作?} + 工作类型判断 -->|入驻开通| 入驻入口[进入入驻开通工作] + 工作类型判断 -->|资产运营| 运营入口[进入资产运营工作] + 工作类型判断 -->|售后处理| 售后入口[进入售后处理工作] + + subgraph 入驻开通模块 + 入驻入口 --> 开通对象判断{开通对象} + 开通对象判断 -->|平台人员| 平台开通[按平台人员账号创建流程执行] + 开通对象判断 -->|代理| 代理开通[按代理入驻店铺新建流程执行] + 开通对象判断 -->|企业客户| 企业开通[按企业客户入驻流程执行] + + 平台开通 --> 开通验收 + 代理开通 --> 开通验收 + 企业开通 --> 开通验收 + 开通验收{开通验收是否通过?} -->|否| 开通修正[修正信息后重新提交] + 开通修正 --> 入驻入口 + 开通验收 -->|是| 回到收口 + end + + subgraph 资产运营模块 + 运营入口 --> 运营事项判断{选择运营事项} + 运营事项判断 -->|资产导入| 导入处理[执行资产导入并核对结果] + 运营事项判断 -->|资产分配| 分配处理[执行资产分配并核对归属] + 运营事项判断 -->|卡管理| 卡管理处理[卡相关操作与管理] + 运营事项判断 -->|设备管理| 设备管理处理[设备相关操作与管理] + 运营事项判断 -->|套餐运营| 套餐运营处理[预设套餐 套餐分配 购买跟踪] + + 导入处理 --> 运营验收 + 分配处理 --> 运营验收 + 卡管理处理 --> 运营验收 + 设备管理处理 --> 运营验收 + 套餐运营处理 --> 运营验收 + 运营验收{运营结果是否通过验收?} -->|否| 运营修正[调整后重新执行] + 运营修正 --> 运营入口 + 运营验收 -->|是| 回到收口 + end + + subgraph 售后处理模块 + 售后入口 --> 售后类型判断{售后问题类型} + 售后类型判断 -->|代理侧问题| 代理售后[处理代理充值 佣金提现 入驻问题] + 售后类型判断 -->|订单侧问题| 订单售后[处理订单异常 退款 换货问题] + 售后类型判断 -->|资产侧问题| 资产售后[处理卡或设备异常问题] + + 代理售后 --> 售后回访 + 订单售后 --> 售后回访 + 资产售后 --> 售后回访 + 售后回访[同步处理结果并回访] --> 售后结果判断{问题是否已解决?} + 售后结果判断 -->|否| 售后升级[升级处理并持续跟进] + 售后升级 --> 售后入口 + 售后结果判断 -->|是| 回到收口 + end + + subgraph 日终收口 + 回到收口[回到日常工作收口] --> 日终复盘[复盘当日处理量与问题清单] + 日终复盘 --> 未结判断{是否还有未结事项?} + 未结判断 -->|是| 生成待办[生成次日跟进清单] + 生成待办 --> 结束([流程结束]) + 未结判断 -->|否| 结束 + end + + %% ==================== 样式美化 ==================== + style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px + 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 +``` diff --git a/docs/系统流程图/15.企业客户入驻流程.md b/docs/系统流程图/15.企业客户入驻流程.md index e69de29..43f1971 100644 --- a/docs/系统流程图/15.企业客户入驻流程.md +++ b/docs/系统流程图/15.企业客户入驻流程.md @@ -0,0 +1,71 @@ +```mermaid +--- +title: 15.企业客户入驻流程 +--- +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 + style 异常处理 fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class 权限判断,操作者判断,重复校验,创建结果,是否立即授权,选择授权类型,授权结果,资产验收判断,验收结果 decision +``` diff --git a/docs/系统流程图/2.平台人员账号创建流程.md b/docs/系统流程图/2.平台人员账号创建流程.md index 36d52a0..6073019 100644 --- a/docs/系统流程图/2.平台人员账号创建流程.md +++ b/docs/系统流程图/2.平台人员账号创建流程.md @@ -1,53 +1,55 @@ ```mermaid --- -title: 2.员工账号新建与权限分配业务流程 +title: 2.平台人员账号创建流程 --- flowchart TD - Start((开始)) - --> Login[使用超级管理员账号登录] + Start((开始)) + --> Login[使用超级管理员或有权限的平台账号登录] - Login --> IsSuperAdmin{是否为超级管理员?} + Login --> HasPermission{是否具备平台账号创建权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterAccountPage[进入平台账号管理] - IsSuperAdmin -->|是| HasAccess[拥有权限] - IsSuperAdmin -->|否| CheckPermission{是否拥有「账号管理」以及「新建账号」权限?} + subgraph CreateAccountFlow[账号创建与授权] + EnterAccountPage --> SelectAccountType{选择账号类型} + SelectAccountType -->|平台运营账号| FillOperatorInfo[填写账号基础信息] + SelectAccountType -->|超级管理员账号| FillSuperInfo[填写账号基础信息] - CheckPermission -->|是| HasAccess - CheckPermission -->|否| NoPermission[无权限,流程终止] + FillOperatorInfo --> RoleAtCreate{是否在创建时分配角色?} + RoleAtCreate -->|是| SubmitWithRole[提交创建并同步分配角色] + RoleAtCreate -->|否| SubmitWithoutRole[先提交创建后补充角色] + SubmitWithoutRole --> AssignRoleLater[在账号列表补充分配角色] - HasAccess --> EnterAccountManagement[进入账号管理页面] + FillSuperInfo --> SubmitSuper[提交创建] - subgraph 员工账号新建流程 - EnterAccountManagement --> ChooseRoleType{选择账号类型} - - ChooseRoleType -->|平台用户| CreatePlatformUser[新建平台用户] - ChooseRoleType -->|超级管理员| CreateSuperAdmin[新建超级管理员用户] + SubmitWithRole --> CreateDone[账号创建完成] + AssignRoleLater --> CreateDone + SubmitSuper --> CreateDone - CreatePlatformUser --> PreAssign[在新建界面预分配角色] - - PreAssign --> |已分配角色| PreAssignSuccess[预分配成功] - PreAssign --> |未分配角色| AssignInList[进入账号列表后操作分配角色] - - AssignInList --> CreateSuccess[账号新建成功] - PreAssignSuccess --> CreateSuccess - CreateSuperAdmin --> CreateSuccess - - CreateSuccess --> LoginWithNewAccount[使用新建账号登录系统进行验证] + CreateDone --> CreateResult{创建是否成功?} + CreateResult -->|否| FixAndRetry[修正信息后重新提交] + FixAndRetry --> SelectAccountType + CreateResult -->|是| StartVerify[进入验收检查] end - LoginWithNewAccount --> CheckPermissionResult{账号权限是否正确?} + subgraph VerifyFlow[账号验收检查] + StartVerify --> CheckAccountList[在平台账号列表确认账号已生成] + CheckAccountList --> CheckLogin[使用新账号登录并确认可正常使用] + CheckLogin --> CheckScope[核对角色权限与数据范围是否正确] + CheckScope --> VerifyResult{验收是否通过?} - CheckPermissionResult -->|正常| End([流程结束]) - CheckPermissionResult -->|不正常| ReportIssue[提交问题 / Bug] - - ReportIssue -->|复测| EnterAccountManagement + VerifyResult -->|否| HandleException[记录异常并回到账号管理处理] + HandleException --> EnterAccountPage + VerifyResult -->|是| End([流程结束]) + end %% ==================== 样式美化 ==================== style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px style End fill:#FF9999,stroke:#C62828,stroke-width:2px style NoPermission fill:#FFCDD2,stroke:#D32F2F - style HasAccess fill:#C8E6C9,stroke:#388E3C - style ReportIssue fill:#FFCCBC,stroke:#E64A19 + style FixAndRetry fill:#FFCCBC,stroke:#E64A19 + style HandleException fill:#FFCCBC,stroke:#E64A19 classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px - class IsSuperAdmin,CheckPermission,ChooseRoleType,CheckPermissionResult decision -``` \ No newline at end of file + class HasPermission,SelectAccountType,RoleAtCreate,CreateResult,VerifyResult decision +``` diff --git a/docs/系统流程图/3.代理入驻(店铺新建)流程.md b/docs/系统流程图/3.代理入驻(店铺新建)流程.md index 81b77e7..c3cb16e 100644 --- a/docs/系统流程图/3.代理入驻(店铺新建)流程.md +++ b/docs/系统流程图/3.代理入驻(店铺新建)流程.md @@ -1,71 +1,62 @@ ```mermaid --- -title: 3. 代理入驻(店铺新建)及店铺账号新增流程 +title: 3.代理入驻(店铺新建)流程 --- flowchart TD - Start((开始)) - --> Login[使用超级管理员或有权限账号登录] + Start((开始)) + --> Login[使用超级管理员或有权限的平台账号登录] - Login --> IsSuperAdmin{是否为超级管理员?} + Login --> HasPermission{是否具备代理入驻与店铺新建权限?} + HasPermission -->|否| NoPermission[无权限,流程终止] + HasPermission -->|是| EnterShopPage[进入店铺管理] - IsSuperAdmin -->|是| HasAccess[拥有权限] - IsSuperAdmin -->|否| CheckPermission{是否拥有「店铺管理」及「新建代理/店铺」权限?} + subgraph CreateShopFlow[代理入驻与店铺新建] + EnterShopPage --> FillShopInfo[填写代理与店铺基础信息] + FillShopInfo --> SelectParent{是否设置上级代理?} + SelectParent -->|否| CreateTopShop[创建顶级代理店铺] + SelectParent -->|是| CreateChildShop[创建下级代理店铺] - CheckPermission -->|是| HasAccess - CheckPermission -->|否| NoPermission[无权限,流程终止] + CreateTopShop --> ConfirmOwner[确认店铺归属与负责人] + CreateChildShop --> ConfirmOwner - HasAccess --> EnterShopManagement[进入店铺管理页面] - - subgraph 代理入驻店铺新建流程 - EnterShopManagement --> InputInfo{输入代理/店铺信息并分配上级} - - InputInfo -->|不分配上级| CreateTopAgent[新建顶级代理/店铺] - InputInfo -->|分配上级| CreateSubAgent[新建次级代理/店铺] - - CreateTopAgent --> SetDefaultRole[设置默认角色] - CreateSubAgent --> SetDefaultRole - - SetDefaultRole --> CreateSuccess[店铺创建成功] - - CreateSuccess --> Verification[进入验证环节] - - Verification --> Check1[店铺列表中是否存在新建的店铺?] - Verification --> Check2[店铺默认账号是否出现在账号列表?] - Verification --> Check3[检查店铺基础数据是否正常] - Verification --> Check4[使用默认账号登录,验证权限及上下级关系是否正确] - - Check1 & Check2 & Check3 & Check4 --> VerifyResult{验证是否全部正常?} + ConfirmOwner --> SubmitShop[提交新建店铺] + SubmitShop --> ShopCreateResult{店铺创建是否成功?} + ShopCreateResult -->|否| FixShopInfo[修正信息后重新提交] + FixShopInfo --> FillShopInfo + ShopCreateResult -->|是| ShopVerifyStart[进入店铺验收] end - VerifyResult -->|全部正常| End([流程结束]) - VerifyResult -->|存在异常| ReportIssue[提交 Bug / 问题] - - ReportIssue -->|复测| EnterShopManagement - - %% ==================== 店铺账号新增流程 ==================== - subgraph 店铺账号新增流程 - AfterShopCreated[店铺创建成功后] --> GoToAccountList[进入该店铺的账号列表] - - GoToAccountList --> AddNewAccount[点击新增账号] - AddNewAccount --> FillAccountInfo[填写账号信息并分配角色] - FillAccountInfo --> SaveAccount[保存并创建账号] - SaveAccount --> VerifyNewAccount[验证新账号是否可正常登录及使用权限] - - VerifyNewAccount --> AccountVerifyResult{验证是否正常?} - AccountVerifyResult -->|正常| BackToMain[返回主流程] - AccountVerifyResult -->|异常| ReportIssue + subgraph ShopVerifyFlow[店铺验收] + ShopVerifyStart --> CheckShopList[在店铺列表核对店铺信息与层级关系] + CheckShopList --> CheckDefaultAccount[核对默认店铺账号是否已生成] + CheckDefaultAccount --> CheckDefaultLogin[使用默认账号登录并核对可见功能] + CheckDefaultLogin --> ShopVerifyResult{店铺验收是否通过?} end - %% 连接两个子流程(可选步骤) - CreateSuccess -.-> AfterShopCreated + subgraph ExtraAccountFlow[店铺账号补充可选流程] + ShopVerifyResult -->|通过| NeedExtraAccount{是否需要新增店铺账号?} + NeedExtraAccount -->|否| End([流程结束]) + NeedExtraAccount -->|是| OpenShopAccount[进入该店铺账号管理] + OpenShopAccount --> FillExtraAccount[填写新增账号信息并分配角色] + FillExtraAccount --> SubmitExtraAccount[提交新增账号] + SubmitExtraAccount --> VerifyExtraAccount[验证新增账号登录与权限] + VerifyExtraAccount --> ExtraAccountResult{新增账号验收是否通过?} + ExtraAccountResult -->|否| FixExtraAccount[修正账号信息或角色后重试] + FixExtraAccount --> OpenShopAccount + ExtraAccountResult -->|是| End + end + + ShopVerifyResult -->|不通过| HandleShopException[记录异常并回到店铺管理处理] + HandleShopException --> EnterShopPage %% ==================== 样式美化 ==================== style Start fill:#90EE90,stroke:#2E7D32,stroke-width:2px style End fill:#FF9999,stroke:#C62828,stroke-width:2px style NoPermission fill:#FFCDD2,stroke:#D32F2F - style HasAccess fill:#C8E6C9,stroke:#388E3C - style ReportIssue fill:#FFCCBC,stroke:#E64A19 + style FixShopInfo fill:#FFCCBC,stroke:#E64A19 + style FixExtraAccount fill:#FFCCBC,stroke:#E64A19 + style HandleShopException fill:#FFCCBC,stroke:#E64A19 classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px - class IsSuperAdmin,CheckPermission,InputInfo,VerifyResult,AccountVerifyResult decision -``` \ No newline at end of file + class HasPermission,SelectParent,ShopCreateResult,ShopVerifyResult,NeedExtraAccount,ExtraAccountResult decision +``` diff --git a/docs/系统流程图/4.为资产预设套餐系列流程.md b/docs/系统流程图/4.为资产预设套餐系列流程.md index 66fd44c..b0c4200 100644 --- a/docs/系统流程图/4.为资产预设套餐系列流程.md +++ b/docs/系统流程图/4.为资产预设套餐系列流程.md @@ -1,3 +1,78 @@ ```mermaid +--- +title: 4.为资产预设套餐系列流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[使用超级管理员或有权限账号登录] -``` \ No newline at end of file + 登录系统 --> 权限判断{是否具备资产套餐系列预设权限?} + 权限判断 -->|否| 无权限结束[无权限,流程终止] + 权限判断 -->|是| 进入预设页面[进入资产预设套餐系列] + + 进入预设页面 --> 选择资产类型{选择资产类型} + 选择资产类型 -->|单卡| 进入单卡预设[进入单卡预设] + 选择资产类型 -->|设备| 进入设备预设[进入设备预设] + + 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 + 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 + +``` diff --git a/docs/系统流程图/4.资产分配流程.md b/docs/系统流程图/4.资产分配流程.md index e69de29..5d6fb6f 100644 --- a/docs/系统流程图/4.资产分配流程.md +++ b/docs/系统流程图/4.资产分配流程.md @@ -0,0 +1,74 @@ +```mermaid +--- +title: 4.资产分配流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[使用超级管理员或有权限账号登录] + + 登录系统 --> 权限判断{是否具备资产分配权限?} + 权限判断 -->|否| 无权限结束[无权限,流程终止] + 权限判断 -->|是| 进入资产管理[进入资产管理] + + 进入资产管理 --> 选择资产类型{选择分配资产类型} + 选择资产类型 -->|单卡分配| 进入单卡分配[进入单卡分配] + 选择资产类型 -->|设备分配| 进入设备分配[进入设备分配] + + subgraph 分配准备 + 进入单卡分配 --> 选择目标店铺[选择目标店铺] + 进入设备分配 --> 选择目标店铺 + + 选择目标店铺 --> 操作者判断{是否为超管或平台账号?} + 操作者判断 -->|是| 跨级允许[可跨级分配目标店铺] + 跨级允许 --> 选择资产范围[选择待分配资产] + 操作者判断 -->|否| 下级关系校验{目标店铺是否为直属下级?} + 下级关系校验 -->|否| 关系不符[代理仅可分配直属下级,返回重选] + 关系不符 --> 选择目标店铺 + 下级关系校验 -->|是| 选择资产范围 + + 选择资产范围 --> 资产归属校验{资产是否属于当前可分配范围?} + 资产归属校验 -->|否| 调整资产范围[剔除不符合资产后重新选择] + 调整资产范围 --> 选择资产范围 + 资产归属校验 -->|是| 分配条件说明[分配条件说明
1. 单卡必须未绑定设备
2. 平台分配单卡时仅可分配在库资产
3. 代理分配单卡时可继续下发已分销资产
4. 设备分配时设备与绑定卡归属会同步下发] + 分配条件说明 --> 业务规则校验{是否满足以上分配条件?} + + 业务规则校验 -->|否| 规则不通过[不满足分配条件,返回修正] + 规则不通过 --> 选择资产范围 + 业务规则校验 -->|是| 提交分配[提交资产分配] + 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 + style 异常处理 fill:#FFCCBC,stroke:#E64A19 + style 关系不符 fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class 权限判断,选择资产类型,操作者判断,下级关系校验,资产归属校验,业务规则校验,分配执行结果,设备同步校验,验收结果 decision +``` diff --git a/docs/系统流程图/5.套餐分配流程.md b/docs/系统流程图/5.套餐分配流程.md index e69de29..c10d297 100644 --- a/docs/系统流程图/5.套餐分配流程.md +++ b/docs/系统流程图/5.套餐分配流程.md @@ -0,0 +1,63 @@ +```mermaid +--- +title: 5.套餐分配流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[使用超管 平台或代理账号登录] + + 登录系统 --> 权限判断{是否具备套餐分配权限?} + 权限判断 -->|否| 无权限结束[无权限,流程终止] + 权限判断 -->|是| 进入套餐分配[进入套餐分配管理] + + subgraph 分配准备 + 进入套餐分配 --> 选择目标店铺[选择被分配店铺] + 选择目标店铺 --> 操作者判断{是否为超管或平台账号?} + 操作者判断 -->|是| 跨级允许[可跨级选择目标店铺] + 跨级允许 --> 选择系列和套餐[选择要分配的系列与套餐] + 操作者判断 -->|否| 下级校验{目标店铺是否直属下级?} + 下级校验 -->|否| 重选店铺[仅可分配给直属下级] + 重选店铺 --> 选择目标店铺 + 下级校验 -->|是| 选择系列和套餐 + + 选择系列和套餐 --> 套餐权限校验{是否拥有该系列和套餐分配权限?} + 套餐权限校验 -->|否| 更换套餐[更换系列或套餐后重试] + 更换套餐 --> 选择系列和套餐 + 套餐权限校验 -->|是| 填写分配规则[填写成本价 零售价 上架状态] + end + + subgraph 规则检查阶段 + 填写分配规则 --> 规则说明[分配规则说明
1 下级成本价不能低于本级成本价
2 仅能分配自己有权限的套餐
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 +``` diff --git a/docs/系统流程图/6.购买套餐流程.md b/docs/系统流程图/6.购买套餐流程.md index e69de29..768ff11 100644 --- a/docs/系统流程图/6.购买套餐流程.md +++ b/docs/系统流程图/6.购买套餐流程.md @@ -0,0 +1,65 @@ +```mermaid +--- +title: 6.购买套餐流程 +--- +flowchart TD + 开始((开始)) + --> 进入购买入口[进入购买套餐入口] + + 进入购买入口 --> 选择购买渠道{选择购买渠道} + 选择购买渠道 -->|后台购买| 后台购买准备[进入后台购买流程] + 选择购买渠道 -->|客户端自助购买| 客户购买准备[进入客户端购买流程] + + subgraph 后台购买主线 + 后台购买准备 --> 后台校验资产和套餐[校验资产归属与套餐可售] + 后台校验资产和套餐 --> 后台规则说明[后台购买规则
1 后台购买不触发强充
2 后台购买不触发一次性佣金] + 后台规则说明 --> 后台创建订单[提交后台订单] + 后台创建订单 --> 后台支付结果{后台支付是否成功?} + 后台支付结果 -->|否| 后台重试[调整信息后重新下单] + 后台重试 --> 后台购买准备 + 后台支付结果 -->|是| 后台激活套餐[完成套餐激活] + 后台激活套餐 --> 后台差价说明[后台差价收益说明
1 平台代购按跨级店铺逐级计算差价收益
2 代理为下级代购时差价在代购环节处理 不再重复链路分配] + end + + subgraph 客户购买主线 + 客户购买准备 --> 客户校验资产和套餐[校验资产归属与套餐可售] + 客户校验资产和套餐 --> 实名判断{是否需要先实名?} + 实名判断 -->|是| 完成实名[先完成实名认证] + 完成实名 --> 客户下单前校验 + 实名判断 -->|否| 客户下单前校验[进入下单前校验] + + 客户下单前校验 --> 强充判断{是否命中强充规则?} + 强充判断 -->|是| 强充处理[按强充金额先完成充值后继续购买] + 强充处理 --> 客户支付 + 强充判断 -->|否| 客户支付[直接发起套餐支付] + + 客户支付 --> 客户支付结果{客户支付是否成功?} + 客户支付结果 -->|否| 客户重试[重新支付或更换套餐] + 客户重试 --> 客户购买准备 + 客户支付结果 -->|是| 客户激活套餐[完成套餐激活] + 客户激活套餐 --> 客户佣金说明[客户端佣金规则
1 可按规则触发一次性佣金
2 差价收益按跨级店铺逐级分配] + end + + 后台差价说明 --> 汇总验收[进入订单与套餐生效验收] + 客户佣金说明 --> 汇总验收 + + subgraph 验收收口 + 汇总验收 --> 核对订单状态[核对订单状态和金额] + 核对订单状态 --> 核对佣金口径[核对一次性佣金与差价收益口径是否正确] + 核对佣金口径 --> 核对套餐生效[核对套餐已生效并可正常使用] + 核对套餐生效 --> 验收结果{验收是否通过?} + 验收结果 -->|否| 异常回流[记录异常并返回对应购买渠道处理] + 异常回流 --> 进入购买入口 + 验收结果 -->|是| 结束([流程结束]) + end + + %% ==================== 样式美化 ==================== + style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px + 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 +``` diff --git a/docs/系统流程图/7.佣金产生细节说明.md b/docs/系统流程图/7.佣金产生细节说明.md index e69de29..304dddf 100644 --- a/docs/系统流程图/7.佣金产生细节说明.md +++ b/docs/系统流程图/7.佣金产生细节说明.md @@ -0,0 +1,64 @@ +```mermaid +--- +title: 7.佣金产生细节说明 +--- +flowchart TD + 开始((开始)) + --> 订单完成[订单完成并进入佣金核算] + + 订单完成 --> 来源判断{订单来源} + 来源判断 -->|后台订单| 后台类型判断{后台订单类型} + 来源判断 -->|客户端订单| 客户端订单口径[客户端订单进入佣金计算] + + 后台类型判断 -->|平台代购| 平台代购口径[参与跨级差价链式分配] + 后台类型判断 -->|代理自购或代理代购| 后台一次性跳过[后台订单不触发一次性佣金] + + 平台代购口径 --> 差价链路入口[进入差价链式分配] + 客户端订单口径 --> 差价链路入口 + 后台一次性跳过 --> 差价口径判断{是否需要差价链式分配?} + 差价口径判断 -->|否| 进入核查 + 差价口径判断 -->|是| 差价链路入口 + + subgraph 差价链式分配 + 差价链路入口 --> 差价链式说明[跨级差价链式说明
1 以销售店铺为起点逐级向上分配
2 每一级只拿自己与下一级的成本价差
3 直到链路顶层或无上级为止] + 差价链式说明 --> 差价逐级计算[按店铺层级逐级计算差价收益] + 差价逐级计算 --> 差价入账[差价收益入账] + end + + 客户端订单口径 --> 一次性入口{是否满足一次性佣金前提?} + 一次性入口 -->|否| 一次性跳过[本单不产生一次性佣金] + 一次性入口 -->|是| 一次性规则判断[判断首充或累计触发条件] + + subgraph 一次性链式分配 + 一次性规则判断 --> 一次性触发判断{是否达到触发要求?} + 一次性触发判断 -->|否| 一次性跳过 + 一次性触发判断 -->|是| 一次性链式说明[一次性链式说明
1 下级先拿配置给下级的金额
2 上级拿本级可得金额与下级金额的差额
3 逐级向上分配直至顶层] + 一次性链式说明 --> 一次性逐级分配[按上下级配置逐级分配] + 一次性逐级分配 --> 一次性入账[一次性佣金入账] + end + + 差价入账 --> 进入核查[进入佣金验收核查] + 一次性跳过 --> 进入核查 + 一次性入账 --> 进入核查 + + subgraph 验收核查 + 进入核查 --> 金额核查[核查各级店铺佣金金额] + 金额核查 --> 归属核查[核查各级店铺佣金归属] + 归属核查 --> 人工核查判断{是否命中人工核查条件?} + 人工核查判断 -->|是| 人工复核[进入人工复核并给出处理结论] + 人工复核 --> 核查结果 + 人工核查判断 -->|否| 核查结果{核查是否通过?} + 核查结果 -->|否| 修正处理[修正配置或补充记录后重算] + 修正处理 --> 订单完成 + 核查结果 -->|是| 结束([流程结束]) + end + + %% ==================== 样式美化 ==================== + style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px + style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px + style 修正处理 fill:#FFCCBC,stroke:#E64A19 + style 人工复核 fill:#FFCCBC,stroke:#E64A19 + + classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px + class 来源判断,后台类型判断,差价口径判断,一次性入口,一次性触发判断,人工核查判断,核查结果 decision +``` diff --git a/docs/系统流程图/8.代理佣金提现以及审批流程.md b/docs/系统流程图/8.代理佣金提现以及审批流程.md index e69de29..4cd2ad9 100644 --- a/docs/系统流程图/8.代理佣金提现以及审批流程.md +++ b/docs/系统流程图/8.代理佣金提现以及审批流程.md @@ -0,0 +1,54 @@ +```mermaid +--- +title: 8.代理佣金提现以及审批流程 +--- +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 +``` diff --git a/docs/系统流程图/9.代理充值流程.md b/docs/系统流程图/9.代理充值流程.md index e69de29..387d45f 100644 --- a/docs/系统流程图/9.代理充值流程.md +++ b/docs/系统流程图/9.代理充值流程.md @@ -0,0 +1,50 @@ +```mermaid +--- +title: 9.代理充值流程 +--- +flowchart TD + 开始((开始)) + --> 登录系统[代理或平台账号登录] + + 登录系统 --> 权限判断{是否具备代理充值权限?} + 权限判断 -->|否| 无权限结束[无权限 流程终止] + 权限判断 -->|是| 填写充值信息[填写目标店铺 金额 备注] + + 填写充值信息 --> 线下权限判断{是否允许线下充值?} + 线下权限判断 -->|否| 无权限结束 + 线下权限判断 -->|是| 创建线下单[创建线下充值单] + + 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 +``` diff --git a/internal/gateway/client.go b/internal/gateway/client.go index ae243f2..696f72a 100644 --- a/internal/gateway/client.go +++ b/internal/gateway/client.go @@ -227,6 +227,8 @@ func doRequestWithResponse[T any](c *Client, ctx context.Context, path string, p return nil, err } + c.logger.Debug("Gateway 原始响应数据", zap.ByteString("data", data)) + var result T if err := sonic.Unmarshal(data, &result); err != nil { return nil, errors.Wrap(errors.CodeGatewayInvalidResp, err, "解析 Gateway 响应失败")