$v) { $v = self::fillClearAuditFromRecharge($v); $clearAmount = $v['clearAmount'] ?? 0; $amount = $v['amount'] ?? 0; $io = $v['io'] ?? 0; $becomeBalance = 0; if ($io == 1) { $becomeBalance = bcsub($amount, $clearAmount, 2); $becomeBalance = floatval($becomeBalance); } $data['list'][$k] = $v; $data['list'][$k]['becomeBalance'] = $becomeBalance; } } return $data; } /** * 入账流水补全结账单(充值清账、选订单销账-客户已转账 等) */ public static function fillClearAuditFromRecharge($row) { if (empty($row) || !is_array($row)) { return $row; } if (intval($row['clearId'] ?? 0) > 0) { return self::normalizeClearAuditRow($row); } if (intval($row['io'] ?? 0) !== 1) { return $row; } $relateId = intval($row['relateId'] ?? 0); if ($relateId <= 0) { return $row; } // 旧流水:relateId 即结账单 id if (self::isClearIncomeCapitalType($row['capitalType'] ?? 0)) { return self::attachClearMetaFromClearId($row, $relateId); } if (!self::isRechargeCapitalType($row['capitalType'] ?? 0) && !self::isGhsSideRechargeCapitalType($row['capitalType'] ?? 0)) { return $row; } $recharge = self::resolveCustomRechargeForBalanceRow($row); if (!empty($recharge)) { $customId = intval(is_object($recharge) ? ($recharge->customId ?? 0) : ($recharge['customId'] ?? 0)); if ($customId > 0) { $row['customId'] = $customId; } $clearId = intval(is_object($recharge) ? ($recharge->clearId ?? 0) : ($recharge['clearId'] ?? 0)); if ($clearId > 0) { $row['clearId'] = $clearId; $row['clearSn'] = is_object($recharge) ? ($recharge->clearSn ?? '') : ($recharge['clearSn'] ?? ''); $row['clearAmount'] = is_object($recharge) ? ($recharge->clearAmount ?? 0) : ($recharge['clearAmount'] ?? 0); return self::normalizeClearAuditRow($row); } } // 花店 xhGhsBalanceChange:禁止金额模糊匹配;再尝试 GhsRecharge 直连 if (self::isFloristGhsBalanceChangeRow($row)) { if (empty($recharge)) { $ghsRecharge = GhsRechargeClass::getById($relateId, true); if (!empty($ghsRecharge)) { $recharge = self::findCustomRechargeByGhsRecharge($ghsRecharge); } } if (!empty($recharge)) { $clearId = intval(is_object($recharge) ? ($recharge->clearId ?? 0) : ($recharge['clearId'] ?? 0)); if ($clearId > 0) { return self::attachClearMetaFromClearId($row, $clearId); } } return $row; } // 供货商侧 CustomBalanceChange:充值单未落库 clearId 时再按金额+时间匹配 return self::fillClearAuditByPaidClearMatch($row, $recharge ?? null); } /** * 供货商帮充:CustomBalanceChange.relateId=CustomRecharge.id(无 ghsId 字段); * 花店 xhGhsBalanceChange.relateId=GhsRecharge.id(有 ghsId)。 */ protected static function resolveCustomRechargeForBalanceRow(array $row) { $relateId = intval($row['relateId'] ?? 0); if ($relateId <= 0) { return null; } if (self::isFloristGhsBalanceChangeRow($row)) { $ghsRecharge = GhsRechargeClass::getById($relateId, true); if (empty($ghsRecharge)) { return null; } return self::findCustomRechargeByGhsRecharge($ghsRecharge); } return CustomRechargeClass::getById($relateId, true); } /** 花店端 xhGhsBalanceChange:有 ghsId;relateId 对应 GhsRecharge(非 CustomRecharge.id) */ protected static function isFloristGhsBalanceChangeRow(array $row) { if (intval($row['ghsId'] ?? 0) <= 0) { return false; } if (intval($row['customId'] ?? 0) <= 0) { return true; } $relateId = intval($row['relateId'] ?? 0); return $relateId > 0 && !empty(GhsRechargeClass::getById($relateId, true)); } /** * 根据 xhGhsRecharge.customRechargeId 取成对的 xhCustomRecharge。 * * 一次充值应对写两张充值单并互相关联(linkCustomAndGhsRecharge / 花店建单): * - 结账单 clearId 写在 CustomRecharge 上 * - 花店 GhsBalanceChange.relateId = GhsRecharge.id,只能通过 customRechargeId 找到 CustomRecharge * * 若 customRechargeId 为空或查无记录,视为写入阶段脏数据,不做金额/时间猜测匹配。 * * @param object|array $ghsRecharge * @return object|null */ protected static function findCustomRechargeByGhsRecharge($ghsRecharge) { if (empty($ghsRecharge)) { return null; } $customRechargeId = intval(is_object($ghsRecharge) ? ($ghsRecharge->customRechargeId ?? 0) : ($ghsRecharge['customRechargeId'] ?? 0)); if ($customRechargeId <= 0) { return null; } return CustomRechargeClass::getById($customRechargeId, true); } /** 写入流水/充值单时带上结账单(有字段才写,对照 hd 充值即带 settleId) */ public static function mergeClearAuditIntoRowData(array $data, array $audit) { $clearId = intval($audit['clearId'] ?? 0); if ($clearId <= 0) { return $data; } $probe = new \bizGhs\custom\models\CustomBalanceChange(); if (!method_exists($probe, 'hasAttribute') || !$probe->hasAttribute('clearId')) { return $data; } $data['clearId'] = $clearId; $data['clearSn'] = (string)($audit['clearSn'] ?? ''); $data['clearAmount'] = bcadd((string)($audit['clearAmount'] ?? 0), '0', 2); if ($probe->hasAttribute('giveAmount')) { $data['giveAmount'] = '0.00'; } return $data; } public static function mergeClearAuditIntoRechargeData(array $data, array $audit) { $clearId = intval($audit['clearId'] ?? 0); if ($clearId <= 0) { return $data; } $probe = new \bizGhs\custom\models\CustomRecharge(); if (!method_exists($probe, 'hasAttribute') || !$probe->hasAttribute('clearId')) { return $data; } $data['clearId'] = $clearId; $data['clearSn'] = (string)($audit['clearSn'] ?? ''); $data['clearAmount'] = bcadd((string)($audit['clearAmount'] ?? 0), '0', 2); return $data; } protected static function attachClearMetaFromClearId(array $row, $clearId) { $clearId = intval($clearId); if ($clearId <= 0) { return $row; } $clear = OrderClearClass::getById($clearId, true); if (empty($clear)) { return $row; } $row['clearId'] = $clearId; $row['clearSn'] = is_object($clear) ? ($clear->orderSn ?? '') : ($clear['orderSn'] ?? ''); $actPrice = is_object($clear) ? ($clear->actPrice ?? 0) : ($clear['actPrice'] ?? 0); $row['clearAmount'] = bcadd((string)$actPrice, '0', 2); return self::normalizeClearAuditRow($row); } /** * 充值入账与结账单关联:同客户、同实收金额、付款时间接近的已付结账单 */ protected static function fillClearAuditByPaidClearMatch(array $row, $recharge = null) { $customId = intval($row['customId'] ?? 0); if ($customId <= 0 && !empty($recharge)) { $customId = intval(is_object($recharge) ? ($recharge->customId ?? 0) : ($recharge['customId'] ?? 0)); if ($customId > 0) { $row['customId'] = $customId; } } if ($customId <= 0) { return $row; } $amount = bcadd((string)($row['amount'] ?? 0), '0', 2); $anchorTime = (string)($row['addTime'] ?? ''); if (!empty($recharge)) { $amount = bcadd((string)(is_object($recharge) ? ($recharge->amount ?? $amount) : ($recharge['amount'] ?? $amount)), '0', 2); $payTime = is_object($recharge) ? ($recharge->payTime ?? '') : ($recharge['payTime'] ?? ''); if (!empty($payTime) && $payTime !== '0000-00-00 00:00:00') { $anchorTime = $payTime; } } $list = OrderClearClass::getAllByCondition([ 'customId' => $customId, 'status' => PurchaseClearClass::STATUS_HAS_PAY, 'actPrice' => $amount, ], 'payTime DESC,id DESC', '*', null, true); if (empty($list)) { return $row; } $best = null; $bestDiff = null; $anchorTs = !empty($anchorTime) ? strtotime($anchorTime) : 0; foreach ($list as $clear) { $clearId = intval(is_object($clear) ? ($clear->id ?? 0) : ($clear['id'] ?? 0)); if ($clearId <= 0) { continue; } if ($anchorTs <= 0) { $best = $clear; break; } $payTime = is_object($clear) ? ($clear->payTime ?? '') : ($clear['payTime'] ?? ''); $payTs = !empty($payTime) ? strtotime($payTime) : 0; if ($payTs <= 0) { continue; } $diff = abs($anchorTs - $payTs); if ($bestDiff === null || $diff < $bestDiff) { $bestDiff = $diff; $best = $clear; } } if (empty($best) || $bestDiff === null || $bestDiff > 300) { return $row; } $clearId = intval(is_object($best) ? ($best->id ?? 0) : ($best['id'] ?? 0)); return self::attachClearMetaFromClearId($row, $clearId); } protected static function normalizeClearAuditRow(array $row) { if (intval($row['clearId'] ?? 0) > 0 && (empty($row['clearSn']) || bccomp((string)($row['clearAmount'] ?? 0), '0', 2) <= 0)) { $row = self::attachClearMetaFromClearId($row, intval($row['clearId'])); } return $row; } /** 供货商帮充 / 线上充 / 售后返充 */ protected static function isRechargeCapitalType($capitalType) { $capitalType = intval($capitalType); $ids = [ dict::getDict('capitalType', 'ghsHelpCustomRecharge', 'id'), dict::getDict('capitalType', 'ghsHelpCustomRechargeReturn', 'id'), dict::getDict('capitalType', 'customRechargeToGhs', 'id'), ]; return in_array($capitalType, $ids, true); } /** 花店侧 xhGhsBalanceChange:relateId 为 GhsRecharge.id */ protected static function isGhsSideRechargeCapitalType($capitalType) { $capitalType = intval($capitalType); $ids = [ dict::getDict('capitalType', 'customAskGhsRecharge', 'id'), dict::getDict('capitalType', 'customAskGhsRechargeReturn', 'id'), ]; return in_array($capitalType, $ids, true); } /** 结账类入账(relateId=结账单 id) */ protected static function isClearIncomeCapitalType($capitalType) { $capitalType = intval($capitalType); $ids = [ dict::getDict('capitalType', 'ghsXsClear', 'id'), dict::getDict('capitalType', 'ghsHelpCustomUseBalanceClear', 'id'), dict::getDict('capitalType', 'customAskGhsUseBalanceClear', 'id'), ]; return in_array($capitalType, $ids, true); } /** * 充值销账后回写流水上的 clearId(GhsRechargeSettleService 调用) */ public static function patchClearAuditByRechargeId($customId, $rechargeId, $clearId, $clearSn, $clearAmount, $finalBalance = null) { $customId = intval($customId); $rechargeId = intval($rechargeId); $clearId = intval($clearId); if ($customId <= 0 || $rechargeId <= 0 || $clearId <= 0) { return; } $row = self::getByCondition([ 'customId' => $customId, 'relateId' => $rechargeId, 'io' => 1, ], true, null, 'id DESC'); if (empty($row) || !method_exists($row, 'hasAttribute') || !$row->hasAttribute('clearId')) { return; } $row->clearId = $clearId; $row->clearSn = (string)$clearSn; $row->clearAmount = bcadd((string)$clearAmount, '0', 2); if ($finalBalance !== null && $row->hasAttribute('balance')) { $row->balance = $finalBalance; } if ($row->hasAttribute('giveAmount')) { $row->giveAmount = '0.00'; } $row->save(false); } /** * 花店线上充:回写 xhGhsBalanceChange(relateId=GhsRecharge.id) */ public static function patchClearAuditByGhsRechargeId($ghsRechargeId, $clearId, $clearSn, $clearAmount, $finalBalance = null) { $ghsRechargeId = intval($ghsRechargeId); $clearId = intval($clearId); if ($ghsRechargeId <= 0 || $clearId <= 0) { return; } $row = GhsBalanceChangeClass::getByCondition([ 'relateId' => $ghsRechargeId, 'io' => 1, ], true, null, 'id DESC'); if (empty($row) || !method_exists($row, 'hasAttribute') || !$row->hasAttribute('clearId')) { return; } $row->clearId = $clearId; $row->clearSn = (string)$clearSn; $row->clearAmount = bcadd((string)$clearAmount, '0', 2); if ($row->hasAttribute('giveAmount')) { $row->giveAmount = '0.00'; } if ($finalBalance !== null && $row->hasAttribute('balance')) { $row->balance = $finalBalance; } $row->save(false); } public static function exportData($respond, $mainId) { $orderList = $respond['list'] ?? []; if (empty($orderList)) { util::fail('没有数据需要导出'); } $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/"); require_once($phpExcelFile . 'Classes/PHPExcel.php'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Document") ->setSubject("Office 2007 XLSX Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("file"); $ghsTitle = '余额变动记录'; $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $ghsTitle); $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.7); $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.5); $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0); $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'ID'); $objPHPExcel->getActiveSheet()->setCellValue('B1', '日期'); $objPHPExcel->getActiveSheet()->setCellValue('C1', '客户ID'); $objPHPExcel->getActiveSheet()->setCellValue('D1', '客户名称'); $objPHPExcel->getActiveSheet()->setCellValue('E1', '类型'); $objPHPExcel->getActiveSheet()->setCellValue('F1', '支付方式'); $objPHPExcel->getActiveSheet()->setCellValue('G1', '事项'); $objPHPExcel->getActiveSheet()->setCellValue('H1', '人员'); $objPHPExcel->getActiveSheet()->setCellValue('I1', '变动'); $objPHPExcel->getActiveSheet()->setCellValue('J1', '余额'); $objPHPExcel->getActiveSheet()->setCellValue('K1', '备注'); //设置宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20); //加粗 $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('F1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('G1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('H1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('I1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('J1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('K1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $baseRow = 2; foreach ($orderList as $key => $order) { $i = $baseRow + $key; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $order['id']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $order['addTime']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $order['customId']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $order['customName']); $capitalType = $order['capitalType']; $capName = '-'; if ($capitalType == 75) { $capName = '售后返充'; } if ($capitalType == 62) { $capName = '线下充值'; } if ($capitalType == 66) { $capName = '线上充值'; } if ($capitalType == 64) { $capName = '结账'; } $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $capName); $payWay = $order['payWay']; $payName = '-'; if ($capitalType == 62 || $capitalType == 66) { if ($payWay == 0) { $payName = '微信'; } if ($payWay == 1) { $payName = '支付宝'; } if ($payWay == 2) { $payName = '余额'; } if ($payWay == 4) { $payName = '现金'; } if ($payWay == 5) { $payName = '银行卡'; } } $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $payName); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $order['event']); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $order['staffName']); $amount = isset($order['io']) && $order['io'] == 1 ? '+'.$order['amount'] : '-'.$order['amount']; $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $amount); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $order['balance']); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $order['remark']); //居中 $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } $fileName = '余额变动记录-' . time(); $objPHPExcel->getActiveSheet()->setTitle($fileName); $objPHPExcel->setActiveSheetIndex(0); $dir = './priceTable/' . $mainId; if (file_exists($dir) == false) { mkdir($dir, 0777, true); } $date = $fileName; $file = $date . '.xls'; $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); if (file_exists($dir . '/' . $file)) { unlink($dir . '/' . $file); } $objWriter->save($dir . '/' . $file); $fileUrl = Yii::$app->params['ghsHost'] . '/priceTable/' . $mainId . '/' . $file; util::success(['file' => $fileUrl, 'shortFile' => $file]); } }