⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockbean.java

📁 基于netbeans的java桌面应用程序合集
💻 JAVA
字号:
package sessions;

import entities.Holding;
import entities.Trade;
import entities.TradeType;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
public class StockBean implements StockLocal {
    
    @PersistenceContext
    private EntityManager em;
    
    public StockBean() {
    }
    
    public void persist(Object object) {
        em.persist(object);
    }
    
    public void addTrade(Trade trade) {        
        Trade tradeMg = em.merge(trade);
        if(tradeMg != null) 
            trade = tradeMg;
        persist(trade);        
        
        Query query = em.createQuery("select h from Holding h where h.stock = :stock");
        query.setParameter("stock", trade.getStock());
        Holding holding = null;
        try{
            holding = (Holding) query.getSingleResult();
        } catch(NoResultException e){
            holding = new Holding();
            holding.setStock(trade.getStock());
        }
        handleTrade(holding, trade);
        persist(holding);
    }
    
    private void handleTrade(Holding holding, Trade trade) {
        if(trade.getType().equals(TradeType.BUY)){
            long newShareNum = holding.getShareNum() + trade.getShareNum();
            double total = holding.getAverageCost()*holding.getShareNum() + trade.getShareNum()*trade.getPrice();
            double newCost = total / newShareNum;
            holding.setAverageCost(newCost);
            holding.setShareNum(newShareNum);
        } else if (trade.getType().equals(TradeType.SELL)) {
            long newShareNum = holding.getShareNum() - trade.getShareNum();
            double total = holding.getAverageCost()*holding.getShareNum() - trade.getShareNum()*trade.getPrice();
            double newCost = total / newShareNum;
            holding.setAverageCost(newCost);
            holding.setShareNum(newShareNum);            
        } else {
            throw new UnsupportedOperationException("Not yet implemented");
        }
    }
    
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -