📝 删除认证分支注释里的叙事性措辞

把「本改造的核心」「这正是要避免的事」「本次改造要保住的东西」这类
写作时的叙事从注释中去掉,只留读者需要的事实(反直觉的约束、坑、兼容性)。
测试的 @DisplayName 同步去掉「改造前/改造期间」等时间状语。

注释与文案调整,无逻辑改动;CertificationGateTest 等 35 个测试通过。
This commit is contained in:
2026-10-04 23:55:22 +08:00
parent 5061df8c78
commit e3d860668b
6 changed files with 18 additions and 27 deletions
@@ -55,10 +55,10 @@ import java.util.List;
/**
* 认证审核服务实现
* <p>
* 审核作用于**一条记录**。两条路径的差别是本次改造的关键:
* 审核作用于一条记录,两条路径的差别在于是否切换生效快照:
* <ul>
* <li><b>通过</b>:记录转已通过,并把该对象的生效快照指针切到它;</li>
* <li><b>驳回</b>:记录转已驳回并留原因,生效快照指针<b>一个字都不动</b>。</li>
* <li><b>驳回</b>:记录转已驳回并留原因,生效快照指针一个字都不动。</li>
* </ul>
* 因此「已认证的车被驳回」不会让它掉出可用池,只是这次提交没被采纳。
*
@@ -354,10 +354,10 @@ public class CertAuditServiceImpl implements ICertAuditService {
} catch (Exception exception) {
throw new ServiceException("该认证记录的提交内容无法解析,未写入车辆档案");
}
// 字段名对不上时 JSON 会解析成「全是 null」而不报错(改造前的历史快照就是这种情况),
// 字段名对不上时 JSON 会解析成「全是 null」而不报错(早期格式的历史快照就是这种情况),
// 那样写回等于什么也没写。故用证件内容里的关键字段判定「这份快照是否是当前格式」。
if (Func.isEmpty(snapshot.getDrivingLicenseNo()) && Func.isEmpty(snapshot.getApprovedLoadKg())) {
throw new ServiceException("该认证记录的提交内容与当前字段定义不匹配(可能是改造前的历史快照),"
throw new ServiceException("该认证记录的提交内容与当前字段定义不匹配(可能是早期格式的历史快照),"
+ "未写入车辆档案;请重新提交一次认证");
}
vehicle.setOwnerName(snapshot.getOwnerName());
@@ -33,18 +33,13 @@ import org.springframework.stereotype.Component;
/**
* 认证可用性门槛
* <p>
* 在原有的运营状态(启用 / 停用)之上**叠加**一层「是否已认证」:
* <ul>
* <li>车辆:运营状态为启用,且存在生效快照;</li>
* <li>司机:存在生效快照。</li>
* </ul>
* 在运营状态(启用 / 停用)之上叠加一层「是否已认证」:
* 车辆需运营状态为启用且存在生效快照;司机需存在生效快照。
* <p>
* ⚠️ 判据是**生效快照指针**,不是「最新提交状态」展示缓存。
* 这一区别是本改造的核心:司机重新提交认证会把展示缓存变成「审核中」,
* 若照它判定,司机一提交认证就立刻接不了单——正是要避免的事。
* 生效快照只在审核通过时才切换,故「曾认证通过即持续可用」。
* 判据是生效快照指针,不是「最新提交状态」展示缓存——重新提交认证会把展示缓存
* 变成「审核中」,照它判定会让司机一提交就接不了单。生效快照只在审核通过时切换。
* <p>
* 两个开关默认开启,可通过配置关闭以便线上快速回退到改造前的行为:
* 两个开关默认开启,可关掉以回退到不校验认证的行为:
* <pre>
* transport:
* certification: