# 修复:资源「申请下架」HTTP 503 错误(ProductFeignClient 服务名遗漏改名)

**类型**: 后端 BUG 修复
**关联**: 工单 #1553 / PR #1554 / Release PR #1555
**日期**: 2026-04-30
**影响范围**: 所有资源(酒店/景点/活动/餐厅/车辆/服务/备品/员工/成本/房型) 的「申请下架」功能,及产品审批通过/驳回回调链路

---

## 现象

正式 + 测试环境管理后台对任意酒店点「申请下架」均报:
```
服务暂时不可用，请稍后重试 (HTTP 503)
```

后端日志:
```
WARN GlobalExceptionHandler - Feign call failed: status=503,
[ProductFeignClient#checkResourceInUse(...)]:
[Load balancer does not contain an instance for the service hl-product-service]
```

## 根因

正式 + 测试 Nacos 实际注册的产品服务名是 **`hl-product-service-v2`**(v1→v2 重命名后)。但仓库里 2 个 FeignClient 仍写旧名 `hl-product-service`(重命名时遗漏),Feign 解析失败 → 503。

### 影响清单

| 文件 | 错处 | 用途 |
|------|------|------|
| `hl-resource-service/.../ProductFeignClient.java:10` | `name="hl-product-service"` | 资源申请下架时检查产品占用 |
| `hl-common-feign/.../ProductApprovalFeignClient.java:9` | 同上 | 产品审批通过后回调推送给 product-service |

参照对比仓库其他模块均已用对的名:
- `hl-order-service-v2/.../ProductFeignClient.java`:`hl-product-service-v2` ✅
- `hl-mp-service/.../MpProductFeignClient.java`:`hl-product-service-v2` ✅
- `hl-mp-service/.../MpProductV2FeignClient.java`:`hl-product-service-v2` ✅

### 间接影响(隐藏更久)

`ProductApprovalFeignClient.handleApprovalResult` 是企微审批通过后回调通知 product-service 处理产品 status 变更的链路。它的 fallback factory 直接吞错返回 `Result.error`(不抛异常),业务侧不感知。所以这条链路实际坏了一段时间,产品上架/下架审批通过后 status 可能没真更新,本次顺手一起修了。

## 修复

2 个文件 2 行,统一改为 `name = "hl-product-service-v2"`,与同仓其他模块对齐。

## 修复后行为

### 测试服 round-trip

```
hotelId=3001000000000000001 海拉尔洲季酒店
申请下架 (targetStatus=0) → code=200, spNo=202604300006
```

### 正式部署

- ✅ Image tag `c598641e` (main HEAD)
- ✅ 4 个 Pod (user×2 + resource×2) 全部 Running 1/1
- ✅ 启动日志无 ERROR/Exception/FATAL
- ✅ Gateway → resource API 200

## 前端处理

**零影响**。前端无须改动。

## 部署状态

- ✅ PR #1554 合并到 dev (sha 11672364)
- ✅ Release PR #1555 合并到 main (sha c598641e)
- ✅ 测试服 hl-resource-service + hl-user-service 滚动重启 + round-trip 通过
- ✅ 正式环境 K8s deploy 滚动更新完成 (deploy panel #50 + #51)
