logService = $logService; $this->logService->menuTitle = 'translation'; } /** * @param array $data * @throws Exception */ public function createModel(array $data) { try { DB::beginTransaction(); DB::commit(); $save_data = [ 'en' => $data['en'], 'zh_cn' => $data['zh_cn'], 'zh_tw' => $data['zh_tw'] ]; if (AdminTranslation::query()->where($save_data)->exists()) { throw new Exception( __('service.admin_translation.data_exists') ); } $save_data['created_at'] = get_datetime(); $model = AdminTranslation::query()->create($save_data); $this->logService->logCreated($model, 'translation.create'); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } // 添加,编辑翻译 public function saveData($cn, $en, $tw, $type_id, $type) { $save_data = [ 'en' => $en, 'zh_cn' => $cn, 'zh_tw' => $tw, 'type_id' => $type_id, 'type' => $type ]; $where = [ 'type_id' => $type_id, 'type' => $type ]; $res = AdminTranslation::query()->where($where)->first(); if ($res) { if ($save_data['en'] != $res['en'] || $save_data['zh_cn'] != $res['zh_cn'] || $save_data['zh_tw'] != $res['zh_tw'] ) { $save_data['updated_at'] = get_datetime(); $model = AdminTranslation::query()->findOrFail($res['id']); $oldValues = $model->toArray(); $model->update($save_data); $this->logService->logUpdated( $model, $oldValues, 'translation.update' ); }; return $res['id']; } else { $save_data['created_at'] = get_datetime(); $model = AdminTranslation::query()->create($save_data); $this->logService->logCreated($model, 'translation.create'); return $model->id; } } // 保存翻译 public static function saveTranslation($cn, $en, $tw, $type_id, $type) { // 创建翻译管理 return (new AdminTranslationService( new OperationLogService() ))->saveData($cn, $en, $tw, $type_id, $type); } //获取翻译 type: 1 车位类型、2 车位属性 public static function getTranslation($type_id, $type) { $columns = ['en', 'zh_cn', 'zh_tw']; $where = [ 'type_id' => $type_id, 'type' => $type ]; return AdminTranslation::query()->where($where)->first( $columns); } /** * @param array $data * @param int $id * @throws Exception */ public function updateModel(array $data, int $id) { try { DB::beginTransaction(); DB::commit(); $update_data = [ 'en' => $data['en'], 'zh_cn' => $data['zh_cn'], 'zh_tw' => $data['zh_tw'] ]; if (AdminTranslation::query()->where($update_data)->where( 'id', '<>', $id )->exists() ) { throw new Exception( __('service.admin_translation.data_exists') ); } $model = AdminTranslation::query()->findOrFail($id); $oldValues = $model->toArray(); $update_data['updated_at'] = get_datetime(); $model->update($update_data); $this->logService->logUpdated($model, $oldValues, 'translation.update'); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } /** * @param int $id * @return bool * @throws Exception */ public function deleteModel(int $id): bool { try { DB::beginTransaction(); $model = AdminTranslation::query()->findOrFail($id); $this->logService->logDeleted($model, 'translation.delete'); $model->delete(); DB::commit(); return true; } catch (Exception $e) { DB::rollBack(); throw $e; } } }