saleRefundId ?? 0; $refund = self::getById($saleRefundId, true); if (empty($refund)) { return false; } if ($refund->status != 0) { return false; } $orderSn = $refund->orderSn ?? ''; $relateOrderSn = $refund->relateOrderSn ?? ''; $shopId = $refund->shopId ?? 0; $refundPrice = $refund->refundPrice ?? 0; $shop = ShopClass::getById($shopId, true); $sjId = $shop->sjId ?? 0; $sj = SjClass::getById($sjId, true); $sjName = $sj->name ?? ''; $shopName = $shop->shopName ?? ''; $currentName = $shopName == '首店' ? $sjName : $sjName . ' ' . $shopName; $content = "" . $currentName . ""; $content .= "退款信息

"; $content .= '--------------------------------
'; $content .= '订单号
'; $content .= '' . $relateOrderSn . '
'; $content .= '--------------------------------
'; $content .= '买家信息:

'; $content .= '' . $refund->customName . '
'; $content .= '' . $refund->customMobile . '
'; $content .= '--------------------------------
'; $content .= "
"; $itemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null); if (!empty($itemList)) { foreach ($itemList as $itemInfo) { $name = $itemInfo['name'] ?? ''; $num = $itemInfo['xhNum'] ?? 0; $unitName = $itemInfo['xhUnitName'] ?? '扎'; $content .= "" . $name . ' 退' . $num . $unitName . "
"; } } $content .= '--------------------------------
'; $content .= "
"; $content .= "
"; $content .= "金额:{$refundPrice}
"; $content .= "
"; $content .= "状态:待审核
"; $content .= "
"; $content .= ''; $ext = ShopExtClass::getByCondition(['shopId' => $shopId]); $printSn = $ext['printSn'] ?? ''; if (!empty($printSn)) { $p = new printUtil($printSn); $p->printMsg($content, $shop, $orderSn); } } //审核通过 ssh 20230811 public static function passRefund($refund, $order) { if ($refund->status == 1) { util::fail('已通过'); } if ($refund->status == 2) { util::fail('已驳回'); } if ($refund->status == 3) { util::fail('已取消'); } $refund->status = 1; $refund->save(); $order->refund = OrderClass::REFUND_YES; $order->save(); //退货并退款的售后,需要减少订单的总成本 $reduceCost = 0; $orderSn = $order->orderSn ?? ''; $onlinePay = $order->onlinePay ?? 1; $shopId = $order->shopId ?? 0; $mainId = $order->mainId ?? 0; $sjId = $order->sjId ?? 0; $payWay = $order->payWay; $customName = $order->customName ?? ''; $refundSn = $refund->orderSn ?? ''; $refundPrice = $refund->refundPrice ?? 0; $refundType = $refund->refundType ?? 1; if ($refundType == RefundOrderClass::REFUND_TYPE_MONEY_GOOD) { $refundItemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $refundSn], null, '*', null, true); if (empty($refundItemList)) { util::fail('没有找到售后订单的花材'); } $refundData = []; foreach ($refundItemList as $key => $val) { $val->status = 1; $val->save(); $orderItemId = $val->orderItemId ?? 0; if (empty($orderItemId)) { util::fail('旧订单无法售后,请联系管理员'); } $refundData[$orderItemId] = $val; } $refundItemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (empty($refundItemList)) { util::fail('订单花材错误呢'); } foreach ($refundItemList as $oneKey => $oneItem) { $oneItemId = $oneItem->id; $productId = $oneItem->productId ?? 0; $ptItemId = $oneItem->itemId ?? 0; $itemName = $oneItem->name ?? ''; $cost = $oneItem->cost ?? 0; $orderItemNum = $oneItem->xhNum ?? 0; $refundNum = $oneItem->refundNum ?? 0; $remainNum = bcsub($orderItemNum, $refundNum); if (isset($refundData[$oneItemId])) { $refundSingle = $refundData[$oneItemId]; $num = $refundSingle->xhNum ?? 0; if ($num > $remainNum) { util::fail("{$itemName} 超过可退数量"); } $oneItem->refundNum = bcadd($refundNum, $num); $oneItem->save(); $currentCost = bcmul($cost, $num, 2); $reduceCost = bcadd($currentCost, $reduceCost, 2); if ($refundSingle->xhUnitType == 1) { $smallNum = $num; $bigNum = 0; } else { $smallNum = 0; $bigNum = $num; } $itemNum = $refundSingle->itemNum; //大单位退款才变库存,小单位不变化库存!! if ($bigNum > 0 || $smallNum > 0) { //退货加库存 $stockInfo = ProductClass::addStock($productId, $bigNum, $smallNum); ProductClass::tryRecoverLimitBuyWhenStockRollbackFromZero($productId, $stockInfo['oldStock']); $oldStock = $stockInfo['oldStock'] ?? 0; $newStock = $stockInfo['newStock'] ?? 0; //库存变动记录 $recordData = []; $recordData['relateName'] = $customName; $recordData['itemNum'] = $itemNum; $recordData['sjId'] = $sjId; $recordData['shopId'] = $shopId; $recordData['mainId'] = $mainId; $recordData['orderSn'] = $orderSn; $recordData['itemId'] = $ptItemId; $recordData['oldStock'] = $oldStock; //当时库存 $recordData['productId'] = $productId; $recordData['newStock'] = $newStock;// 最新库存 $recordData['io'] = 1; StockRecordClass::ghsRefundAddRecord($recordData); $refundSingle->itemStock = $oldStock; $refundSingle->newStock = $newStock; $refundSingle->save(); } } } } $refundPackCost = $refund->refundPackCost ?? 0; $reduceCost = bcadd($reduceCost, $refundPackCost, 2); $refundSendCost = $refund->refundSendCost ?? 0; $reduceCost = bcadd($reduceCost, $refundSendCost, 2); //售后减掉订单的成本 if ($order->remainCost > $reduceCost) { $order->remainCost = bcsub($order->remainCost, $reduceCost, 2); } else { $order->remainCost = 0; } $order->save(); $shop = ShopClass::getLockById($shopId); if (empty($shop)) { util::fail('没有找到门店73'); } $main = MainClass::getLockById($mainId); if (empty($main)) { util::fail('没有main信息32'); } //总支出增加 $currentTotalExpend = bcadd($main->totalExpend, $refundPrice, 2); $main->totalExpend = $currentTotalExpend; $totalRefund = bcadd($main->totalRefund, $refundPrice, 2); $main->totalRefund = $totalRefund; $main->save(); //记录总的退款金额 $currentTkPrice = bcadd($order->tkPrice, $refundPrice, 2); $order->tkPrice = $currentTkPrice; $order->refund = OrderClass::REFUND_YES; $order->save(); $customId = $order->customId; $custom = CustomClass::getLockById($customId); if (empty($custom)) { util::fail('没有找到客户'); } // 根据 $refundPrice 更新累计消费 buyAmount $buyAmount = bcsub($custom->buyAmount, $refundPrice, 2); $custom->buyAmount = $buyAmount; $custom->save(); if ($onlinePay == dict::getDict('onlinePay', 'yes')) { //退款流程 if ($payWay == dict::getDict('payWay', 'wxPay') || $payWay == dict::getDict('payWay', 'alipay')) { $order->refundPrice = $refundPrice; $currentActPrice = bcsub($order->actPrice, $refundPrice, 2); if ($currentActPrice < 0) { util::fail('可退款金额不足'); } $order->actPrice = $currentActPrice; $currentRealPrice = bcsub($order->realPrice, $refundPrice, 2); if ($currentRealPrice < 0) { util::fail('可退款金额不足哦'); } $order->realPrice = $currentRealPrice; $order->save(); //门店余额减少 ShopClass::saleRefundReduceBalance($main, $shop, $refund, $refundPrice); } else { util::fail('此支付方式暂不支持退款哦'); } } else { if ($payWay == dict::getDict('payWay', 'debtPay')) { $clearId = $order->clearId; if (!empty($clearId)) { util::fail('订单已结账,无法发起退款'); } //门店应收款减少 $currentMayGathering = bcsub($main->mayGathering, $refundPrice, 2); if ($currentMayGathering < 0) { noticeUtil::push("应付款有问题 {$main->mayGathering} {$refundPrice}", '15280215347'); util::fail('应付款有问题哦'); } $main->mayGathering = $currentMayGathering; $main->save(); $order->refundPrice = $refundPrice; $currentActPrice = bcsub($order->actPrice, $refundPrice, 2); if ($currentActPrice < 0) { util::fail('可退款金额不足'); } $order->actPrice = $currentActPrice; $currentRealPrice = bcsub($order->realPrice, $refundPrice, 2); if ($currentRealPrice < 0) { util::fail('可退款金额不足哈'); } $order->realPrice = $currentRealPrice; $currentRemainDebt = bcsub($order->remainDebtPrice, $refundPrice, 2); if ($currentRemainDebt < 0) { util::fail('退款金额有问题'); } if ($currentRemainDebt == 0) { $order->debt = OrderClass::DEBT_NO; } $order->remainDebtPrice = $currentRemainDebt; $order->save(); //客户欠款金额减少 CustomClass::refundDebtAmountReduce($custom, $refund, $order); } elseif ($payWay == dict::getDict('payWay', 'balancePay')) { $order->refundPrice = $refundPrice; $currentActPrice = bcsub($order->actPrice, $refundPrice, 2); if ($currentActPrice < 0) { util::fail('可退款金额已不足了'); } $currentRealPrice = bcsub($order->realPrice, $refundPrice, 2); if ($currentRealPrice < 0) { util::fail('可退款金额已不足'); } $order->actPrice = $currentActPrice; $order->realPrice = $currentRealPrice; $order->save(); // 花店采购余额付:扣款在 xhGhsCustom/xhGhs 成对账户,不走 ghs 门店 main 余额 $pair = GhsRechargeSettleService::lockAccountPair($custom); CustomClass::refundBalancePayToPair($pair['custom'], $pair['ghs'], $refund, $order); } elseif ($payWay == dict::getDict('payWay', 'cash')) { $moneyData = [ 'shopId' => $shopId, 'amount' => $refundPrice, 'orderSn' => $order->orderSn, 'mainId' => $mainId, ]; ShopMoneyClass::ghsRefundHdOutAmount($moneyData, $main); $order->refundPrice = $refundPrice; $currentActPrice = bcsub($order->actPrice, $refundPrice, 2); if ($currentActPrice < 0) { util::fail('可退款金额已不足。'); } $order->actPrice = $currentActPrice; $currentRealPrice = bcsub($order->realPrice, $refundPrice, 2); if ($currentRealPrice < 0) { util::fail('可退款金额不足那'); } $order->realPrice = $currentRealPrice; $order->save(); } else { //其它线下退款直接完成 $order->refundPrice = $refundPrice; $currentActPrice = bcsub($order->actPrice, $refundPrice, 2); if ($currentActPrice < 0) { util::fail('可退款金额已不足。'); } $order->actPrice = $currentActPrice; $currentRealPrice = bcsub($order->realPrice, $refundPrice, 2); if ($currentRealPrice < 0) { util::fail('可退款金额不足那'); } $order->realPrice = $currentRealPrice; $order->save(); } } } public static function rejectRefund($refund, $rejectReason) { if ($refund->status == 1) { util::fail('已通过'); } if ($refund->status == 2) { util::fail('已驳回'); } if ($refund->status == 3) { util::fail('已取消'); } $refund->status = 2; $refund->rejectReason = $rejectReason; $refund->save(); $cgRefundId = $refund->cgRefundId ?? 0; $cgRefund = CgRefundClass::getById($cgRefundId, true); if (empty($cgRefund)) { util::fail('售后信息不完整'); } CgRefundClass::reject($cgRefund, $rejectReason); return true; } public static function cancelRefund($refund) { if ($refund->status == self::STATUS_COMPLETE) { util::fail('退款已通过'); } if ($refund->status == self::STATUS_REJECT) { util::fail('退款已驳回'); } if ($refund->status == self::STATUS_CANCEL) { util::fail('退款已取消'); } $refund->status = self::STATUS_CANCEL; $refund->save(); } //验证信息 ssh 20220401 public static function valid($refund, $mainId) { if (empty($refund)) { util::fail('没有找到退款信息'); } if (isset($refund->mainId) == false || $refund->mainId != $mainId) { util::fail('无法操作'); } return true; } // 订单列表 public static function getOrderList($where) { $data = self::getList('*', $where, 'addTime DESC'); $totalRefundPrice = self::sum($where, 'refundPrice'); $data['totalRefundPrice'] = $totalRefundPrice; $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : []; if (empty($list)) { return $data; } $data['list'] = $list; return $data; } //2021.1.23 lqh 订单详情 public static function getOrderDetail($orderSn, $shopId) { $orderData = self::orderExist(['orderSn' => $orderSn, 'shopId' => $shopId]); $refundInfo = RefundOrderItemClass::getOrderItemDetail($orderSn); $itemData = []; if ($refundInfo) { foreach ($refundInfo as $v) { $info = json_decode($v['itemInfo'], true); $tmp = $info; $tmp['itemCover'] = self::groupImg($info['itemCover']); unset($v['itemInfo']); //兼容 旧数据,没有 rank (花材等级 默认给B) if (!isset($tmp['rank'])) { $tmp['rank'] = 'B'; } $tmp = array_merge($tmp, $v); $itemData[] = $tmp; } } //下面注释放开前,员工id要用shopAdminId //$orderData = self::groupAdmin($orderData); $orderData['itemInfo'] = $itemData; return $orderData; } //2021.1.23 lqh 判断定时是否存在 public static function orderExist($where) { $orderData = self::getByCondition($where); if (!$orderData) { util::fail('订单不存在'); } return $orderData; } // 组装 orderItem lqh 2021.1.25 public static function groupOrderItem($ghsItemInfo, $refundOrderSn, $preOrderItem) { $productIds = array_column($ghsItemInfo, 'productId'); $productData = ProductClass::getByIds($productIds, null, 'id'); //写入详情表 $batchData = []; foreach ($ghsItemInfo as $v) { $tmp = []; $productId = $v['productId']; $itemId = $productData[$productId]['itemId']; $name = $productData[$productId]['name'] ?? '';//花材名称 $rank = $productData[$productId]['rank'] ?? 'B';// 花材级别 $tmp['orderSn'] = $refundOrderSn; $tmp['itemId'] = $itemId; $tmp['name'] = $name; $tmp['productId'] = $v['productId']; $unitNum = $productData[$productId]['ratio'] ?? 0; $tmp['itemStock'] = $v['oldStock'];//当时库存 $tmp['newStock'] = $v['newStock'];//当时库存 $tmp['itemNum'] = ProductClass::mergeItemNum($v['bigNum'], $v['smallNum'], $unitNum);// 数量 $tmp['itemPrice'] = $preOrderItem[$productId]['unitPrice'] ?? 0;//当时售卖的价格 $tmp['itemCost'] = $preOrderItem[$productId]['cost'] ?? 0;//当时成本价 $stockFormat = ProductClass::formatStock($tmp['itemStock'], $unitNum); // 库存总单位数量转大小单位的数量 $sjId = $productData[$productId]['sjId'] ?? 0; $shopId = $productData[$productId]['shopId'] ?? 0; $tmp['sjId'] = $sjId; $tmp['shopId'] = $shopId; $itemInfo = [ 'itemName' => $name, 'itemCover' => $productData[$productId]['cover'] ?? '', 'bigNum' => $v['bigNum'] ?? 0,//数量(大单位) 'smallNum' => $v['smallNum'] ?? 0,//数量(小单位) 'bigNumStock' => $stockFormat['bigNum'],// 当时库存大单位数 'smallNumStock' => $stockFormat['smallNum'],//当时库存 小单位数 'itemUnit' => $unitNum ? 2 : 1, 'ratio' => $unitNum, 'rank' => $rank, 'bigUnit' => $productData[$productId]['bigUnit'], 'smallUnit' => $productData[$productId]['smallUnit'], ]; $tmp['itemInfo'] = json_encode($itemInfo); $batchData[] = $tmp; } return $batchData; } //2021.1.23 lqh 订单详情 public static function getOrderDetailByRelateOrder($orderSn, $shopId) { $orderData = self::orderExist(['relateOrderSn' => $orderSn, 'shopId' => $shopId]); $refundInfo = RefundOrderItemClass::getOrderItemDetail($orderData['orderSn']); $itemData = []; if ($refundInfo) { foreach ($refundInfo as $v) { $info = json_decode($v['itemInfo'], true); $tmp = $info; $tmp['itemCover'] = self::groupImg($info['itemCover']); unset($v['itemInfo']); //兼容 旧数据,没有 rank (花材等级 默认给B) if (!isset($tmp['rank'])) { $tmp['rank'] = 'B'; } $tmp = array_merge($tmp, $v); $itemData[] = $tmp; } } $orderData['itemInfo'] = $itemData; $kdOrder = OrderClass::getByOrderSn($orderSn); $orderData['orderInfo'] = $kdOrder; return $orderData; } public static function exportRefundData($respond, $mainId) { $refundList = $respond['list'] ?? []; if (empty($refundList)) { util::fail('没有数据'); } $orderSnList = array_column($refundList, 'orderSn'); $refundItemData = RefundOrderItemClass::getAllByCondition(['orderSn' => ['in', $orderSnList]], null, '*'); $refundItemList = []; $pIds = []; if (!empty($refundItemData)) { foreach ($refundItemData as $itemInfo) { $orderSn = $itemInfo['orderSn'] ?? ''; $refundItemList[$orderSn][] = $itemInfo; $productId = $itemInfo['productId'] ?? 0; $pIds[] = $productId; } } foreach ($refundList as $key => $refundInfo) { $orderSn = $refundInfo['orderSn'] ?? ''; $itemList = $refundItemList[$orderSn] ?? []; $refundList[$key]['itemList'] = $itemList; } $pIds = array_unique($pIds); $pIds = array_filter($pIds); $productList = ProductClass::getAllByCondition(['id' => ['in', $pIds]], null, '*', null); $classList = ItemClassClass::getAllByCondition(['mainId' => $mainId], null, '*', 'id'); $classMap = []; if (!empty($productList)) { foreach ($productList as $product) { $productId = $product['id'] ?? 0; $classId = $product['classId']; $class = $classList[$classId] ?? []; $className = $class['name'] ?? '未分类'; $classMap[$productId] = ['name' => $className, 'classId' => $classId]; } } $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', '退款单号'); $objPHPExcel->getActiveSheet()->setCellValue('B1', '订单日期'); $objPHPExcel->getActiveSheet()->setCellValue('C1', '订单号'); $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()->setCellValue('L1', '状态'); $objPHPExcel->getActiveSheet()->setCellValue('M1', '申请日期'); $objPHPExcel->getActiveSheet()->setCellValue('N1', '通过日期'); $objPHPExcel->getActiveSheet()->setCellValue('O1', '花材ID'); $objPHPExcel->getActiveSheet()->setCellValue('P1', '花材名称'); $objPHPExcel->getActiveSheet()->setCellValue('Q1', '单价'); $objPHPExcel->getActiveSheet()->setCellValue('R1', '数量'); $objPHPExcel->getActiveSheet()->setCellValue('S1', '金额'); $objPHPExcel->getActiveSheet()->setCellValue('T1', '花材分类'); $objPHPExcel->getActiveSheet()->setCellValue('U1', '售后原因ID'); $objPHPExcel->getActiveSheet()->setCellValue('V1', '售后原因'); //设置宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(14); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(14); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('U')->setWidth(14); $objPHPExcel->getActiveSheet()->getColumnDimension('V')->setWidth(25); //加粗 $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('L1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('M1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('N1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('O1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('P1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('Q1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('R1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('S1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('T1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('U1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('V1')->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('L1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('T1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('U1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('V1')->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); $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('T1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('U1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('V1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $baseRow = 2; $x = 0; foreach ($refundList as $key => $orderData) { $currentList = $orderData['itemList'] ?? []; $statusName = '待审核'; if ($orderData['status'] == 1) { $statusName = '已通过'; } if ($orderData['status'] == 2) { $statusName = '已驳回'; } if ($orderData['status'] == 3) { $statusName = '已取消'; } $refundTypeName = $orderData['refundType'] == 1 ? '退货并退款' : '仅退款'; $typeName = $orderData['book'] == 0 ? '常规' : '预订退款'; $caseName = '质量原因'; if ($orderData['cause'] == 1) { $caseName = '多开错开'; } if ($orderData['cause'] == 2) { $caseName = '打包原因'; } if ($orderData['cause'] == 3) { $caseName = '物流原因'; } if (!empty($currentList)) { foreach ($currentList as $k => $refundInfo) { $i = $baseRow + $x; $x++; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['orderSn']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['orderTime']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['relateOrderSn']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['customName']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['refundPrice']); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $refundTypeName); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $typeName); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['shopAdminName']); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $caseName); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $orderData['rejectReason']); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['remark']); $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $statusName); $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $orderData['addTime']); $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $orderData['passTime']); $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $refundInfo['productId']); $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, $refundInfo['name']); $objPHPExcel->getActiveSheet()->setCellValue('Q' . $i, $refundInfo['xhUnitPrice']); $objPHPExcel->getActiveSheet()->setCellValue('R' . $i, $refundInfo['xhNum']); $objPHPExcel->getActiveSheet()->setCellValue('S' . $i, $refundInfo['xhPrice']); $productId = $refundInfo['productId']; $classInfo = $classMap[$productId] ?? []; $className = $classInfo['name'] ?? '未分类'; $objPHPExcel->getActiveSheet()->setCellValue('T' . $i, $className); $objPHPExcel->getActiveSheet()->setCellValue('U' . $i, $refundInfo['refundOptionId']); $objPHPExcel->getActiveSheet()->setCellValue('V' . $i, $refundInfo['refundOptionName']); //居左 $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); $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('Q' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('R' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('S' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('T' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('U' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('V' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } else { $i = $baseRow + $x; $x++; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['orderSn']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['orderTime']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['relateOrderSn']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['customName']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['refundPrice']); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $refundTypeName); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $typeName); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['shopAdminName']); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $caseName); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $orderData['rejectReason']); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['remark']); $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $statusName); $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $orderData['addTime']); $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $orderData['passTime']); $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('Q' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('R' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('S' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('T' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('U' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('V' . $i, ''); //居左 $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); $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('Q' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('R' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('S' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('T' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('U' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('V' . $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]); } }