Ver Fonte

修改库存有效时长

吴树波 há 6 dias atrás
pai
commit
446e9ec707

+ 1 - 8
fs-common/src/main/java/com/fs/common/core/redis/service/StockDeductService.java

@@ -31,8 +31,6 @@ public class StockDeductService {
 
     // 库存扣减Lua脚本(预编译,提升高并发性能)
     private static final DefaultRedisScript<Long> STOCK_DEDUCT_SCRIPT;
-    // 锁释放Lua脚本(预编译)
-    private static final DefaultRedisScript<Long> LOCK_RELEASE_SCRIPT;
 
     // 库存扣减Lua脚本(优化后,增强健壮性)
     static {
@@ -40,11 +38,6 @@ public class StockDeductService {
         STOCK_DEDUCT_SCRIPT = new DefaultRedisScript<>();
         STOCK_DEDUCT_SCRIPT.setScriptText("if redis.call('exists', KEYS[1]) ~= 1 then " + "return -2; " + "end " + "local stock_str = redis.call('get', KEYS[1]); " + "local stock = tonumber(stock_str); " + "if stock == nil then " + "return -3; " + "end " + "local deductNum_str = ARGV[1]; " + "local deductNum = tonumber(deductNum_str); " + "if deductNum == nil or deductNum <= 0 then " + "return -4; " + "end " + "if stock >= deductNum then " + "return redis.call('decrby', KEYS[1], deductNum); " + "else " + "return -1; " + "end");
         STOCK_DEDUCT_SCRIPT.setResultType(Long.class);
-
-        // 锁释放脚本保持不变
-        LOCK_RELEASE_SCRIPT = new DefaultRedisScript<>();
-        LOCK_RELEASE_SCRIPT.setScriptText("if redis.call('get', KEYS[1]) == ARGV[1] then " + "return redis.call('del', KEYS[1]) " + "else return 0 end");
-        LOCK_RELEASE_SCRIPT.setResultType(Long.class);
     }
 
     /**
@@ -55,7 +48,7 @@ public class StockDeductService {
      */
     public void initStock(Long productId, Long liveId, Integer initStock) {
         String stockKey = RedisConstant.STOCK_KEY_PREFIX + liveId + ":" + productId;
-        redisTemplate.opsForValue().set(stockKey, initStock, 24 * 60 * 60, TimeUnit.SECONDS);
+        redisTemplate.opsForValue().set(stockKey, initStock);
         log.info("商品" + productId + "库存初始化完成,初始库存:" + initStock);
     }