Forráskód Böngészése

fix: setParkingCouponCode 误用 SETRANGE 导致 NULL 字节填充

opsForValue().set(key, value, 7200L) 中 Long 参数匹配了
set(K, V, long offset) 而非 set(K, V, long, TimeUnit)。
offset=7200 意味着从第 7200 字节开始写入,前面被填满 \x00,
导致 URL 膨胀到 7274 字符引发 414。

改用 Duration.ofSeconds(seconds) 明确走 TTL 语义。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 1 napja
szülő
commit
927a7daac5

+ 2 - 1
car-wash-service/src/main/java/com/kym/service/cache/KymCache.java

@@ -7,6 +7,7 @@ import com.kym.entity.common.RedisKeys;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
 
+import java.time.Duration;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
@@ -220,7 +221,7 @@ public enum KymCache {
     }
 
     public void setParkingCouponCode(String code, String parkingCouponUrl, Long seconds) {
-        KymCacheInjector.redisTemplate.opsForValue().set(RedisKeys.PARKING_COUPON_CODE + code, parkingCouponUrl, seconds);
+        KymCacheInjector.redisTemplate.opsForValue().set(RedisKeys.PARKING_COUPON_CODE + code, parkingCouponUrl, Duration.ofSeconds(seconds));
     }
 
     public String getParkingCouponUrl(String code) {