OrderController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace console\controllers;
  3. use bizHd\order\classes\OrderClass;
  4. use bizHd\order\models\Order;
  5. use common\components\noticeUtil;
  6. use yii\console\Controller;
  7. use Yii;
  8. class OrderController extends Controller
  9. {
  10. //花店订单脚本
  11. public function actionExpire()
  12. {
  13. $query = new \yii\db\Query();
  14. $query->from(Order::tableName());
  15. $endTime = time();
  16. $startTime = strtotime('-7 days');
  17. //查询已经过期7天的订单
  18. $query->where(['status' => 1])->andWhere(['>', 'deadline', $startTime])->andWhere(['<=', 'deadline', $endTime]);
  19. $query->orderBy('deadline ASC');
  20. foreach ($query->batch() as $batchOrder) {
  21. foreach ($batchOrder as $order) {
  22. $connection = Yii::$app->db;
  23. $transaction = $connection->beginTransaction();
  24. $id = $order['id'] ?? 0;
  25. $orderSn = $order['orderSn'] ?? '';
  26. try {
  27. $order = OrderClass::getById($id, true);
  28. //暂时只考虑花材库存的回滚
  29. OrderClass::setExpire($order);
  30. $transaction->commit();
  31. noticeUtil::push("零售订单未付款,库存已回滚,单号:{$orderSn}");
  32. } catch (\Exception $e) {
  33. $transaction->rollBack();
  34. $msg = $e->getMessage();
  35. noticeUtil::push("处理报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
  36. }
  37. }
  38. }
  39. }
  40. }