为了账号安全,请及时绑定邮箱和手机立即绑定

秒殺開啟時,輸出秒殺接口地址

@Override
public Exposer exportSeckillUrl(long seckillId) {
    Seckill seckill = seckillMapper.selectByPrimaryKey(seckillId);
    if (seckill == null) {
        return new Exposer(false, seckillId);
    }
    Date startTime = seckill.getStartTime();
    Date endTime = seckill.getEndTime();
    // 系统当前时间
    Date nowTime = new Date();
    if (nowTime.getTime() < startTime.getTime()
            || nowTime.getTime() > endTime.getTime()) {
        return new Exposer(false, seckillId, nowTime.getTime(),
                startTime.getTime(), endTime.getTime());
    }
    // 转化为特定字符串的转化过程,不可逆
    String md5 = getMd5(seckillId);
    return new Exposer(true, md5, seckillId);
}

为什么这个方法的第一句是通过seckillId获取秒杀商品对象,并且不存在seckill时,返回new Exposer(false, seckillId);
该商品还未开启秒杀并不等同于该商品不存在啊?是不是我在哪里理解错了,求解?

正在回答

3 回答

因为这是服务接口,有可能seckillId不存在,或者商品被删除了!
下载视频          
0 回复 有任何疑惑可以回复我~

老师的代码挺规范的,如果没有这个商品,前端可以跟据开始时间与结束时间就可以判断前端要显示的逻辑

三种情况:

  1.     exposed等于false, start_time, end_time, now_time == null, 没有这个商品

  2.     exposed== fasle, start_time,end_time, now_time 有值,未开启或已结束

  3.     exposed==true, 已开启,md5有值。

1 回复 有任何疑惑可以回复我~

我知道了,这个方法只是输出一个秒杀接口。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

秒殺開啟時,輸出秒殺接口地址

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信