package dao.impl; import java.util.List; import java.util.Map; import model.Classify; import model.Goods; import model.User; //import model.UserAdmin; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import dao.IUserDao; public class UserDao extends HibernateDaoSupport implements IUserDao { /** * 发布供求信息 */ @Override public void saveGood(Goods good) { this.getHibernateTemplate().saveOrUpdate (good); } /** * 查询分类列表 */ @SuppressWarnings("unchecked") @Override public List searchClassifyList() { String hql="from Classify"; return this.getHibernateTemplate().find(hql); } /** * 查询商品 */ @SuppressWarnings("unchecked") @Override public List searchLostGoodList(Map map) { String cid=map.get("cid"); DetachedCriteria dc=DetachedCriteria.forClass(Goods.class); //dc.addOrder(Order.desc("createTime")); //dc.add(Restrictions.ne("proHassum", 0)); /*if(proName!=null){ proName="%"+map.get("keyword")+"%"; dc.add(Restrictions.like("proName",proName, MatchMode.ANYWHERE)); }*/ if(cid!=null){ dc.add(Restrictions.eq("classify.cid",Integer.parseInt(cid))); } dc.add(Restrictions.eq("goodsStatus",0)); /*if(condition!=null){ int con=Integer.parseInt(condition); switch(con){ case 5: dc.add(Restrictions.eq("type",1)); break; case 4: dc.add(Restrictions.eq("type",0)); break; case 1: dc.addOrder(Order.desc("proClicknum")); break; case 2: dc.addOrder(Order.asc("proPrice")); break; case 3: dc.addOrder(Order.desc("proPrice")); break; } }*/ List list=this.getHibernateTemplate().findByCriteria(dc,Integer.parseInt(map.get("begin")),Integer.parseInt(map.get("pageSize"))); return list; } /** * 查询商品数量 */ @SuppressWarnings("unchecked") @Override public int searchLostGoodCount(Map map) { StringBuffer br=new StringBuffer(); StringBuffer order=new StringBuffer(); //String proName=map.get("keyword"); String cid=map.get("cid"); //String condition=map.get("conditon"); String count_hql="select count(*) from Product where goodsstatus='0'"; /*if(proName!=null){ proName="%"+map.get("keyword")+"%"; br.append(" and proName like '"+proName+"'"); }*/ if(cid!=null){ br.append(" and classify.cid='"+Integer.parseInt(cid)+"'"); } /*if(condition!=null){ int con=Integer.parseInt(condition); order.append(" order by createTime DESC"); switch(con){ case 1: order.append(" ,proClicknum DESC"); break; case 2: order.append(" ,proPrice ASC"); break; case 3: order.append(" ,proPrice DESC"); break; case 4: br.append(" and type=0"); break; case 5: br.append(" and type=1"); break; } }*/ List list=this.getHibernateTemplate().find(count_hql+br.toString()+order.toString()); if(list.size()>0){ return list.get(0).intValue(); } return 0; } @SuppressWarnings("unchecked") @Override public List searchFoundGoodList(Map map) { String cid=map.get("cid"); DetachedCriteria dc=DetachedCriteria.forClass(Goods.class); if(cid!=null){ dc.add(Restrictions.eq("classify.cid",Integer.parseInt(cid))); } dc.add(Restrictions.eq("goodsStatus",0)); List list=this.getHibernateTemplate().findByCriteria(dc,Integer.parseInt(map.get("begin")),Integer.parseInt(map.get("pageSize"))); return list; } /** * 查询商品数量 */ @SuppressWarnings("unchecked") @Override public int searchFoundGoodCount(Map map) { StringBuffer br=new StringBuffer(); StringBuffer order=new StringBuffer(); String cid=map.get("cid"); String count_hql="select count(*) from Product where goodsstatus='1'"; if(cid!=null){ br.append(" and classify.cid='"+Integer.parseInt(cid)+"'"); } List list=this.getHibernateTemplate().find(count_hql+br.toString()+order.toString()); if(list.size()>0){ return list.get(0).intValue(); } return 0; } /** * 查询商品详情 */ @SuppressWarnings("unchecked") @Override public Goods getLostGoodDetail(String id) { int pid=0; if(id!=null&&id!=""){ pid=Integer.parseInt(id); } String hql=" from Product where id=?"; List list=this.getHibernateTemplate().find(hql,pid); if(list.size()>0){ Goods p=list.get(0); return p; } return null; } @SuppressWarnings("unchecked") @Override public Goods getFoundGoodDetail(String id) { int pid=0; if(id!=null&&id!=""){ pid=Integer.parseInt(id); } String hql=" from Product where id=?"; List list=this.getHibernateTemplate().find(hql,pid); if(list.size()>0){ Goods p=list.get(0); return p; } return null; } @Override public Classify getClassifyById(Integer classifyId) { String hql="from Classify where cid=?"; @SuppressWarnings("unchecked") List c=this.getHibernateTemplate().find(hql, classifyId); if(c.size()>0){ Classify cla=c.get(0); return cla; } return null; } @Override public User getUserById(Integer creatorId) { String hql="from User where uid=?"; @SuppressWarnings("unchecked") List u=this.getHibernateTemplate().find(hql, creatorId); if(u.size()>0){ User user=u.get(0); return user; } return null; } /*@Override public void updateProduct(Product product) { this.getHibernateTemplate().update(product); }*/ /** *

Description: 查询我发布的商品列表数量

* @param parseInt * @return */ @SuppressWarnings("unchecked") @Override public int searchMyLostGoodCount(int uid) { String hql="select count(*) from Product where user.uid = ? and goodsstatus='0'"; List list=this.getHibernateTemplate().find(hql,uid); if(list.size()>0){ return list.get(0).intValue(); } return 0; } @SuppressWarnings("unchecked") @Override public int searchMyFoundGoodCount(int uid) { String hql="select count(*) from Product where user.uid = ? and goodsstatus='1'"; List list=this.getHibernateTemplate().find(hql,uid); if(list.size()>0){ return list.get(0).intValue(); } return 0; } /** *

Description: 查询我发布的商品列表信息

* @param map * @return */ @SuppressWarnings("unchecked") @Override public List getMyLostGoodList(Map map) { DetachedCriteria dc=DetachedCriteria.forClass(model.Goods.class); dc.add(Restrictions.eq("user.uid",Integer.parseInt(map.get("userId")))); dc.add(Restrictions.eq("goodsstatus",0)); dc.addOrder(Order.desc("createTime")); List list=this.getHibernateTemplate().findByCriteria(dc,Integer.parseInt(map.get("begin")),Integer.parseInt(map.get("pageSize"))); return list; } @SuppressWarnings("unchecked") @Override public List getMyFoundGoodList(Map map) { DetachedCriteria dc=DetachedCriteria.forClass(model.Goods.class); dc.add(Restrictions.eq("user.uid",Integer.parseInt(map.get("userId")))); dc.add(Restrictions.eq("goodsstatus",1)); dc.addOrder(Order.desc("createTime")); List list=this.getHibernateTemplate().findByCriteria(dc,Integer.parseInt(map.get("begin")),Integer.parseInt(map.get("pageSize"))); return list; } /** *

Description: 删除我发布的商品

* @param pid */ @Override public void delectGoodById(int pid) { Goods good=this.getHibernateTemplate().get(Goods.class, pid); if(good!=null){ this.getHibernateTemplate().delete(good); } } /** *

Description: 保存用户消息

* @param map * @return */ /*@Override public void saveUserMessage(UserAdmin uaa) { this.getHibernateTemplate().save(uaa); } @SuppressWarnings("unchecked") @Override public int searchMessageCount(int uid, String flag) { StringBuffer sb=new StringBuffer(); String hql="select count(*) from UserAndAdmin where 1=1 "; if(flag=="0"||"0".equals(flag)){ sb.append(" and status='0' and userId="+uid); }else{ sb.append(" and status='1' and userId="+uid); } List list=this.getHibernateTemplate().find(hql+sb.toString()); if(list.size()>0){ return list.get(0).intValue(); } return 0; } @SuppressWarnings("unchecked") @Override public List getMessageList(Map map) { DetachedCriteria dc=DetachedCriteria.forClass(model.UserAdmin.class); String flag=map.get("flag"); if(flag=="0"||"0".equals(flag)){ dc.add(Restrictions.eq("userId",Integer.parseInt( map.get("userId")))); dc.add(Restrictions.eq("status",0)); }else{ dc.add(Restrictions.eq("userId",Integer.parseInt( map.get("userId")))); dc.add(Restrictions.eq("status",1)); } List list=this.getHibernateTemplate().findByCriteria(dc,Integer.parseInt(map.get("begin")),Integer.parseInt(map.get("pageSize"))); return list; }*/ /** * 通过id删除消息 */ @Override public void deleteMessage(int id) { String hql="delete from UserAndAdmin where id="+id; SessionFactory factory=this.getHibernateTemplate().getSessionFactory(); Session session=factory.openSession(); Query query=session.createQuery(hql); query.executeUpdate(); session.close(); } }