2 * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
\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
8 * http://www.apache.org/licenses/LICENSE-2.0
\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
16 package org.onap.usecaseui.server.service.impl;
\r
19 import java.util.ArrayList;
\r
20 import java.util.List;
\r
22 import javax.persistence.EntityManagerFactory;
\r
23 import javax.transaction.Transactional;
\r
25 import org.hibernate.Query;
\r
26 import org.hibernate.Session;
\r
27 import org.hibernate.SessionFactory;
\r
28 import org.hibernate.Transaction;
\r
29 import org.onap.usecaseui.server.bean.PerformanceHeader;
\r
30 import org.onap.usecaseui.server.service.PerformanceHeaderService;
\r
31 import org.onap.usecaseui.server.util.Page;
\r
32 import org.onap.usecaseui.server.util.UuiCommonUtil;
\r
33 import org.slf4j.Logger;
\r
34 import org.slf4j.LoggerFactory;
\r
35 import org.springframework.beans.factory.annotation.Autowired;
\r
36 import org.springframework.context.annotation.EnableAspectJAutoProxy;
\r
37 import org.springframework.stereotype.Service;
\r
40 @Service("PerformanceHeaderService")
\r
42 @org.springframework.context.annotation.Configuration
\r
43 @EnableAspectJAutoProxy
\r
44 public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
\r
46 private static final Logger logger = LoggerFactory.getLogger(PerformanceHeaderServiceImpl.class);
\r
49 private EntityManagerFactory entityManagerFactory;
\r
51 public Session getSession() {
\r
52 return entityManagerFactory.unwrap(SessionFactory.class).getCurrentSession();}
\r
55 public String savePerformanceHeader(PerformanceHeader performanceHeder) {
\r
56 Session session = getSession();
\r
58 if (null == performanceHeder){
\r
59 logger.error("PerformanceHeaderServiceImpl savePerformanceHeader performanceHeder is null!");
\r
62 Transaction tx = session.beginTransaction();
\r
63 session.save(performanceHeder);
\r
67 } catch (Exception e) {
\r
68 logger.error("exception occurred while performing PerformanceHeaderServiceImpl savePerformanceHeader. Details:" + e.getMessage());
\r
74 public String updatePerformanceHeader(PerformanceHeader performanceHeder) {
\r
75 Session session = getSession();
\r
77 if (null == performanceHeder){
\r
78 logger.error("PerformanceHeaderServiceImpl updatePerformanceHeader performanceHeder is null!");
\r
81 Transaction tx = session.beginTransaction();
\r
82 session.update(performanceHeder);
\r
86 } catch (Exception e) {
\r
87 logger.error("exception occurred while performing PerformanceHeaderServiceImpl updatePerformanceHeader. Details:" + e.getMessage());
\r
92 public int getAllCount(PerformanceHeader performanceHeder, int currentPage, int pageSize) {
\r
93 Session session = getSession();
\r
95 StringBuffer hql = new StringBuffer("select count(*) from PerformanceHeader a where 1=1");
\r
96 if (null == performanceHeder) {
\r
99 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getSourceName())) {
\r
100 String ver =performanceHeder.getSourceName();
\r
101 hql.append(" and a.sourceName like '%"+ver+"%'");
\r
103 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {
\r
104 hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");
\r
107 Query query = session.createQuery(hql.toString());
\r
108 if(null!=performanceHeder.getStartEpochMicrosec() && null!=performanceHeder.getLastEpochMicroSec()) {
\r
109 query.setString("startTime",performanceHeder.getStartEpochMicrosec()).setString("endTime",performanceHeder.getLastEpochMicroSec());
\r
111 long q=(long)query.uniqueResult();
\r
114 } catch (Exception e) {
\r
115 logger.error("exception occurred while performing PerformanceHeaderServiceImpl getAllCount. Details:" + e.getMessage());
\r
120 @SuppressWarnings("unchecked")
\r
122 public Page<PerformanceHeader> queryPerformanceHeader(PerformanceHeader performanceHeder, int currentPage, int pageSize) {
\r
123 Page<PerformanceHeader> page = new Page<PerformanceHeader>();
\r
124 int allRow =this.getAllCount(performanceHeder,currentPage,pageSize);
\r
125 int offset = page.countOffset(currentPage, pageSize);
\r
126 Session session = getSession();
\r
128 StringBuffer hql =new StringBuffer("from PerformanceHeader a where 1=1");
\r
129 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getSourceName())) {
\r
130 String ver =performanceHeder.getSourceName();
\r
131 hql.append(" and a.sourceName like '%"+ver+"%'");
\r
133 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {
\r
134 hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");
\r
136 Query query = session.createQuery(hql.toString());
\r
137 if(UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getStartEpochMicrosec())&& UuiCommonUtil.isNotNullOrEmpty(performanceHeder.getLastEpochMicroSec())) {
\r
138 query.setString("startTime",performanceHeder.getStartEpochMicrosec()).setString("endTime",performanceHeder.getLastEpochMicroSec());
\r
140 query.setFirstResult(offset);
\r
141 query.setMaxResults(pageSize);
\r
142 List<PerformanceHeader> list= query.list();
\r
143 page.setPageNo(currentPage);
\r
144 page.setPageSize(pageSize);
\r
145 page.setTotalRecords(allRow);
\r
146 page.setList(list);
\r
149 } catch (Exception e) {
\r
150 logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryPerformanceHeader. Details:" + e.getMessage());
\r
155 @SuppressWarnings("unchecked")
\r
157 public List<PerformanceHeader> queryId(String[] id) {
\r
158 Session session = getSession();
\r
160 List<PerformanceHeader> list = new ArrayList<PerformanceHeader>();
\r
164 Query query = session.createQuery("from PerformanceHeader a where a.eventName IN (:alist)");
\r
165 list = query.setParameterList("alist", id).list();
\r
167 } catch (Exception e) {
\r
168 logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryId. Details:" + e.getMessage());
\r
174 public List<String> queryAllSourceNames() {
\r
175 Session session = getSession();
\r
177 Query query = session.createQuery("select distinct a.sourceName from PerformanceHeader a");
\r
178 return query.list();
\r
179 } catch (Exception e) {
\r
180 logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryAllSourceId. Details:" + e.getMessage());
\r
186 public PerformanceHeader getPerformanceHeaderById(String id) {
\r
187 Session session = getSession();
\r
190 String string = "from PerformanceHeader a where 1=1 and a.id=:id";
\r
191 Query q = session.createQuery(string);
\r
192 q.setString("id",id);
\r
193 PerformanceHeader performanceHeader =(PerformanceHeader)q.uniqueResult();
\r
195 return performanceHeader;
\r
197 }catch (Exception e){
\r
198 logger.error("exception occurred while performing PerformanceHeaderServiceImpl getPerformanceHeaderById."+e.getMessage());
\r