OrderController.php 1.6 KB

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