Pārlūkot izejas kodu

up - 简化通用

liugc 1 gadu atpakaļ
vecāks
revīzija
8fb9738056

+ 0 - 1
app/adminapi/controller/master_worker/EngineerBillController.php

@@ -49,7 +49,6 @@ class EngineerBillController extends BaseAdminController
         $filename = date('Y-m-d',strtotime($firstDay))."-至-".date('Y-m-d',strtotime($lastDay))."最后结算余额";
         $result = ExportLogic::add([
             'download_type' => 1,
-            'download_fun' => 'EngineerBillDownload',
             'params' => ['firstDay'=>$firstDay,'lastDay'=>$lastDay],
             'name' => $filename,
             'admin_id' => $this->adminId,

+ 0 - 1
app/adminapi/controller/master_worker/MasterWorkerServiceOrderController.php

@@ -28,7 +28,6 @@ class MasterWorkerServiceOrderController extends BaseAdminController
         $filename = $tmp_filename."工单统计";
         $result = ExportLogic::add([
             'download_type' => 2,
-            'download_fun' => 'MasterWorkerServiceOrderDownload',
             'params' => $params,
             'name' => $filename,
             'admin_id' => $this->adminId,

+ 1 - 1
app/adminapi/logic/export/ExportLogic.php

@@ -42,7 +42,7 @@ class ExportLogic extends BaseLogic
         try {
             $export = Export::create([
                 'download_type' => $params['download_type'],
-                'download_fun' => $params['download_fun'],
+                'download_fun' => isset($params['download_fun'])?$params['download_fun']:'',
                 'params' => isset($params['params'])?$params['params']:[],
                 'name' => $params['name'],
                 'down_num' => isset($params['down_num'])?$params['down_num']:0,

+ 5 - 3
app/common/model/export/Export.php

@@ -16,7 +16,7 @@ namespace app\common\model\export;
 
 
 use app\common\model\BaseModel;
-
+use app\common\service\ExcelExportService;
 
 
 /**
@@ -40,6 +40,8 @@ class Export extends BaseModel
     {
         return !empty($data['updatetime'])?date('Y-m-d H:i:s',$data['updatetime']):'';
     }
-
-
+    public function setDownloadFunAttr($value,$data)
+    {
+        return (new ExcelExportService)->download_type[$data['download_type']]?:'';
+    }
 }

+ 12 - 11
app/common/service/ExcelExportService.php

@@ -29,26 +29,24 @@ class ExcelExportService
 {
 
     private $sheet;
-
+    public $download_type = [
+        '1' =>  'EngineerBillDownload',
+        '2' =>  'MasterWorkerServiceOrderDownload',
+    ];
     public function __construct()
     {
         $this->sheet = new ExcelWriter();
     }
-
     public function download($id)
     {
         try{
-            Log::info("download-export:{$id}");
             $infoExport = Export::findOrEmpty($id);
             if(!$infoExport->isEmpty()){
                 $download_fun = $infoExport['download_fun'];
-                $filename = $infoExport['name'];
-                $params = $infoExport['params']?:[];
-                // 是否存在该函数
                 if(!method_exists($this,$download_fun)){
-                    throw new Exception('下载函数不存在');
+                    throw new Exception('下载不存在-1001');
                 }
-                $this->$download_fun($infoExport,$filename,$params);
+                $this->$download_fun($infoExport);
             }
         }catch (\Exception $e){
             Log::info("download-error:{$id}:".$e->getMessage());
@@ -56,13 +54,14 @@ class ExcelExportService
         }
     }
 
-
     /**
      * @notes 工程师 -上月最后结算余额 导出
      */
-    public function EngineerBillDownload($infoExport,$filename,$params)
+    public function EngineerBillDownload($infoExport)
     {
         try{
+            $filename = $infoExport['name'];
+            $params = $infoExport['params']?:[];
             if($params){ }
             $firstDay = date('Y-m-01 00:00:00', strtotime('first day of last month'));
             $lastDay = date('Y-m-t 23:59:59', strtotime('last day of last month'));
@@ -95,9 +94,11 @@ class ExcelExportService
     /**
      * @notes 工程师 -工单统计 导出
      */
-    public function MasterWorkerServiceOrderDownload($infoExport,$filename,$params)
+    public function MasterWorkerServiceOrderDownload($infoExport)
     {
         try{
+            $filename = $infoExport['name'];
+            $params = $infoExport['params']?:[];
             $where = [];
             $sqlJoin = '';
             if($params){