luodangjia
2025-01-13 cc134fa83edea4865b48d7afc1acda5ad70e7465
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -14,6 +14,7 @@
import com.ruoyi.other.api.vo.GetSeckillActivityInfo;
import com.ruoyi.other.mapper.SeckillActivityInfoMapper;
import com.ruoyi.other.service.GoodsSeckillService;
import com.ruoyi.other.service.GoodsService;
import com.ruoyi.other.service.SeckillActivityInfoService;
import com.ruoyi.other.vo.SeckillActivityDetailVO;
import com.ruoyi.other.vo.SeckillActivityVO;
@@ -23,6 +24,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.List;
@@ -46,6 +48,9 @@
    @Resource
    private SeckillActivityInfoMapper seckillActivityInfoMapper;
    @Resource
    private GoodsService goodsService;
    
    
    
@@ -67,9 +72,9 @@
     */
    @GetMapping("/detail/{id}")
    @ApiOperation(value = "秒杀活动详情", tags = {"小程序-商城-首页"})
    public R<SeckillActivityDetailVO> detail(@PathVariable("id") Integer id)
    public R<SeckillActivityDetailVO> detail(@PathVariable("id") Integer id, String latitude, String longitude)
    {
        return R.ok(seckillActivityInfoService.detail(id));
        return R.ok(seckillActivityInfoService.detail(id, latitude, longitude));
    }
    
    
@@ -79,15 +84,27 @@
    @PostMapping("/getSeckillActivityInfo")
    public R<GoodsSeckill> getSeckillActivityInfo(@RequestBody GetSeckillActivityInfo info){
        SeckillActivityInfo one = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, info.getGoodsId())
                .eq(SeckillActivityInfo::getDelFlag, 0).last(" and now() between start_time and end_time order by create_time limit 0,1"));
                .eq(SeckillActivityInfo::getDelFlag, 0).eq(SeckillActivityInfo::getIsShelves, 1).last(" and now() between start_time and end_time order by create_time limit 0,1"));
        if(null == one){
            return R.ok();
        }
        GoodsSeckill goodsSeckill = goodsSeckillService.getOne(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, one.getGoodId()).eq(GoodsSeckill::getVip, info.getVip()));
        GoodsSeckill goodsSeckill = goodsSeckillService.getOne(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, one.getId()).eq(GoodsSeckill::getVip, info.getVip()));
        if(null != goodsSeckill){
            goodsSeckill.setEndTime(one.getEndTime().toEpochSecond(ZoneOffset.UTC) * 1000);
        }
        return R.ok(goodsSeckill);
    }
    /**
     * 获取商品秒杀活动
     * @param id
     * @return
     */
    @PostMapping("/getSeckillActivityInfoById")
    public R<SeckillActivityInfo> getSeckillActivityInfoById(@RequestParam("id") Integer id){
        SeckillActivityInfo one = seckillActivityInfoService.getById(id);
        return R.ok(one);
    }
@@ -101,6 +118,18 @@
                                                 Goods goods)
    {
        IPage<SeckillActivityVO> IPage = seckillActivityInfoMapper.querySeckillActivity(Page.of(pageNum, pageSize), goods);
        for (SeckillActivityVO record : IPage.getRecords()) {
            LocalDateTime startTime = record.getStartTime();
            LocalDateTime now = LocalDateTime.now();
            LocalDateTime endTime = record.getEndTime();
            if (endTime.isBefore(now)){
                record.setStatus(3); //已结束
            }else if (startTime.isBefore(now)){
                record.setStatus(2); // 已开始
            }else {
                record.setStatus(1); // 未开始
            }
        }
        return R.ok(IPage);
    }
@@ -148,6 +177,9 @@
        List<GoodsSeckill> goodsSeckills = goodsSeckillService.list(new LambdaQueryWrapper<GoodsSeckill>()
                .eq(GoodsSeckill::getSeckillActivityInfoId, id));
        seckillActivityInfo.setGoodsSeckills(goodsSeckills);
        Integer goodId = seckillActivityInfo.getGoodId();
        Goods goods = goodsService.getById(goodId);
        seckillActivityInfo.setGoods(goods);
        return R.ok(seckillActivityInfo);
    }