From fcd4954fc859440df4b04b4a8153c54a824c78b7 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期四, 04 七月 2024 18:12:26 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillAppointmentServiceImpl.java | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillAppointmentServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillAppointmentServiceImpl.java index e5ac7ec..5c6e94f 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillAppointmentServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillAppointmentServiceImpl.java @@ -1,12 +1,24 @@ package com.ruoyi.goods.service.impl; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.goods.domain.GoodsSeckillAppointment; import com.ruoyi.goods.mapper.GoodsSeckillAppointmentMapper; import com.ruoyi.goods.service.IGoodsSeckillAppointmentService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.goods.service.IGoodsSeckillService; +import com.ruoyi.system.api.constants.DelayTaskEnum; +import com.ruoyi.system.api.domain.DelayTask; +import com.ruoyi.system.api.domain.GoodsSeckill; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; +import com.ruoyi.system.api.feignClient.SysUserClient; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.concurrent.TimeUnit; /** * <p> @@ -18,13 +30,36 @@ */ @Service public class GoodsSeckillAppointmentServiceImpl extends ServiceImpl<GoodsSeckillAppointmentMapper, GoodsSeckillAppointment> implements IGoodsSeckillAppointmentService { + @Resource + private IGoodsSeckillService goodsSeckillService; + @Resource + private SysUserClient sysUserClient; + @Resource + private RedisService redisService; @Override public R goodsSeckillAppointment(HomeGoodsSkuDTO homeGoodsSkuDTO) { GoodsSeckillAppointment goodsSeckillAppointment=new GoodsSeckillAppointment(); goodsSeckillAppointment.setGoodsSeckillId(homeGoodsSkuDTO.getGoodsSkuId()); goodsSeckillAppointment.setMemberId(homeGoodsSkuDTO.getMemberId()); + goodsSeckillAppointment.setFormId(homeGoodsSkuDTO.getFormId()); this.save(goodsSeckillAppointment); + + GoodsSeckill byId = goodsSeckillService.getById(homeGoodsSkuDTO.getGoodsSkuId()); + + DelayTask delayTask = new DelayTask(); + delayTask.setDelFlag(0); + delayTask.setCreateTime(LocalDateTime.now()); + delayTask.setExecuteTime(byId.getStartTime().minusMinutes(30)); + delayTask.setRedisKey(DelayTaskEnum.AUTOMATIC_CANCEL.getCode() + "-" + byId.getId()); + sysUserClient.addDelayTask(delayTask, SecurityConstants.INNER); + + Duration duration = Duration.between(LocalDateTime.now(), byId.getStartTime().minusMinutes(30)); + + redisService.setCacheObject( + DelayTaskEnum.AUTOMATIC_CANCEL.getCode() + "-" + byId.getId(), + byId.getStartTime().minusMinutes(30), duration.getSeconds(), TimeUnit.SECONDS); + return R.ok(); } } -- Gitblit v1.7.1