3b49a7ee97b1ec37a3d1425b5b184cc6f49962a7
[usecase-ui/server.git] / server / src / main / java / org / onap / usecaseui / server / service / impl / PerformanceHeaderServiceImpl.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 \r
22 import javax.transaction.Transactional;\r
23 \r
24 import org.hibernate.Query;\r
25 import org.hibernate.Session;\r
26 import org.hibernate.SessionFactory;\r
27 import org.hibernate.Transaction;\r
28 import org.onap.usecaseui.server.bean.PerformanceHeader;\r
29 import org.onap.usecaseui.server.service.PerformanceHeaderService;\r
30 import org.onap.usecaseui.server.util.Page;\r
31 import org.onap.usecaseui.server.util.UuiCommonUtil;\r
32 import org.slf4j.Logger;\r
33 import org.slf4j.LoggerFactory;\r
34 import org.springframework.beans.factory.annotation.Autowired;\r
35 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
36 import org.springframework.stereotype.Service;\r
37 \r
38 \r
39 @Service("PerformanceHeaderService")\r
40 @Transactional\r
41 @org.springframework.context.annotation.Configuration\r
42 @EnableAspectJAutoProxy\r
43 public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {\r
44 \r
45         private static final Logger logger = LoggerFactory.getLogger(PerformanceHeaderServiceImpl.class);\r
46 \r
47         @Autowired\r
48         private SessionFactory sessionFactory;\r
49 \r
50         private Session getSession() {\r
51                 return sessionFactory.openSession();\r
52         }\r
53 \r
54         @Override\r
55         public String savePerformanceHeader(PerformanceHeader performanceHeder) {\r
56                  try(Session session = getSession()){\r
57                         if (null == performanceHeder){\r
58                                 logger.error("PerformanceHeaderServiceImpl savePerformanceHeader performanceHeder is null!");\r
59                                 return "0";\r
60                         }\r
61                         Transaction tx = session.beginTransaction();\r
62                         session.save(performanceHeder);\r
63                         tx.commit();\r
64                         session.flush();\r
65                         return "1";\r
66                 } catch (Exception e) {\r
67                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl savePerformanceHeader. Details:" + e.getMessage());\r
68                         return "0";\r
69                 }\r
70         }\r
71 \r
72         @Override\r
73         public String updatePerformanceHeader(PerformanceHeader performanceHeder) {\r
74                 try(Session session = getSession()){\r
75                         if (null == performanceHeder){\r
76                                 logger.error("PerformanceHeaderServiceImpl updatePerformanceHeader performanceHeder is null!");\r
77                                 return "0";\r
78                         }\r
79                         Transaction tx = session.beginTransaction();\r
80                         session.update(performanceHeder);\r
81                         tx.commit();\r
82                         session.flush();\r
83                         return "1";\r
84                 } catch (Exception e) {\r
85                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl updatePerformanceHeader. Details:" + e.getMessage());\r
86                         return "0";\r
87                 }\r
88         }\r
89 \r
90         public int getAllCount(PerformanceHeader performanceHeder, int currentPage, int pageSize) {\r
91                 try(Session session = getSession()){\r
92                         StringBuffer hql = new StringBuffer("select count(*) from PerformanceHeader a where 1=1");\r
93                         if (null == performanceHeder) {\r
94                                 return 0;\r
95                         }else {\r
96                                 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getSourceName())) {\r
97                                         String ver =performanceHeder.getSourceName();\r
98                                         hql.append(" and a.sourceName like '%"+ver+"%'");\r
99                                 }\r
100                                 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {\r
101                                         hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
102                                 }\r
103                         }\r
104                         Query query = session.createQuery(hql.toString());\r
105                         if(null!=performanceHeder.getStartEpochMicrosec() && null!=performanceHeder.getLastEpochMicroSec()) {\r
106                                 query.setString("startTime",performanceHeder.getStartEpochMicrosec()).setString("endTime",performanceHeder.getLastEpochMicroSec());\r
107                         }\r
108                         long q=(long)query.uniqueResult();\r
109                         session.flush();\r
110                         return (int)q;\r
111                 } catch (Exception e) {\r
112                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl getAllCount. Details:" + e.getMessage());\r
113                         return 0;\r
114                 }\r
115         }\r
116 \r
117         @SuppressWarnings("unchecked")\r
118         @Override\r
119         public Page<PerformanceHeader> queryPerformanceHeader(PerformanceHeader performanceHeder, int currentPage, int pageSize) {\r
120                 Page<PerformanceHeader> page = new Page<PerformanceHeader>();\r
121                 int allRow =this.getAllCount(performanceHeder,currentPage,pageSize);\r
122                 int offset = page.countOffset(currentPage, pageSize);\r
123 \r
124                 try(Session session = getSession()){\r
125                         StringBuffer hql =new StringBuffer("from PerformanceHeader a where 1=1");\r
126                                 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getSourceName())) {\r
127                                         String ver =performanceHeder.getSourceName();\r
128                                         hql.append(" and a.sourceName like '%"+ver+"%'");\r
129                                 }\r
130                                 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {\r
131                                         hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
132                                 }\r
133                         Query query = session.createQuery(hql.toString());\r
134                         if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {\r
135                                 query.setString("startTime",performanceHeder.getStartEpochMicrosec()).setString("endTime",performanceHeder.getLastEpochMicroSec());\r
136                         }\r
137                         query.setFirstResult(offset);\r
138                         query.setMaxResults(pageSize);\r
139                         List<PerformanceHeader> list= query.list();\r
140                         page.setPageNo(currentPage);\r
141                         page.setPageSize(pageSize);\r
142                         page.setTotalRecords(allRow);\r
143                         page.setList(list);\r
144                         session.flush();\r
145                         return page;\r
146                 } catch (Exception e) {\r
147                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryPerformanceHeader. Details:" + e.getMessage());\r
148                         return null;\r
149                 }\r
150         }\r
151 \r
152         @SuppressWarnings("unchecked")\r
153         @Override\r
154         public List<PerformanceHeader> queryId(String[] id) {\r
155                 try(Session session = getSession()) {\r
156                         List<PerformanceHeader> list = new ArrayList<PerformanceHeader>();\r
157                         if(id.length==0) {\r
158                                 return list;\r
159                         }\r
160                         Query query = session.createQuery("from PerformanceHeader a where a.eventName IN (:alist)");\r
161                         list = query.setParameterList("alist", id).list();\r
162                         return list;\r
163                 } catch (Exception e) {\r
164                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryId. Details:" + e.getMessage());\r
165                         return null;\r
166                 }\r
167         }\r
168 \r
169         @Override\r
170         public List<String> queryAllSourceNames() {\r
171                 try(Session session = getSession()) {\r
172                         Query query = session.createQuery("select distinct a.sourceName from PerformanceHeader a");\r
173                         return query.list();\r
174                 } catch (Exception e) {\r
175                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryAllSourceId. Details:" + e.getMessage());\r
176                         return null;\r
177                 }\r
178         }\r
179         \r
180         @Override\r
181         public PerformanceHeader getPerformanceHeaderById(String id) {\r
182                 try(Session session = getSession()) {\r
183 \r
184                         String string = "from PerformanceHeader a where 1=1 and a.id=:id";\r
185                         Query q = session.createQuery(string);\r
186                         q.setString("id",id);\r
187                         PerformanceHeader performanceHeader =(PerformanceHeader)q.uniqueResult();\r
188                         session.flush();\r
189                         return performanceHeader;\r
190 \r
191                 }catch (Exception e){\r
192                         logger.error("exception occurred while performing PerformanceHeaderServiceImpl getPerformanceHeaderById."+e.getMessage());\r
193                         return null;\r
194                 }\r
195         }\r
196 }\r