b8ba6e416450ad2d1aa04481ea5bf5c83368eca2
[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.transaction.Transactional;\r
22 import org.hibernate.Query;\r
23 import org.hibernate.Session;\r
24 import org.hibernate.SessionFactory;\r
25 import org.hibernate.Transaction;\r
26 import org.onap.usecaseui.server.bean.AlarmsInformation;\r
27 import org.onap.usecaseui.server.bean.maxAndMinTimeBean;\r
28 import org.onap.usecaseui.server.service.AlarmsInformationService;\r
29 import org.onap.usecaseui.server.util.UuiCommonUtil;\r
30 import org.slf4j.Logger;\r
31 import org.slf4j.LoggerFactory;\r
32 import org.springframework.beans.factory.annotation.Autowired;\r
33 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
34 import org.springframework.stereotype.Service;\r
35 \r
36 \r
37 @Service("AlarmsInformationService")\r
38 @Transactional\r
39 @org.springframework.context.annotation.Configuration\r
40 @EnableAspectJAutoProxy\r
41 public class AlarmsInformationServiceImpl implements AlarmsInformationService {\r
42         private static final Logger logger = LoggerFactory.getLogger(AlarmsInformationServiceImpl.class);\r
43 \r
44         @Autowired\r
45         private SessionFactory sessionFactory;\r
46 \r
47         private Session getSession() {\r
48                 return sessionFactory.openSession();\r
49         }\r
50 \r
51         @Override\r
52         public String saveAlarmsInformation(AlarmsInformation alarmsInformation) {\r
53                  try(Session session = getSession()){\r
54                                 if (null == alarmsInformation) {\r
55                                         logger.error("alarmsInformation saveAlarmsInformation alarmsInformation is null!");\r
56                                 }\r
57                                 Transaction tx = session.beginTransaction();\r
58                                 session.save(alarmsInformation);\r
59                                 tx.commit();\r
60                                 session.flush();\r
61                                 return "1";\r
62                         } catch (Exception e) {\r
63                                 logger.error("exception occurred while performing AlarmsInformationServiceImpl saveAlarmsInformation. Details:" + e.getMessage());\r
64                                 return "0";\r
65                         }\r
66                         \r
67         }\r
68 \r
69         @Override\r
70         public String updateAlarmsInformation(AlarmsInformation alarmsInformation) {\r
71                 try(Session session = getSession()){\r
72                         if (null == alarmsInformation) {\r
73                                 logger.error("alarmsInformation updateAlarmsInformation alarmsInformation is null!");\r
74                         }\r
75                         Transaction tx = session.beginTransaction();\r
76                         session.update(alarmsInformation);\r
77                         tx.commit();\r
78                         session.flush();\r
79                         return "1";\r
80                 } catch (Exception e) {\r
81                         logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());\r
82                         return "0";\r
83                 }\r
84         }\r
85         \r
86 \r
87         public int getAllCount(AlarmsInformation alarmsInformation, int currentPage, int pageSize) {\r
88                 try(Session session = getSession()){\r
89                         StringBuilder hql = new StringBuilder("select count(*) from AlarmsInformation a where 1=1");\r
90                         if (null == alarmsInformation) {\r
91                         }else {\r
92                                 if(null!=alarmsInformation.getName()) {\r
93                                         String ver=alarmsInformation.getName();\r
94                                         hql.append(" and a.name like '%"+ver+"%'");\r
95                                 }\r
96                                 if(null!=alarmsInformation.getValue()) {\r
97                                         String ver=alarmsInformation.getValue();\r
98                                         hql.append(" and a.value like '%"+ver+"%'");\r
99                                 }\r
100                                 if(null!=alarmsInformation.getSourceId()) {\r
101                                         String ver=alarmsInformation.getSourceId();\r
102                                         hql.append(" and a.sourceId = '"+ver+"'");\r
103                                 }\r
104                                 if(null!=alarmsInformation.getStartEpochMicroSec()) {\r
105                                         String  ver =alarmsInformation.getStartEpochMicroSec();\r
106                                         hql.append(" and a.createTime > '%"+ver+"%'");\r
107                                 }\r
108                                 if(null!=alarmsInformation.getLastEpochMicroSec()) {\r
109                                         String ver =alarmsInformation.getLastEpochMicroSec();\r
110                                         hql.append(" and a.updateTime like '%"+ver+"%'");\r
111                                 }\r
112                         } \r
113                         long q=(long)session.createQuery(hql.toString()).uniqueResult();\r
114                         session.flush();\r
115                         return (int)q;\r
116                 } catch (Exception e) {\r
117                         logger.error("exception occurred while performing AlarmsInformationServiceImpl getAllCount. Details:" + e.getMessage());\r
118                         return 0;\r
119                 }\r
120         }\r
121 \r
122         @SuppressWarnings("unchecked")\r
123         @Override\r
124         public List<AlarmsInformation> queryId(String[] id) {\r
125                 try {\r
126                         if(id.length==0) {\r
127                         }\r
128                         List<AlarmsInformation> list = new ArrayList<AlarmsInformation>();\r
129                         Session session = getSession();\r
130                         Query query = session.createQuery("from AlarmsInformation a where a.sourceId IN (:alist)");\r
131                         list = query.setParameterList("alist", id).list();\r
132                         session.close();\r
133                         return list;\r
134                 } catch (Exception e) {\r
135                         logger.error("exception occurred while performing AlarmsInformationServiceImpl queryId. Details:" + e.getMessage());\r
136                         return null;\r
137                 }\r
138         }\r
139 \r
140 \r
141         @Override\r
142         public int queryDateBetween(String sourceName, String startTime, String endTime,String status) {\r
143                 if("1526554800000".equals(startTime)){\r
144                         System.out.print(startTime);\r
145                 }\r
146                 try(Session session = getSession()) {\r
147                         String hql = "select count(*) from AlarmsHeader a where 1=1 ";\r
148                         if (sourceName != null && !"".equals(sourceName)){\r
149                                 hql += " and a.sourceName = :sourceName";\r
150                         }\r
151                         if (UuiCommonUtil.isNotNullOrEmpty(status)){\r
152                                 hql += " and a.status = :status";\r
153                         }\r
154                         if (startTime != null && !"".equals(startTime) && endTime != null && !"".equals(endTime)){\r
155                                 hql += " and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ";\r
156                         }\r
157                         Query query = session.createQuery(hql);\r
158                         if (sourceName != null && !"".equals(sourceName)){\r
159                                 query.setString("sourceName",sourceName);\r
160                         }\r
161                         if (UuiCommonUtil.isNotNullOrEmpty(status)){\r
162                                 query.setString("status",status);\r
163                         }\r
164                         if (startTime != null && !"".equals(startTime) && endTime != null && !"".equals(endTime)){\r
165                                 query.setString("startTime", startTime).setString("endTime", endTime);\r
166                         }\r
167                         long num=(long) query.uniqueResult();\r
168                         return (int)num;\r
169                 } catch (Exception e) {\r
170                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. Details:" + e.getMessage());\r
171                         return 0;\r
172                 }\r
173         }\r
174         \r
175         @Override\r
176         public List<maxAndMinTimeBean> queryMaxAndMinTime(){\r
177                 List<maxAndMinTimeBean> list = new ArrayList<>();\r
178                 try (Session session = getSession()){\r
179                         String sql = "select MAX(startEpochMicrosec),MIN(startEpochMicrosec) FROM alarms_commoneventheader";\r
180                         Query query = session.createSQLQuery(sql);\r
181                         list = query.list();\r
182                         session.flush();\r
183                 }catch (Exception e){\r
184                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. LIST:" + e.getMessage());\r
185 \r
186                          list = new ArrayList<>();\r
187                 }\r
188         \r
189                 return list;\r
190         }\r
191 \r
192         @Override\r
193         public List<AlarmsInformation> getAllAlarmsInformationByHeaderId(String headerId) {\r
194                 try (Session session = getSession()){\r
195                         String string = "from AlarmsInformation a where 1=1 and a.headerId=:headerId";\r
196                         Query query = session.createQuery(string);\r
197                         query.setString("headerId",headerId);\r
198                         List<AlarmsInformation> list = query.list();\r
199                         session.flush();\r
200                         return list;\r
201                 }catch (Exception e){\r
202                         logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. LIST:" + e.getMessage());\r
203 \r
204                         return null;\r
205                 }\r
206         }\r
207 }\r