📄 messagemanagerimpl.java
字号:
package com.bjsxt.messages.managers;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.bjsxt.messages.model.Message;
import com.bjsxt.messages.model.User;
public class MessageManagerImpl extends HibernateDaoSupport implements
MessageManager {
public void clearDeletedMessages(int userId) {
List msgs = findAllDeletedMessages(userId);
if(msgs == null || msgs.size() == 0){
return;
}
for (Iterator iter = msgs.iterator(); iter.hasNext();) {
Message msg = (Message) iter.next();
getHibernateTemplate().delete(msg);
}
}
public void deleteMessage(int messageId) {
Message msg = (Message)getHibernateTemplate().load(Message.class, messageId);
msg.setDeleted(true);
getHibernateTemplate().update(msg);
}
public List<Message> findAllDeletedMessages(int userId) {
String hql = "select m from Message m where m.deleted = true and (m.sender.id = ? and m.receiveOrSend = ? or m.receiver.id = ? and m.receiveOrSend = ?)";
return getHibernateTemplate().find(hql, new Object[]{
userId,
false,
userId,
true
});
}
public List<Message> findAllReceiveMessages(int userId) {
String hql = "select m from Message m where m.deleted = false and m.receiver.id = ? and m.receiveOrSend = ?";
return getHibernateTemplate().find(hql,new Object[]{
userId,
true
});
}
public List<Message> findAllRecordMessages(int userId, int theotherId) {
String hql = "select m from Message m where m.deleted = false " +
"and (m.sender.id = ? and m.receiveOrSend = ? and m.receiver.id = ? or " + //userId -> theotherId
" m.sender.id = ? and m.receiveOrSend = ? and m.receiver.id = ? ) " + //theotherId -> userId
" order by m.createTime desc ";
return getHibernateTemplate().find(hql, new Object[]{
userId,
false,
theotherId,
theotherId,
true,
userId
});
}
public List<Message> findAllSendMessages(int userId) {
String hql = "select m from Message m where m.deleted = false and m.sender.id = ? and m.receiveOrSend = ?";
return getHibernateTemplate().find(hql,new Object[]{
userId,
false
});
}
public Message readMessage(int messageId) {
Message msg = (Message)getHibernateTemplate().load(Message.class, messageId);
if(!msg.isHasRead()){
msg.setHasRead(true);
}
getHibernateTemplate().update(msg);
return msg;
}
public void restoreMessage(int messageId) {
Message msg = (Message)getHibernateTemplate().load(Message.class, messageId);
msg.setDeleted(false);
getHibernateTemplate().update(msg);
}
public void sendMessage(int senderId, int[] receiverId, String title,
String content) {
if(receiverId == null || receiverId.length == 0){
return;
}
User sender = (User)getHibernateTemplate().load(User.class, senderId);
Integer[] receiverIds = new Integer[receiverId.length];
for(int i=0; i<receiverIds.length; i++){
receiverIds[i] = receiverId[i];
}
List receivers =
getSession()
.createQuery("select u from User u where u.id in (:uids)")
.setParameterList("uids", receiverIds)
.list();
for(int i=0; i<receiverId.length; i++){
Message sm = new Message();
sm.setSender(sender);
sm.setSenderName(sender.getName());
sm.setReceiver((User)receivers.get(i));
sm.setReceiverName(((User)receivers.get(i)).getName());
sm.setTitle(title);
sm.setContent(content);
sm.setCreateTime(new Date());
sm.setDeleted(false);
sm.setHasRead(false);
sm.setReceiveOrSend(false);
getHibernateTemplate().save(sm);
Message rm = new Message();
rm.setSender(sender);
rm.setSenderName(sender.getName());
rm.setReceiver((User)receivers.get(i));
rm.setReceiverName(((User)receivers.get(i)).getName());
rm.setTitle(title);
rm.setContent(content);
rm.setCreateTime(new Date());
rm.setDeleted(false);
rm.setHasRead(false);
rm.setReceiveOrSend(true);
getHibernateTemplate().save(rm);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -