Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como utilizar o ID do usuário logado para finalizar o pedido

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);
    }

}
1 resposta
solução!

Posta arquivo o arquivo do seu front end, por favor