1d7390476047cce108b77cadb4994d6e292900e9
[usecase-ui/server.git] / server / src / main / java / org / onap / usecaseui / server / service / impl / AlarmsInformationServiceImpl.java
1 /*\r
2  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 package org.onap.usecaseui.server.service.impl;\r
17 \r
18 \r
19 import java.util.ArrayList;\r
20 import java.util.List;\r
21 import javax.persistence.EntityManagerFactory;\r
22 import javax.transaction.Transactional;\r
23 import org.hibernate.Query;\r
24 import org.hibernate.Session;\r
25 import org.hibernate.SessionFactory;\r
26 import org.hibernate.Transaction;\r
27 import org.onap.usecaseui.server.bean.AlarmsInformation;\r
28 import org.onap.usecaseui.server.bean.maxAndMinTimeBean;\r
29 import org.onap.usecaseui.server.service.AlarmsInformationService;\r
30 import org.onap.usecaseui.server.util.UuiCommonUtil;\r
31 import org.slf4j.Logger;\r
32 import org.slf4j.LoggerFactory;\r
33 import org.springframework.beans.factory.annotation.Autowired;\r
34 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
35 import org.springframework.stereotype.Service;\r
36 \r
37 \r
38 @Service("AlarmsInformationService")\r
39 @Transactional\r
40 @org.springframework.context.annotation.Configuration\r
41 @EnableAspectJAutoProxy\r
42 public class AlarmsInformationServiceImpl implements AlarmsInformationService {\r
43         private static final Logger logger = LoggerFactory.getLogger(AlarmsInformationServiceImpl.class);\r
44 \r
45         @Autowired\r
46         private EntityManagerFactory entityManagerFactory;\r
47 \r
48         public Session getSession() {\r
49                 return entityManagerFactory.unwrap(SessionFactory.class).getCurrentSession();}\r
50 \r
51         @Override\r
52         public String saveAlarmsInformation(AlarmsInformation alarmsInformation) {\r
53                   Session session = getSession();\r
54                   try{\r
55                                 if (null == alarmsInformation) {\r
56                                         logger.error("alarmsInformation saveAlarmsInformation alarmsInformation is null!");\r
57                                 }\r
58                                 Transaction tx = session.beginTransaction();\r
59                                 session.save(alarmsInformation);\r
60                                 tx.commit();\r
61                                 session.flush();\r
62                                 return "1";\r
63                         } catch (Exception e) {\r
64                                 logger.error("exception occurred while performing AlarmsInformationServiceImpl saveAlarmsInformation. Details:" + e.getMessage());\r
65                                 return "0";\r
66                         }\r
67                         \r
68         }\r
69 \r
70         @Override\r
71         public String updateAlarmsInformation(AlarmsInformation alarmsInformation) {\r
72                 Session session = getSession();\r
73                 try{\r
74                         if (null == alarmsInformation) {\r
75                                 logger.error("alarmsInformation updateAlarmsInformation alarmsInformation is null!");\r
76                         }\r
77                         Transaction tx = session.beginTransaction();\r
78                         session.update(alarmsInformation);\r
79                         tx.commit();\r
80                         session.flush();\r
81                         return "1";\r
82                 } catch (Exception e) {\r
83                         logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());\r
84                         return "0";\r
85                 }\r
86         }\r
87         \r
88 \r
89         public int getAllCount(AlarmsInformation alarmsInformation, int currentPage, int pageSize) {\r
90                 Session session = getSession();\r
91                 try{\r
92                         StringBuilder hql = new StringBuilder("select count(*) from AlarmsInformation a where 1=1");\r
93                         if (null == alarmsInformation) {\r
94                         }else {\r
95                                 if(null!=alarmsInformation.getName()) {\r
96                                         String ver=alarmsInformation.getName();\r
97                                         hql.append(" and a.name like '%"+ver+"%'");\r
98                                 }\r
99                                 if(null!=alarmsInformation.getValue()) {\r
100                                         String ver=alarmsInformation.getValue();\r
101                                         hql.append(" and a.value like '%"+ver+"%'");\r
102                                 }\r
103                                 if(null!=alarmsInformation.getSourceId()) {\r
104                                         String ver=alarmsInformation.getSourceId();\r
105                                         hql.append(" and a.sourceId = '"+ver+"'");\r
106                                 }\r
107                                 if(null!=alarmsInformation.getStartEpochMicroSec()) {\r
108                                         String  ver =alarmsInformation.getStartEpochMicroSec();\r
109                                         hql.append(" and a.createTime > '%"+ver+"%'");\r
110                                 }\r
111                                 if(null!=alarmsInformation.getLastEpochMicroSec()) {\r
112                                         String ver =alarmsInformation.getLastEpochMicroSec();\r
113                                         hql.append(" and a.updateTime like '%"+ver+"%'");\r
114                                 }\r
115                         } \r
116                         long q=(long)session.createQuery(hql.toString()).uniqueResult();\r
117                         session.flush();\r
118                         return (int)q;\r
119                 } catch (Exception e) {\r
120                         logger.error("exception occurred while performing AlarmsInformationServiceImpl getAllCount. Details:" + e.getMessage());\r
121                         return 0;\r
122                 }\r
123         }\r
124 \r
125         @SuppressWarnings("unchecked")\r
126         @Override\r
127         public List<AlarmsInformation> queryId(String[] id) {\r
128                 Session session = getSession();\r
129                 try {\r
130                         if(id.length==0) {\r
131                         }\r
132                         List<AlarmsInformation> list = new ArrayList<AlarmsInformation>();\r
133 \r
134                         Query query = session.createQuery("from AlarmsInformation a where a.sourceId IN (:alist)");\r
135                         list = query.setParameterList("alist", id).list();\r
136                         return list;\r
137                 } catch (Exception e) {\r
138                         logger.error("exception occurred while performing AlarmsInformationServiceImpl queryId. Details:" + e.getMessage());\r
139                         return null;\r
140                 }\r
141         }\r
142 \r
143 \r
144         @Override\r
145         public int queryDateBetween(String sourceName, String startTime, String endTime,String status) {\r
146                 if("1526554800000".equals(startTime)){\r
147                         System.out.print(startTime);\r
148                 }\r
149                 Session session = getSession();\r
150                 try {\r
151                         String hql = "select count(*) from AlarmsHeader a where 1=1 ";\r
152                         if (sourceName != null && !"".equals(sourceName)){\r
153                                 hql += " and a.sourceName = :sourceName";\r
154                         }\r
155                         if (UuiCommonUtil.isNotNullOrEmpty(status)){\r
156                                 hql += " and a.status = :status";\r
157                         }\r
158                         String zero = "0";\r
159                         if (startTime != null && !"".equals(startTime) && endTime != null && !"".equals(endTime)){\r
160                                 hql += " and (CASE WHEN a.startEpochMicrosec=:zero THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ";\r
161                         }\r
162                         Query query = session.createQuery(hql);\r
163                         query.setString("zero",zero);\r
164                         if (sourceName != null && !"".equals(sourceName)){\r
165                                 query.setString("sourceName",sourceName);\r
166                         }\r
167                         if (UuiCommonUtil.isNotNullOrEmpty(status)){\r
168                                 query.setString("status",status);\r
169                         }\r
170                         if (startTime != null && !"".equals(startTime) && endTime != null && !"".equals(endTime)){\r
171                                 query.setString("startTime", startTime).setString("endTime", endTime);\r
172                         }\r
173                         long num=(long) query.uniqueResult();\r
174                         return (int)num;\r
175                 } catch (Exception e) {\r
176                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. Details:" + e.getMessage());\r
177                         return 0;\r
178                 }\r
179         }\r
180         \r
181         @Override\r
182         public List<maxAndMinTimeBean> queryMaxAndMinTime(){\r
183                 List<maxAndMinTimeBean> list = new ArrayList<>();\r
184                 Session session = getSession();\r
185                 try {\r
186                         String sql = "select MAX(startEpochMicrosec),MIN(startEpochMicrosec) FROM alarms_commoneventheader";\r
187                         Query query = session.createSQLQuery(sql);\r
188                         list = query.list();\r
189                         session.flush();\r
190                 }catch (Exception e){\r
191                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. LIST:" + e.getMessage());\r
192 \r
193                          list = new ArrayList<>();\r
194                 }\r
195         \r
196                 return list;\r
197         }\r
198 \r
199         @Override\r
200         public List<AlarmsInformation> getAllAlarmsInformationByHeaderId(String headerId) {\r
201                 Session session = getSession();\r
202                 try {\r
203                         String string = "from AlarmsInformation a where 1=1 and a.headerId=:headerId";\r
204                         Query query = session.createQuery(string);\r
205                         query.setString("headerId",headerId);\r
206                         List<AlarmsInformation> list = query.list();\r
207                         session.flush();\r
208                         return list;\r
209                 }catch (Exception e){\r
210                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. LIST:" + e.getMessage());\r
211 \r
212                         return null;\r
213                 }\r
214         }\r
215 }\r