Package com.skyline.base.dao.impl

Source Code of com.skyline.base.dao.impl.NoticeDaoImpl

package com.skyline.base.dao.impl;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;

import com.skyline.base.dao.NoticeDao;
import com.skyline.base.mapper.NotificationMapper;
import com.skyline.base.model.Notification;
import com.skyline.base.type.NotificationType;
import com.skyline.common.cache.annotation.Cache;
import com.skyline.common.cache.annotation.CacheCategoryType;
import com.skyline.common.cache.annotation.CacheDelete;
import com.skyline.common.cache.annotation.Fk;
import com.skyline.common.cache.annotation.Param;

/**
* NoticeDaoImpl为NoticeDao的实现,即实现notice的功能
*
* @author jairus
*
* @version 0.1
*/
@Repository("noticeDao")
public class NoticeDaoImpl extends BaseDaoImpl implements NoticeDao {

  @Value("${NoticeDao.insertNotication}")
  private String insertNoticationSql;

  @Value("${NoticeDao.findNotificationByOwnerId}")
  private String findNotificationByOwnerIdSql;

  @Value("${NoticeDao.findNotificationById}")
  private String findNotificationByIdSql;

  //@Value("${NoticeDao.deleteNotificationById}")
  //private String deleteNotificationByIdSql;

  @Value("${NoticeDao.deleteNotificationByResource}")
  private String deleteNotificationByResourceSql;

  Log log = LogFactory.getLog(NoticeDaoImpl.class);

  @Override
  @CacheDelete(type = CacheCategoryType.NOTIFICATION)
  public void insertNotication(@Fk Long ownerId, Long notifierId, String notifierNickname, Long resourceId,
      String resourceTitle, NotificationType type) {
    //log.debug(insertNoticationSql + "," + ownerId + "," + notifierId + "," + notifierNickname + "," + resourceId
      //  + "," + resourceTitle + "," + type.toString());
    jdbcTemplate.update(insertNoticationSql, ownerId, notifierId, notifierNickname, resourceId, resourceTitle,
        type.toString());
  }

  @Override
  @Cache(keyPattern = "notifcation-:uid", type = CacheCategoryType.NOTIFICATION)
  public List<Notification> findNotificationByOwnerId(@Param("uid") Long ownerId) {
    return jdbcTemplate.query(findNotificationByOwnerIdSql, NotificationMapper.getMapper(), ownerId);
  }

  @Override
  public Notification findNotificationById(Long id) {
    List<Notification> notifications = jdbcTemplate.query(findNotificationByIdSql, NotificationMapper.getMapper(),
        id);
    if (notifications == null || notifications.size() <= 0) {
      return null;
    } else {
      Notification notification = notifications.get(0);
      //this.deleteNotificationByResource(notification.getOwnerId(),notification.getResourceId(), notification.getType());
      return notification;
    }
  }

//  @Override
//  public void deleteNotificationById(Long id) {
//    jdbcTemplate.update(deleteNotificationByIdSql, id);
//  }

  @Override
  @CacheDelete(type = CacheCategoryType.NOTIFICATION)
  public void deleteNotificationByResource(@Fk Long ownerId, Long resourceId, NotificationType type) {
    jdbcTemplate.update(deleteNotificationByResourceSql,  ownerId, resourceId, type.toString());
  }

}
TOP

Related Classes of com.skyline.base.dao.impl.NoticeDaoImpl

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.