model = new OrderModel(); $this->storeModel = new StoreModel(); parent::__construct($app); } public function index(Request $request) { $params = $request->param(); $format_params = [ 'store_id' => format_string($params['store_id'] ?? null), 'type' => format_string($params['type'] ?? null) != null ? (int)$params['type']: null, ]; $orders = $this->model->findByPaginate($format_params); View::assign([ 'list' => $orders, 'all_store' =>$this->storeModel->findAllStore(), 'params' => $format_params ]); return view(); } public function edit(Request $request) { $params = $request->param(); if(!isset($params['id'])) return $this->fail(lang('ID not exist')); $order = $this->model->findById($params['id']); View::assign([ 'order' => $order, ]); return view(); } public function report(Request $request) { $params = $request->param(); $format_params = [ 'store_id' => format_string($params['store_id'] ?? null), 'type' => format_string($params['type'] ?? null) != null ? (int)$params['type']: null, ]; $orders = $this->model->report($format_params)->toArray(); $objPHPExcel = new \PHPExcel(); try { $objSheet = $objPHPExcel->getActiveSheet(); //工作表标题 $objSheet->setTitle("sheet1"); //第一行内容,放列标题 $objSheet->setCellValue("A1", lang("Order no")); $objSheet->setCellValue("B1", lang("Customer")); $objSheet->setCellValue("C1", lang("Store")); $objSheet->setCellValue("D1", lang("Product")); $objSheet->setCellValue("E1", lang("Rental amount")); $objSheet->setCellValue("F1", lang("Receivable amount")); $objSheet->setCellValue("G1", lang("Receive amount")); $objSheet->setCellValue("H1", lang("Imposed amount")); $objSheet->setCellValue("I1", lang("Creator")); //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:I1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); //后面行循环放内容 for($i=0;$isetCellValue("A".($i + 2), $order['no']); $objSheet->setCellValue("B".($i + 2), '【'.$order["customer_id"].'】'.$order['customer_name']); $objSheet->setCellValue("C".($i + 2), '【'.$order['store_id'].'】'.$order['store']['name']); $objSheet->setCellValue("D".($i + 2), join('
', array_map(function($data) { return $data['product_name']; },$order['products']))); $objSheet->setCellValue("E".($i + 2), $order['rental_amount']); $objSheet->setCellValue("F".($i + 2), $order['receivable_amount']); $objSheet->setCellValue("G".($i + 2), $order['receive_amount']); $objSheet->setCellValue("H".($i + 2), $order['imposed_amount']); $objSheet->setCellValue("I".($i + 2), '【'.$order["admin_id"].'】'.$order['admin_name']); } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $fileName = "order"; header('Content-Disposition: attachment;filename="'.$fileName.'.xlsx"'); //设置excel文件名称 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); return json($objWriter->save("php://output")); } catch (\PHPExcel_Exception $e) { } } }