# 03 · 公海看板后端拒绝 - **Status:** resolved - **Type:** task - **Blocked by:** 02-style-unify ## 目标 看板端点对 `pool` workspace 后端直接拒绝(原型明文:客户公海只有列表视图和分屏视图两种,a4-1-1 L803)。 ## 做法 - `board/summary` + `board/cards`(02 改造后形态)收到 `workspace=pool` → 抛 67001 口径(参数非法;或 67004 无权限,以客户模块既有错误码段位为准,实施时查 `CustomerErrorCode`); - 补单测:pool 看板两端点拒绝断言; - tags 只挂 `A4 客户管理/客户总览/看板列表` + `A4 客户管理/我的客户/看板列表`(07 号票落地)。 ## 验收 - mvn test 绿(新增拒绝用例); - bruno 文档不出现公海看板分组。 ## Answer **最终确认的事实(用户两轮澄清,2026-09-04)**:卡片视图存在于**客户总览/我的客户**(分组=客户阶段:潜在/重潜/已成交;客户星级一~五星;关系星级一~五星),**公海页面没有卡片视图**(只有列表/分屏两视图)——票原前提成立,v29 树「A4-1 客户公海 [2]」与缓存证据一致。 **实施**:`CustomerWorkspaceServiceImpl` 新增私有守卫 `assertBoardAllowed(workspace)`,`board/summary` 与 `board/cards` 入口第一行调用——`workspace=pool` 抛 `BusinessErrorException(67001, "公海无卡片视图,看板仅支持客户总览/我的客户")`。守卫先于 buildQuery/登录态/SQL,服务层直接拒绝。 **测试**:`CustomerWorkspaceOwnershipIntegrationTest` 新增 2 用例(pool summary / pool cards → 67001 断言),该类 17 绿;crm-customer 135 全绿(133+2)、crm-rule 146 绿,BUILD SUCCESS。 **证据归档**(截图拷入本目录): - `a4-2-1_客户总览列表_卡片视图_.png`——卡片视图分组规则佐证(与用户描述逐项一致,L873「看板分组……沿用【我的客户】」); - `a4-1-1_客户公海列表.png`——v29 期公海整页(列表/分屏证据)。 **引文勘误(仍有效)**:图表会话原引「a4-1-1 L803」在缓存中不存在(该 txt 全文 341 行);结论最终以用户对照活原型拍板为准。 **记账回滚记录**:本票曾因会话误读用户第一次澄清而错误翻案(map 曾增 R12、07 曾加公海看板 tag、10 曾翻冒烟断言),已全部撤销还原;07 维持「无公海」、10 维持「公海看板断言拒绝」。 验收:mvn test 绿 ✅;bruno 无公海看板分组 ✅(07 按「无公海」挂 tag 后自然满足)。