Package com.skyline.base.service.impl

Source Code of com.skyline.base.service.impl.NoticeServiceImpl

package com.skyline.base.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.skyline.base.dao.NoticeDao;
import com.skyline.base.model.Notification;
import com.skyline.base.service.NoticeService;
import com.skyline.base.type.NotificationType;

@Service("noticeService")
public class NoticeServiceImpl implements NoticeService {

  @Autowired
  private NoticeDao noticeDao;

  @Override
  public List<Notification> getNotificationByOwnerId(Long ownerId) {
    List<Notification> unsortedNotifs = noticeDao.findNotificationByOwnerId(ownerId);
    List<Notification> sortedNotifs = new ArrayList<Notification>();
    for (Notification notif : unsortedNotifs) {
      Notification sameNotif = getSameNotif(notif, sortedNotifs);
      if (sameNotif == null) {
        sortedNotifs.add(notif);
      } else {
        sortedNotifs.remove(sameNotif);
        sameNotif.setSecondNotifierId(notif.getNotifierId());
        sameNotif.setSecondNotifierNickname(notif.getNotifierNickname());
        sortedNotifs.add(sameNotif);
      }
    }
    return sortedNotifs;
  }

  private Notification getSameNotif(Notification notif, List<Notification> sortedNotifs) {
    for (Notification sortedNotif : sortedNotifs) {
      if (sortedNotif.getResourceId().equals(notif.getResourceId())
          && sortedNotif.getType().equals(notif.getType())) {
        return sortedNotif;
      }
    }
    return null;
  }

  @Override
  public Notification getNotificationById(Long id) {
    Notification notification= noticeDao.findNotificationById(id);
    if(notification==null){
      return null;
    }
    else{
      noticeDao.deleteNotificationByResource(notification.getId(),notification.getResourceId(), notification.getType());
      return notification;
    }
  }

 
  @Override
  public void addNotication(Long ownerId, Long notifierId,
      String notifierNickname, Long resourceId, String resourceTitle,
      NotificationType type) {
    noticeDao.insertNotication(ownerId, notifierId, notifierNickname, resourceId, resourceTitle, type);
     
  }

//  @Override
//  public void deleteNotificationById(Long id) {
//    noticeDao.deleteNotificationById(id);
//  }

//  @Override
//  public void deleteNotificationByResource(Long resourceId, NotificationType type) {
//    noticeDao.deleteNotificationByResource(resourceId, type);
//  }

}
TOP

Related Classes of com.skyline.base.service.impl.NoticeServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.