上期回顾:Java Seckill Module:Spike business

在数据库中的id,一般很少用自增,这样很容易被别人进行遍历,把库给遍历一遍,一般用snowflake算法。

@RequestMapping(value="/detail/{goodsId}")
@ResponseBody
public Result<GoodsDetailVo> detail(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user,@PathVariable("goodsId")long goodsId) { GoodsVo goods = goodsService.getGoodsVoByGoodsId(goodsId);long startAt = goods.getStartDate().getTime();long endAt = goods.getEndDate().getTime();long now = System.currentTimeMillis();int miaoshaStatus = 0;int remainSeconds = 0;if(now < startAt ) {miaoshaStatus = 0;remainSeconds = (int)((startAt - now )/1000);}else  if(now > endAt){miaoshaStatus = 2;remainSeconds = -1;}else {miaoshaStatus = 1;remainSeconds = 0;}GoodsDetailVo vo = new GoodsDetailVo();vo.setGoods(goods);vo.setUser(user);vo.setRemainSeconds(remainSeconds);vo.setMiaoshaStatus(miaoshaStatus);return Result.success(vo);
}

解读:根据商品id找到商品的详情信息,再传入页面里面去,接着取秒杀的开始以及结束时间,需要定义一个状态来表示开始和结束,0表示还没开始,1表示进行中,2表示结束。如果当前时间小于开始时间,说明秒杀没有开始,秒杀没开始则进行倒计时,并显示还剩多少秒才开始,如果当前时间大于秒杀时间,则设置秒杀倒计时为-1,即秒杀结束,如果秒杀是在进行当中,则设置秒杀倒计时为0。

随后需要将秒杀状态以及秒杀倒计时也传入页面中。

GoodsService:

public GoodsVo getGoodsVoByGoodsId(long goodsId) {return goodsDao.getGoodsVoByGoodsId(goodsId);
}

GoodsDao:

@Select("select g.*,mg.stock_count, mg.start_date, mg.end_date,mg.miaosha_price from miaosha_goods mg left join goods g on mg.goods_id = g.id where g.id = #{goodsId}")
public GoodsVo getGoodsVoByGoodsId(@Param("goodsId")long goodsId);

解读:

select g.*,mg.stock_count, mg.start_date, mg.end_date,mg.miaosha_price from miaosha_goods mg left join goods g on mg.goods_id = g.id where g.id = #{goodsId}

与前面的联合查询语句多了这么一个东西: where g.id = #{goodsId}

什么意思呢?

就是根据goodsId去查而已,上面查的是列表,而这里查的是商品ID。

Java Seckill Module:product details相关推荐

  1. Java Seckill Module:Order details are static and Resolve purchases beyond

    上期回顾: Java Seckill Module:Seckill interface front and rear end separation 一.订单详情页面静态化 获取订单详情:页面传入ord ...

  2. Spark:Caused by: java.lang.ClassNotFoundException: scala.Product$class解决

    今天使用Spark进行RDD操作,当我开始运行程序时,出现Caused by: java.lang.ClassNotFoundException: scala.Product$class, 我最后检查 ...

  3. 如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException

    本文翻译自:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 I have s ...

  4. Java经典设计模式:五大创建型模式

    一.概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. (2)结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥 ...

  5. Java基础20:Java8新特性终极指南

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  6. Java并发编程:Thread类的使用

    为什么80%的码农都做不了架构师?>>>    Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学 ...

  7. 启动EBS的时候,弹出Java安全警告:“该应用程序要求具有Java的早期版本。是否要继续?”...

    问题 启动EBS的时候,弹出Java安全警告:"该应用程序要求具有Java的早期版本.是否要继续?" 如果是JRE英文的,弹出的Java警告为"The applicati ...

  8. Java高级特性:clone()方法

    标签:ringbuf   his   硬件   throws   port   protect   序列化   ext   this 目录 源码 深拷贝和浅拷贝 对象串行化实现拷贝 常见面试题 源码 ...

  9. 01-JDBC概念--JDBC(Java Database Connectivity:Java数据库连接):使用jdbc实现Java与数据库MySQL连接

    JDBC自学教程–终篇总结: 地址:http://blog.csdn.net/baidu_37107022/article/details/72600018 1.JDBC(Java Database ...

  10. Java线程(二):线程同步synchronized和volatile

    上篇通 过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么 会产生这样的结果呢,因为建立的Count对象是 ...

最新文章

  1. lodop打印技巧与注意事项
  2. android常用代码
  3. datagrid中使用dropdownlist编辑模版时遇到问题
  4. C语言栈实现逆波兰算法
  5. ansbile--playbook剧本案例
  6. android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情
  7. 如果Windows 8的销售没有预期那么好
  8. centos6.5+jexus5.6.3+mono 3.10实践,让asp.net在linux上飞一会儿
  9. 任正非华为为什么暂不推出鸿蒙,任正非表示,华为的鸿蒙系统已经上网?惊喜吗...
  10. 【图文并茂】通过实例理解word2vec之Skip-gram
  11. Javascript 笔记与总结(1-3)arguments
  12. 留言板删除功能mysql_用PHP写留言板代码时怎样才能实现删除和修改留言的啊?代码是怎样的?...
  13. FFmpeg拼接文件时报错channel element 1.0 is not allocated的分析思路和解决方法
  14. VBA宏实现将中文转为拼音(转帖+亲自实践)
  15. org.jboss.deployment.DeploymentException: URL file:/X:/workspace/JBoss_AS/XXX.war/ deployment failed
  16. Redis哨兵模式实现主从切换
  17. AI幼儿园教育火了,人人都是深度学习界的明日之星?
  18. Tailwind Sidebar
  19. 数据结构——逻辑结构物理结构的区别用法
  20. 项目管理五大流程及各环节要点

热门文章

  1. 爬虫 - 股票爬虫实例之雪球网
  2. 计算机应用研究参考文献格式,参考文献编写规则-计算机应用研究.PDF
  3. 常用的网络进行广告推广的落实措施都有哪些渠道呢
  4. 王琪你计算机学院,计算机学院成功举办第四届青春飞扬大赛
  5. 霍夫斯特拉大学计算机科学专业排名,2019usnews美国大学排名霍夫斯特拉大学排名第140...
  6. 如何批量生成ISBN条码
  7. 查看加密QQ空间日志
  8. ae合成设置快捷键_解决AE提示错误预览需要2个或多个帧才能播放问题
  9. python 局域网传文件_Python+pyftpdlib实现局域网文件互传代码示例
  10. 刘德华--10有一种精神叫刘德华