|
@@ -361,6 +361,12 @@ public class EsTEquipmentService extends EsBaseService<TEquipment, TEquipmentPar
|
|
String aggregationResultName = "aggregationResult";
|
|
String aggregationResultName = "aggregationResult";
|
|
// 仅为名称,用以获取返回结果
|
|
// 仅为名称,用以获取返回结果
|
|
String aggSumName = "sales";
|
|
String aggSumName = "sales";
|
|
|
|
+ // 仅为名称,用以获取返回结果
|
|
|
|
+ String aggName_productNumber = "productNumber";
|
|
|
|
+ // 仅为名称,用以获取返回结果
|
|
|
|
+ String aggName_refundQuantity = "refundQuantity";
|
|
|
|
+ // 仅为名称,用以获取返回结果
|
|
|
|
+ String aggName_refundAmount = "refundAmount";
|
|
|
|
|
|
// 根据字段 termField 聚合
|
|
// 根据字段 termField 聚合
|
|
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms(aggregationResultName).field(termField);
|
|
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms(aggregationResultName).field(termField);
|
|
@@ -373,6 +379,15 @@ public class EsTEquipmentService extends EsBaseService<TEquipment, TEquipmentPar
|
|
// 根据字段price 求和 sum, sales 仅为名称,用以获取返回结果
|
|
// 根据字段price 求和 sum, sales 仅为名称,用以获取返回结果
|
|
SumAggregationBuilder sumAggregationBuilder = AggregationBuilders.sum(aggSumName).field("price");
|
|
SumAggregationBuilder sumAggregationBuilder = AggregationBuilders.sum(aggSumName).field("price");
|
|
termsAggregationBuilder.subAggregation(sumAggregationBuilder);
|
|
termsAggregationBuilder.subAggregation(sumAggregationBuilder);
|
|
|
|
+ // 订单数量
|
|
|
|
+ SumAggregationBuilder sumAggregationBuilder2 = AggregationBuilders.sum(aggName_productNumber).field("productNumber");
|
|
|
|
+ termsAggregationBuilder.subAggregation(sumAggregationBuilder2);
|
|
|
|
+ // 退款数量
|
|
|
|
+ SumAggregationBuilder sumAggregationBuilder3 = AggregationBuilders.sum(aggName_refundQuantity).field("refundQuantity");
|
|
|
|
+ termsAggregationBuilder.subAggregation(sumAggregationBuilder3);
|
|
|
|
+ // 退款金额
|
|
|
|
+ SumAggregationBuilder sumAggregationBuilder4 = AggregationBuilders.sum(aggName_refundAmount).field("refundAmount");
|
|
|
|
+ termsAggregationBuilder.subAggregation(sumAggregationBuilder4);
|
|
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
|
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
|
// 指定size为0,不返回文档 因为只需要数量
|
|
// 指定size为0,不返回文档 因为只需要数量
|
|
sourceBuilder.query(queryBuilder).aggregation(termsAggregationBuilder).size(0);
|
|
sourceBuilder.query(queryBuilder).aggregation(termsAggregationBuilder).size(0);
|
|
@@ -387,12 +402,24 @@ public class EsTEquipmentService extends EsBaseService<TEquipment, TEquipmentPar
|
|
for (Terms.Bucket bucket : terms.getBuckets()) {
|
|
for (Terms.Bucket bucket : terms.getBuckets()) {
|
|
ChartBean chartBean = new ChartBean();
|
|
ChartBean chartBean = new ChartBean();
|
|
chartBean.setCategorie(bucket.getKeyAsString());
|
|
chartBean.setCategorie(bucket.getKeyAsString());
|
|
-// chartBean.setSaleNum(Long.valueOf(bucket.getDocCount()).intValue());
|
|
|
|
- chartBean.setSaleNum(Float.valueOf(bucket.getDocCount()));
|
|
|
|
|
|
+ //统计商品数
|
|
|
|
+ ParsedSum saleNum1 = bucket.getAggregations().get(aggName_productNumber);
|
|
|
|
+ ParsedSum saleNum2 = bucket.getAggregations().get(aggName_refundQuantity);
|
|
|
|
+ String saleNumStr1 = format1((float) saleNum1.getValue());
|
|
|
|
+ String saleNumStr2 = format1((float) saleNum2.getValue());
|
|
|
|
+ if(StringUtils.isEmpty(saleNumStr1)){
|
|
|
|
+ saleNumStr1 = "1";
|
|
|
|
+ }
|
|
|
|
+ chartBean.setSaleNum(Float.valueOf(saleNumStr1) - Float.valueOf(saleNumStr2));
|
|
|
|
+// chartBean.setSaleNum(Float.valueOf(bucket.getDocCount()));
|
|
ParsedSum sum = bucket.getAggregations().get(aggSumName);
|
|
ParsedSum sum = bucket.getAggregations().get(aggSumName);
|
|
|
|
+ ParsedSum refundSum = bucket.getAggregations().get(aggName_refundAmount);
|
|
|
|
+ String s1 = format1((float) sum.getValue());
|
|
|
|
+ String s2 = format1((float) refundSum.getValue());
|
|
|
|
+ chartBean.setSalePrice(Float.valueOf(s1) - Float.valueOf(s2));
|
|
// chartBean.setSalePrice(Double.valueOf(sum.getValue()).intValue());
|
|
// chartBean.setSalePrice(Double.valueOf(sum.getValue()).intValue());
|
|
- String s = format1((float)sum.getValue());
|
|
|
|
- chartBean.setSalePrice(Float.valueOf(s));
|
|
|
|
|
|
+// String s = format1((float)sum.getValue());
|
|
|
|
+// chartBean.setSalePrice(Float.valueOf(s));
|
|
chartBeanList.add(chartBean);
|
|
chartBeanList.add(chartBean);
|
|
}
|
|
}
|
|
log.debug("chartBeanList:{}",chartBeanList);
|
|
log.debug("chartBeanList:{}",chartBeanList);
|