|
|
@@ -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');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|