订单确认页

1.订单号生成(雪花算法)

引入一个工具类,直接调用方法生成

2.生成订单页面

    @RequestMapping("/confirmSeckillOrders")
    public String confirmSeckillOrders(int id, HttpSession session){
        //用户抢到商品跳转到当前页面,生成订单
        //1.判断当前用户是否购买该商品
        User user = (User) session.getAttribute("user");
        if (redisTemplate.boundSetOps(SysProperties.SECKILL_ITEMS_USERS+id).isMember(user.getId())){//用户确实购买该商品,生成订单
            //获取商品信息
            SeckillItems items = itemsService.selectByPrimaryKey(id);
            //创建新的订单,将数据存入订单,并保存到数据库
            Orders orders = new Orders();
            orders.setCreateTime(new Date());
            orders.setDeleteStatus(0);
            orders.setItemsCount(1);
            orders.setMoney(items.getSeckillPrice().doubleValue());
            //订单号使用雪花算法生成19位的long型
            SnowFlakeUtil snowFlakeUtil=new SnowFlakeUtil(5,5);
            orders.setOrdersNum(snowFlakeUtil.nextId()+"");
            //订单状态 0 未支付 1已支付 2 已过期 3已取消  4 已发货 5 已完成
            orders.setOrdersStatus(SysProperties.ORDERS_STATUS_NOPAY);
            Reciver reciver = reciverService.findDefaultReceiverByUserId(user.getId());
            System.out.println(reciver);
            orders.setReciverId(reciver.getId());
            ordersService.insertSelective(orders);
            //订单入库....通知库存系统锁定库存
            //todo
            return "redirect:SeckillOrders?ordersId="+orders.getId()+"&seckillItemsId="+id;
        }else {
            //如果用户未购买,则是非法进入,跳转到失败页
            return "redirect:common/noauth";
        }
    }
posted @ 2021-11-06 12:58  2333gyh  阅读(145)  评论(0编辑  收藏  举报