3 changed files with 120 additions and 15 deletions
@ -0,0 +1,81 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Exports; |
||||
|
|
||||
|
use App\Models\AdminMenu; |
||||
|
use App\Models\AdminOperationLog; |
||||
|
use App\Models\AdminUsers; |
||||
|
use Maatwebsite\Excel\Concerns\FromArray; |
||||
|
use Maatwebsite\Excel\Concerns\WithHeadings; |
||||
|
|
||||
|
class OperationLogExport implements FromArray, WithHeadings |
||||
|
{ |
||||
|
public function array(): array |
||||
|
{ |
||||
|
$data = []; |
||||
|
$index = 1; |
||||
|
$columns = [ |
||||
|
'id', |
||||
|
'user_id', |
||||
|
'action', |
||||
|
'description', |
||||
|
'sub_directory', |
||||
|
'created_at' |
||||
|
]; |
||||
|
$actionArr = AdminOperationLog::getActionArr(); |
||||
|
AdminOperationLog::all($columns)->each( |
||||
|
function ($item) use (&$data, &$index, $actionArr) { |
||||
|
$username = AdminUsers::getUsername($item['user_id']); |
||||
|
$item['operation_name'] = $username ?? ''; |
||||
|
$item['action_str'] = $actionArr[$item['action']] ?? |
||||
|
$item['action']; |
||||
|
$description = __('log.' . $item['description']); |
||||
|
if (strpos($description, 'log.') === false) { |
||||
|
$item['description'] = $description; |
||||
|
} |
||||
|
$item['main_directory'] = ''; |
||||
|
if ($item['sub_directory']) { |
||||
|
$item['main_directory'] |
||||
|
= AdminMenu::getLastParentTitle( |
||||
|
$item['sub_directory'] |
||||
|
); |
||||
|
$item['sub_directory'] = AdminMenu::getParentTitle( |
||||
|
$item['sub_directory'] |
||||
|
); |
||||
|
} else { |
||||
|
$item['sub_directory'] = ''; |
||||
|
} |
||||
|
$data[] = [ |
||||
|
'id' => $index, |
||||
|
'created_at' => $item['created_at'], |
||||
|
'operation_name' => $item['operation_name'], |
||||
|
'main_directory' => $item['main_directory'], |
||||
|
'sub_directory' => $item['sub_directory'], |
||||
|
'action' => $item['action'], |
||||
|
'action_str' => $item['action_str'], |
||||
|
'description' => $item['description'], |
||||
|
]; |
||||
|
$index += 1; |
||||
|
} |
||||
|
); |
||||
|
return $data; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @return array |
||||
|
*/ |
||||
|
public function headings(): array |
||||
|
{ |
||||
|
return [ |
||||
|
__('exports.global.index'), |
||||
|
__('exports.operation_log.created_at'), |
||||
|
__('exports.operation_log.operation_name'), |
||||
|
__('exports.operation_log.main_directory'), |
||||
|
__('exports.operation_log.sub_directory'), |
||||
|
__('exports.operation_log.action'), |
||||
|
__('exports.operation_log.action_str'), |
||||
|
__('exports.operation_log.description') |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
} |
||||
Loading…
Reference in new issue