diff --git a/.gitea/checker/notifier.py b/.gitea/checker/notifier.py
index b684bce..26ff9ee 100644
--- a/.gitea/checker/notifier.py
+++ b/.gitea/checker/notifier.py
@@ -239,32 +239,67 @@ def send_parameter_change_notification(
mentioned_users: Optional[List[str]] = None,
) -> int:
"""
- 发送 Markdown 格式的接口参数变更通知。
+ 发送 Markdown 格式的接口变更通知。
- :param webhook_url: 企微 Webhook
- :param reports: 变更报告
- :param push_user: 推送人
- :param push_time: 推送时间
- :param llm_review: LLM 兼容性摘要
- :param mentioned_users: @ 成员(Markdown 暂不支持,保留参数)
- :return: 成功发送条数
+ 按变更类型拆分,分别下发企微通知:
+ - 方法变更 → 【API请求方式变更通知】
+ - 路径变更(新增/修改/删除) → 【API路径变更通知】
+ - 参数变更 → API参数变更通知
+
+ 不同类型之间互不干扰,各自独立发送。
"""
if not reports and not llm_review:
print("无接口参数变更,不发送到企业微信")
return 0
- full_md = build_markdown_notification(reports, push_user, push_time, llm_review)
- segments = _split_markdown(full_md, MAX_MD_LENGTH)
+ # 按类型分组
+ method_changed_reports = [r for r in reports if r.is_method_changed]
+ renamed_reports = [r for r in reports if r.is_renamed_endpoint]
+ new_reports = [r for r in reports if r.is_new_endpoint]
+ removed_reports = [r for r in reports if r.is_removed_endpoint]
+ changed_reports = [
+ r for r in reports
+ if not r.is_new_endpoint
+ and not r.is_removed_endpoint
+ and not r.is_renamed_endpoint
+ and not r.is_method_changed
+ ]
sent = 0
- for i, segment in enumerate(segments):
- if i > 0:
- segment = (
- f"(续 {i + 1}/{len(segments)})\n\n" + segment
- )
- if _post_wecom_markdown(webhook_url, segment):
- sent += 1
- print(f"第 {sent} 条通知已发送到企业微信")
+
+ # 1. 方法变更通知
+ if method_changed_reports:
+ md = build_markdown_notification(method_changed_reports, push_user, push_time)
+ segments = _split_markdown(md, MAX_MD_LENGTH)
+ for i, segment in enumerate(segments):
+ if i > 0:
+ segment = f"(续 {i + 1}/{len(segments)})\n\n" + segment
+ if _post_wecom_markdown(webhook_url, segment):
+ sent += 1
+ print(f"第 {sent} 条通知已发送到企业微信(请求方式变更)")
+
+ # 2. 路径变更通知(新增/修改/删除)
+ path_reports = new_reports + renamed_reports + removed_reports
+ if path_reports:
+ md = build_markdown_notification(path_reports, push_user, push_time)
+ segments = _split_markdown(md, MAX_MD_LENGTH)
+ for i, segment in enumerate(segments):
+ if i > 0:
+ segment = f"(续 {i + 1}/{len(segments)})\n\n" + segment
+ if _post_wecom_markdown(webhook_url, segment):
+ sent += 1
+ print(f"第 {sent} 条通知已发送到企业微信(路径变更)")
+
+ # 3. 参数变更通知
+ if changed_reports:
+ md = build_markdown_notification(changed_reports, push_user, push_time, llm_review)
+ segments = _split_markdown(md, MAX_MD_LENGTH)
+ for i, segment in enumerate(segments):
+ if i > 0:
+ segment = f"(续 {i + 1}/{len(segments)})\n\n" + segment
+ if _post_wecom_markdown(webhook_url, segment):
+ sent += 1
+ print(f"第 {sent} 条通知已发送到企业微信(参数变更)")
if sent > 0:
print(f"总共发送 {sent} 条通知到企业微信")
diff --git a/ftb/src/main/java/ftb/test/controller/CultureClockInController.java b/ftb/src/main/java/ftb/test/controller/CultureClockInController.java
index 9190494..f15cfc4 100644
--- a/ftb/src/main/java/ftb/test/controller/CultureClockInController.java
+++ b/ftb/src/main/java/ftb/test/controller/CultureClockInController.java
@@ -70,7 +70,7 @@ public class CultureClockInController {
* @param response HttpServletResponse
*/
@GetMapping(value = "/random-preview/base641")
- public ActionResult getRandomPicPreviewBase64(@RequestParam(value = "lastCombo", required = true) String lastCombo, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ public ActionResult getRandomPicPreviewBase64(@RequestParam(value = "lastCombo1", required = true) String lastCombo, HttpServletRequest request, HttpServletResponse response) throws Exception {
MutablePair pair = cultureClockInService.getRandomPicPreview(lastCombo, requestUrl);
if (pair == null || pair.getRight() == null) {
@@ -91,7 +91,7 @@ public class CultureClockInController {
* @param lastCombo 上次组合
* @param response HttpServletResponse
*/
- @GetMapping(value = "/random-preview/delete")
+ @PostMapping(value = "/random-preview/delete")
public ActionResult getRandomPicPreviewBase64(@RequestParam(value = "lastCombo", required = false) String lastCombo, HttpServletRequest request, HttpServletResponse response) throws Exception {
MutablePair pair = cultureClockInService.getRandomPicPreview(lastCombo, requestUrl);