@Override @Transactional(readOnly = true) public Page<MessageSend> findMessageSends(MessageSendPageParam param) { int total = messageSendDao.selectCount(param); List<MessageSend> datas = messageSendDao.selectPage(param); return new Page<MessageSend>(param, total, datas); }
private int handleGlobalMessage(User user) { List<MessageSend> messages = null; List<MessageSend> all = (List<MessageSend>) globalMessageCache.get(GLOBAL_MESSAGE); Map<String, Object> map = (Map<String, Object>) messageCache.get(user.getId()); if (map == null) { map = new HashMap<String, Object>(); } if (!map.containsKey(GLOBAL_MESSAGE)) { messages = messageSendDao.selectUnSendMessageByTypeAndUser(MessageType.GLOBAL, user, maxCount); } else { List<MessageSend> received = (List<MessageSend>) map.get(GLOBAL_MESSAGE); if (!Validators.isEmptyOrNull(received)) { messages = getUnrecieve(received, all); } else { messages = all; } } if (!messages.isEmpty()) { List<MessageReceive> receives = new ArrayList<MessageReceive>(messages.size()); for (MessageSend send : messages) { MessageReceive receive = new MessageReceive(); receive.setMessage(send); receive.setIsRead(false); receive.setReceiver(user); receive.setStatus(MessageStatus.COMMON); receives.add(receive); } messageReceiveDao.inserts(receives); } map.put(GLOBAL_MESSAGE, new ArrayList<MessageSend>(all)); messageCache.put(user.getId(), map); return messages.size(); }
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.NESTED) public void sendTip(TipMessage message) { if (message.getSender().equals(message.getReceiver())) { return; } MessageDetail detail = new MessageDetail(message.getTitle(), message.getContent()); messageDetailDao.insert(detail); MessageSend toSend = new MessageSend(); toSend.setDetail(detail); toSend.setSendDate(new Date()); toSend.setSender(message.getSender()); toSend.setType(MessageType.SYSTEM); messageSendDao.insert(toSend); MessageReceive toReceive = new MessageReceive(); toReceive.setMessage(toSend); toReceive.setReceiver(message.getReceiver()); toReceive.setStatus(MessageStatus.COMMON); messageReceiveDao.insert(toReceive); addCount(message.getReceiver(), 1); }
private MessageSend loadMessageSend(Integer id) throws LogicException { MessageSend send = messageSendDao.selectById(id); if (send == null) { throw new LogicException("error.message.notFound"); } return send; }
@Override public void afterPropertiesSet() throws Exception { MessageSendPageParam param = new MessageSendPageParam(); param.setCurrentPage(1); param.setPageSize(maxCount); param.setType(MessageType.GLOBAL); List<MessageSend> globalMessages = messageSendDao.selectPage(param); globalMessageCache.put(GLOBAL_MESSAGE, globalMessages); }
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public void deleteMessageSends(Set<Integer> sends) throws LogicException { for (Integer id : sends) { MessageSend send = loadMessageSend(id); super.doAuthencation(UserContext.getUser(), send.getSender()); messageSendDao.deleteById(id); if (MessageType.GLOBAL.equals(send.getType())) { deleteMessageSend(send); } } }
@Override @Transactional(readOnly = true) public Page<MessageReceive> findMessageReceives(MessageReceivePageParam param) { if (param.getSend() != null) { MessageSend send = messageSendDao.selectById(param.getSend().getId()); if (send == null) { return new Page<MessageReceive>(param, 0, new ArrayList<MessageReceive>()); } super.doAuthencation(UserContext.getUser(), send.getSender()); } int total = messageReceiveDao.selectCount(param); List<MessageReceive> datas = messageReceiveDao.selectPage(param); return new Page<MessageReceive>(param, total, datas); }
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public void insertMessage(MessageSendDetail message) throws LogicException { messageDetailDao.insert(message.getDetail()); messageSendDao.insert(message); for (String username : message.getReceivers()) { User user = userServer.getUserByNameOrEmail(username); MessageReceive receive = new MessageReceive(); receive.setMessage(message); receive.setIsRead(false); receive.setReceiver(user); receive.setMessage(message); receive.setStatus(MessageStatus.COMMON); messageReceiveDao.insert(receive); addCount(user, 1); } }