浣玉
2018-01-18 10:59
@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);
该商品还未开启秒杀并不等同于该商品不存在啊?是不是我在哪里理解错了,求解?
老师的代码挺规范的,如果没有这个商品,前端可以跟据开始时间与结束时间就可以判断前端要显示的逻辑
三种情况:
exposed等于false, start_time, end_time, now_time == null, 没有这个商品
exposed== fasle, start_time,end_time, now_time 有值,未开启或已结束
exposed==true, 已开启,md5有值。
我知道了,这个方法只是输出一个秒杀接口。
Java高并发秒杀API之Service层
59971 学习 · 143 问题
相似问题