Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions button/src/main/java/com/button/model/entity/ProductList.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,15 @@ public class ProductList {
@ManyToMany(
fetch = FetchType.EAGER,
cascade = CascadeType.PERSIST

)

@JoinTable(
name = "users_product_list",
joinColumns = {@JoinColumn(name = "product_list_id")},
inverseJoinColumns = {@JoinColumn(name = "user_id")}
)

private Set<User> users = new HashSet<>();

@OneToMany(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ public class ProductProperty {
@JoinColumn(name = "product_list_id", referencedColumnName = "id")
private ProductList productList;

private Float quantity;
private Float quantity = 1.0f;

private Boolean state;
private Boolean state = false;

private String units;
private String units = "шт";

public ProductProperty() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,32 @@ public String addProductPage(Model model, @PathVariable("list_id") Integer listI
public String addProductToList(@PathVariable("list_id") Integer listId,
@ModelAttribute("new_product") Product newProduct)
{

Product product = productRepository.findProductByName(newProduct.getName());
if (product == null) {
product = productRepository.save(newProduct);
}
boolean isNewProductEqualsNothing = newProduct.getName() == null || newProduct.getName().trim().length() == 0;

if ( ! isNewProductEqualsNothing) {
if (product == null) {
newProduct.setName(newProduct.getName().trim());
product = productRepository.save(newProduct);
}

ProductProperty productProperty = new ProductProperty();
productProperty.setProductId(product.getId());
productProperty.setProductListId(listId);
productPropertyRepository.save(productProperty);
ProductProperty productProperty = new ProductProperty();
productProperty.setProductId(product.getId());
productProperty.setProductListId(listId);

//наличие продукта в ProductList увеличивает его количество на 1, копирует остальные данные
Iterable<ProductProperty> listProducts = productPropertyRepository.findProductsByProductListId(listId);
for (ProductProperty productProperty1: listProducts) {
if (productProperty1.getProduct().getId().intValue() == product.getId().intValue()) {
productProperty.setId(productProperty1.getId());
productProperty.setQuantity(productProperty1.getQuantity());
productProperty.setUnits(productProperty1.getUnits());
productProperty.setState(false);
}
}

productPropertyRepository.save(productProperty);
}
return "redirect:/list_products/" + listId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ public String addNewProductList(@ModelAttribute("product_list") @Valid ProductLi

@GetMapping("/delete/{id}")
public String deleteProductListPage(@PathVariable Integer id) {

ProductList productList = productListRepository.findById(id).get();
Set<User> users = productList.getUsers();
for (User user : users) {
user.getProductLists().remove(productList);
}
userRepository.saveAll(users);
productListRepository.delete(productList);

return "redirect:/index";
}

Expand Down