from(RefundOrder::tableName()); $query->where(['>', 'id', 0]); $query->orderBy('addTime ASC'); $arr = ['开错', '多开', '重新补开', '重复开单', '客户自购']; foreach ($query->batch() as $batchOrder) { foreach ($batchOrder as $refund) { $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); $orderSn = $refund['orderSn'] ?? ''; try { $status = $refund['status'] ?? 0; $addTime = $refund['addTime'] ?? ''; $remark = $refund['remark'] ?? ''; $cause = 0; if (!empty($remark)) { foreach ($arr as $son) { $res = strstr($remark, $son); if (!empty($res)) { $cause = 1; } } } RefundOrderClass::updateByCondition(['orderSn' => $orderSn], ['cause' => $cause]); $updateTime = $refund['updateTime'] ?? ''; RefundOrderItemClass::updateByCondition(['orderSn' => $orderSn], ['status' => $status, 'addTime' => $addTime, 'updateTime' => $updateTime, 'cause' => $cause]); $cgRefundId = $refund['cgRefundId'] ?? 0; $cgRefund = CgRefundClass::getById($cgRefundId, true); if (empty($cgRefund)) { echo "{$orderSn} 没有找到采购的退款信息\n"; continue; } $cgRefund->cause = $cause; $cgRefund->save(); $cgRefundStatus = $cgRefund->status; $cgOrderSn = $cgRefund->orderSn ?? ''; $addTime = $cgRefund->addTime; $updateTime = $cgRefund->updateTime; CgRefundItemClass::updateByCondition(['orderSn' => $cgOrderSn], ['status' => $cgRefundStatus, 'addTime' => $addTime, 'updateTime' => $updateTime, 'cause' => $cause]); $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); noticeUtil::push("{$orderSn} 报错了:{$msg}", '15280215347'); } } } } //退款数据更新 ./yii refund/update public function actionUpdate() { ini_set('memory_limit', '2045M'); set_time_limit(0); $query = new \yii\db\Query(); $query->from(CgRefund::tableName()); foreach ($query->batch() as $batch) { foreach ($batch as $refund) { $id = $refund['id'] ?? 0; $relateOrderSn = $refund['relateOrderSn'] ?? ''; if (empty($relateOrderSn)) { continue; } $order = PurchaseOrderClass::getByCondition(['orderSn' => $relateOrderSn], true); if (empty($order)) { continue; } $ghsId = $order->ghsId ?? 0; $ghsName = $order->ghsName ?? ''; $entryTime = $order->entryTime ?? ''; $passTime = $refund['addTime'] ?? ''; $status = $refund['status'] ?? 0; $update = [ 'ghsId' => $ghsId, 'ghsName' => $ghsName, 'orderTime' => $entryTime, ]; if ($status == 1) { $update['passTime'] = $passTime; } \bizGhs\cg\classes\CgRefundClass::updateById($id, $update); } } } }