"int", "development_history_guid" => "string", "development_history_year" => "int", "development_history_title" => "string", "development_history_content" => "string", "development_history_create_time" => "datetime", "development_history_create_user_guid" => "string", "development_history_update_time" => "datetime", "development_history_update_user_guid" => "string", "development_history_delete_time" => "datetime", "development_history_delete_user_guid" => "string", ]; // 设置json类型字段 protected $json = ['']; // 开启自动写入时间戳字段 protected $autoWriteTimestamp = 'datetime'; // 创建时间 protected $createTime = 'development_history_create_time'; // 修改时间 protected $updateTime = 'development_history_update_time'; // excel导入/下载模板表头 public const EXCELFIELD = [ 'development_history_year' => '年份', 'development_history_title' => '标题', 'development_history_content' => '内容', ]; /** * 新增前 */ public static function onBeforeInsert(self $model): void { Validate::unique(self::class, $model->development_history_guid, $model->getData(), [ 'development_history_year' => '年份', ]); $model->completeCreateField(); } /** * 更新前 */ public static function onBeforeUpdate(self $model): void { Validate::unique(self::class, $model->development_history_guid, $model->getData(), [ 'development_history_year' => '年份', ]); $model->completeUpdateField(); } /** * 删除前 */ public static function onBeforeDelete(self $model): void { $model->completeDeleteField(); } /** * 导出Excel * * @param array $select 导出的数据 */ public static function exportExcel(array $select): void { $data = [ ['年份', '标题', '内容'], ]; foreach ($select as $key => $val) { $data[] = [ $val['development_history_year'], $val['development_history_title'], $val['development_history_content'], ]; } $excel = (new Excel())->exporTsheet($data); $excel->save('发展历程.xlsx'); } /** * 导入excel * * @param \app\common\arw\adjfut\src\UploadFile $file excel */ public static function importExcel($file): string { $msg = []; Db::startTrans(); try { $excel = new Excel($file); $data = $excel->parseExcel( Tool::getExcelRule(self::EXCELFIELD), ['titleLine' => [1]] ); if (!$data) throwErrorMsg('excel无数据', 1); $msg = []; foreach ($data as $line => $value) { try { self::importExcelInit($value); $msg[] = "{$line} 新增成功!
"; } catch (\Throwable $th) { $msg[] = "{$line} {$th->getMessage()}
"; } } Db::commit(); return implode(', ', $msg); } catch (\Throwable $th) { Db::rollback(); throw $th; } } /** * 导入excel初始化 * * @param array $value 每行数据 */ public static function importExcelInit($value): string { $development_history_year = $value['development_history_year']; $development_history_title = $value['development_history_title']; $development_history_content = $value['development_history_content']; return self::create([ 'development_history_year' => $development_history_year, 'development_history_title' => $development_history_title, 'development_history_content' => $development_history_content, ]); } }