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.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.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.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.List; /** * Created by chenweida on 2017/7/1. */ @RestController @RequestMapping("/quotaQuery") @Api(description = "指标查询") public class QueryController { @Autowired private ElasticsearchService elasticsearchService; @Autowired private ElasticFactory elasticFactory; @ApiOperation(value = "查询某几个指标某个层级的列表") @RequestMapping(value = "/getQuotasList", method = RequestMethod.GET) public String 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 = "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()); } return null; } @ApiOperation(value = "查询某个指标某个层级的折线图") @RequestMapping(value = "/getQuotasLine", method = RequestMethod.GET) public String 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) { //如果日期是空初始化是今天 if (StringUtils.isEmpty(endDate)) { endDate = DateUtil.dateToStrShort(new Date()); } return null; } @ApiOperation(value = "查询某几个指标的到达量") @RequestMapping(value = "/getQuotas", method = RequestMethod.GET) public String 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) { return null; } @RequestMapping(value = "/test", method = RequestMethod.GET) public List getQuotas()throws Exception { String sql="SELECT town,townName,sum(result1) result1 FROM wlyy_quota_test group by town,townName"; return elasticsearchService.excute(sql); } }