package net.tooan.ynpay.core.ejb.user; import com.google.gson.Gson; import net.tooan.ynpay.commons.BusinessException; import net.tooan.ynpay.commons.YnpayJndiConstants; import net.tooan.ynpay.commons.helper.Encrypt; import net.tooan.ynpay.commons.helper.Token; import net.tooan.ynpay.commons.webapp.WebConstants; import net.tooan.ynpay.core.ejb.dao.user.SessionDao; import net.tooan.ynpay.core.ejb.helper.MongoDBInterceptorBean; import net.tooan.ynpay.user.agent.bean.User; import net.tooan.ynpay.user.agent.facade.SessionFacade; import net.tooan.ynpay.user.agent.model.Session; import javax.ejb.Stateless; import javax.interceptor.Interceptors; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-10-14 * Time: 下午9:08 */ @Stateless(name = YnpayJndiConstants.Mongo_Session_Facade) @Interceptors(MongoDBInterceptorBean.class) public class SessionFacadeBean implements SessionFacade { private static final Gson gson = new Gson(); @Override public Session getByToken(String token) throws BusinessException { return SessionDao.dao.get(token); } @Override public Session getByUsername(String username) throws Exception { return SessionDao.dao.findOne("user.username", username); } @Override public void removeByToken(String token) throws Exception { SessionDao.dao.remove("token", token); } @Override public Session save(User user) throws Exception { return save(user, WebConstants.expire); } @Override public Session save(User user, int expire) throws Exception { return save(user, expire, false); } @Override public Session save(User user, boolean single) throws Exception { return save(user, WebConstants.expire, single); } @Override public Session save(User user, int expire, boolean single) throws Exception { if (single) { SessionDao.dao.remove("user.username", user.getUsername()); } return SessionDao.dao.add(user, Token.create(Encrypt.md5(user.toString())), expire); } }