From 1cd17d2dfcc22edbe5e854d8f71fee1c462a1952 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 27 Jun 2026 17:19:25 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog-v2):=20=E6=88=BF=E5=8A=A1?= =?UTF-8?q?=E9=85=8D=E6=88=BF=E5=B9=B6=E5=8F=91/=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E5=8A=A0=E5=9B=BA=20=E6=96=B0=E5=A2=9E=E6=8B=92=E7=BB=9D?= =?UTF-8?q?=E7=A0=81808119(=E5=8F=96=E6=B6=88=E6=80=81)/808113(=E4=BD=9C?= =?UTF-8?q?=E5=BA=9F=E6=80=81)=20(#4506=20PR#4507+#4514)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Š å›º-新增拒ç»ç 808119å–æ¶ˆæ€808113作废æ€-管ç†åŽå°.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 changelogs-v2/2026-06/31_4514_æˆ¿åŠ¡é…æˆ¿å¹¶å‘事务加固-新增拒ç»ç 808119å–æ¶ˆæ€808113作废æ€-管ç†åŽå°.md diff --git a/changelogs-v2/2026-06/31_4514_æˆ¿åŠ¡é…æˆ¿å¹¶å‘事务加固-新增拒ç»ç 808119å–æ¶ˆæ€808113作废æ€-管ç†åŽå°.md b/changelogs-v2/2026-06/31_4514_æˆ¿åŠ¡é…æˆ¿å¹¶å‘事务加固-新增拒ç»ç 808119å–æ¶ˆæ€808113作废æ€-管ç†åŽå°.md new file mode 100644 index 0000000..3d6f1ef --- /dev/null +++ b/changelogs-v2/2026-06/31_4514_æˆ¿åŠ¡é…æˆ¿å¹¶å‘事务加固-新增拒ç»ç 808119å–æ¶ˆæ€808113作废æ€-管ç†åŽå°.md @@ -0,0 +1,48 @@ +# æˆ¿åŠ¡é…æˆ¿å¹¶å‘/事务加固——新增 2 个拒ç»ç ï¼ˆ808119 å–æ¶ˆ/异常æ€ã€808113 需求作废æ€ï¼‰ + +> å˜æ›´ç±»åž‹ï¼šðŸ”’ å¹¶å‘/äº‹åŠ¡åŠ å›ºï¼ˆæˆ¿åŠ¡ç®¡å®¶Â·é…æˆ¿å†™å£ï¼‰+ æ–°å¢žé”™è¯¯ç  +> 端类型:管ç†åŽå°ï¼ˆæˆ¿åŠ¡ç®¡å®¶ï¼‰ +> 日期:2026-06-27 | å·¥å•:#4506 | PR:#4507(批1) + #4514(批2) | æœåŠ¡ï¼šhl-order-service-v3(åŒå®žä¾‹å·²éƒ¨ç½²æµ‹è¯•æœ + happy path 回归 + æ–°ç ç«¯åˆ°ç«¯å®žæµ‹é€šè¿‡ï¼‰ + +--- + +## 背景 + +å¤–éƒ¨å®¡è®¡æ ¸å®žå‡ºæˆ¿åŠ¡é…æˆ¿é“¾è·¯ä¸€æ‰¹å¹¶å‘/事务一致性真问题(库存泄æ¼ã€çжæ€é™ˆæ—§è¦†ç›–ã€å›žæ± å›°æ­»ã€å­¤å„¿é…房行等),已分两批修å¤å¹¶éƒ¨ç½²éªŒè¯ã€‚**ç»å¤§å¤šæ•°æ˜¯åŽç«¯å†…部硬化(库存扣å‡è¡¥å¿ã€house_status CASã€ç»Ÿä¸€å†™é”ã€äº‹åС内釿£€ï¼‰ï¼Œå‰ç«¯æ— å¥‘çº¦å˜æ›´**;仅以下两点å‰ç«¯éœ€çŸ¥æ‚‰ã€‚ + +--- + +## ä¸€ã€æ–°å¢ž 2 个拒ç»é”™è¯¯ç ï¼ˆå‰ç«¯æŒ‰å·²æœ‰é”™è¯¯ç æœºåˆ¶å±•示 msg å³å¯ï¼‰ + +### 808119 `ASSIGNMENT_NOT_WRITABLE_IN_EXCEPTION`——订å•å–æ¶ˆ/异常处置æ€ä¸å¯é…房 +- **触å‘**:对一个 **house_status=EXCEPTION**(订å•已喿¶ˆã€æˆ–åœ¨â€œå¼‚å¸¸â€æ¡¶å¤„置中)的需求调用「æäº¤é…房ã€`POST .../assignments` æˆ–ã€Œå•æ—¥ç¡®è®¤ã€`POST .../assignments/days/{day}/confirm`。 +- **返回**:`code 808119`,msg「订å•已喿¶ˆæˆ–异常处置中, 该需求ä¸å¯æ–°å¢žæˆ–ç¡®è®¤é…æˆ¿, 请在异常桶处ç†ã€ã€‚ +- **å‰ç«¯**:异常桶里的需求,应éšè—/ç¦ç”¨ã€Œæäº¤é…房ã€ã€Œå•日确认ã€å…¥å£ï¼Œä»…ä¿ç•™åˆ é…房(释放)ã€é‡Šæ”¾å›žæ± ã€è½¬å•ã€æ ‡è®°å®Œæˆç­‰å¼‚常处置æ“作;若误触å‘,按 msg æç¤ºã€‚ + +### 808113 `REQUIREMENT_INACTIVE_FOR_ASSIGN`——需求已作废(定制师é‡è°ƒè¿‡ï¼‰ä¸å¯é…房 +- **触å‘**:定制师改期/æ”¹è¡Œç¨‹å¤©æ•°ä¼šç”Ÿæˆæ–°ç‰ˆæœ¬éœ€æ±‚并把**旧版本需求作废**(is_active=0)。若å‰ç«¯ä»æŒæ—§éœ€æ±‚ id 调用「æäº¤é…房ã€`POST .../assignments`,åŽç«¯åœ¨è½åº“å‰é‡æ£€å‘现已作废 → æ‹’ç»ã€‚ +- **返回**:`code 808113`,msg「需求已作废, ä¸å¯æäº¤é…房, è¯·ç”±å®šåˆ¶å¸ˆé‡æ–°è°ƒæ•´éœ€æ±‚ã€ã€‚ +- **å‰ç«¯**:收到 808113 说明手里的需求 id 已过期,应刷新订å•/æˆ¿åŠ¡è¯¦æƒ…æ‹¿æœ€æ–°ç‰ˆæœ¬éœ€æ±‚å†æ“作(ä¸è¦åœ¨æ—§éœ€æ±‚上é‡è¯•)。 + +> å¦ï¼šè½¬å•åŽç”¨è¿‡æœŸæŒæœ‰äººèº«ä»½å†™é…房会返既有 `808110`ï¼ˆéžæœ¬äººæŠ¢å•),语义ä¸å˜ã€‚ + +--- + +## 二ã€è¡Œä¸ºæç¤ºï¼šconfirmDay é”粒度收紧(一般无感) + +ã€Œå•æ—¥ç¡®è®¤ã€`POST .../assignments/days/{day}/confirm` 的并å‘é”ç”± **per-(需求,天)** 收紧为 **per-需求**:åŒä¸€éœ€æ±‚的多天确认æ“作改为串行排队(此å‰å¯å¹¶è¡Œï¼‰ã€‚ + +- æˆ¿åŠ¡å¯¹ä¸€ä¸ªè®¢å•æœ¬å°±é€å¤©é¡ºåºæ“作,**正常无感**。 +- 仅当å‰ç«¯å¯¹**åŒä¸€éœ€æ±‚的多个天**å‡ ä¹ŽåŒæ—¶å¹¶å‘触å‘确认时,会短暂排队(30s é”è¶…æ—¶å†…ä¾æ¬¡å®Œæˆï¼‰ï¼Œä¸ä¼šå¤±è´¥ã€‚ +- æäº¤é…房/释放/转å•/啿—¥ç¡®è®¤çŽ°ç»Ÿä¸€äº’æ–¥ï¼ˆåŒä¸€éœ€æ±‚åŒä¸€æ—¶åˆ»åªå…许一个写æ“作),æœç»äº†å¹¶å‘写导致的状æ€é”™ä¹±ã€‚ + +--- + +## 三ã€çº¯åŽç«¯å†…部硬化(å‰ç«¯æ— éœ€æ”¹åŠ¨ï¼Œä»…åˆ—å‡ºä¾›çŸ¥æ‚‰ï¼‰ + +- é…æˆ¿å•日确认扣å‡ï¼šå€™é€‰è¡Œæ‰£å‡å³ç»‘定审计 log(消除并å‘删除时库存ä¸é‡Šæ”¾çš„æ³„æ¼çª—å£ï¼‰ï¼›å¤šå€™é€‰éƒ¨åˆ†æ‰£å‡å¤±è´¥æ—¶è‡ªåЍåå‘释放已扣;resource 记账失败自动补å¿é¿å…库存白扣 + 幂等键å¯é‡è¯•。 +- house_status 写改 CAS(防订å•å–æ¶ˆç­‰å¹¶å‘把已è¿ç§»æ€ç¡¬è¦†ç›–回正常æ€ï¼Œé¿å…已喿¶ˆéœ€æ±‚åœ¨æˆ¿åŠ¡è§†å›¾â€œå¤æ´»â€ï¼‰ã€‚ + +--- + +> åŽç«¯å·²å®Œæˆå¹¶æµ‹è¯•æœå®žæµ‹é€šè¿‡ï¼ˆéƒ¨ç½² + åŒå®žä¾‹ health + é…æˆ¿ä¸»çº¿/释放回池 happy path 回归 + 808119/808113 端到端实测 + DB 核对)。å‰ç«¯ä»…需对 808119/808113 两个新拒ç»ç åšå¯¹åº”æç¤ºä¸Žåˆ·æ–°ã€‚