db->createCommand($sql)->execute(); $query = new \yii\db\Query(); $query->from(Order::tableName()); foreach ($query->batch() as $batch) { foreach ($batch as $order) { $id = $order['id'] ?? 0; $orderSn = $order['orderSn'] ?? ''; $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (!empty($itemList)) { $totalNum = 0; foreach ($itemList as $key => $item) { $num = $item['num'] ?? 0; $totalNum = bcadd($totalNum, $num, 2); } //补充总数量 OrderClass::updateById($id, ['itemNum' => $totalNum]); } $status = $order['status'] ?? 0; if ($status == 1 || $status == 5) { continue; } $amount = $order['actPrice'] ?? 0; $refundPrice = $order['refundPrice'] ?? 0; if ($refundPrice > 0) { $amount = bcadd($amount, $refundPrice, 2); } $shopId = $order['shopId'] ?? 0; $shop = ShopClass::getLockById($shopId); if (empty($shop)) { continue; } $date = date('Ymd', strtotime($order['addTime'])); $current = OrderClass::getById($id, true); StatKhCgClass::replace($current, $amount, $date); } } $query = new \yii\db\Query(); $query->from(RefundOrder::tableName()); foreach ($query->batch() as $batch) { foreach ($batch as $refund) { $id = $refund['id'] ?? 0; $orderSn = $refund['orderSn'] ?? ''; $relateOrderSn = $refund['relateOrderSn'] ?? ''; $current = OrderClass::getByCondition(['orderSn' => $relateOrderSn], true); $customId = $current->customId ?? 0; $itemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); $totalNum = 0; if (!empty($itemList)) { foreach ($itemList as $item) { $num = $item['itemNum'] ?? 0; $totalNum = bcadd($totalNum, $num, 2); } } //补充总数量和客户id RefundOrderClass::updateById($id, ['itemNum' => $totalNum, 'customId' => $customId]); $date = date('Ymd', strtotime($refund['addTime'])); $current = RefundOrderClass::getById($id, true); StatKhCgClass::refundReplace($current, $date); } } } }