Bladeren bron

订单编号

shish 5 jaren geleden
bovenliggende
commit
da9d780937
2 gewijzigde bestanden met toevoegingen van 81 en 1 verwijderingen
  1. 4 1
      app-ghs/controllers/OrderController.php
  2. 77 0
      console/controllers/OrderController.php

+ 4 - 1
app-ghs/controllers/OrderController.php

@@ -52,7 +52,10 @@ class OrderController extends BaseController
         }
         $name = $get['name'] ?? '';
         if (!empty($name)) {
-            if (preg_match("/^[a-zA-Z\s]+$/", $name)) {
+            //订单编号
+            if (strpos($name, 'XSD') === 0) {
+                $where['orderSn'] = $name;
+            } elseif (preg_match("/^[a-zA-Z\s]+$/", $name)) {
                 $where['customNamePy'] = ['like', $name];
             } else {
                 $where['customName'] = ['like', $name];

+ 77 - 0
console/controllers/OrderController.php

@@ -0,0 +1,77 @@
+<?php
+
+namespace console\controllers;
+
+use bizGhs\order\classes\OrderClass;
+use bizGhs\order\models\Order;
+use bizGhs\order\services\OrderService;
+use common\components\dict;
+use common\components\noticeUtil;
+use Yii;
+use yii\console\Controller;
+
+/**
+ * 脚本
+ */
+class OrderController extends Controller
+{
+
+    //待配送订单,超过24小时自动完成 ./yii order/auto-finish
+    public function actionAutoFinish()
+    {
+
+        $remain = time() - 86400;
+        $date = date("Y-m-d H:i:s", $remain);
+
+        $query = new \yii\db\Query();
+        $query->from(Order::tableName());
+
+        $query->where(['status' => OrderClass::ORDER_STATUS_UN_SEND])->andWhere(['<=', 'addTime', $date]);
+        $query->orderBy('deadline ASC');
+
+        Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'ghs');
+
+        //如果有报错,抛出异常
+        Yii::$app->params['errorReport'] = 1;
+
+        foreach ($query->batch() as $orderInfoList) {
+
+            foreach ($orderInfoList as $orderInfo) {
+                $connection = Yii::$app->db;//事务处理
+                $transaction = $connection->beginTransaction();
+                $id = $orderInfo['id'] ?? 0;
+                $orderSn = $orderInfo['orderSn'] ?? '';
+                $status = $orderInfo['status'] ?? OrderClass::ORDER_STATUS_UN_PAY;
+                $addTime = $orderInfo['addTime'] ?? '';
+
+                $prefix = "订单{$orderSn},ID{$id},创建于{$addTime},状态是{$status}";
+                if ($status != OrderClass::ORDER_STATUS_UN_SEND) {
+                    noticeUtil::push($prefix . " 自动确认完成操作时,状态不对", '15280215347');
+                    continue;
+                }
+                if (empty($addTime) && $addTime > $date) {
+                    noticeUtil::push($prefix . " 自动确认完成操作时,时间不对", '15280215347');
+                    continue;
+                }
+                try {
+
+                    $unSendOrder = OrderClass::getById($id, true);
+                    OrderClass::selfSend($unSendOrder);
+                    $hasSendOrder = OrderClass::getById($id, true);
+                    OrderService::reach($hasSendOrder);
+
+                    $transaction->commit();
+
+                    noticeUtil::push($prefix . " 已【自动确认完成】 SUCCESS", '15280215347');
+                    die;
+                } catch (\Exception $e) {
+                    $transaction->rollBack();
+                    $msg = $e->getMessage();
+                    noticeUtil::push("销售单自动确认完成报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
+                }
+            }
+        }
+
+    }
+
+}