Eu fiz o login igual da aula com uma opção de cliente, na hora de finalizar carrinho quero que pegue o ID desse usuario ja logado e cadastre, mas qnd eu finalizo pedido ele vem como login_id = null
Carrinho -
@Named
@SessionScoped
public class Carrinho implements Serializable {
private static final long serialVersionUID = 1L;
private Set<CarrinhoItem> itens = new HashSet<>();
@Inject
private CompraDao compraDao;
public void add(CarrinhoItem item) {
itens.add(item);
}
public List<CarrinhoItem> getItens() {
return new ArrayList<CarrinhoItem>(itens);
}
//Metodo que calcula o valor do produto * quantidade
public BigDecimal getTotal(CarrinhoItem item) {
return item.getProduto().getValorVenda().multiply(
new BigDecimal(item.getQuantidade()));
}
// Metodo que soma todos os itens do carrinho
public BigDecimal getTotal() {
BigDecimal total = BigDecimal.ZERO;
for (CarrinhoItem carrinhoItem : itens) {
total = total.add(carrinhoItem.getProduto().getValorVenda().multiply(new BigDecimal(carrinhoItem.getQuantidade())));
}
return total;
}
//Metodo que remove produto do carrinho
public void remover(CarrinhoItem item) {
this.itens.remove(item);
}
//Soma todos os produto que estão no carrinho
//Sendo usado para numero da sacola
public Integer getQtsCarrinho() {
return itens.stream().mapToInt(item -> item.getQuantidade()).sum();
}
//Metodo que finaliza pedido
public void finalizar(Login login) {
Compra compra = new Compra();
compra.getLogin();
compra.setItens(this.toJson());
compraDao.salvar(compra);
}
private String toJson() {
return "{}";
}
}
CarrinhoFinalizaBean
package br.com.projeto.beans;
import javax.enterprise.inject.Model;
import javax.inject.Inject;
import br.com.projeto.models.Carrinho;
import br.com.projeto.models.Login;
@Model
public class CarrinhoFinalBean {
private Login login;
@Inject
private Carrinho carrinho;
//Metodo que manda os itens do carrinho e do usuario para o banco
public void finalizar() {
carrinho.finalizar(login);
}
public Login getLogin() {
return login;
}
public void setLogin(Login login) {
this.login = login;
}
public Carrinho getCarrinho() {
return carrinho;
}
public void setCarrinho(Carrinho carrinho) {
this.carrinho = carrinho;
}
}
CompraDao
package br.com.projeto.dao;
import java.io.Serializable;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.com.projeto.models.Compra;
@Stateless
public class CompraDao implements Serializable {
private static final long serialVersionUID = 1L;
@PersistenceContext
private EntityManager manager;
//Metodo que salva os itens do carrinho e os dados do usuario no banco
public void salvar(Compra compra) {
manager.persist(compra);
}
}