1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.yihu.quota.service.view;
- import com.yihu.ehr.elasticsearch.ElasticSearchPool;
- import com.yihu.ehr.query.BaseJpaService;
- import com.yihu.quota.dao.view.ViewDao;
- import com.yihu.quota.dao.view.ViewDimensionDao;
- import com.yihu.quota.dao.view.ViewQuotaDao;
- import com.yihu.quota.dao.view.ViewQuotaFilterDao;
- import com.yihu.quota.model.cube.Cube;
- import com.yihu.quota.model.view.View;
- import com.yihu.quota.model.view.ViewDimension;
- import com.yihu.quota.model.view.ViewQuota;
- import com.yihu.quota.model.view.ViewQuotaFilter;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.log4j.Logger;
- import org.elasticsearch.action.search.SearchRequestBuilder;
- import org.elasticsearch.client.transport.TransportClient;
- import org.elasticsearch.index.query.QueryBuilder;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.List;
- /**
- * @author janseny
- * @date 2018年9月26日
- */
- @Service
- public class ViewService extends BaseJpaService<View, ViewDao> {
- private static final Logger logger = Logger.getLogger(ViewService.class);
- @Autowired
- private ViewDao viewDao;
- @Autowired
- private ViewDimensionDao viewDimensionDao;
- @Autowired
- private ViewQuotaDao viewQuotaDao;
- @Autowired
- private ViewQuotaFilterDao viewQuotaFilterDao;
- @Autowired
- private ElasticSearchPool elasticSearchPool;
- public View findOne(Integer id) {
- return viewDao.findOne(id);
- }
- /**
- * 获取视图完整规则
- *
- * @param viewCode 视图编码
- * @return 视图规则
- */
- public View getViewRule(String viewCode) {
- View view = viewDao.findByCode(viewCode);
- view.setViewFilterList(viewQuotaFilterDao.findByRelationId(view.getId()));
- view.setViewDimensionList(viewDimensionDao.findByViewId(view.getId()));
- view.setViewQuotaList(viewQuotaDao.findByViewId(view.getId()));
- for (ViewQuota viewQuota : view.getViewQuotaList()) {
- List<ViewQuotaFilter> quotaFilterList = viewQuotaFilterDao.findByRelationId(viewQuota.getId());
- viewQuota.setQuotaFilterList(quotaFilterList);
- }
- return view;
- }
- /**
- * 获取视图统计结果
- *
- * @param viewCode
- * @param filters
- */
- public void statViewResult(String viewCode, String filters) {
- // 获取视图规则
- View view = viewDao.findByCode(viewCode);
- String[] esIndices = view.getEsIndex().split(",");
- String[] esTypes = view.getEsType().split(",");
- // 根据视图规则组装 ES 聚合语句
- TransportClient transportClient = elasticSearchPool.getClient();
- SearchRequestBuilder searchRequest = transportClient.prepareSearch(esIndices).setTypes(esTypes).setSize(0);
- QueryBuilder queryBuilder = null;
- if (StringUtils.isNotEmpty(filters) || view.getViewFilterList().size() != 0) {
- }
- transportClient.close();
- }
- }
|