feat: 1、将 - saas:period-config:migration:current 修改为 - Key --> saas:period-config:migration:current
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
2、将 - saas:period-config:migration:current 加粗
3、将旧骨架标注为绿色
4、将新骨架标注为warn颜色
This commit is contained in:
@@ -40,7 +40,7 @@ public class ReportBuilder {
|
|||||||
sb.append("未检测到缓存序列化结构变更。\n");
|
sb.append("未检测到缓存序列化结构变更。\n");
|
||||||
} else {
|
} else {
|
||||||
for (SchemaChange c : report.getChanges()) {
|
for (SchemaChange c : report.getChanges()) {
|
||||||
sb.append("- `").append(nvl(c.getKeyPattern())).append("`\n");
|
appendKeyLine(sb, c.getKeyPattern());
|
||||||
if (c.getMessage() != null) {
|
if (c.getMessage() != null) {
|
||||||
sb.append(" ").append(c.getMessage()).append('\n');
|
sb.append(" ").append(c.getMessage()).append('\n');
|
||||||
}
|
}
|
||||||
@@ -50,21 +50,39 @@ public class ReportBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (KeyStructureChange kc : keys) {
|
for (KeyStructureChange kc : keys) {
|
||||||
sb.append("- `").append(nvl(kc.getKeyPattern())).append("`\n");
|
appendKeyLine(sb, kc.getKeyPattern());
|
||||||
String oldJson = nvl(kc.getOldSkeletonJson());
|
String oldJson = nvl(kc.getOldSkeletonJson());
|
||||||
String newJson = nvl(kc.getNewSkeletonJson());
|
String newJson = nvl(kc.getNewSkeletonJson());
|
||||||
if (oldJson.isEmpty() && !newJson.isEmpty()) {
|
if (oldJson.isEmpty() && !newJson.isEmpty()) {
|
||||||
sb.append(" value 新增为 “").append(newJson).append("”\n\n");
|
sb.append(" value 新增为 “").append(fontWarning(newJson)).append("”\n\n");
|
||||||
} else if (!oldJson.isEmpty() && newJson.isEmpty()) {
|
} else if (!oldJson.isEmpty() && newJson.isEmpty()) {
|
||||||
sb.append(" value 原结构 “").append(oldJson).append("” 已删除写入\n\n");
|
sb.append(" value 原结构 “").append(fontInfo(oldJson)).append("” 已删除写入\n\n");
|
||||||
} else {
|
} else {
|
||||||
sb.append(" value 值从 “").append(oldJson).append("”\n");
|
sb.append(" value 值从 “").append(fontInfo(oldJson)).append("”\n");
|
||||||
sb.append(" 变更为 “").append(newJson).append("”\n\n");
|
sb.append(" 变更为 “").append(fontWarning(newJson)).append("”\n\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key 行:加粗「Key -->」+ 加粗 key 文本。
|
||||||
|
* 避免 key 末尾 * 与 markdown ** 冲突,结尾加零宽空格再闭合。
|
||||||
|
*/
|
||||||
|
private void appendKeyLine(StringBuilder sb, String keyPattern) {
|
||||||
|
sb.append("- **Key --> ").append(nvl(keyPattern)).append("\u200b**\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 企微 markdown:绿色(旧骨架)。 */
|
||||||
|
private String fontInfo(String text) {
|
||||||
|
return "<font color=\"info\">" + text + "</font>";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 企微 markdown:warning 橙红(新骨架)。 */
|
||||||
|
private String fontWarning(String text) {
|
||||||
|
return "<font color=\"warning\">" + text + "</font>";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CI 控制台:字段明细 + 完整企微 Markdown。
|
* CI 控制台:字段明细 + 完整企微 Markdown。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ class ReportBuilderTest {
|
|||||||
assertTrue(md.startsWith("## [缓存结构变更] jnpf-java-cloud"));
|
assertTrue(md.startsWith("## [缓存结构变更] jnpf-java-cloud"));
|
||||||
assertTrue(md.contains("> **分支**: code/redis_change_detection_v1.0"));
|
assertTrue(md.contains("> **分支**: code/redis_change_detection_v1.0"));
|
||||||
assertTrue(md.contains("> **时间**: 2026-07-13 16:54:17"));
|
assertTrue(md.contains("> **时间**: 2026-07-13 16:54:17"));
|
||||||
assertTrue(md.contains("`tenant:db:content:*`"));
|
assertTrue(md.contains("- **Key --> tenant:db:content:*\u200b**"));
|
||||||
assertTrue(md.contains("value 值从 “{\"dbName\":\"\""));
|
assertTrue(md.contains("<font color=\"info\">{\"dbName\":\"\",\"linkList\":[{\"id\":\"\"}]}</font>"));
|
||||||
assertTrue(md.contains("变更为 “{\"vo\":"));
|
assertTrue(md.contains("<font color=\"warning\">{\"vo\":{\"dbName\":\"\",\"linkList\":[{\"id\":\"\"}]},\"expiresAtMs\":0}</font>"));
|
||||||
assertFalse(md.contains("### P0"));
|
assertFalse(md.contains("### P0"));
|
||||||
assertFalse(md.contains("位置"));
|
assertFalse(md.contains("位置"));
|
||||||
assertFalse(md.contains("模式"));
|
assertFalse(md.contains("模式"));
|
||||||
@@ -75,5 +75,8 @@ class ReportBuilderTest {
|
|||||||
assertTrue(console.contains("**删除字段**: x"));
|
assertTrue(console.contains("**删除字段**: x"));
|
||||||
assertTrue(console.contains("======== 企微 Markdown ========"));
|
assertTrue(console.contains("======== 企微 Markdown ========"));
|
||||||
assertTrue(console.contains("value 值从"));
|
assertTrue(console.contains("value 值从"));
|
||||||
|
assertTrue(console.contains("- **Key --> k1\u200b**"));
|
||||||
|
assertTrue(console.contains("<font color=\"info\">"));
|
||||||
|
assertTrue(console.contains("<font color=\"warning\">"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user