‘linchangsheng’ 4 달 전
부모
커밋
9053a85086

+ 7 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/workerorder/ESOrderBaseController.java

@@ -107,4 +107,11 @@ public class ESOrderBaseController {
         return ResponseHelper.success();
     }
 
+    @ApiNotAuth
+    @PostMapping("del")
+    public ResponseHelper del() throws IllegalAccessException {
+        orderBaseEsLogic.del();
+        return ResponseHelper.success();
+    }
+
 }

+ 5 - 8
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseEsLogic.java

@@ -317,14 +317,14 @@ public class OrderBaseEsLogic {
 
       // orderBaseEsRepository.saveAll(orderBaseEsDates);
 
-        boolean a = elasticsearchRestTemplate.indexOps(SettlementOrderEs.class).delete();
+ /*       boolean a = elasticsearchRestTemplate.indexOps(SettlementOrderEs.class).delete();
         IndexOperations indexOperations1 = elasticsearchRestTemplate.indexOps(SettlementOrderEs.class);
         if (!indexOperations1.exists()) {
             indexOperations1.create();
             Document document = indexOperations1.createMapping();
             indexOperations1.putMapping(document);
         }
-
+*/
     }
 
     public List<Map<String, Object>> countStatus(String startTime, String endTime, String orderSmallType, String orderSmallTypeText) {
@@ -584,12 +584,6 @@ public class OrderBaseEsLogic {
 
             maps.add(DZF);
 
-        }else {
-
-            DZF.put("total",this.getWorkerOrderCountResult(responsePJYQX.getAggregations(),"DZF"));
-            DZF.put("orderStatus","DZF");
-
-            maps.add(DZF);
         }
 
         return maps;
@@ -631,4 +625,7 @@ public class OrderBaseEsLogic {
 
         settlementOrderEsRepository.saveAll(orderBaseEsDates);
     }
+
+    public void del() {
+    }
 }

+ 65 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseLogic.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.common.RegionBean;
+import com.gree.mall.manager.bean.es.OrderBaseEs;
 import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam;
 import com.gree.mall.manager.bean.listvo.workorder.OrderBase2VO;
 import com.gree.mall.manager.bean.listvo.workorder.OrderBaseAppraiseVO;
@@ -40,6 +41,19 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
+import org.elasticsearch.search.aggregations.AggregationBuilders;
+import org.elasticsearch.search.aggregations.Aggregations;
+import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder;
+import org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -84,6 +98,7 @@ public class OrderBaseLogic {
     private final RegionService regionService;
     private final NoticeRecordService noticeRecordService;
     private final LeaseOrderService leaseOrderService;
+    private final ElasticsearchRestTemplate elasticsearchRestTemplate;
 
     /**
      * 工单列表
@@ -203,9 +218,59 @@ public class OrderBaseLogic {
         AdminUserCom adminUser = commonLogic.getAdminUser();
         List<Map<String, Object>> maps = orderBaseCMapper.countOrderStatus(adminUser.getCompanyWechatId(), adminUser.getAdminWebsitIds(),
                 adminUser.getType(), orderSmallType, orderSmallTypeText,startTime,endTime);
+
+        BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
+
+        if (CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
+            List<QueryBuilder> should = queryBuilder.should();
+            if (adminUser.getType().equals(1)) {
+                should.add(QueryBuilders.termsQuery("company_wechat_id", adminUser.getCompanyWechatId()));
+            }
+            should.add(QueryBuilders.termsQuery("create_websit_id", adminUser.getAdminWebsitIds()));
+            should.add(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()));
+        }
+
+        List<String> orderBaseId = new ArrayList<>();
+
+        HashMap<String, Object> DZF = new HashMap<>();
+        List<String> collect = workerOrderService.lambdaQuery()
+                .eq(WorkerOrder::getPayStatus, "WAIT")
+                .ne(WorkerOrder::getWorkerOrderId, "").select(WorkerOrder::getWorkerOrderId)
+                .list().stream().map(WorkerOrder::getWorkerOrderId).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(collect)) {
+
+            orderBaseId.addAll(collect);
+            //待支付
+            NativeSearchQuery searchQueryDZF = new NativeSearchQueryBuilder()
+                    .withQuery(queryBuilder)
+                    .withPageable(PageRequest.of(1, 1))
+                    .addAggregation(this.getAggs(AggregationBuilders.filter("DJD", QueryBuilders.boolQuery()
+                            .must(QueryBuilders.termsQuery("id",orderBaseId))
+                    )))
+                    .build();
+            SearchHits responseDZF = elasticsearchRestTemplate.search(searchQueryDZF, OrderBaseEs.class);
+            DZF.put("total",this.getWorkerOrderCountResult(responseDZF.getAggregations(),"DZF"));
+            DZF.put("orderStatus","DZF");
+
+            maps.add(DZF);
+
+        }
         return maps;
     }
+    public AbstractAggregationBuilder<?> getAggs(FilterAggregationBuilder filter) {
+        return filter.subAggregation(AggregationBuilders.sum("total_mac_sum").field("total_num"))
+                .subAggregation(AggregationBuilders.terms("order_type_group").field("order_type")
+                        .subAggregation(AggregationBuilders.sum("mac_sum").field("total_num")));
+    }
+
+    private long getWorkerOrderCountResult(Aggregations aggregations, String name) {
+        StringBuffer sb = new StringBuffer();
+        ParsedFilter parsedFilter = aggregations.get(name);
+        //总服务单数
+        long totalOrderNums = parsedFilter.getDocCount();
 
+        return totalOrderNums;
+    }
 
     /**
      * 保存工单