A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵永旗 初级黑马   /  2019-8-1 15:55  /  1123 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

**
     * 订单超时处理
     */
    public void orderTimeOutLogic() {

        //订单超时未付款 自动关闭
        //查询超时时间
        OrderConfig orderConfig = orderConfigMapper.selectByPrimaryKey(1);
        Integer orderTimeout = orderConfig.getOrderTimeout();  //超时时间(分) 60
        LocalDateTime localDateTime = LocalDateTime.now().minusMinutes(orderTimeout);  //得到超时的时间点

        //设置查询条件
        Example example=new Example(Order.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andLessThan("createTime",localDateTime);//创建时间小于超时时间
        criteria.andEqualTo("orderStatus","0");//未付款的
        criteria.andEqualTo("isDelete","0");//未删除的

        //查询超时订单
        List<Order> orders = orderMapper.selectByExample(example);
        for(Order order :orders){
            //记录订单变动日志
            OrderLog orderLog=new OrderLog();
            orderLog.setOperater("system");// 系统
            orderLog.setOperateTime(new Date());//当前日期
            orderLog.setOrderStatus("4");
            orderLog.setPayStatus(order.getPayStatus());
            orderLog.setConsignStatus(order.getConsignStatus());
            orderLog.setRemarks("超时订单,系统自动关闭");
            orderLog.setOrderId(order.getId());
            orderLogMapper.insert(orderLog);
            //更改订单状态
            order.setOrderStatus("4");
            order.setCloseTime(new Date());//关闭日期
            orderMapper.updateByPrimaryKeySelective(order);
        }
    }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马