From eedc1767b34b75d803d296e55ed55c85eb8994f2 Mon Sep 17 00:00:00 2001 From: dongzi Date: Mon, 8 Jun 2026 17:29:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=B1=95=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/checker/notify-templates/dto.md | 4 +- .../notify-templates/field-description.md | 12 ++-- .../com/autoCheck/notify/WeComNotifier.java | 64 ++++++++++++++----- 3 files changed, 56 insertions(+), 24 deletions(-) diff --git a/.gitea/checker/notify-templates/dto.md b/.gitea/checker/notify-templates/dto.md index ebcb2d4..e5f034f 100644 --- a/.gitea/checker/notify-templates/dto.md +++ b/.gitea/checker/notify-templates/dto.md @@ -23,9 +23,9 @@ > [修改] `changeUserId` 说明: 变更人员id 类型: StringInteger -> [新增] `storeId` 说明: 门店ID +> [新增] `storeId` 说明: 门店ID 类型: String -> [删除] `oldField` 说明: 已废弃字段 +> [删除] `oldField` 说明: 已废弃字段 类型: Integer ## 【影响范围】 diff --git a/.gitea/checker/notify-templates/field-description.md b/.gitea/checker/notify-templates/field-description.md index adde17f..9243b29 100644 --- a/.gitea/checker/notify-templates/field-description.md +++ b/.gitea/checker/notify-templates/field-description.md @@ -20,15 +20,17 @@ > [重命名] taskIdtaskIds 说明: 流程主键 -> [删除] `changeUserNickName` 说明: 变更人员别名 +> [新增] `applyUserList` 说明: 申请人员集合 类型: List + +> [删除] `applyUser1` 说明: 申请人员 类型: Integer ``` | 操作 | 标签 | 类型段 | |------|------|--------| -| 新增 | info `[新增]` | 无 | -| 删除 | warning `[删除]` | 无 | -| 修改 | warning `[修改]` | 仅类型变化时出现 | -| 重命名 | warning `[重命名]` | 说明匹配时合并删除+新增;类型变化时附带类型行 | +| 新增 | info `[新增]` | 始终展示,绿色 `info` | +| 删除 | warning `[删除]` | 始终展示,橙色 `warning` | +| 修改 | warning `[修改]` | 始终展示,旧类型 warning → 新类型 info | +| 重命名 | warning `[重命名]` | 始终展示;仅改名时单色 info,改类型时 old → new | ### 重命名配对规则 diff --git a/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java b/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java index c46b195..ee35f53 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java +++ b/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java @@ -223,43 +223,73 @@ public class WeComNotifier { : colorComment(desc); switch (change.getKind()) { - case ADDED: - return quoteLine(tagAdded() + " " + fieldName + " 说明: " + descPart); - case REMOVED: - return quoteLine(tagRemoved() + " " + fieldName + " 说明: " + descPart); - case RENAMED: + case ADDED: { + StringBuilder line = new StringBuilder(); + line.append(tagAdded()).append(" ").append(fieldName) + .append(" 说明: ").append(descPart); + appendFieldType(line, change); + return quoteLine(line.toString()); + } + case REMOVED: { + StringBuilder line = new StringBuilder(); + line.append(tagRemoved()).append(" ").append(fieldName) + .append(" 说明: ").append(descPart); + appendFieldType(line, change); + return quoteLine(line.toString()); + } + case RENAMED: { StringBuilder renameLine = new StringBuilder(); renameLine.append(tagRenamed()).append(" ") .append(colorComment(safe(change.getOldFieldName()))).append(" → ") .append(colorInfo(safe(change.getFieldName()))) .append(" 说明: ").append(descPart); - String renameTypeDetail = change.getDetail(); - if (renameTypeDetail != null && !renameTypeDetail.isBlank()) { - renameLine.append(" 类型: ").append(formatTypeChange(renameTypeDetail)); - } + appendFieldType(renameLine, change); return quoteLine(renameLine.toString()); + } case MODIFIED: - default: + default: { StringBuilder line = new StringBuilder(); line.append(tagModified()).append(" ").append(fieldName) .append(" 说明: ").append(descPart); - String detail = change.getDetail(); - if (detail != null && !detail.isBlank()) { - line.append(" 类型: ").append(formatTypeChange(detail)); - } + appendFieldType(line, change); return quoteLine(line.toString()); + } } } - /** 类型变化:旧 warning → 新 info */ + /** 追加字段类型:新增/重命名(仅改名)用 info,删除用 warning,修改/重命名(改类型)用 old → new */ + private void appendFieldType(StringBuilder line, FieldChange change) { + if (change.getKind() == FieldChange.ChangeKind.RENAMED + || change.getKind() == FieldChange.ChangeKind.MODIFIED) { + String typeDetail = change.getDetail(); + if (typeDetail != null && !typeDetail.isBlank()) { + line.append(" 类型: ").append(formatTypeChange(typeDetail)); + return; + } + } + String singleType = change.getKind() == FieldChange.ChangeKind.REMOVED + ? change.getOldType() + : change.getNewType(); + if (singleType == null || singleType.isBlank()) { + return; + } + line.append(" 类型: "); + if (change.getKind() == FieldChange.ChangeKind.REMOVED) { + line.append(colorWarning(singleType)); + } else { + line.append(colorInfo(singleType)); + } + } + + /** 类型变化:旧 warning → 新 info;泛型尖括号原样展示,不做 HTML 转义 */ private String formatTypeChange(String detail) { int arrow = detail.indexOf(" → "); if (arrow < 0) { - return colorWarning(safe(detail)); + return colorWarning(detail); } String oldType = detail.substring(0, arrow).trim(); String newType = detail.substring(arrow + 3).trim(); - return colorWarning(safe(oldType)) + " → " + colorInfo(safe(newType)); + return colorWarning(oldType) + " → " + colorInfo(newType); } private String tagAdded() {