@Override public GeneratorInstance delete(GeneratorInstanceDeleteRequest request) { Long id = request.getId(); GeneratorInstance generatorInstancePersistence = generatorInstanceRepository.selectById(id); if (generatorInstancePersistence == null) { throw new AppException("实例不存在"); } Long userId = request.getAuthentication().getUserId(); if (!userId.equals(generatorInstancePersistence.getUser().getId())) { throw new AppException("权限不足"); } generatorInstanceRepository.delete(generatorInstancePersistence); Long rootDataModelId = generatorInstancePersistence.getDataModel().getId(); DataModel rootDataModePersistence = dataModelRepository.selectById(rootDataModelId); if (rootDataModePersistence == null) { throw new AppException("rootDataMode不存在"); } dataModelRepository.delete(rootDataModePersistence); Generator generatorPersistence = generatorRepository.selectById(generatorInstancePersistence.getGenerator().getId()); generatorPersistence.setInstanceCount(generatorPersistence.getInstanceCount() - 1); generatorRepository.update(generatorPersistence); return generatorInstancePersistence; }