PurchaseController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace console\controllers;
  3. use bizHd\purchase\classes\PurchaseClass;
  4. use bizHd\purchase\models\Purchase;
  5. use bizHd\purchase\services\PurchaseService;
  6. use yii\console\Controller;
  7. use Yii;
  8. class PurchaseController extends Controller
  9. {
  10. //采购订单过期变更状态 shish 2021.5.14
  11. // ./yii purchase/expire-order
  12. public function actionExpireOrder()
  13. {
  14. $query = new \yii\db\Query();
  15. $query->from(Purchase::tableName());
  16. $date = date("Y-m-d H:i:s");
  17. $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['<=', 'deadline', $date]);
  18. $query->orderBy('deadline ASC');
  19. $connection = Yii::$app->db;//事务处理
  20. $transaction = $connection->beginTransaction();
  21. try {
  22. $arr = [];
  23. foreach ($query->batch() as $purchases) {
  24. foreach ($purchases as $purchase) {
  25. $id = $purchase['id'] ?? 0;
  26. PurchaseService::expire($id);
  27. $log = "过期的采购单:{$id} json:" . json_encode($purchase);
  28. $arr[] = $log;
  29. }
  30. }
  31. $transaction->commit();
  32. if (!empty($arr)) {
  33. foreach ($arr as $item) {
  34. Yii::info($item);
  35. }
  36. }
  37. } catch (Exception $e) {
  38. $transaction->rollBack();
  39. echo 'error';
  40. }
  41. echo 'ok';
  42. }
  43. }