shish 1 ماه پیش
والد
کامیت
7be5762eae
1فایلهای تغییر یافته به همراه89 افزوده شده و 0 حذف شده
  1. 89 0
      console/controllers/ClearController.php

+ 89 - 0
console/controllers/ClearController.php

@@ -0,0 +1,89 @@
+<?php
+
+namespace console\controllers;
+
+use bizGhs\clear\classes\ClearClass;
+use bizGhs\clear\classes\OrderCgClearClass;
+use bizGhs\clear\models\Clear;
+use bizGhs\order\classes\OrderClass;
+use bizHd\purchase\classes\PurchaseClass;
+use yii\console\Controller;
+use Yii;
+
+class ClearController extends Controller
+{
+
+    public function actionBc()
+    {
+
+        ini_set('memory_limit', '2045M');
+        set_time_limit(0);
+
+        if (getenv('YII_ENV') == 'production') {
+            $autoId = 817342;
+        } else {
+            $autoId = 1437;
+        }
+
+        $query = new \yii\db\Query();
+        $query->from(Clear::tableName());
+        $query->where(['>', 'id', $autoId]);
+        foreach ($query->batch(500) as $changeList) {
+
+            $ids = array_column($changeList, 'id');
+            $relate = OrderCgClearClass::getAllByCondition(['clearId' => ['in', $ids]], null, '*', 'clearId');
+
+            $connection = Yii::$app->db;
+            $transaction = $connection->beginTransaction();
+
+            try {
+
+                foreach ($changeList as $clear) {
+                    $clearId = $clear['id'] ?? 0;
+                    $clearSn = $clear['orderSn'] ?? '';
+                    $status = $clear['status'] ?? 1;
+                    $clearAmount = $clear['actPrice'] ?? 0;
+                    $purchaseIds = $clear['purchaseIds'] ?? '';
+                    $saleIds = $clear['saleIds'] ?? '';
+                    if (!isset($relate[$clearId])) {
+                        if (!empty($saleIds) && !empty($purchaseIds)) {
+                            $saleIdList = explode(',', $saleIds);
+                            $purchaseIdList = explode(',', $purchaseIds);
+                            $saleInfo = OrderClass::getAllByCondition(['id' => ['in', $saleIdList]], null, 'id,orderSn,purchaseId');
+                            $purchaseInfo = PurchaseClass::getAllByCondition(['id' => ['in', $purchaseIdList]], null, 'id,orderSn', 'id');
+                            if (!empty($saleInfo)) {
+                                foreach ($saleInfo as $sale) {
+                                    $saleId = $sale['id'] ?? 0;
+                                    $purchaseId = $sale['purchaseId'] ?? 0;
+                                    $saleOrderSn = $sale['orderSn'] ?? '';
+                                    $purchase = $purchaseInfo[$purchaseId] ?? [];
+                                    if (empty($purchase)) {
+                                        echo "purchase {$purchaseId} 没有找到 \n";
+                                        exit();
+                                    }
+                                    $purchaseOrderSn = $purchase['orderSn'] ?? '';
+                                    $addData = ['orderId' => $saleId, 'orderSn' => $saleOrderSn, 'cgId' => $purchaseId, 'cgSn' => $purchaseOrderSn,
+                                        'clearId' => $clearId, 'clearSn' => $clearSn, 'amount' => $clearAmount, 'status' => $status];
+                                    OrderCgClearClass::add($addData);
+                                }
+                                echo "clearId {$clearId} OK \n";
+                            }
+                        }
+                    } else {
+                        echo "有记录 {$clearId} \n";
+                    }
+                }
+
+                $transaction->commit();
+
+            } catch (\Exception $e) {
+                $transaction->rollBack();
+                $msg = $e->getMessage();
+                echo "报错了:" . $msg . "\n";
+            }
+
+        }
+
+    }
+
+}