| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace app\admin\controller;
- use app\common\model\OrderModel;
- use app\common\model\StoreModel;
- use app\Request;
- use think\App;
- use think\facade\View;
- class Order extends \app\BaseController
- {
- private $model;
- private $storeModel;
- public function __construct(App $app)
- {
- $this->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;$i<count($orders);$i++){
- $order = $orders[$i];
- $objSheet->setCellValue("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('<br />', 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) {
- }
- }
- }
|