Files
notes/excalidraw/工作相关/需求-7.15.0 跨客户订购迁移流程自动化.md
T
2026-03-01 01:43:46 +08:00

19 KiB
Raw Blame History

excalidraw-plugin, tags
excalidraw-plugin tags
parsed
excalidraw

==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'

Excalidraw Data

Text Elements

客户下发预热刷新任务时(接口、页面) ^FywxkhYv

4 内容管理接口 ^VYtvnfdS

8.1 解封禁接口 ^SXpDKnIl

8.2 URL 封禁/解封任务查询接口 ^n30ZY5us

URL 预热 ^ocLdL6Qv

常用 URL/content/commonsource/list 涉及表:common_used_source ^OB3xeR69

页面:/content/manage ^RHUYKd5R

角色识别: RoleEnum.CP_SUB (企业子客户) 从 enterprise_subuser_domains 表查询该子账号被授权的域名ID列表 数据库表: enterprise_subuser_domains、self_service_domain_config、extensive_domains、enterprise_info ^X4kLCvbp

运营经理 (OM_GRP / OM_PRV) A. ESOP企业域名: 从 domain_approve_relation 表查询该运营经理配置的域名 查询条件: config_user_id = 当前用户ID Cache+企业域名: 从 enterprise_info 表查询该运营经理关联的企业信息 查询条件: 运营经理ID (一个运营经理可能关联多个企业) 对于来源为 WEB 的企业: 查询该企业下所有精确域名 (从 self_service_domain_config 表) 查询该企业下所有泛化域名 (从 extensive_domains 表) ^yO1XaDLm

RoleEnum.IT_PRV (省运维工程师) 从 self_service_domain_config 表查询该运维工程师可操作的域名 ^zNQBkBwM

企业用户 (CP)

处理逻辑: 优先从 Redis 缓存获取,缓存失效时从数据库查询

1、从 Redis 缓存获取 (优先)

Redis Key:

  • ALL_CP_PRECISE_DOMAINS: 所有企业的精确域名 Map<企业ID, List<域名>>
  • ALL_CP_EXTENSIVE_DOMAINS: 所有企业的泛化域名 Map<企业ID, List<域名>>
  • ALL_CPID_CPNAME: 所有企业ID和企业名称 Map<企业ID, 企业名称>

处理流程:

  1. 从 Redis 获取当前企业ID的精确域名列表
  2. 从 Redis 获取当前企业ID的泛化域名列表
  3. 合并两个列表
  4. 从 Redis 获取企业名称
  5. 构建 Map<域名, 企业名称> 并返回

2、 从数据库查询 (Redis 为空时)

触发条件: Redis 中的 ALL_CP_PRECISE_DOMAINS 和 ALL_CP_EXTENSIVE_DOMAINS 都为空

处理流程:

  1. 精确域名: 从 self_service_domain_config 表查询
  • tenant_id = 当前企业ID

  • deleted = false

  • is_extensive_domain = false (精确域名)

  • state IN (部署中、已生效、部署失败、启用中) - 通过 DomainTicketStateEnum.getContentRefreshState() 获取

    1. 泛化域名: 从 extensive_domains 表查询
  • 查询条件: 企业ID + 有效子域名

    1. 合并精确域名和泛化域名
    2. 从 enterprise_info 表获取企业名称
    3. 构建 Map<域名, 企业名称> 并返回 ^F6sPwExw

其他角色 (超管、集团运维工程师等) 优先缓存 ^X0pnA11n

| ALL_CP_PRECISE_DOMAINS | Map<企业ID, List<域名>> | 所有企业的精确域名 | | ALL_CP_EXTENSIVE_DOMAINS | Map<企业ID, List<域名>> | 所有企业的泛化域名 | | ALL_CPID_CPNAME | Map<企业ID, 企业名称> | 所有企业ID和名称映射 | | ALL_PRECISE_DOMAIN_CPINFO | Map<域名, List<企业ID, 企业名称>> | 所有精确域名及企业信息 | | ALL_EXTENSIVE_DOMAIN_CPINFO | Map<域名, List<企业ID, 企业名称>> | 所有泛化域名及企业信息 | ^03UQlzOW

域名状态过滤: 只返回特定状态的域名 (部署中、已生效、部署失败、启用中) ^JwTJVIqu

  • 企业用户只能看到自己企业的域名
  • 企业子账号只能看到被授权的域名
  • 运营经理可以看到关联企业的域名
  • 超管等其他角色可以看到所有域名 ^52B5pGMu

URL 预热:/content/submitContentTask

{ "operationType": "URL预热", "taskType": "0", "startTime": "", "url": [ "http%3A%2F%2Ftianzhuo686285089.komect.com%2Fv1" ], "pageSubmit": true }

{ "operationType": "内容刷新", "taskType": "0", "startTime": "", "url": [ "http%3A%2F%2Ftianzhuo686285089.komect.com%2Ftest" ], "pageSubmit": true }

{ "operationType": "目录刷新", "taskType": "0", "startTime": "", "url": [ "http%3A%2F%2Ftianzhuo686285089.komect.com%2Ftest%2F" ], "pageSubmit": true }

{ "operationType": "目录刷新", "taskType": "1", "startTime": "2025-11-12 17:04:42", "url": [ "http%3A%2F%2Ftianzhuo686285089.komect.com%2Ftest%2F" ], "pageSubmit": true } ^LtMABAeL

API-WEB ^NGCUogWo

URL预热 ^ro31K2ds

内容刷新 ^RgbGU8KB

目录刷新 ^C26fjp2b

%%

Drawing

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

yWRwAduYkKSHCDe2LIIACyEAA===

%%