--- /dev/null
+/*-\r
+ * ================================================================================\r
+ * ECOMP Portal\r
+ * ================================================================================\r
+ * Copyright (C) 2017 AT&T Intellectual Property\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ================================================================================\r
+ */\r
+package org.openecomp.portalapp.portal.service;\r
+\r
+import java.util.Date;\r
+import java.util.HashMap;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.hibernate.SessionFactory;\r
+import org.openecomp.portalapp.portal.domain.EPUser;\r
+import org.openecomp.portalapp.portal.domain.EPUserNotification;\r
+import org.openecomp.portalapp.portal.domain.EcompAppRole;\r
+import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;\r
+import org.openecomp.portalapp.portal.transport.EpNotificationItem;\r
+import org.openecomp.portalapp.portal.transport.EpNotificationItemVO;\r
+import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem;\r
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;\r
+import org.openecomp.portalsdk.core.service.DataAccessService;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
+import org.springframework.stereotype.Service;\r
+\r
+@Service("userNotificationService")\r
+@org.springframework.context.annotation.Configuration\r
+@EnableAspectJAutoProxy\r
+@EPMetricsLog\r
+public class UserNotificationServiceImpl implements UserNotificationService {\r
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuServiceImpl.class);\r
+\r
+ @Autowired\r
+ private DataAccessService dataAccessService;\r
+ @Autowired\r
+ private SessionFactory sessionFactory;\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#getNotifications(java.lang.Long)\r
+ */\r
+ @Override\r
+ public List<EpNotificationItem> getNotifications(Long userId) {\r
+ Map<String, String> params = new HashMap<String, String>();\r
+ params.put("user_id", userId.toString());\r
+ @SuppressWarnings("unchecked")\r
+ List<EpNotificationItem> notificationList = dataAccessService.executeNamedQuery("getNotifications", params,\r
+ null);\r
+ // set the roles to null for pure retrieval of all notifications\r
+ for (EpNotificationItem item : notificationList) {\r
+ item.setRoles(null);\r
+ }\r
+ return notificationList;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#getNotificationHistoryVO(java.lang.Long)\r
+ */\r
+ @Override\r
+ public List<EpNotificationItemVO> getNotificationHistoryVO(Long userId) {\r
+ Map<String, String> params = new HashMap<String, String>();\r
+ params.put("user_id", userId.toString());\r
+ @SuppressWarnings("unchecked")\r
+ List<EpNotificationItemVO> notificationList = dataAccessService.executeNamedQuery("getNotificationHistoryVO",\r
+ params, null);\r
+ return notificationList;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#getAdminNotificationVOS()\r
+ */\r
+ @Override\r
+ public List<EpNotificationItemVO> getAdminNotificationVOS() {\r
+ Map<String, String> params = new HashMap<String, String>();\r
+ @SuppressWarnings("unchecked")\r
+ List<EpNotificationItemVO> notificationList = dataAccessService\r
+ .executeNamedQuery("getAdminNotificationHistoryVO", params, null);\r
+ return notificationList;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#getNotificationRoles(java.lang.Long)\r
+ */\r
+ @Override\r
+ public List<EpRoleNotificationItem> getNotificationRoles(Long notificationId) {\r
+ Map<String, String> params = new HashMap<String, String>();\r
+ params.put("notificationId", Long.toString(notificationId));\r
+ @SuppressWarnings("unchecked")\r
+ List<EpRoleNotificationItem> roleNotifList = dataAccessService.executeNamedQuery("getNotificationRoles", params,\r
+ null);\r
+ return roleNotifList;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#getAppRoleList()\r
+ */\r
+ @SuppressWarnings("unchecked")\r
+ @Override\r
+ public List<EcompAppRole> getAppRoleList() {\r
+ List<EcompAppRole> appRoleList = (List<EcompAppRole>) dataAccessService.executeNamedQuery("getEpNotificationAppRoles", null, null); \r
+ return appRoleList; \r
+ } \r
+ \r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#\r
+ * setNotificationsRead(java.lang.Long, int)\r
+ */\r
+ @Override\r
+ public void setNotificationRead(Long notificationId, int userId) {\r
+ EPUserNotification userNotification = new EPUserNotification();\r
+ userNotification.setNotificationId(notificationId);\r
+ userNotification.setUpdateTime(new Date());\r
+ userNotification.setViewed("Y");\r
+ userNotification.setUserId((long) userId);\r
+ getDataAccessService().saveDomainObject(userNotification, null);\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * @see org.openecomp.portalapp.portal.service.UserNotificationService#saveNotification(org.openecomp.portalapp.portal.transport.EpNotificationItem)\r
+ */\r
+ @Override\r
+ public String saveNotification(EpNotificationItem notificationItem) throws Exception {\r
+\r
+ // gather the roles\r
+ if (notificationItem.getRoleIds() != null && !notificationItem.getIsForAllRoles().equals("Y")) {\r
+ if (notificationItem.getRoles() == null) {\r
+ Set<EpRoleNotificationItem> roleSet = new HashSet<EpRoleNotificationItem>();\r
+ notificationItem.setRoles(roleSet);\r
+ }\r
+ for (Long roleId : notificationItem.getRoleIds()) {\r
+ EpRoleNotificationItem roleItem = new EpRoleNotificationItem();\r
+ roleItem.setNotificationId(notificationItem.getNotificationId());\r
+ roleItem.setRoleId(roleId.intValue());\r
+ notificationItem.getRoles().add(roleItem);\r
+ }\r
+ }\r
+\r
+ \r
+ // for updates fetch roles and then save\r
+ if (notificationItem.getNotificationId() != null) {\r
+ EpNotificationItem updateNotificationItem = (EpNotificationItem) getDataAccessService()\r
+ .getDomainObject(EpNotificationItem.class, notificationItem.getNotificationId(), null);\r
+ notificationItem.setRoles(updateNotificationItem.getRoles());\r
+ }\r
+ if(notificationItem.msgSource == null)\r
+ {\r
+ notificationItem.setMsgSource("EP");\r
+ }\r
+ getDataAccessService().saveDomainObject(notificationItem, null);\r
+ return "" ;\r
+\r
+ } \r
+ @Override\r
+ public List<EPUser> getUsersByOrgIds(List<String> OrgIds) {\r
+ Map<String, Object> params = new HashMap<String, Object>();\r
+ params.put("OrgIds", OrgIds);\r
+ @SuppressWarnings("unchecked")\r
+ List<EPUser> userList = dataAccessService.executeNamedQuery("getUsersByOrgIdsNotifications", params, null);\r
+ return userList;\r
+ }\r
+ \r
+ @Override\r
+ public List<String> getMessageRecipients(Long notificationId) {\r
+ Map<String, String> params = new HashMap<>();\r
+ params.put("notificationId", Long.toString(notificationId));\r
+ @SuppressWarnings("unchecked")\r
+ List<String> activeUsers = dataAccessService.executeNamedQuery("messageRecipients", params, null);\r
+ return activeUsers;\r
+ }\r
+\r
+ public DataAccessService getDataAccessService() {\r
+ return dataAccessService;\r
+ }\r
+\r
+ public void setDataAccessService(DataAccessService dataAccessService) {\r
+ this.dataAccessService = dataAccessService;\r
+ }\r
+\r
+ public SessionFactory getSessionFactory() {\r
+ return sessionFactory;\r
+ }\r
+\r
+ public void setSessionFactory(SessionFactory sessionFactory) {\r
+ this.sessionFactory = sessionFactory;\r
+ }\r
+\r
+}\r