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