QueryController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.yihu.wlyy.statistics.controller;
  2. import com.alibaba.druid.sql.ast.SQLExpr;
  3. import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
  4. import com.alibaba.druid.sql.parser.ParserException;
  5. import com.alibaba.druid.sql.parser.SQLExprParser;
  6. import com.alibaba.druid.sql.parser.Token;
  7. import com.yihu.wlyy.statistics.etl.save.es.ElasticFactory;
  8. import com.yihu.wlyy.statistics.model.job.ElasticsearchService;
  9. import com.yihu.wlyy.statistics.util.DateUtil;
  10. import com.yihu.wlyy.statistics.vo.SaveModel;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import io.swagger.annotations.ApiParam;
  14. import org.elasticsearch.action.search.SearchResponse;
  15. import org.nlpcn.es4sql.jdbc.ObjectResult;
  16. import org.nlpcn.es4sql.jdbc.ObjectResultsExtractor;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.util.StringUtils;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestMethod;
  21. import org.springframework.web.bind.annotation.RequestParam;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import org.nlpcn.es4sql.domain.Select;
  24. import org.nlpcn.es4sql.parse.ElasticSqlExprParser;
  25. import org.nlpcn.es4sql.parse.SqlParser;
  26. import org.nlpcn.es4sql.query.AggregationQueryAction;
  27. import org.nlpcn.es4sql.query.DefaultQueryAction;
  28. import org.nlpcn.es4sql.query.SqlElasticSearchRequestBuilder;
  29. import java.util.Date;
  30. import java.util.List;
  31. /**
  32. * Created by chenweida on 2017/7/1.
  33. */
  34. @RestController
  35. @RequestMapping("/quotaQuery")
  36. @Api(description = "指标查询")
  37. public class QueryController {
  38. @Autowired
  39. private ElasticsearchService elasticsearchService;
  40. @Autowired
  41. private ElasticFactory elasticFactory;
  42. @ApiOperation(value = "查询某几个指标某个层级的列表")
  43. @RequestMapping(value = "/getQuotasList", method = RequestMethod.GET)
  44. public String getQuotasList(
  45. @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
  46. @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
  47. @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
  48. @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
  49. @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
  50. //如果日期是空初始化是今天
  51. if (StringUtils.isEmpty(date)) {
  52. date = DateUtil.dateToStrShort(new Date());
  53. }
  54. return null;
  55. }
  56. @ApiOperation(value = "查询某个指标某个层级的折线图")
  57. @RequestMapping(value = "/getQuotasLine", method = RequestMethod.GET)
  58. public String getQuotasLine(
  59. @ApiParam(name = "id", value = "指标id", required = true) @RequestParam(value = "id", required = true) String id,
  60. @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
  61. @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
  62. @ApiParam(name = "timeLevel", value = " 1增量的指标 2到达量的指标", required = true) @RequestParam(value = "timeLevel", required = true) String timeLevel,
  63. @ApiParam(name = "startDate", value = "时间(yyyy-MM-dd)", required = false) @RequestParam(value = "startDate", required = true) String startDate,
  64. @ApiParam(name = "endDate", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "endDate", required = false) String endDate) {
  65. //如果日期是空初始化是今天
  66. if (StringUtils.isEmpty(endDate)) {
  67. endDate = DateUtil.dateToStrShort(new Date());
  68. }
  69. return null;
  70. }
  71. @ApiOperation(value = "查询某几个指标的到达量")
  72. @RequestMapping(value = "/getQuotas", method = RequestMethod.GET)
  73. public String getQuotas(
  74. @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
  75. @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
  76. @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
  77. @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
  78. return null;
  79. }
  80. @RequestMapping(value = "/test", method = RequestMethod.GET)
  81. public List<SaveModel> getQuotas()throws Exception {
  82. String sql="SELECT town,townName,sum(result1) result1 FROM wlyy_quota_test group by town,townName";
  83. return elasticsearchService.excute(sql);
  84. }
  85. }