|
@@ -26,6 +26,10 @@ public class OrderManagementService {
|
|
|
@Autowired
|
|
|
private ElasticsearchRestTemplate restTemplate;
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订单查询
|
|
|
+ */
|
|
|
public Map<String,Object> orderSearch(OrderSearchPram orderSearchPram) {
|
|
|
//以创建时间倒序排列
|
|
|
HashMap<String, Object> pageMap = new HashMap<>();
|
|
@@ -125,6 +129,114 @@ public class OrderManagementService {
|
|
|
pageMap.put("pages",total%size == 0 ? (int)total/size:(int)total/size + 1);
|
|
|
return pageMap;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订单查询(财务)
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public Map<String,Object> orderSearchFinance(OrderSearchPram orderSearchPram) {
|
|
|
+ //以创建时间倒序排列
|
|
|
+ HashMap<String, Object> pageMap = new HashMap<>();
|
|
|
+ ArrayList<OrderEsDto> resultsList = new ArrayList<OrderEsDto>();
|
|
|
+ Sort sort = Sort.by(Sort.Direction.DESC, "applyDate");
|
|
|
+ Date applyDateStart = orderSearchPram.getApplyDateStart();
|
|
|
+ Date applyDateEnd = orderSearchPram.getApplyDateEnd();
|
|
|
+ int page = 0;
|
|
|
+ int size = 10;
|
|
|
+ if (null != orderSearchPram.getPage()) {
|
|
|
+ page = orderSearchPram.getPage() - 1;
|
|
|
+ }
|
|
|
+ if (null != orderSearchPram.getSize()) {
|
|
|
+ size = orderSearchPram.getSize();
|
|
|
+ }
|
|
|
+ //分页条件
|
|
|
+ Pageable pageable = PageRequest.of(page, size, sort);
|
|
|
+ BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
|
|
|
+ RangeQueryBuilder rangeQueryBuilder = null;
|
|
|
+ //判断回调时间参数是否为空 不为空以回调时间来查询 否则用创建时间来查询
|
|
|
+ if (null != orderSearchPram.getCheckTimeStart()) {
|
|
|
+ rangeQueryBuilder = QueryBuilders.rangeQuery("checkTime")
|
|
|
+ .gte(orderSearchPram.getCheckTimeStart().getTime())
|
|
|
+ .lte(orderSearchPram.getCheckTimeEnd().getTime());
|
|
|
+ } else {
|
|
|
+ rangeQueryBuilder = QueryBuilders.rangeQuery("applyDate")
|
|
|
+ .gte(applyDateStart.getTime())
|
|
|
+ .lte(applyDateEnd.getTime());
|
|
|
+ }
|
|
|
+ //筛选条件
|
|
|
+ //订单号
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getOrderId())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("orderId", orderSearchPram.getOrderId()));
|
|
|
+ }
|
|
|
+ //商户订单号
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getExtorderId())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("extorderId", orderSearchPram.getExtorderId()));
|
|
|
+ }
|
|
|
+ //电话号码
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getUsedMobile())) {
|
|
|
+ String usedMobiles = orderSearchPram.getUsedMobile();
|
|
|
+ if (usedMobiles.indexOf(",") >= 0){
|
|
|
+ String[] usedMobileList = usedMobiles.split(",");
|
|
|
+ for (String usedMobile : usedMobileList) {
|
|
|
+ boolQuery.should(QueryBuilders.termQuery("usedMobile", usedMobile));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("usedMobile", usedMobiles));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //客户名称 暂时用的ID
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getEnterpriseIdDesc())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("enterpriseId", orderSearchPram.getEnterpriseIdDesc()));
|
|
|
+ }
|
|
|
+ //通道名称 暂时用的ID
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getChannelIdDesc())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("channelId", orderSearchPram.getChannelIdDesc()));
|
|
|
+ }
|
|
|
+ //订单状态
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getStatus())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("status", orderSearchPram.getStatus()));
|
|
|
+ }
|
|
|
+ //运营商
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getMobileOperator())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("mobileOperator", orderSearchPram.getMobileOperator()));
|
|
|
+ }
|
|
|
+ //面额
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getFlowAmount())) {
|
|
|
+ boolQuery.must(QueryBuilders.termQuery("flowAmount", orderSearchPram.getFlowAmount()));
|
|
|
+ }
|
|
|
+ //归属地
|
|
|
+ if (Strings.isNotBlank(orderSearchPram.getMobileHome())) {
|
|
|
+ BoolQueryBuilder tempQueryBuilder = QueryBuilders.boolQuery();
|
|
|
+ tempQueryBuilder.should(QueryBuilders.wildcardQuery("mobileHome.keyword", "*" + orderSearchPram.getMobileHome() + "*"));
|
|
|
+ boolQuery.must(tempQueryBuilder);
|
|
|
+ }
|
|
|
+
|
|
|
+ NativeSearchQuery query = new NativeSearchQueryBuilder()
|
|
|
+ .withPageable(pageable)
|
|
|
+ .withQuery(boolQuery.must(rangeQueryBuilder))
|
|
|
+ .build();
|
|
|
+ //查询数据
|
|
|
+ SearchHits<OrderEsDto> hits = restTemplate.search(query, OrderEsDto.class);
|
|
|
+ long total = hits.getTotalHits();
|
|
|
+ List<SearchHit<OrderEsDto>> searchHits = hits.getSearchHits();
|
|
|
+ System.out.println("一共" + total + "个");
|
|
|
+ System.out.println("搜索结果" + searchHits.size() + "个");
|
|
|
+ for (SearchHit<OrderEsDto> searchHit : searchHits) {
|
|
|
+ OrderEsDto orderEsDto = searchHit.getContent();
|
|
|
+ resultsList.add(orderEsDto);
|
|
|
+// log.info(stuEntity.toString());
|
|
|
+ }
|
|
|
+ pageMap.put("records",resultsList);
|
|
|
+ pageMap.put("size",size);
|
|
|
+ pageMap.put("current",page + 1);
|
|
|
+ pageMap.put("total",total);
|
|
|
+ pageMap.put("pages",total%size == 0 ? (int)total/size:(int)total/size + 1);
|
|
|
+ return pageMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|