Как исправить ошибку «Не удается найти локальную переменную»? - PullRequest
0 голосов
/ 04 апреля 2020

Добрый день, разработчики, я просто собираю это приложение с помощью весенней загрузки, и в одном из методов я получил эту ошибку: «Не могу найти локальные переменные« prods »». По сути, я просто получаю список идентификаторов, назначенных продуктам и от начинаются разработки функций, которые с учетом этого идентификатора и других требований приложения могут привести к результату. Но в моем последнем forl oop я во второй раз инициализирую переменную типа Product с другим именем (prods), несмотря на инициализацию и сохранение ее. ранее в прежней функции с другим именем (продуктом), но затем постоянно выдает мне эту ошибку, даже если я отлаживаю, не позволяя мне найти возможный источник проблемы. Любая идея о том, почему это происходит. Спасибо заранее !!!!. Я разделяю часть моего кода, где проблема. Спасибо !!!

@RequestMapping(value="/mini/all_products/allpurchase_view",method = RequestMethod.POST)
public ResponseEntity <Map<String,Object>>addNewPurchase( Authentication authentication,RequestBody List<Long> products){
    Map<String,Object> dto=new HashMap<>();
    User user=userDetailslogged(authentication);

    if(authentication==null)
        return new ResponseEntity<>(makeMapResponse("Error","User No Authenticated"), HttpStatus.UNAUTHORIZED);
    if(user==null)
        return new ResponseEntity<>(makeMapResponse("Error","Register This User Please "), HttpStatus.UNAUTHORIZED);

    Double pricePurchase = 0.0;
    List<Product>purchaseProducts=new ArrayList<>();

    for (Long id : products){
        Product product=productRepository.getOne(id);
        product.setProductStock(product.getProductStock()-1);
        productRepository.save(product);
        pricePurchase=pricePurchase+product.getProductPrice();
        purchaseProducts.add(product);
    }

    Double DiscountMore5 = 0.0;
    if(purchaseProducts.size() > 5)
        DiscountMore5 = pricePurchase * 0.10;
    else
        DiscountMore5 = 0.0;

    Map<Long,Integer> counter = new HashMap<Long,Integer>();
    Double discountEqual4 = 0.0;

    for(Long productId:products)
         if(counter.containsKey(productId))
             counter.put(productId,counter.get(productId)+1);
         else
             counter.put(productId,1);

    for(Map.Entry<Long,Integer> repeated :counter.entrySet()) {
       // This is where the problem is:
       **Product prods**=productRepository.getOne(repeated.getKey());
        if(repeated.getKey() == prods.getId() && repeated.getValue() >= 4)
            discountEqual4 = prods.getProductPrice()*Math.floor(repeated.getValue()/4);
    }

    Double totalDiscount=discountEqual4+DiscountMore5;

    Purchase purchase1=new Purchase(new Date(),user,products.size(),pricePurchase,totalDiscount,purchaseProducts);
    purchaseRepository.save(purchase1);

    return new ResponseEntity<>(makeMapResponse("Success","Product Added"), HttpStatus.CREATED);
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...