# 景区/车辆价格日历「可售判定 + 扣库存」守卫修复 — 行为修复 — 管理后台

> 变更类型：🐛 行为修复（String 引用比较 `!=` 改值比较 `.equals`），**无接口契约变更**
> 端类型：管理后台（资源价格日历可售性，间接影响下单可售校验）
> 日期：2026-06-18
> 服务：hl-resource-service（scenic / vehicle 价格日历）
> PR：https://git.1814.love:8443/wx/HL/pulls/4017 （每日定时代码审查发现，无关联工单）

---

## ⚠️ 关键说明

今日 PR #3957 把资源价格日历可售/扣库存守卫从 String **引用比较** `getStatus() != CONST` 系统性改为**值比较** `!CONST.equals(getStatus())`（DB 反序列化的 String 与编译期常量非同一引用，`!=` 恒为 true → 状态永不等于「AVAILABLE」），但 **scenic 与 vehicle 两处漏改**。

本次补齐三处守卫，使景区/车辆「可售判定」与「扣库存」恢复正确：

- `ScenicPriceCalendarService.isAvailable`
- `VehiclePriceCalendarService.deductStock`
- `VehiclePriceCalendarService.isAvailable`

**影响面：** 修复前，景区/车辆即便价格日历状态为「可售」也会被判为不可售、车辆库存无法扣减（下单/可售校验侧表现为该日期不可用）。修复后行为恢复正常。

**前端影响：** 无。接口路径、出入参、响应结构均不变，仅内部判定逻辑纠正，前端无需改动。已部署测试服双实例（8082/8182）Nacos 注册 healthy，网关 9443 链路正常。

---

## 1. 变更明细（无接口契约变更）

| 文件 / 方法 | 旧（错误） | 新（正确，对齐 service/staff 兄弟实现） |
|------|------|------|
| `ScenicPriceCalendarService.isAvailable` | `price.getStatus() != ScenicConstants.PRICE_STATUS_AVAILABLE` | `!ScenicConstants.PRICE_STATUS_AVAILABLE.equals(price.getStatus())` |
| `VehiclePriceCalendarService.deductStock` | `record.getStatus() != VehicleConstants.PRICE_STATUS_AVAILABLE` | `!VehicleConstants.PRICE_STATUS_AVAILABLE.equals(record.getStatus())` |
| `VehiclePriceCalendarService.isAvailable` | `record.getStatus() != VehicleConstants.PRICE_STATUS_AVAILABLE` | `!VehicleConstants.PRICE_STATUS_AVAILABLE.equals(record.getStatus())` |

> 同类守卫在 hotel/activity/staff/service 五服务已于 PR #3957 修正，本次补齐 scenic/vehicle，全资源价格日历可售判定写法统一。
