PurchaseController.php 1.6 KB

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