package org.taobao88.taobao.enterprise.dao.impl; import java.math.BigDecimal; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import org.taobao88.taobao.enterprise.dao.BalanceDAO; import org.taobao88.taobao.enterprise.entity.BalanceOperation; import org.taobao88.taobao.enterprise.entity.UserT; @Transactional @Repository("balanceDAO") public class BalanceDAOImpl implements BalanceDAO { @Autowired private SessionFactory sessionFactory; @Override public int getBalance(UserT userT) { BigDecimal val = (BigDecimal) sessionFactory.getCurrentSession().createSQLQuery("SELECT SUM(amount) balance FROM balance_operations WHERE user_id = :user_id").addScalar("balance").setParameter("user_id", userT.getIdUser()).uniqueResult(); if (val != null) { return val.intValue(); } else { return 0; } } @Override public int adjustBalance(BalanceOperation balanceOperation) { return (int) sessionFactory.getCurrentSession().save(balanceOperation); } }