123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.yihu.wlyy.statistics.controller;
- import com.alibaba.druid.sql.ast.SQLExpr;
- import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
- import com.alibaba.druid.sql.parser.ParserException;
- import com.alibaba.druid.sql.parser.SQLExprParser;
- import com.alibaba.druid.sql.parser.Token;
- import com.google.gson.JsonObject;
- import com.yihu.wlyy.statistics.etl.save.es.ElasticFactory;
- import com.yihu.wlyy.statistics.model.job.ElasticsearchService;
- import com.yihu.wlyy.statistics.util.DateUtil;
- import com.yihu.wlyy.statistics.util.ElasticsearchUtil;
- import com.yihu.wlyy.statistics.vo.SaveModel;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.elasticsearch.action.search.SearchResponse;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.nlpcn.es4sql.jdbc.ObjectResult;
- import org.nlpcn.es4sql.jdbc.ObjectResultsExtractor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import org.nlpcn.es4sql.domain.Select;
- import org.nlpcn.es4sql.parse.ElasticSqlExprParser;
- import org.nlpcn.es4sql.parse.SqlParser;
- import org.nlpcn.es4sql.query.AggregationQueryAction;
- import org.nlpcn.es4sql.query.DefaultQueryAction;
- import org.nlpcn.es4sql.query.SqlElasticSearchRequestBuilder;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by chenweida on 2017/7/1.
- */
- @RestController
- @RequestMapping("/quotaQuery")
- @Api(description = "指标查询")
- public class QueryController {
- @Autowired
- private ElasticsearchUtil elasticsearchUtil;
- @ApiOperation(value = "查询某几个指标某个层级的列表")
- @RequestMapping(value = "/getQuotasList", method = RequestMethod.GET)
- public Map<String,List<SaveModel>> getQuotasList(
- @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
- @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
- @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
- @ApiParam(name = "childrenArealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "childrenArealevel", required = true) String childrenArealevel,
- @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
- @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
- //如果日期是空初始化是今天
- if (StringUtils.isEmpty(date)) {
- date = DateUtil.dateToStrShort(new Date());
- }
- Map<String,List<SaveModel>> jo = new HashMap<>();
- for (String id : ids.split(",")) {
- jo.put("index_" + id, elasticsearchUtil.findOneDateQuotaByChllevel(id, code, date, timeLevel, arealevel, childrenArealevel));
- }
- return jo;
- }
- @ApiOperation(value = "查询某个1级维度指标")
- @RequestMapping(value = "/getQuotaLevel1", method = RequestMethod.GET)
- public List<SaveModel> getQuotaLevel1(
- @ApiParam(name = "id", value = "指标id", required = true) @RequestParam(value = "id", required = true) String id,
- @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
- @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
- @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
- @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
- //如果日期是空初始化是今天
- if (StringUtils.isEmpty(date)) {
- date = DateUtil.dateToStrShort(new Date());
- }
- List<SaveModel> saveModels = elasticsearchUtil.findOneDateQuotaLevel1(id, code, date, timeLevel, arealevel);
- return saveModels;
- }
- @ApiOperation(value = "查询某个2级维度指标")
- @RequestMapping(value = "/getQuotaLevel2", method = RequestMethod.GET)
- public List<SaveModel> getQuotaLevel2(
- @ApiParam(name = "id", value = "指标id", required = true) @RequestParam(value = "id", required = true) String id,
- @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
- @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
- @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
- @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
- //如果日期是空初始化是今天
- if (StringUtils.isEmpty(date)) {
- date = DateUtil.dateToStrShort(new Date());
- }
- List<SaveModel> saveModels = elasticsearchUtil.findOneDateQuotaLevel2(id, code, date, timeLevel, arealevel);
- return saveModels;
- }
- @ApiOperation(value = "查询某个指标某个层级的折线图")
- @RequestMapping(value = "/getQuotasLine", method = RequestMethod.GET)
- public List<SaveModel> getQuotasLine(
- @ApiParam(name = "id", value = "指标id", required = true) @RequestParam(value = "id", required = true) String id,
- @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
- @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
- @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
- @ApiParam(name = "startDate", value = "时间(yyyy-MM-dd)", required = false) @RequestParam(value = "startDate", required = true) String startDate,
- @ApiParam(name = "endDate", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "endDate", required = false) String endDate,
- @ApiParam(name = "interval", value = "1日 2周 3月", required = false) @RequestParam(value = "interval", required = false) String interval
- ) {
- //如果日期是空初始化是今天
- if (StringUtils.isEmpty(endDate)) {
- endDate = DateUtil.dateToStrShort(new Date());
- }
- List<SaveModel> saveModels = elasticsearchUtil.findQuotaLines(id, code, startDate, endDate, timeLevel, arealevel, interval);
- return saveModels;
- }
- @ApiOperation(value = "查询某几个指标的到达量")
- @RequestMapping(value = "/getQuotas", method = RequestMethod.GET)
- public Map<String,List<SaveModel>> getQuotas(
- @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
- @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
- @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
- @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
- Map<String,List<SaveModel>> returnMap=new HashMap<>();
- for (String id : ids.split(",")) {
- returnMap.put("index_" + id, elasticsearchUtil.findOneDateQuota(id, code, date, "2", arealevel));
- }
- return returnMap;
- }
- }
|