PurchaseController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. // /usr/local/nginx/html/huahuibao/yii purchase/expire-order
  13. public function actionExpireOrder()
  14. {
  15. $query = new \yii\db\Query();
  16. $query->from(Purchase::tableName());
  17. $date = date("Y-m-d H:i:s");
  18. $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['<=', 'deadline', $date]);
  19. $query->orderBy('deadline ASC');
  20. $connection = Yii::$app->db;//事务处理
  21. $transaction = $connection->beginTransaction();
  22. try {
  23. $arr = [];
  24. foreach ($query->batch() as $purchases) {
  25. foreach ($purchases as $purchase) {
  26. $id = $purchase['id'] ?? 0;
  27. PurchaseService::expire($id);
  28. $log = "过期的采购单:{$id} json:" . json_encode($purchase);
  29. $arr[] = $log;
  30. }
  31. }
  32. $transaction->commit();
  33. if (!empty($arr)) {
  34. foreach ($arr as $item) {
  35. Yii::info($item);
  36. }
  37. }
  38. } catch (Exception $e) {
  39. $transaction->rollBack();
  40. echo 'error';
  41. }
  42. echo 'ok';
  43. }
  44. }