where('appearance_id', $appearanceId)->count(); if ($count > 0) { return; } //复制 DB::statement(" INSERT INTO `dist_appearance_template` (`dist_id`, `appearance_id`, `file_name`, `file_path`, `content`, `created_at`, `updated_at`, `parent_id`, `file_type`,`template_code`) SELECT {$distId}, `appearance_id`, `file_name`, `file_path`, `content`, NOW(), NOW(), `parent_id`, `file_type`,`template_code` FROM `dist_appearance_template` WHERE `dist_id` = 0 AND `appearance_id` = {$appearanceId}; "); //更新parent_id $rows = self::select('id','file_path','file_name','parent_id')->where('dist_id',$distId)->where('appearance_id',$appearanceId)->get(); if ($rows) { $updateData = []; foreach ($rows as $row) { $parentId = $row->parent_id; if ($parentId > 0) { $newParentId = self::findParentId($rows, $row->file_path, $row->file_name); if ($newParentId > -1) { $updateData[] = ['id' => $row->id, 'parent_id' => $newParentId]; } } } //批量更新 if ($updateData) { self::upsert($updateData,['id'],['parent_id']); } } } private static function findParentId(&$rows,$filePath,$fileName) { foreach ($rows as $row) { $filePath = str_replace('/'.$fileName,'',$filePath); if ($row->file_path == $filePath) { return $row->id; } } return -1; } }