浣玉
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层
59897 学习 · 137 问题
相似问题