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