This commit is contained in:
fang 2025-03-25 11:23:33 +08:00
parent 1308b192aa
commit 1559befe29
2 changed files with 23 additions and 1 deletions

View File

@ -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;
/**
* <p>
* 服务实现类
@ -26,6 +28,8 @@ import java.util.List;
public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, Voucher> 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<VoucherMapper, Voucher> 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());
}
}

View File

@ -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);