package com.norteksoft.acs.service.log;
import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.norteksoft.acs.base.orm.hibernate.SimpleHibernateTemplate;
import com.norteksoft.acs.entity.log.LoginLog;
import com.norteksoft.acs.service.ContextService;
@Service
@Transactional
public class LoginUserLogManager {
private SimpleHibernateTemplate<LoginLog, Long> loginUserLogDao;
@Autowired
private ContextService contextService;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
loginUserLogDao = new SimpleHibernateTemplate<LoginLog, Long>(
sessionFactory, LoginLog.class);
}
public void saveLoginUserLog(LoginLog log){
log.setAdminLog(contextService.isAdmin());
loginUserLogDao.save(log);
}
@Transactional(readOnly=true)
public LoginLog getLoginUserLogByCondition(String loginName){
List<LoginLog> logs = loginUserLogDao.findByCriteria(Restrictions.eq("userName", loginName), Restrictions.isNull("exitTime"));
if(logs.size() == 1){
return logs.get(0);
}
return null;
}
public List<LoginLog> getLoginLogs(Long userId){
List<LoginLog> logs = loginUserLogDao.findByCriteria(Restrictions.eq("userId", userId), Restrictions.isNull("exitTime"));
return logs;
}
public List<LoginLog> getLoginUserLogBySystemId(){
List<LoginLog> logs = loginUserLogDao.findByCriteria(Restrictions.isNull("exitTime"));
return logs;
}
}