package cn.edu.njupt.allgo.service.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import cn.edu.njupt.allgo.service.dao.EventAddDAO; import cn.edu.njupt.allgo.service.dao.EventCommentsCreatDAO; import cn.edu.njupt.allgo.service.dao.EventCreatDAO; import cn.edu.njupt.allgo.service.dao.EventDestroyDAO; import cn.edu.njupt.allgo.service.dao.EventDetailsDAO; import cn.edu.njupt.allgo.service.dao.EventFollowDAO; import cn.edu.njupt.allgo.service.dao.EventUnFollowDAO; import cn.edu.njupt.allgo.service.dao.UnreadDAO; import cn.edu.njupt.allgo.service.utils.DateTimeUtil; import cn.edu.njupt.allgo.service.vo.EventAddVo; import cn.edu.njupt.allgo.service.vo.EventCommentVo; import cn.edu.njupt.allgo.service.vo.EventFollowerVo; import cn.edu.njupt.allgo.service.vo.EventVo; import cn.edu.njupt.allgo.service.vo.HibernateSessionFactory; import cn.edu.njupt.allgo.service.vo.UserDataVo; public class EventDAOimpl implements EventAddDAO , EventCommentsCreatDAO , EventCreatDAO , EventDestroyDAO , EventDetailsDAO , EventFollowDAO , EventUnFollowDAO{ //添加活动补充 @Override public EventAddVo creatAdd( int eid,String addtime, String text) { EventAddVo eventAdd = null; try{ eventAdd = new EventAddVo(-1,text, addtime, eid); Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); s.save(eventAdd); t.commit(); s.close(); }catch(Exception e){ e.printStackTrace(); } return eventAdd; } //删除活动 @Override public EventVo destroyEvent(int eid, int uid) { boolean flag = false; EventVo event = null; try{ Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); event = (EventVo) s.load(EventVo.class, eid); if(event.getUid() == uid){ s.delete(event); t.commit(); s.close(); flag = true ; }else{ t.commit(); s.close(); } }catch(Exception e){ e.printStackTrace(); } if(!flag){ event = null; } return event; } //创建活动 @Override public EventVo creatEvent(String outline, int uid, String uname, String startdate, String enddate, String content, String place, String position, String ecategoryname, int visible) { EventVo eventVo = null; try{ eventVo = new EventVo(-1,outline, uid, uname, startdate, enddate, content, place, position, DateTimeUtil.currentTime(), ecategoryname, visible,0,0); Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); s.save(eventVo); t.commit(); s.close(); }catch(Exception e){ e.printStackTrace(); } return eventVo; } //添加评论 @Override public EventCommentVo creatComment(String comment, int uid, int eid, String uname, int replyuid, String replyuname) { EventCommentVo commentVo = null ; try{ commentVo = new EventCommentVo(-1,uid,uname,eid, DateTimeUtil.currentTime(),replyuid,replyuname,comment); Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); s.save(commentVo); t.commit(); s.close(); }catch(Exception e){ e.printStackTrace(); } return commentVo; } //获得加入活动的人 @SuppressWarnings("unchecked") @Override public List<EventFollowerVo> getFollowers(int eid) { List<EventFollowerVo> list=null; Session session=HibernateSessionFactory.getSession(); session.clear(); String hql="from EventFollowerVo vo where vo.eid=?"; Query query=session.createQuery(hql); query.setParameter(0, eid); list=query.list(); return list; } //获得活动补充 @SuppressWarnings("unchecked") @Override public List<EventAddVo> getAdd(int eid) { List<EventAddVo> list=null; Session session=HibernateSessionFactory.getSession(); session.clear(); String hql="from EventAddVo vo where vo.eid=?"; Query query=session.createQuery(hql); query.setParameter(0,eid); list=query.list(); return list; } //获得活动评论 @SuppressWarnings("unchecked") @Override public List<EventCommentVo> getComments(int eid) { List<EventCommentVo> list=null; Session session=HibernateSessionFactory.getSession(); session.clear(); String hql="from EventCommentVo vo where vo.eid=?"; Query query=session.createQuery(hql); query.setParameter(0, eid); list=query.list(); return list; } //取消加入活动 @Override public boolean unfollow(int eid, int uid) { boolean flag = false ; try{ EventFollowerVo pk = new EventFollowerVo(); pk.setEid(eid); pk.setUid(uid); Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); EventFollowerVo vo = (EventFollowerVo) s.load(EventFollowerVo.class, pk); s.delete(vo); t.commit(); s.close(); flag = true; }catch(Exception e){ e.printStackTrace(); } return flag; } //加入活动 @Override public EventFollowerVo follow(int eid,String uname , int uid) { EventFollowerVo eventFollower = null; try{ Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); eventFollower = new EventFollowerVo(uid, uname, eid); s.save(eventFollower); t.commit(); s.close(); }catch(Exception e){ e.printStackTrace(); } return eventFollower; } //检测是否已经跟随 @Override public EventFollowerVo isfollowed(int eid, int uid) { EventFollowerVo eventFollower = null; Session s = HibernateSessionFactory.getSession(); String hql="from EventFollowerVo as vo where vo.eid=:eid and vo.uid=:uid"; Query query=s.createQuery(hql); query.setInteger("uid", uid); query.setInteger("eid", eid); List<EventFollowerVo> list=null; list=query.list(); if(list.size() > 0){ eventFollower = list.get(0); } s.close(); return eventFollower; } //检测活动是否存在 @Override public EventVo isExist(int eid) { EventVo vo = null; Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); vo = (EventVo) s.get(EventVo.class, eid); t.commit(); s.close(); return vo; } }