コード例 #1
0
  @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;
  }