2], 'id asc', '*', null, true); if (!empty($list)) { foreach ($list as $item) { $orderSn = $item->orderSn ?? ''; $shopId = $item->shopId ?? 0; $addTime = $item->addTime ?? ''; $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { $shop = ShopClass::getLockById($shopId); if (empty($shop)) { echo '没有找到店铺 ' . $shopId . ' ' . $orderSn . "\n"; continue; } $productList = CheckOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (!empty($productList)) { $add = 0; $sub = 0; foreach ($productList as $product) { $num = $product->profitLossNum ?? 0; $cost = $product->itemCost ?? 0; $res = bcmul($num, $cost, 2); if ($res > 0) { $add = bcadd($add, $res, 2); } else { $sub = bcadd($add, abs($res), 2); } } $totalAdd = bcadd($shop->totalPdAdd, $add, 2); $totalSub = bcadd($shop->totalPdSub, $sub, 2); $shop->totalPdAdd = $totalAdd; $shop->totalPdSub = $totalSub; $shop->save(); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); echo "报错了:" . $msg . "\n"; } } } } }