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.UnreadDAO;
import cn.edu.njupt.allgo.service.utils.DateTimeUtil;
import cn.edu.njupt.allgo.service.vo.EventAddVo;
import cn.edu.njupt.allgo.service.vo.HibernateSessionFactory;
import cn.edu.njupt.allgo.service.vo.UnreadVo;
public class UnreadDAOimpl implements UnreadDAO {
@SuppressWarnings("unchecked")
@Override
public List<UnreadVo> getUnread(int uid) {
List<UnreadVo> list=null;
try{
Session session=HibernateSessionFactory.getSession();
session.clear();
String hql="from UnreadVo vo where vo.uid=:uid and vo.isread=:isread";
Query query=session.createQuery(hql);
query.setParameter("uid",uid);
query.setParameter("isread",false);
list=query.list();
if(list !=null){
for(UnreadVo vo:list){
updateUnread(vo.getRemindid());
}
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
//标记消息为已读
public boolean updateUnread(int remindid){
boolean flag = false;
try{
Session session=HibernateSessionFactory.getSession();
session.clear();
String hql="update UnreadVo as vo set vo.isread=true where vo.remindid=:remindid";
Query query=session.createQuery(hql);
query.setParameter("remindid",remindid);
query.executeUpdate();
flag = true;
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}