from(Order::tableName()); $endTime = time(); $startTime = strtotime('-7 days'); //查询已经过期7天的订单 $query->where(['status' => 1])->andWhere(['>', 'deadline', $startTime])->andWhere(['<=', 'deadline', $endTime]); $query->orderBy('deadline ASC'); foreach ($query->batch() as $batchOrder) { foreach ($batchOrder as $order) { $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); $id = $order['id'] ?? 0; $orderSn = $order['orderSn'] ?? ''; try { $order = OrderClass::getById($id, true); //暂时只考虑花材库存的回滚 OrderClass::setExpire($order); $transaction->commit(); //noticeUtil::push("零售订单未付款,库存已回滚,单号:{$orderSn}"); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); noticeUtil::push("处理报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347'); } } } } }