秒杀项目之秒杀商品展示及商品秒杀
目录
- 前言
- 一、登录方式调整
- 二、生成秒杀订单
- 2.1 绑定秒杀商品
- 2.2 查看秒杀商品
- 2.3 订单秒杀
- 2.3.1 移除seata相关(方便测压)
- 2.3.2 生成秒杀订单
- 2.3.3 前端页面秒杀测试
- 注意
前言
博主博客用到的资源都会同步分享到资源包中
一、登录方式调整
第1步:从zmall-common的pom.xml中移除spring-session-data-redis
依赖
注意:
1)本项目中不采用spring-session方式,改用redis直接存储用户登录信息,主要是为了方便之后的jmeter压测;
2)这里只注释调用spring-session的依赖,保留redis的依赖;
第2步:在zmall-common公共模块中定义RedisConfig配置类
@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String,Object> restTemplate(RedisConnectionFactory redisConnectionFactory){RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>();//String类型Key序列化redisTemplate.setKeySerializer(new StringRedisSerializer());//String类型Value序列化redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());//Hash类型Key序列化redisTemplate.setHashKeySerializer(new StringRedisSerializer());//Hash类型Value序列化redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.setConnectionFactory(redisConnectionFactory);return redisTemplate;}
}
这里一定要注意,最后在将RedisConnectionFactory设置到RedisTemplate中,不要在最前做该步操作,不然会导致String和Hash类型的序列化无效,将采用默认的JdkSerializationRedisSerializer进行序列化,从而导致保存的key前缀出现乱码问题。细心!!!细心!!!细心!!!o(╥﹏╥)o
参考链接
第3步:在zmall-common公共模块中配置redis相关服务
IRedisServcie
public interface IRedisService {/*** 将登陆用户对象保存到Redis中,并以token来命名* @param token* @param user*/void setUserToRedis(String token, User user);/*** 根据token令牌从Redis中获取User对象* @param token* @return*/User getUserByToken(String token);
}
RedisServcieImple
@Service
public class RedisServiceImpl implements IRedisService {@Autowiredprivate RedisTemplate<String,Object> redisTemplate;@Overridepublic void setUserToRedis(String token, User user) {String key="user:"+token;redisTemplate.boundValueOps(key).set(user,7200,TimeUnit.SECONDS);}@Overridepublic User getUserByToken(String token) {return (User) redisTemplate.opsForValue().get("user:"+token);}
}
用户登录成功后,将用户对象保存到Redis中,并设置超时时间7200秒。
第4步:在zmall-common公共模块中配置,配置自定义参数解析UserArgumentResolver、WebConfig
/*** 自定义用户参数类*/
@Component
public class UserArgumentResolver implements HandlerMethodArgumentResolver {@Autowiredprivate IRedisService redisService;/*** 只有supportsParameter方法执行返回true,才能执行下面的resolveArgument方法* @param methodParameter* @return*/@Overridepublic boolean supportsParameter(MethodParameter methodParameter) {Class<?> type = methodParameter.getParameterType();return type== User.class;}@Overridepublic Object resolveArgument(MethodParameter methodParameter,ModelAndViewContainer modelAndViewContainer,NativeWebRequest nativeWebRequest,WebDataBinderFactory webDataBinderFactory) throws Exception {HttpServletRequest req= (HttpServletRequest) nativeWebRequest.getNativeRequest();//从cookie获取token令牌String token = CookieUtils.getCookieValue(req, "token");//判断cookie中的token令牌是否为空if(StringUtils.isEmpty(token))throw new BusinessException(JsonResponseStatus.TOKEN_ERROR);//根据token令牌获取redis中存储的user对象,方便jmeter测试User user = redisService.getUserByToken(token);if(null==user)throw new BusinessException(JsonResponseStatus.TOKEN_ERROR);return user;}
}
WebConfig
@Component
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate UserArgumentResolver userArgumentResolver;@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {resolvers.add(userArgumentResolver);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {//添加静态资源访问映射//registry.addResourceHandler("/static/**")// .addResourceLocations("classpath:/static/");}
}
第5步:用户登录业务调整,将spring-session方式更改为redis方式存储登录用户信息。
//5.通过UUID生成token令牌并保存到cookie中
String token= UUID.randomUUID().toString().replace("-","");
//将随机生成的Token令牌保存到Cookie中,并设置1800秒超时时间
CookieUtils.setCookie(req,resp,"token",token,7200);
//6.将token令牌与spring session进行绑定并存入redis中
//HttpSession session = req.getSession();
//session.setAttribute(token,us);
//将token令牌与user绑定后存储到redis中,方便jmeter测试
redisService.setUserToRedis(token,us);
这里采用Redis方式直接存储登录用户信息,只为后续使用Jmeter压测时提供便利。正常运行使用项目还是可以使用spring-session方式。
第6步:修改商品服务zmall-product模块中的index方法,将之前从HttpSession中获取登录用户信息改换成User对象参数方式
@RequestMapping("/index.html")
public String index(Model model, User user){System.out.println(user);
}
在调用index方法之前,先由自定义的参数解析器进行参数解析并返回解析结果User,所以在这里可直接在方法参数中获取的User对象。
第7步:重启zmall-user和zmall-product模块,完成用户登录后,直接在浏览器地址栏输入:http://zmall.com/product-serv/index.html,查看zmall-product模块中的控制台是否已经获取到登录用户对象信息。
二、生成秒杀订单
2.1 绑定秒杀商品
- 首先页面加入到项目中
sellDetails.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<#include 'common/head.html'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link type="text/css" rel="stylesheet" href="css/style.css" /><!--[if IE 6]><script src="js/iepng.js" type="text/javascript"></script><script type="text/javascript">EvPNG.fix('div, ul, img, li, input, a'); </script><![endif]--> <script type="text/javascript" src="js/jquery-1.11.1.min_044d0927.js"></script><script type="text/javascript" src="js/jquery-1.8.2.min.js"></script><script type="text/javascript" src="js/menu.js"></script> <script type="text/javascript" src="js/lrscroll_1.js"></script><script type="text/javascript" src="js/n_nav.js"></script> <title>尤洪</title>
</head>
<body>
<!--Begin Header Begin-->
<div class="soubg"><div class="sou"><!--Begin 所在收货地区 Begin--><span class="s_city_b"><span class="fl">送货至:</span><span class="s_city"><span>四川</span><div class="s_city_bg"><div class="s_city_t"></div><div class="s_city_c"><h2>请选择所在的收货地区</h2><table border="0" class="c_tab" style="width:235px; margin-top:10px;" cellspacing="0" cellpadding="0"><tr><th>A</th><td class="c_h"><span>安徽</span><span>澳门</span></td></tr><tr><th>B</th><td class="c_h"><span>北京</span></td></tr><tr><th>C</th><td class="c_h"><span>重庆</span></td></tr><tr><th>F</th><td class="c_h"><span>福建</span></td></tr><tr><th>G</th><td class="c_h"><span>广东</span><span>广西</span><span>贵州</span><span>甘肃</span></td></tr><tr><th>H</th><td class="c_h"><span>河北</span><span>河南</span><span>黑龙江</span><span>海南</span><span>湖北</span><span>湖南</span></td></tr><tr><th>J</th><td class="c_h"><span>江苏</span><span>吉林</span><span>江西</span></td></tr><tr><th>L</th><td class="c_h"><span>辽宁</span></td></tr><tr><th>N</th><td class="c_h"><span>内蒙古</span><span>宁夏</span></td></tr><tr><th>Q</th><td class="c_h"><span>青海</span></td></tr><tr><th>S</th><td class="c_h"><span>上海</span><span>山东</span><span>山西</span><span class="c_check">四川</span><span>陕西</span></td></tr><tr><th>T</th><td class="c_h"><span>台湾</span><span>天津</span></td></tr><tr><th>X</th><td class="c_h"><span>西藏</span><span>香港</span><span>新疆</span></td></tr><tr><th>Y</th><td class="c_h"><span>云南</span></td></tr><tr><th>Z</th><td class="c_h"><span>浙江</span></td></tr></table></div></div></span></span><!--End 所在收货地区 End--><span class="fr"><span class="fl">你好,请<a href="Login.html">登录</a> <a href="Regist.html" style="color:#ff4e00;">免费注册</a> | <a href="#">我的订单</a> |</span><span class="ss"><div class="ss_list"><a href="#">收藏夹</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">我的收藏夹</a></li><li><a href="#">我的收藏夹</a></li></ul></div></div> </div><div class="ss_list"><a href="#">客户服务</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">客户服务</a></li><li><a href="#">客户服务</a></li><li><a href="#">客户服务</a></li></ul></div></div> </div><div class="ss_list"><a href="#">网站导航</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">网站导航</a></li><li><a href="#">网站导航</a></li></ul></div></div> </div></span><span class="fl">| 关注我们:</span><span class="s_sh"><a href="#" class="sh1">新浪</a><a href="#" class="sh2">微信</a></span><span class="fr">| <a href="#">手机版 <img src="images/s_tel.png" align="absmiddle" /></a></span></span></div>
</div>
<div class="top"><div class="logo"><a href="Index.html"><img src="images/logo.png" /></a></div><div class="search"><form><input type="text" value="" class="s_ipt" /><input type="submit" value="搜索" class="s_btn" /></form> <span class="fl"><a href="#">咖啡</a><a href="#">iphone 6S</a><a href="#">新鲜美食</a><a href="#">蛋糕</a><a href="#">日用品</a><a href="#">连衣裙</a></span></div><div class="i_car"><div class="car_t">购物车 [ <span>3</span> ]</div><div class="car_bg"><!--Begin 购物车未登录 Begin--><div class="un_login">还未登录!<a href="Login.html" style="color:#ff4e00;">马上登录</a> 查看购物车!</div><!--End 购物车未登录 End--><!--Begin 购物车已登录 Begin--><ul class="cars"><li><div class="img"><a href="#"><img src="images/car1.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">法颂浪漫梦境50ML 香水女士持久清新淡香 送2ML小样3只</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li><li><div class="img"><a href="#"><img src="images/car2.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">香奈儿(Chanel)邂逅活力淡香水50ml</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li><li><div class="img"><a href="#"><img src="images/car2.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">香奈儿(Chanel)邂逅活力淡香水50ml</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li></ul><div class="price_sum">共计 <font color="#ff4e00">¥</font><span>1058</span></div><div class="price_a"><a href="#">去购物车结算</a></div><!--End 购物车已登录 End--></div></div>
</div>
<!--End Header End-->
<!--Begin Menu Begin-->
<div class="menu_bg"><div class="menu"><!--Begin 商品分类详情 Begin--> <div class="nav"><div class="nav_t">全部商品分类</div><div class="leftNav none"><ul> <li><div class="fj"><span class="n_img"><span></span><img src="images/nav1.png" /></span><span class="fl">进口食品、生鲜</span></div><div class="zj"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav2.png" /></span><span class="fl">食品、饮料、酒</span></div><div class="zj" style="top:-40px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力2</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav3.png" /></span><span class="fl">母婴、玩具、童装</span></div><div class="zj" style="top:-80px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力3</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav4.png" /></span><span class="fl">家居、家庭清洁、纸品</span></div><div class="zj" style="top:-120px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力4</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav5.png" /></span><span class="fl">美妆、个人护理、洗护</span></div><div class="zj" style="top:-160px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力5</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav6.png" /></span><span class="fl">女装、内衣、中老年</span></div><div class="zj" style="top:-200px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力6</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav7.png" /></span><span class="fl">鞋靴、箱包、腕表配饰</span></div><div class="zj" style="top:-240px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力7</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav8.png" /></span><span class="fl">男装、运动</span></div><div class="zj" style="top:-280px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力8</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav9.png" /></span><span class="fl">手机、小家电、电脑</span></div><div class="zj" style="top:-320px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力9</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li> <li><div class="fj"><span class="n_img"><span></span><img src="images/nav10.png" /></span><span class="fl">礼品、充值</span></div><div class="zj" style="top:-360px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力10</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li> </ul> </div></div> <!--End 商品分类详情 End--> <ul class="menu_r"> <li><a href="Index.html">首页</a></li><li><a href="Food.html">美食</a></li><li><a href="Fresh.html">生鲜</a></li><li><a href="HomeDecoration.html">家居</a></li><li><a href="SuitDress.html">女装</a></li><li><a href="MakeUp.html">美妆</a></li><li><a href="Digital.html">数码</a></li><li><a href="GroupBuying.html">团购</a></li></ul><div class="m_ad">中秋送好礼!</div></div>
</div>
<!--End Menu End-->
<div class="i_bg"> <div class="postion"><span class="fl">全部 > 美妆个护 > 香水 > 迪奥 > 迪奥真我香水</span></div> <div class="content mar_10"><!--Begin 特卖 Begin--><div class="s_left"><div class="lim_time"><div class="lim_sh_bg"><span class="lim_sh">分享</span><a href="#"><img src="images/sh_1.gif" /></a><a href="#"><img src="images/sh_2.gif" /></a><a href="#"><img src="images/sh_3.gif" /></a><a href="#"><img src="images/sh_4.gif" /></a><a href="#"><img src="images/sh_5.gif" /></a></div><table border="0" style="width:100%; margin-bottom:50px;" cellspacing="0" cellpadding="0"><tr valign="top"><td width="315"><div class="lim_name">Dior/迪奥 真我香水</div><div class="lim_price"><span class="ch_txt">¥5288</span><a href="#" class="ch_a">抢购</a></div><div class="lim_c"><table border="0" style="width:100%; color:#888888;" cellspacing="0" cellpadding="0"><tr><td width="35%">市场价 </td><td width="65%">折扣</td></tr><tr style="font-family:'Microsoft YaHei';"><td style="text-decoration:line-through;">¥5388</td> <td>8.0</td></tr></table></div><div class="lim_c"><div class="des_choice"><span class="fl">型号:</span><ul><li class="checked">30ml<div class="ch_img"></div></li><li>50ml<div class="ch_img"></div></li><li>100ml<div class="ch_img"></div></li></ul></div><div class="des_choice"><span class="fl">颜色:</span><ul><li>红色<div class="ch_img"></div></li><li class="checked">白色<div class="ch_img"></div></li><li>黑色<div class="ch_img"></div></li></ul></div></div><div class="lim_c"><span class="fl">数量:</span><input type="text" value="2" class="lim_ipt" /></div><div class="lim_clock">距离团购结束还有<br /><span>1200 时 30 分 28 秒</span></div></td><td width="525" align="center" style="border-left:1px solid #eaeaea;"><img src="images/tm_big.jpg" width="460" height="460" /></td></tr></table></div><div class="des_border"><div class="des_tit"><ul><li class="current"><a href="#p_attribute">商品属性</a></li><li><a href="#p_details">商品详情</a></li><li><a href="#p_comment">商品评论</a></li></ul></div><div class="des_con" id="p_attribute"><table border="0" align="center" style="width:100%; font-family:'宋体'; margin:10px auto;" cellspacing="0" cellpadding="0"><tr><td>商品名称:迪奥香水</td><td>商品编号:1546211</td><td>品牌: 迪奥(Dior)</td><td>上架时间:2015-09-06 09:19:09 </td></tr><tr><td>商品毛重:160.00g</td><td>商品产地:法国</td><td>香调:果香调香型:淡香水/香露EDT</td><td> </td></tr><tr><td>容量:1ml-15ml </td><td>类型:女士香水,Q版香水,组合套装</td><td> </td><td> </td></tr></table> </div></div> <div class="des_border" id="p_details"><div class="des_t">商品详情</div><div class="des_con"><table border="0" align="center" style="width:745px; font-size:14px; font-family:'宋体';" cellspacing="0" cellpadding="0"><tr><td width="265"><img src="images/de1.jpg" width="206" height="412" /></td><td><b>迪奥真我香水(Q版)</b><br />【商品规格】:5ml<br />【商品质地】:液体<br />【商品日期】:与专柜同步更新<br />【商品产地】:法国<br />【商品包装】:无外盒 无塑封<br />【商品香调】:花束花香调<br />【适用人群】:适合女性(都市白领,性感,有女人味的成熟女性)<br /></td></tr></table><p align="center"><img src="images/de2.jpg" width="746" height="425" /><br /><br /><img src="images/de3.jpg" width="750" height="417" /><br /><br /><img src="images/de4.jpg" width="750" height="409" /><br /><br /><img src="images/de5.jpg" width="750" height="409" /></p></div></div> <div class="des_border" id="p_comment"><div class="des_t">商品评论</div><table border="0" class="jud_tab" cellspacing="0" cellpadding="0"><tr><td width="175" class="jud_per"><p>80.0%</p>好评度</td><td width="310"><table border="0" style="width:100%;" cellspacing="0" cellpadding="0"><tr><td width="90">好评<font color="#999999">(80%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr><tr><td>中评<font color="#999999">(20%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr><tr><td>差评<font color="#999999">(0%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr></table></td><td width="290" class="jud_bg">您可对已购买商品进行评价<br /><a href="#"><img src="images/btn_jud.gif" /></a></td></tr></table><table border="0" class="jud_list" style="width:100%; margin-top:30px;" cellspacing="0" cellpadding="0"><tr valign="top"><td width="160"><img src="images/peo1.jpg" width="20" height="20" align="absmiddle" /> 向死而生</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>产品很好,香味很喜欢,必须给赞。 <br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo2.jpg" width="20" height="20" align="absmiddle" /> 就是这么想的</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>送朋友,她很喜欢,大爱。 <br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo3.jpg" width="20" height="20" align="absmiddle" /> 墨镜墨镜</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>大家都说不错<br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo4.jpg" width="20" height="20" align="absmiddle" /> 那*****洋 <br /><font color="#999999">(匿名用户)</font></td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>下次还会来买,推荐。<br /><font color="#999999">2015-09-24</font></td></tr></table><div class="pages"><a href="#" class="p_pre">上一页</a><a href="#" class="cur">1</a><a href="#">2</a><a href="#">3</a>...<a href="#">20</a><a href="#" class="p_pre">下一页</a></div></div></div> <!--End 特卖 End--><div class="s_right"><div class="r_history"><div class="r_his_t">用户还喜欢</div><ul><li><div class="img"><a href="#"><img src="images/his_1.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>368.00</span></font> 18R</div></li><li><div class="img"><a href="#"><img src="images/his_2.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>768.00</span></font> 18R</div></li><li><div class="img"><a href="#"><img src="images/his_3.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>680.00</span></font> 18R</div></li></ul></div><div class="sell_hot"><div class="s_hot_t"><span class="fl">热销品牌</span><span class="h_more fr"><a href="#">更多</a></span></div><ul><li><a href="#"><img src="images/hb_1.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_2.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_3.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_4.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_5.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_6.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_7.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_8.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_9.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_10.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_11.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_12.jpg" width="160" height="59" /></a></li></ul></div></div></div> <!--Begin Footer Begin --><div class="b_btm_bg bg_color"><div class="b_btm"><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b1.png" width="62" height="62" /></td><td><h2>正品保障</h2>正品行货 放心购买</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b2.png" width="62" height="62" /></td><td><h2>满38包邮</h2>满38包邮 免运费</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b3.png" width="62" height="62" /></td><td><h2>天天低价</h2>天天低价 畅选无忧</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b4.png" width="62" height="62" /></td><td><h2>准时送达</h2>收货时间由你做主</td></tr></table></div></div><div class="b_nav"><dl> <dt><a href="#">新手上路</a></dt><dd><a href="#">售后流程</a></dd><dd><a href="#">购物流程</a></dd><dd><a href="#">订购方式</a></dd><dd><a href="#">隐私声明</a></dd><dd><a href="#">推荐分享说明</a></dd></dl><dl><dt><a href="#">配送与支付</a></dt><dd><a href="#">货到付款区域</a></dd><dd><a href="#">配送支付查询</a></dd><dd><a href="#">支付方式说明</a></dd></dl><dl><dt><a href="#">会员中心</a></dt><dd><a href="#">资金管理</a></dd><dd><a href="#">我的收藏</a></dd><dd><a href="#">我的订单</a></dd></dl><dl><dt><a href="#">服务保证</a></dt><dd><a href="#">退换货原则</a></dd><dd><a href="#">售后服务保证</a></dd><dd><a href="#">产品质量保证</a></dd></dl><dl><dt><a href="#">联系我们</a></dt><dd><a href="#">网站故障报告</a></dd><dd><a href="#">购物咨询</a></dd><dd><a href="#">投诉与建议</a></dd></dl><div class="b_tel_bg"><a href="#" class="b_sh1">新浪微博</a> <a href="#" class="b_sh2">腾讯微博</a><p>服务热线:<br /><span>400-123-4567</span></p></div><div class="b_er"><div class="b_er_c"><img src="images/er.gif" width="118" height="118" /></div><img src="images/ss.png" /></div></div> <div class="btmbg"><div class="btm">备案/许可证编号:蜀ICP备12009302号-1-www.dingguagua.com Copyright © 2015-2018 尤洪商城网 All Rights Reserved. 复制必究 , Technical Support: Dgg Group <br /><img src="images/b_1.gif" width="98" height="33" /><img src="images/b_2.gif" width="98" height="33" /><img src="images/b_3.gif" width="98" height="33" /><img src="images/b_4.gif" width="98" height="33" /><img src="images/b_5.gif" width="98" height="33" /><img src="images/b_6.gif" width="98" height="33" /></div> </div><!--End Footer End -->
</div></body><!--[if IE 6]>
<script src="//letskillie6.googlecode.com/svn/trunk/2/zh_CN.js"></script>
<![endif]-->
</html>
- 然后需要把用到的方法写入到mapper方法中(把mapper放入到公共模块中)
ProductMapper.xml
<select id="queryKillProdNews" resultType="java.util.Map">selectk.id,k.item_id,p.name,p.price,p.fileNamefromzmall_kill k,zmall_product pwhere k.item_id=p.id andk.is_active=1 and(now() between start_time and end_time)order by k.create_time desclimit 4</select><select id="queryKillProdById" resultType="java.util.Map">selectk.id,k.item_id,k.total,p.name,p.price,p.fileNamefromzmall_kill k,zmall_product pwhere k.item_id=p.id and k.is_active=1 and item_id=#{value}</select>
- 对应的mapper类加入方法
ProductMapper
@Repository
public interface ProductMapper extends BaseMapper<Product> {List<Map<String,Object>> queryKillProdNews();Map<String,Object> queryKillProdById(Integer pid);}
- service层
IProductService
public interface IProductService extends IService<Product> {void updateStock(Integer pid,Integer num);/*** 首页显示秒杀商品查询* @return*/List<Map<String,Object>> queryKillProdNews();/*** 根据商品ID查询秒杀商品信息* @param pid 秒杀商品ID* @return*/Map<String,Object> queryKillProdById(Integer pid);
}
ProductController
@RequestMapping("/index.html")public ModelAndView index(Model model, User user){ModelAndView mv=new ModelAndView();//按照商品的销量降序排序获取销量排名Top5的商品List<Product> products = productService.list(new QueryWrapper<Product>().orderByDesc("hot").last("limit 5"));model.addAttribute("hots",products);//Object username = session.getAttribute("username");//System.out.println("**********"+username);System.out.println(user);//获取显示秒杀商品List<Map<String, Object>> maps = productService.queryKillProdNews();mv.addObject("kills",maps);mv.setViewName("index");return mv;}
- 测试
sellDetails.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<#include 'common/head.html'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link type="text/css" rel="stylesheet" href="css/style.css" /><!--[if IE 6]><script src="js/iepng.js" type="text/javascript"></script><script type="text/javascript">EvPNG.fix('div, ul, img, li, input, a'); </script><![endif]--> <script type="text/javascript" src="js/jquery-1.11.1.min_044d0927.js"></script><script type="text/javascript" src="js/jquery-1.8.2.min.js"></script><script type="text/javascript" src="js/menu.js"></script> <script type="text/javascript" src="js/lrscroll_1.js"></script><script type="text/javascript" src="js/n_nav.js"></script> <title>尤洪</title>
</head>
<body>
<!--Begin Header Begin-->
<div class="soubg"><div class="sou"><!--Begin 所在收货地区 Begin--><span class="s_city_b"><span class="fl">送货至:</span><span class="s_city"><span>四川</span><div class="s_city_bg"><div class="s_city_t"></div><div class="s_city_c"><h2>请选择所在的收货地区</h2><table border="0" class="c_tab" style="width:235px; margin-top:10px;" cellspacing="0" cellpadding="0"><tr><th>A</th><td class="c_h"><span>安徽</span><span>澳门</span></td></tr><tr><th>B</th><td class="c_h"><span>北京</span></td></tr><tr><th>C</th><td class="c_h"><span>重庆</span></td></tr><tr><th>F</th><td class="c_h"><span>福建</span></td></tr><tr><th>G</th><td class="c_h"><span>广东</span><span>广西</span><span>贵州</span><span>甘肃</span></td></tr><tr><th>H</th><td class="c_h"><span>河北</span><span>河南</span><span>黑龙江</span><span>海南</span><span>湖北</span><span>湖南</span></td></tr><tr><th>J</th><td class="c_h"><span>江苏</span><span>吉林</span><span>江西</span></td></tr><tr><th>L</th><td class="c_h"><span>辽宁</span></td></tr><tr><th>N</th><td class="c_h"><span>内蒙古</span><span>宁夏</span></td></tr><tr><th>Q</th><td class="c_h"><span>青海</span></td></tr><tr><th>S</th><td class="c_h"><span>上海</span><span>山东</span><span>山西</span><span class="c_check">四川</span><span>陕西</span></td></tr><tr><th>T</th><td class="c_h"><span>台湾</span><span>天津</span></td></tr><tr><th>X</th><td class="c_h"><span>西藏</span><span>香港</span><span>新疆</span></td></tr><tr><th>Y</th><td class="c_h"><span>云南</span></td></tr><tr><th>Z</th><td class="c_h"><span>浙江</span></td></tr></table></div></div></span></span><!--End 所在收货地区 End--><span class="fr"><span class="fl">你好,请<a href="Login.html">登录</a> <a href="Regist.html" style="color:#ff4e00;">免费注册</a> | <a href="#">我的订单</a> |</span><span class="ss"><div class="ss_list"><a href="#">收藏夹</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">我的收藏夹</a></li><li><a href="#">我的收藏夹</a></li></ul></div></div> </div><div class="ss_list"><a href="#">客户服务</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">客户服务</a></li><li><a href="#">客户服务</a></li><li><a href="#">客户服务</a></li></ul></div></div> </div><div class="ss_list"><a href="#">网站导航</a><div class="ss_list_bg"><div class="s_city_t"></div><div class="ss_list_c"><ul><li><a href="#">网站导航</a></li><li><a href="#">网站导航</a></li></ul></div></div> </div></span><span class="fl">| 关注我们:</span><span class="s_sh"><a href="#" class="sh1">新浪</a><a href="#" class="sh2">微信</a></span><span class="fr">| <a href="#">手机版 <img src="images/s_tel.png" align="absmiddle" /></a></span></span></div>
</div>
<div class="top"><div class="logo"><a href="Index.html"><img src="images/logo.png" /></a></div><div class="search"><form><input type="text" value="" class="s_ipt" /><input type="submit" value="搜索" class="s_btn" /></form> <span class="fl"><a href="#">咖啡</a><a href="#">iphone 6S</a><a href="#">新鲜美食</a><a href="#">蛋糕</a><a href="#">日用品</a><a href="#">连衣裙</a></span></div><div class="i_car"><div class="car_t">购物车 [ <span>3</span> ]</div><div class="car_bg"><!--Begin 购物车未登录 Begin--><div class="un_login">还未登录!<a href="Login.html" style="color:#ff4e00;">马上登录</a> 查看购物车!</div><!--End 购物车未登录 End--><!--Begin 购物车已登录 Begin--><ul class="cars"><li><div class="img"><a href="#"><img src="images/car1.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">法颂浪漫梦境50ML 香水女士持久清新淡香 送2ML小样3只</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li><li><div class="img"><a href="#"><img src="images/car2.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">香奈儿(Chanel)邂逅活力淡香水50ml</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li><li><div class="img"><a href="#"><img src="images/car2.jpg" width="58" height="58" /></a></div><div class="name"><a href="#">香奈儿(Chanel)邂逅活力淡香水50ml</a></div><div class="price"><font color="#ff4e00">¥399</font> X1</div></li></ul><div class="price_sum">共计 <font color="#ff4e00">¥</font><span>1058</span></div><div class="price_a"><a href="#">去购物车结算</a></div><!--End 购物车已登录 End--></div></div>
</div>
<!--End Header End-->
<!--Begin Menu Begin-->
<div class="menu_bg"><div class="menu"><!--Begin 商品分类详情 Begin--> <div class="nav"><div class="nav_t">全部商品分类</div><div class="leftNav none"><ul> <li><div class="fj"><span class="n_img"><span></span><img src="images/nav1.png" /></span><span class="fl">进口食品、生鲜</span></div><div class="zj"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav2.png" /></span><span class="fl">食品、饮料、酒</span></div><div class="zj" style="top:-40px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力2</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav3.png" /></span><span class="fl">母婴、玩具、童装</span></div><div class="zj" style="top:-80px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力3</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav4.png" /></span><span class="fl">家居、家庭清洁、纸品</span></div><div class="zj" style="top:-120px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力4</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav5.png" /></span><span class="fl">美妆、个人护理、洗护</span></div><div class="zj" style="top:-160px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力5</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav6.png" /></span><span class="fl">女装、内衣、中老年</span></div><div class="zj" style="top:-200px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力6</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav7.png" /></span><span class="fl">鞋靴、箱包、腕表配饰</span></div><div class="zj" style="top:-240px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力7</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav8.png" /></span><span class="fl">男装、运动</span></div><div class="zj" style="top:-280px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力8</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li><li><div class="fj"><span class="n_img"><span></span><img src="images/nav9.png" /></span><span class="fl">手机、小家电、电脑</span></div><div class="zj" style="top:-320px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力9</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li> <li><div class="fj"><span class="n_img"><span></span><img src="images/nav10.png" /></span><span class="fl">礼品、充值</span></div><div class="zj" style="top:-360px;"><div class="zj_l"><div class="zj_l_c"><h2>零食 / 糖果 / 巧克力10</h2><a href="#">坚果</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">巧克力</a>|<a href="#">口香糖</a>|<a href="#">海苔</a>|<a href="#">鱼干</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">蜜饯</a>|<a href="#">红枣</a>|<a href="#">牛肉干</a>|<a href="#">蜜饯</a>|</div></div><div class="zj_r"><a href="#"><img src="images/n_img1.jpg" width="236" height="200" /></a><a href="#"><img src="images/n_img2.jpg" width="236" height="200" /></a></div></div></li> </ul> </div></div> <!--End 商品分类详情 End--> <ul class="menu_r"> <li><a href="Index.html">首页</a></li><li><a href="Food.html">美食</a></li><li><a href="Fresh.html">生鲜</a></li><li><a href="HomeDecoration.html">家居</a></li><li><a href="SuitDress.html">女装</a></li><li><a href="MakeUp.html">美妆</a></li><li><a href="Digital.html">数码</a></li><li><a href="GroupBuying.html">团购</a></li></ul><div class="m_ad">中秋送好礼!</div></div>
</div>
<!--End Menu End-->
<div class="i_bg"> <div class="postion"><span class="fl">全部 > 美妆个护 > 香水 > 迪奥 > 迪奥真我香水</span></div> <div class="content mar_10"><!--Begin 特卖 Begin--><div class="s_left"><div class="lim_time"><div class="lim_sh_bg"><span class="lim_sh">分享</span><a href="#"><img src="images/sh_1.gif" /></a><a href="#"><img src="images/sh_2.gif" /></a><a href="#"><img src="images/sh_3.gif" /></a><a href="#"><img src="images/sh_4.gif" /></a><a href="#"><img src="images/sh_5.gif" /></a></div><table border="0" style="width:100%; margin-bottom:50px;" cellspacing="0" cellpadding="0"><tr valign="top"><td width="315"><div class="lim_name">${(prod.name)!}</div><div class="lim_price"><span class="ch_txt">¥${(prod.price)!}</span><a href="javascript:void(0);" class="ch_a" pid="${(prod.item_id)!}" price="${(prod.price)!}">抢购</a></div><div class="lim_c"><table border="0" style="width:100%; color:#888888;" cellspacing="0" cellpadding="0"><tr><td width="35%">市场价 </td><td width="65%">折扣</td></tr><tr style="font-family:'Microsoft YaHei';"><td style="text-decoration:line-through;">¥${(prod.price)!}</td><td>8.0</td></tr></table></div><div class="lim_c"><div class="des_choice"><span class="fl">型号:</span><ul><li class="checked">30ml<div class="ch_img"></div></li><li>50ml<div class="ch_img"></div></li><li>100ml<div class="ch_img"></div></li></ul></div><div class="des_choice"><span class="fl">颜色:</span><ul><li>红色<div class="ch_img"></div></li><li class="checked">白色<div class="ch_img"></div></li><li>黑色<div class="ch_img"></div></li></ul></div></div><div class="lim_c"><span class="fl">数量:</span><input type="text" value="${(prod.total)!}" class="lim_ipt" /></div><div class="lim_clock">距离团购结束还有<br /><span>1200 时 30 分 28 秒</span></div></td><td width="525" align="center" style="border-left:1px solid #eaeaea;"><img src="${(prod.fileName)!}" width="460" height="460" /></td></tr></table></div><div class="des_border"><div class="des_tit"><ul><li class="current"><a href="#p_attribute">商品属性</a></li><li><a href="#p_details">商品详情</a></li><li><a href="#p_comment">商品评论</a></li></ul></div><div class="des_con" id="p_attribute"><table border="0" align="center" style="width:100%; font-family:'宋体'; margin:10px auto;" cellspacing="0" cellpadding="0"><tr><td>商品名称:迪奥香水</td><td>商品编号:1546211</td><td>品牌: 迪奥(Dior)</td><td>上架时间:2015-09-06 09:19:09 </td></tr><tr><td>商品毛重:160.00g</td><td>商品产地:法国</td><td>香调:果香调香型:淡香水/香露EDT</td><td> </td></tr><tr><td>容量:1ml-15ml </td><td>类型:女士香水,Q版香水,组合套装</td><td> </td><td> </td></tr></table> </div></div> <div class="des_border" id="p_details"><div class="des_t">商品详情</div><div class="des_con"><table border="0" align="center" style="width:745px; font-size:14px; font-family:'宋体';" cellspacing="0" cellpadding="0"><tr><td width="265"><img src="images/de1.jpg" width="206" height="412" /></td><td><b>迪奥真我香水(Q版)</b><br />【商品规格】:5ml<br />【商品质地】:液体<br />【商品日期】:与专柜同步更新<br />【商品产地】:法国<br />【商品包装】:无外盒 无塑封<br />【商品香调】:花束花香调<br />【适用人群】:适合女性(都市白领,性感,有女人味的成熟女性)<br /></td></tr></table><p align="center"><img src="images/de2.jpg" width="746" height="425" /><br /><br /><img src="images/de3.jpg" width="750" height="417" /><br /><br /><img src="images/de4.jpg" width="750" height="409" /><br /><br /><img src="images/de5.jpg" width="750" height="409" /></p></div></div> <div class="des_border" id="p_comment"><div class="des_t">商品评论</div><table border="0" class="jud_tab" cellspacing="0" cellpadding="0"><tr><td width="175" class="jud_per"><p>80.0%</p>好评度</td><td width="310"><table border="0" style="width:100%;" cellspacing="0" cellpadding="0"><tr><td width="90">好评<font color="#999999">(80%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr><tr><td>中评<font color="#999999">(20%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr><tr><td>差评<font color="#999999">(0%)</font></td><td><img src="images/pl.gif" align="absmiddle" /></td></tr></table></td><td width="290" class="jud_bg">您可对已购买商品进行评价<br /><a href="#"><img src="images/btn_jud.gif" /></a></td></tr></table><table border="0" class="jud_list" style="width:100%; margin-top:30px;" cellspacing="0" cellpadding="0"><tr valign="top"><td width="160"><img src="images/peo1.jpg" width="20" height="20" align="absmiddle" /> 向死而生</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>产品很好,香味很喜欢,必须给赞。 <br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo2.jpg" width="20" height="20" align="absmiddle" /> 就是这么想的</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>送朋友,她很喜欢,大爱。 <br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo3.jpg" width="20" height="20" align="absmiddle" /> 墨镜墨镜</td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>大家都说不错<br /><font color="#999999">2015-09-24</font></td></tr><tr valign="top"><td width="160"><img src="images/peo4.jpg" width="20" height="20" align="absmiddle" /> 那*****洋 <br /><font color="#999999">(匿名用户)</font></td><td width="180">颜色分类:<font color="#999999">粉色</font> <br />型号:<font color="#999999">50ml</font></td><td>下次还会来买,推荐。<br /><font color="#999999">2015-09-24</font></td></tr></table><div class="pages"><a href="#" class="p_pre">上一页</a><a href="#" class="cur">1</a><a href="#">2</a><a href="#">3</a>...<a href="#">20</a><a href="#" class="p_pre">下一页</a></div></div></div> <!--End 特卖 End--><div class="s_right"><div class="r_history"><div class="r_his_t">用户还喜欢</div><ul><li><div class="img"><a href="#"><img src="images/his_1.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>368.00</span></font> 18R</div></li><li><div class="img"><a href="#"><img src="images/his_2.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>768.00</span></font> 18R</div></li><li><div class="img"><a href="#"><img src="images/his_3.jpg" width="185" height="162" /></a></div><div class="name"><a href="#">Dior/迪奥香水2件套装</a></div><div class="price"><font>¥<span>680.00</span></font> 18R</div></li></ul></div><div class="sell_hot"><div class="s_hot_t"><span class="fl">热销品牌</span><span class="h_more fr"><a href="#">更多</a></span></div><ul><li><a href="#"><img src="images/hb_1.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_2.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_3.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_4.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_5.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_6.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_7.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_8.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_9.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_10.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_11.jpg" width="160" height="59" /></a></li><li><a href="#"><img src="images/hb_12.jpg" width="160" height="59" /></a></li></ul></div></div></div> <!--Begin Footer Begin --><div class="b_btm_bg bg_color"><div class="b_btm"><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b1.png" width="62" height="62" /></td><td><h2>正品保障</h2>正品行货 放心购买</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b2.png" width="62" height="62" /></td><td><h2>满38包邮</h2>满38包邮 免运费</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b3.png" width="62" height="62" /></td><td><h2>天天低价</h2>天天低价 畅选无忧</td></tr></table><table border="0" style="width:210px; height:62px; float:left; margin-left:75px; margin-top:30px;" cellspacing="0" cellpadding="0"><tr><td width="72"><img src="images/b4.png" width="62" height="62" /></td><td><h2>准时送达</h2>收货时间由你做主</td></tr></table></div></div><div class="b_nav"><dl> <dt><a href="#">新手上路</a></dt><dd><a href="#">售后流程</a></dd><dd><a href="#">购物流程</a></dd><dd><a href="#">订购方式</a></dd><dd><a href="#">隐私声明</a></dd><dd><a href="#">推荐分享说明</a></dd></dl><dl><dt><a href="#">配送与支付</a></dt><dd><a href="#">货到付款区域</a></dd><dd><a href="#">配送支付查询</a></dd><dd><a href="#">支付方式说明</a></dd></dl><dl><dt><a href="#">会员中心</a></dt><dd><a href="#">资金管理</a></dd><dd><a href="#">我的收藏</a></dd><dd><a href="#">我的订单</a></dd></dl><dl><dt><a href="#">服务保证</a></dt><dd><a href="#">退换货原则</a></dd><dd><a href="#">售后服务保证</a></dd><dd><a href="#">产品质量保证</a></dd></dl><dl><dt><a href="#">联系我们</a></dt><dd><a href="#">网站故障报告</a></dd><dd><a href="#">购物咨询</a></dd><dd><a href="#">投诉与建议</a></dd></dl><div class="b_tel_bg"><a href="#" class="b_sh1">新浪微博</a> <a href="#" class="b_sh2">腾讯微博</a><p>服务热线:<br /><span>400-123-4567</span></p></div><div class="b_er"><div class="b_er_c"><img src="images/er.gif" width="118" height="118" /></div><img src="images/ss.png" /></div></div> <div class="btmbg"><div class="btm">备案/许可证编号:蜀ICP备12009302号-1-www.dingguagua.com Copyright © 2015-2018 尤洪商城网 All Rights Reserved. 复制必究 , Technical Support: Dgg Group <br /><img src="images/b_1.gif" width="98" height="33" /><img src="images/b_2.gif" width="98" height="33" /><img src="images/b_3.gif" width="98" height="33" /><img src="images/b_4.gif" width="98" height="33" /><img src="images/b_5.gif" width="98" height="33" /><img src="images/b_6.gif" width="98" height="33" /></div> </div><!--End Footer End -->
</div></body><!--[if IE 6]>
<script src="//letskillie6.googlecode.com/svn/trunk/2/zh_CN.js"></script>
<![endif]-->
</html>
2.2 查看秒杀商品
点击限时秒杀中的秒杀商品,根据秒杀商品ID查询秒杀商品详情信息并跳转到sellDetail.html页面展示秒杀商品信息。
@RequestMapping("/sellDetail.html")public String sellDetail(@RequestParam Integer pid, Model model){//根据商品ID查询秒杀商品信息Map<String, Object> prod = productService.queryKillProdById(pid);model.addAttribute("prod",prod);return "sellDetails";}
2.3 订单秒杀
2.3.1 移除seata相关(方便测压)
第1步:先注释掉zmall-order和zmall-product模块中的seata依赖
第2步:分别删掉zmall-order和zmall-product模块中resources目录下的bootstrap.xml和register.conf文件
seata分布式事务,进行jmeter压测秒杀订单接口效率太低(1000个并发请求,吞吐量为4.5/s)o(╥﹏╥)o
2.3.2 生成秒杀订单
将SnowFlake雪花ID生成工具类导入到zmall-common模块中utils,然后再生成秒杀订单时使用雪花ID来充当秒杀订单编号;在zmall-order模块中完成秒杀订单生成工作。
IOrderService
public interface IOrderService extends IService<Order> {Order createOrder(Integer pid,Integer num);/*** 生成秒杀订单* @param user 登陆用户对象* @param pid 秒杀商品ID* @param price 秒杀商品价格* @return*/JsonResponseBody<?> createKillOrder(User user, Integer pid, Float price);
}
OrderServiceImpl
@Autowired
private KillServiceImpl killService;
@Autowired
private OrderDetailServiceImpl orderDetailService;@Transactional@Overridepublic JsonResponseBody<?> createKillOrder(User user, Integer pid, Float price) {//1.根据秒杀商品编号获取秒杀商品库存是否为空Kill kill = killService.getOne(new QueryWrapper<Kill>().eq("item_id",pid));if(kill.getTotal()<1)throw new BusinessException(JsonResponseStatus.STOCK_EMPTY);//2.秒杀商品库存减一killService.update(new UpdateWrapper<Kill>().eq("item_id",pid).setSql("total=total-1"));//3.生成秒杀订单及订单项SnowFlake snowFlake=new SnowFlake(2,3);Long orderId=snowFlake.nextId();int orderIdInt = new Long(orderId).intValue();//创建订单Order order=new Order();order.setUserId(user.getId());order.setLoginName(user.getLoginName());order.setCost(price);order.setSerialNumber(orderIdInt+"");this.save(order);//创建订单项OrderDetail orderDetail=new OrderDetail();orderDetail.setOrderId(orderIdInt);orderDetail.setProductId(pid);orderDetail.setQuantity(1);orderDetail.setCost(price);orderDetailService.save(orderDetail);return new JsonResponseBody();}
OrderController
@RequestMapping("/createKillOrder/{pid}/{price}")@ResponseBodypublic JsonResponseBody<?> createKillOrder(User user,@PathVariable("pid") Integer pid,@PathVariable("price") Float price){return orderService.createKillOrder(user,pid,price);}
2.3.3 前端页面秒杀测试
在sellDetail.html页面中添加订单秒杀JS方法。
<script>$(function(){$('.ch_a').click(function(){let pid=$(this).attr('pid');console.log(pid);$.post('http://zmall.com/order-serv/createKillOrder',{pid:pid},function(rs){console.log(rs);if(rs.code===200)alert('秒杀成功');elsealert(rs.msg);},'json');});});
</script>
这里虽然已经能正常展示秒杀效果,但是还是存在很多问题,比如:重复抢购问题等等问题。
注意
$.post('http://user.zmall.com/userLogin',{loginName:loginName,password:password},function(rs){console.log(rs);if(rs.code===200){location.href='http://product.zmall.com/index.html';}else{alert(rs.msg);}},'json');
post方式不能跨二级域名发送请求,location.href可以跨二级域名发送请求;
$(function(){$('.ch_a').click(function(){let pid=$(this).attr("pid");let price=$(this).attr("price");console.log("pid=%s,price=%s",pid,price);$.post('http://zmall.com/order-serv/createKillOrder/'+pid+'/'+price,{},function(rs){console.log(rs);if(rs.code===200)alert('秒杀成功');elsealert(rs.msg);},'json');});});
$.post(‘http://zmall.com/order-serv/createKillOrder/’+pid+‘/’+price,{},function(rs){});能够正常访问;
$.post(‘http://order.zmall.com/createKillOrder/’+pid+‘/’+price,{},function(rs){});则会出现跨域问题;
相关文章:
秒杀项目之秒杀商品展示及商品秒杀
目录前言一、登录方式调整二、生成秒杀订单2.1 绑定秒杀商品2.2 查看秒杀商品2.3 订单秒杀2.3.1 移除seata相关(方便测压)2.3.2 生成秒杀订单2.3.3 前端页面秒杀测试注意前言 博主博客用到的资源都会同步分享到资源包中 一、登录方式调整 第1步…...
教育行业需要什么样的数字产品?
数字化转型的浪潮已经席卷了各行各业,不仅出现在互联网、电商、建筑等行业,还应用在了教育行业。数字化的教育ERP软件能够在满足学校需求的基础上,帮助学校完善各类工作流程,提高工作效率。 对于一个拥有多个校区,上万…...
Spring MVC
一、Spring MVC介绍 a. Spring MVC是一个Web框架 b. Spring MVC是基于Servlet API构成的 MVC 是 Model View Controller 的缩写。 MVC 是⼀种思想,⽽ Spring MVC 是对 MVC 思想的具体实现。 学习Spring MVC目标: a.连接功能:将用户ÿ…...
类与对象(上)
类与对象(上) 1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间…...
正确安装 torch_geometric库
step1: 查看pytorchcuda 版本 torch-scatter torch-sparse torch-cluster torch-spline-conv 这些关联包要与torch版本匹配。 import torch print(torch.__version__) print(torch.cuda.is_available()) torch.version.cuda或者 pip list查看版本 step2ÿ…...
【Unity VR开发】结合VRTK4.0:自身移动(滑动)
语录: 依山傍水房树间,行也安然,住也安然; 一条耕牛半顷田,收也凭天,荒也凭天; 雨过天晴驾小船,鱼在一边,酒在一边; 夜晚妻子话灯前,今也谈谈…...
G1垃圾回收器详解
文章目录前言一、思考问题二、官方文档三、基本介绍四、G1的内存模型五、G1的标记过程六、G1的垃圾回收1、G1过程梳理2、Young GC3、Mixed GC4、Full GC七、参数介绍八、典型问题1、疏散失败(Evacuation Failure)2、大对象分配(Humongous All…...
tws耳机哪个牌子音质好?tws耳机音质排行榜
随着蓝牙耳机市场的不断发展,使用蓝牙耳机的人也逐渐增多,近年来更是超越有线耳机成为最火爆的数码产品之一。那么,tws耳机哪个牌子音质好?下面,我来给大家推荐几款音质好的tws耳机,可以当个参考。 一、南…...
TIA博途中DB数据块清零的具体方法示例
TIA博途中DB数据块清零的具体方法示例 TIA中数据块如何实现清零? 在TIA指令集内有多个移动指令可对DB块内数据进行清零处理。对于S7-1500 CPU或ET200SP CPU来说,可使用BLKMOV、FILL以及SCL的POKE_BLK指令。但是这些指令对DB块清零时,要求DB块必需为非优化DB。 对于优化的DB…...
iptables防火墙屏蔽指定ip的端口
因为需要测试客户端程序与hadoop服务器之间正常通信需要开通的端口, 所以在hadoop各服务器上使用iptables防火墙屏蔽了测试客户端程序的ip和所有端口。然后,根据报错信息提示的端口号来逐步放开直到能正常通信下载文件。 在服务器端屏蔽指定ip访问所有端口 #查看…...
JavaScript Math(算数) 对象
JavaScript Math(算数) 对象 Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。 Math 用于 Number 类型。它不支持 BigInt。 描述 与其他全局对象不同的是,Math 不是一个构造器。Math 的所…...
超详细的JAVA高级进阶基础知识04
目录 4. 面向对象高级 - 常用的API 4.1 Arrays 工具类 4.1.1 Arrays 类介绍 4.2 冒泡排序 4.3 选择排序 4.4 二分查找 4.5 正则表达式 4.5.1 String 类中与正则有关的常见方法 4.5.2 练习 4.5.3 今日学习目标 4. 面向对象高级 - 常用的API 4.1 Arrays 工具类 4.1.1…...
Python 运算符?
什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 5 9 。 例子中,4 和 5 被称为操作数, 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符…...
linux nuxt 部署 问题汇总
安装node centos 7 请选择 node版本 v16.1.0 进行安装, npm 版本 7.11.2 亲测这个版本有效,否则会出现 Error: Cannot find module ‘node:fs/promises‘ 等问题 node安装亲参照: Linux node 安装教程_linux node安装_围城少年的博客…...
C++内存管理
文章目录1. c的内存管理例题2.c管理方式1.c的内置类型1.申请一个空间并初始化2.申请连续的空间并初始化3.总结2.c的自定义类型2.总结3.operator new与operator delete函数4.new和delete的实现原理1.内置类型2.自定义类型内存泄露问题&&delete先析构的原因编译器实现机制…...
电子招投标系统源码之 —采购数字化转型快人一步,以大数据支撑供应链管理未来
采购数字化转型快人一步,以大数据支撑供应链管理未来 招标采购为主的一站式全流程数字化采供协同。平台满足询比价、招标、竞价、拍卖、协议直采、商城采购等多种采购定价方式,采购过程全程留痕可追溯。平台支持企业通过WEB、APP、小程序等终端完成采购需…...
ie获取cookie数据,中文乱码;cookie中文乱码终极解决办法
终极解决办法 cookie存中文数据是会出现乱码的,所以在存数据前,得先“编码”,取的时候先“解码” JS方法-编码:encodeURI("你好") 结果:"%E4%BD%A0%E5%A5%BD"JS方法-解码:decodeURI(&…...
day16_关键字this和super丶就近原则和追根溯源原则
this关键字 含义:this代表当前对象 this使用位置 this在实例初始化相关的代码块和构造器中:表示正在创建的那个实例对象,即正在new谁,this就代表谁this在非静态实例方法中:表示调用该方法的对象,即谁在调…...
MySQL 共享锁 (lock in share mode),排他锁 (for update)
共享锁 (lock in share mode) 简介 允许不同事务之间加共享锁读取,但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读取 session1: start transaction; select * from…...
类与对象(下)
文章目录类与对象(下)1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表特点推荐坑1.3 explicit关键字2. static成员2.1 概念面试题解法1解法2解法3(重要)2.2 特性问题3. 友元3.1 友元函数说明3.2 友元类4. 内部类4.14.25. 匿名对象6.拷贝对象时的一些编译器优化总结类与对象(下…...
feign技巧 - form方式传值
feign技巧 - form方式传值。 0. 文章目录1. 前言2. 调用样例3. 原理解析3.1 feign端序列化参数3.2 SpringMVC服务端解析参数3.3 补充 - 继承关系不会被传递的原因3.4 补充 - 不能使用GET。4. 总结1. 前言 直接正题。 如何使用feign进行fom表单方式的请求调用,以及其…...
MATLAB | 情人节来绘制更立体的玫瑰花吧
又是一年情人节,今年带来一款更有立体感的玫瑰: 曲面的函数表达式来自: http://www.bugman123.com/Math/index.html 这个网站,上面还有很多其他帅气的玩意。 基础绘制 xlinspace(0,1,300); thetalinspace(-2*pi,15*pi,300); [x,theta]meshg…...
【Python表白代码】 2.14“Valentine‘s Day”“没别的意思 就是借着特殊日子说声喜欢你”你在哪儿?我去见你~(各种玫瑰源码合集)
导语 Valentines Day Every man is a poet when he is in love 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 哈喽!我是你们的木木子吖~ 情人节又到了,礼物备好了没&am…...
压力应变电桥信号隔离放大变送器差分输入0-±10mV/0-±20mV转0-20mA/0-10v
概述:DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源,向输入…...
Linux系统之部署个人导航页
Linux系统之部署个人导航页 一、本次导航页工具介绍二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、下载导航页软件包1.创建下载目录2.下载导航页软件包四、部署前环境准备工作1.安装python32.安装pipenv3.创建虚拟环境①创建环境②修改base.py文件③修改settings.p…...
四、Windows 平台安装 MongoDB
MongoDB 提供 64 位系统的预编译二进制包 我们可以从 MongoDB 官网下载安装 MongoDB 预编译二进制包下载地址:Try MongoDB Atlas Products | MongoDB 在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统 最新版本也已经没有了 32 位系统的安装文件 MongoDB for W…...
浅谈应用安全测试工具
正确的应用程序安全测试工具可以改善企业安全态势和开发工作流程。如今,应用程序安全从一开始就内置在整个软件生命周期中,即使是具有成熟开发实践的组织也需要自动化工具来在复杂、快速变化的环境中成功地保护他们的软件。以下比较了三个广泛使用的应用…...
四类(七种)排序算法总结
一、插入排序 基本思想: 每次将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。即边插入边排序,保证子序列中随时都是排好序的。 基本操作——有序插入ÿ…...
[oeasy]python0083_十进制数如何存入计算机_八卦纪事_BCD编码_Binary_Coded_Decimal
编码进化 回忆上次内容 上次 研究了 视频终端的 演化 从VT05 到 VT100从 黑底绿字 到 RGB 24位真彩色形成了 VT100选项 从而 将颜色 数字化 了 生活中我们更常用 10个数字 但是 计算机中 用二进制 日常计数的十进制数 是如何存储进计算机的呢?🤔 从10进制到2进…...
理解框架的编译时与运行时
首先我们需要先理解一下什么事编译时和运行时 在语言层面,先来聊一下前端开发者最常遇见的两种语言JavaScript和Java Java的代码就是被编译为.class 文件才能运行,这个编译过程就是编译时,运行 .class 文件就是运行时我们在浏览器直接输入一…...
wordpress指定文章p=/谷歌账号注册
1.优先使用异步消息。 上文已经说过,使用异步消息 Consumer 端需要实现幂等。幂等有两种方式,一种方式是业务逻辑保证幂等。比如接到支付成功的消息订单状态变成支付完成,如果当前状态是支付完成,则再收到一个支付成功的消息则说明…...
广州网站建设哪家有/上海seo公司哪个靠谱
一、概述所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传,需…...
江苏省建设厅官网网站首页/百度竞价优化软件
一道简单题,思路如下: 1、对每个硬币设三个bool位进行标识,分别为平衡even,重heavy,轻light; 2、读入数据,对硬币状态进行标记,这里有一个细节是,如果天枰左偏或右偏&…...
陕西省建设厅网站ca验证失败/百度指数怎么看城市
——人类最倚重的是自己的“以往经验”。—— 我们直接看一下在corePlot 类库和iOS自带类中为一个控件设置文本显示格式的实现。 * corePlot 类库中,为一个对象设置标题显示格式 //创建一个“图表坐标系” (估且称它为一个控件吧)CPTXYGraph…...
自己做网站犯法吗/优化seo公司哪家好
目录 环境 症状 问题原因 解决方案 环境 系统平台:N/A 版本:4.1.1 症状 /xxx/data/base/pgsql_tmp 该文件夹下,临时文件数量及体积快速增加。重启数据库会使临时文件被删除,一段时间后临时文件再次出现爆满的情况。 问…...
网站建设教育培训/免费网站在线观看人数在哪直播
讲解上面三条命令之前要先了解一下ELF格式文件https://blog.csdn.net/u014608280/article/details/81983055 一、readelf readelf命令可以查看ELF文件的详细信息。 选项 -a --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. -h --file-header 显示elf文件开始的文件…...