package com.kingschan.blog.dao.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.common.collect.ImmutableMap; import org.springframework.stereotype.Repository; import com.kingschan.blog.dao.HibernateBaseDao; import com.kingschan.blog.dao.UserDao; import com.kingschan.blog.po.User; import com.kingschan.blog.util.SqlUtil; @Repository("UserDaoImpl") @SuppressWarnings("unchecked") public class UserDaoImpl extends HibernateBaseDao implements UserDao { @Override public User getUser(String keyword) throws Exception { if (keyword.matches("\\w{32}")) { return (User) get(User.class,keyword); }else{ String hql="from User u where u.userName=? "; List<User> lis= (List<User>) queryForListByHql(hql, false,false,keyword); return (null==lis||lis.size()==0)?null:lis.get(0); } } @Override public void saveUser(User user) throws Exception { if (user.getId().matches("\\w{32}")) { update(user); }else{ save(user); } } @Override public int modifyPsw(String password, String userid) throws Exception { String hql="update User u set u.userPsw=? where u.id=?"; return executeHQL(hql, password,userid); } @Override public List<User> getUsersByEmail(String email) throws Exception { String hql=" from User u where u.userEmail=?"; return (List<User>) queryForListByHql(hql, false,false, email); } @Override public User existsSinaUser(long uid) throws Exception { String hql=" from User where sinaUid=?"; List<User> lis= (List<User>) queryForListByHql(hql, false, false, uid); return null!=lis&&lis.size()>0?lis.get(0):null; } @Override public List<User> getUsersByUserNames(String[] userNamses) throws Exception { String hql =" from User where userName in (:usernames)"; Map<String,Object> map = new HashMap<String, Object>(); map.put("usernames",userNamses); return (List<User>)queryForListByHqlMapStyle(hql,true,false,map); } @Override public Map<String, Object> getUserInfoCard(String username) throws Exception { String sql=SqlUtil.getSql("report","user_info_card"); List<Map<String, Object>> rows= (List<Map<String, Object>>) queryForListMapBySql(sql, false, username); if (null!=rows&&rows.size()>0) { return rows.get(0); } return null; } }