123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace App\Service\Excel;
- use App\Exports\MyExport;
- use App\Model\Header_ext;
- use App\Model\SysMenu;
- use Illuminate\Support\Facades\DB;
- use App\Service\Service;
- /**
- * 相关
- * @package App\Models
- */
- class ExcelService extends Service
- {
- public function excelExport($request){
- $data = $request->all();
- $menu_id = $data['menu_id'];
- $list = $this->excelGetData($menu_id,$request);
- $list_key = Header_ext::where('menu_id',$menu_id)->select('key','value','type')->orderBy('sort','asc')->get()->toArray();
- $excel_top_list = [];
- $excel_list = [];
- foreach ($list_key as $v){
- $excel_top_list[] = $v['value'];
- }
- $excel_list[] = $excel_top_list;
- foreach ($list as $v){
- $detail = [];
- foreach ($list_key as $vv){
- if($vv['type'] === '2') $value = date('Y-m-d H:i:s',$v[$vv['key']]);
- else $value = $v[$vv['key']];
- $detail[] = $value;
- }
- $excel_list[] = $detail;
- }
- $myExport = new MyExport();
- $data = $myExport->commonExport(['data'=>$excel_list]);
- return [true,$data];
- }
- public function excelGetData($menu_id,$request){
- $api = SysMenu::where('id',$menu_id)->value('api');
- $path = $this->getMenu();
- $control = '\\'.$path[$api]["controller"];
- $act = $path[$api]["act"];
- $new = new $control();
- $detail = $new->$act($request);
- // if(!isset($detail['data']['data'][0])) $detail['data']['data'][0] = $detail['data'];
- return $detail['data']['data'];
- }
- public function getMenu(){
- $app = App();
- $routes = $app->routes->getRoutes();
- $path = [];
- foreach ($routes as $k => $value) {
- if(!isset($value->action['controller'])) continue;
- $act = explode('@',$value->action['controller']);
- if(!isset($act[1])) continue;
- $path[$value->uri]['act'] = $act[1];
- $path[$value->uri]['controller'] = $act[0];
- }
- return $path;
- }
- }
|