diff --git a/src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java b/src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java
index 8a8a3f6..77a09db 100644
--- a/src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java
+++ b/src/main/java/com/hmdp/service/impl/VoucherServiceImpl.java
@@ -1,19 +1,21 @@
package com.hmdp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hmdp.config.RedissonConfig;
import com.hmdp.dto.Result;
import com.hmdp.entity.Voucher;
import com.hmdp.mapper.VoucherMapper;
import com.hmdp.entity.SeckillVoucher;
import com.hmdp.service.ISeckillVoucherService;
import com.hmdp.service.IVoucherService;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
+import static com.hmdp.utils.RedisConstants.SECKILL_STOCK_KEY;
+
/**
*
* 服务实现类
@@ -26,6 +28,8 @@ import java.util.List;
public class VoucherServiceImpl extends ServiceImpl implements IVoucherService {
@Resource
private ISeckillVoucherService seckillVoucherService;
+ @Resource
+ private StringRedisTemplate stringRedisTemplate;
@Override
public Result queryVoucherOfShop(Long shopId) {
@@ -47,5 +51,7 @@ public class VoucherServiceImpl extends ServiceImpl impl
seckillVoucher.setBeginTime(voucher.getBeginTime());
seckillVoucher.setEndTime(voucher.getEndTime());
seckillVoucherService.save(seckillVoucher);
+ // 顺便把 stock 存到 redis 中
+ stringRedisTemplate.opsForValue().set(SECKILL_STOCK_KEY + voucher.getId(), voucher.getStock().toString());
}
}
diff --git a/src/main/resources/seckill.lua b/src/main/resources/seckill.lua
new file mode 100644
index 0000000..603d3d1
--- /dev/null
+++ b/src/main/resources/seckill.lua
@@ -0,0 +1,16 @@
+---
+--- Generated by EmmyLua(https://github.com/EmmyLua)
+--- Created by fang.
+--- DateTime: 2025/3/25 9:43
+---
+--- 将创建用户购买优惠券订单的前部分验证放在脚本中
+
+--- 已经在创建秒杀券的时候就把stock存进redis了这里直接取就行
+local voucherID = ARGV[1]
+local userID = ARGV[2]
+local orderID = ARGV[3]
+
+local stockKey = "seckill:stock:" .. voucherID
+local orderKey = "seckill:order:" .. voucherID
+
+local stock = redis.call("get", stockKey);
\ No newline at end of file