Добрый день, разработчики, я просто собираю это приложение с помощью весенней загрузки, и в одном из методов я получил эту ошибку: «Не могу найти локальные переменные« 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);
}