Explorar o código

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu hai 4 meses
pai
achega
45a7ca4993

+ 20 - 21
mall-server-api/src/main/java/com/gree/mall/manager/bean/es/OrderBaseEsDate.java

@@ -277,7 +277,7 @@ public class OrderBaseEsDate {
     private Date appraiseTime;
 
     @ApiModelProperty(value = "评价来源 1=用户评价 2=商家评价")
-    @Field(value = "appraise_source", type = FieldType.Keyword)
+    @Field(value = "appraise_source", type = FieldType.Integer)
     private Integer appraiseSource;
 
     @ApiModelProperty(value = "多个图片逗号隔开")
@@ -315,7 +315,6 @@ public class OrderBaseEsDate {
     @ApiModelProperty(value = "销售单下单时间")
     @Field(value = "sale_create_time", type = FieldType.Date,format = DateFormat.custom, pattern ="yyyy-MM-dd HH:mm:ss")
     private Date saleCreateTime;
-
     @ApiModelProperty(value = "销售单订单金额")
     @Field(value = "sale_total_amount", type = FieldType.Keyword)
     private BigDecimal saleTotalAmount;
@@ -337,16 +336,16 @@ public class OrderBaseEsDate {
     private String userSign;
 
     @ApiModelProperty(value = "是否为导入工单,true=是 false=否")
-    @Field(value = "is_import", type = FieldType.Keyword)
-    private String isImport;
+    @Field(value = "is_import", type = FieldType.Boolean)
+    private Boolean isImport;
 
     @ApiModelProperty(value = "是否已采集 YES 是 NO 否")
     @Field(value = "is_gather", type = FieldType.Keyword)
     private String isGather;
 
     @ApiModelProperty(value = "是否异常工单 true/false")
-    @Field(value = "is_exception", type = FieldType.Keyword)
-    private String isException;
+    @Field(value = "is_exception", type = FieldType.Boolean)
+    private Boolean isException;
 
     @ApiModelProperty(value = "增置服务id")
     @Field(value = "pg_incre_id", type = FieldType.Keyword)
@@ -389,7 +388,7 @@ public class OrderBaseEsDate {
     private String isAllFee;
 
     @ApiModelProperty(value = "销售类型 1=零售 2=工程 3=延保 4=工程维保")
-    @Field(value = "sale_type", type = FieldType.Keyword)
+    @Field(value = "sale_type", type = FieldType.Integer)
     private Integer saleType;
 
     @ApiModelProperty(value = "工程编号")
@@ -401,26 +400,26 @@ public class OrderBaseEsDate {
     private String projectName;
 
     @ApiModelProperty(value = "是否开启抢单")
-    @Field(value = "is_qd", type = FieldType.Keyword)
-    private String isQd;
+    @Field(value = "is_qd", type = FieldType.Boolean)
+    private Boolean isQd;
 
     @ApiModelProperty(value = "是否已产生通知 true=是 false=否")
-    @Field(value = "is_qd_notice", type = FieldType.Keyword)
-    private String isQdNotice;
+    @Field(value = "is_qd_notice", type = FieldType.Boolean)
+    private Boolean isQdNotice;
 
     @ApiModelProperty(value = "是否为拆机")
-    @Field(value = "is_cj", type = FieldType.Keyword)
-    private String isCj;
+    @Field(value = "is_cj", type = FieldType.Boolean)
+    private Boolean isCj;
 
     @ApiModelProperty(value = "是否为租赁单 true/false")
-    @Field(value = "is_zl", type = FieldType.Keyword)
-    private String isZl;
+    @Field(value = "is_zl", type = FieldType.Boolean)
+    private Boolean isZl;
 
 
 
     @ApiModelProperty(value = "是否为工单导入 true/false")
-    @Field(value = "is_import_excel", type = FieldType.Keyword)
-    private String isImportExcel;
+    @Field(value = "is_import_excel", type = FieldType.Boolean)
+    private Boolean isImportExcel;
 
     @ApiModelProperty(value = "服务状态")
     @Field(value = "service_status", type = FieldType.Keyword)
@@ -513,8 +512,8 @@ public class OrderBaseEsDate {
     private String appraiseLabel;
 
     @ApiModelProperty(value = "是否是工单3.0同步true/false")
-    @Field(value = "is_three_order", type = FieldType.Keyword)
-    private String isThreeOrder;
+    @Field(value = "is_three_order", type = FieldType.Boolean)
+    private Boolean isThreeOrder;
 
     @ApiModelProperty(value = "故障类型")
     @Field(value = "trouble_value", type = FieldType.Keyword)
@@ -529,8 +528,8 @@ public class OrderBaseEsDate {
     private String smallType;
 
     @ApiModelProperty(value = "1 已接单 0未接单")
-    @Field(value = "is_meet", type = FieldType.Keyword)
-    private String isMeet;
+    @Field(value = "is_meet", type = FieldType.Boolean)
+    private Boolean isMeet;
 
     @ApiModelProperty(value = "申请状态 ING=申请中 END=到货反馈 CANCEL=取消申请")
     @Field(value = "parts_apply_status", type = FieldType.Keyword)

+ 3 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/SyncOrderInfoLogic.java

@@ -18,6 +18,7 @@ import com.gree.mall.manager.bean.ItfTblWorkOrderCollection0Bean;
 import com.gree.mall.manager.bean.WorkOrderRelationBean;
 import com.gree.mall.manager.bean.WorkOrderSearchReq;
 
+import com.gree.mall.manager.bean.es.OrderBaseEsDate;
 import com.gree.mall.manager.bean.policy.ItfGreeSynDownloadRecBean;
 import com.gree.mall.manager.bean.workorder.WorkerOrderSyncBean;
 import com.gree.mall.manager.commonmapper.workorder.SyncMapper;
@@ -589,4 +590,6 @@ public class SyncOrderInfoLogic {
 
 
     }
+
+
 }

+ 15 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/common/WechatLogic.java

@@ -103,6 +103,9 @@ public class WechatLogic {
     @Autowired
     CommonLogic commonLogic;
 
+    @Autowired
+    WorkerOrderService workerOrderService;
+
     /**
      * 微信支付服务
      *
@@ -1270,7 +1273,7 @@ public class WechatLogic {
 
         WxPayMicropayResult payResult = null;
         try {
-
+            this.addShareReveiverWorker(id);
             payResult = payService.micropay(request);
             log.info("商户扫码支付生成订单响应: {}", payResult);
         } catch (WxPayException e) {
@@ -1292,9 +1295,20 @@ public class WechatLogic {
 
         AdminCompanyWechatPayConfig adminCompanyWechatPayConfig = adminCompanyWechatPayConfigService.getById(configId);
         this.addPayWebsitRecord(adminCompanyWechatPayConfig, payment, "", payResult.getSubOpenid(), ip, payResult.getTradeType(), id, payResult.getTransactionId(), payResult.getOpenid());
+
         return payResult.getTransactionId();
     }
 
+    private void addShareReveiverWorker(String id) {
+        WorkerOrder workerOrder = workerOrderService.getById(id);
+
+        if (workerOrder != null){
+                        //添加分账人
+            if (!StringUtil.isEmpty(workerOrder.getOpenId()) && !StringUtil.isEmpty(workerOrder.getConfigId()))
+                this.addShareReveiver(workerOrder.getOpenId(), workerOrder.getConfigId(), "B");
+        }
+    }
+
     public PayDetail paymentWebsitH5(String orderId, BigDecimal payAmount, String openId, String profitSharingFlag, String ip, String companyWechatId) throws WxPayException {
         return this.paymentWebsit(orderId, payAmount, openId, profitSharingFlag, ip, companyWechatId, "MWEB", false);
     }

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

@@ -21,6 +21,7 @@ import com.gree.mall.manager.plus.entity.PgOrderFlag;
 import com.gree.mall.manager.plus.entity.WorkerOrder;
 import com.gree.mall.manager.plus.service.PgOrderBaseService;
 import com.gree.mall.manager.plus.service.WorkerOrderService;
+import com.gree.mall.manager.utils.StringUtil;
 import com.gree.mall.manager.zfire.bean.QueryParamBean;
 import io.micrometer.core.instrument.search.Search;
 import lombok.RequiredArgsConstructor;
@@ -93,7 +94,7 @@ public class OrderBaseEsLogic {
                 .withQuery(queryBuilder)
                 .withQuery(queryBuilder1)
                 .withSort(SortBuilders.fieldSort("create_time").order(SortOrder.DESC))
-                .withPageable(PageRequest.of(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()))
+                .withPageable(PageRequest.of(zfireParamBean.getPageNum() -1, zfireParamBean.getPageSize()))
                 .build();
 
 
@@ -179,44 +180,44 @@ public class OrderBaseEsLogic {
                 if (StringUtils.isBlank(value))
                     continue;
 
-                if (paramBean.getParam().equals("order_status")
-                        && value.equals("DYY")
+                if (param.equals("order_status") && value.equals("DYY")
                 ){
-                    queryBuilder.mustNot(QueryBuilders.wildcardQuery("appointment_time","*"));
+
+                    queryBuilder.mustNot(QueryBuilders.existsQuery("appointment_time"));
                     queryBuilder.mustNot(QueryBuilders.termsQuery("order_status", "YWG", "GCSZX", "WDWG", "YWGO", "YQX", "FWZT", "YCGB",
-                            "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP"));
+                                    "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP"));
+
                     continue;
                 }
 
-                if (paramBean.getParam().equals("order_status")
+                if (param.equals("order_status")
                         &&  value.equals("YCD")
                 ){
-                    queryBuilder.must(QueryBuilders.termQuery("is_exception","1"));
+                    queryBuilder.must(QueryBuilders.termQuery("is_exception",true));
                     queryBuilder.mustNot(QueryBuilders.termsQuery("order_status", "YWG", "YWGO", "YJS"));
                     continue;
                 }
 
-                if (paramBean.getParam().equals("order_status")
+                if (param.equals("order_status")
                         && value.equals("DJD")
                 ){
-                    should.add(QueryBuilders.termsQuery("is_meet", "1"));
-                    should.add(QueryBuilders.termsQuery("order_status", "DJD"));
-                    queryBuilder.mustNot(QueryBuilders.termsQuery("order_status",
-                            "YQX", "FWQX", "FL", "FWZT", "YCGB"));
-
 
+                    queryBuilder.must(QueryBuilders.boolQuery()
+                            .mustNot(QueryBuilders.termsQuery("order_status","YQX", "FWQX", "FL", "FWZT", "YCGB"))
+                            .must(QueryBuilders.boolQuery().should(QueryBuilders.termQuery("is_meet", false))
+                                    .should(QueryBuilders.termsQuery("order_status", "DJD"))));
                     continue;
                 }
 
 
-                if (paramBean.getParam().equals("order_status")
+                if (param.equals("order_status")
                         && value.equals("PJSQZ")
                 ){
                     queryBuilder.must(QueryBuilders.termQuery("parts_apply_status","ING"));
                     continue;
                 }
 
-                if (paramBean.getParam().equals("order_status")
+                if (param.equals("order_status")
                         && value.equals("PJYDH")
                 ){
                     queryBuilder.must(QueryBuilders.termQuery("parts_apply_status","END"));
@@ -224,7 +225,7 @@ public class OrderBaseEsLogic {
                 }
 
 
-                if (paramBean.getParam().equals("order_status")
+                if (param.equals("order_status")
                         && value.equals("PJYQX")
                 ){
                     queryBuilder.must(QueryBuilders.termQuery("parts_apply_status","CANCEL"));
@@ -232,13 +233,13 @@ public class OrderBaseEsLogic {
                 }
 
                 if (StringUtils.equals(paramBean.getCompare(), "like")) {
-                    queryBuilder.must(QueryBuilders.matchQuery(param,value));
+                    queryBuilder.must(QueryBuilders.wildcardQuery(param,"*"+value+"*"));
                     continue;
                 }
 
                 if (value.equals("true") || value.equals("false")) {
 
-                    queryBuilder.must(QueryBuilders.termQuery(param,value.equals("true")?"1":"0"));
+                    queryBuilder.must(QueryBuilders.termQuery(param,value.equals("true")?true:false));
                     continue;
                 } else {
                     if (paramBean.getCompare().equals(">=")){
@@ -266,16 +267,16 @@ public class OrderBaseEsLogic {
 
 
     public void test() {
- /*       boolean a = elasticsearchRestTemplate.indexOps(OrderBaseEs.class).delete();
+  /*      boolean a = elasticsearchRestTemplate.indexOps(OrderBaseEs.class).delete();
         IndexOperations indexOperations1 = elasticsearchRestTemplate.indexOps(OrderBaseEsDate.class);
         if (!indexOperations1.exists()) {
             indexOperations1.create();
             Document document = indexOperations1.createMapping();
             indexOperations1.putMapping(document);
-        }*/
-        List<PgOrderBase> list = pgOrderBaseService.lambdaQuery().list();
+        }
+        List<PgOrderBase> list = pgOrderBaseService.lambdaQuery().list();*/
 
-        List<OrderBaseEsDate> orderBaseEsDates = BeanUtil.copyToList(list, OrderBaseEsDate.class);
+       // List<OrderBaseEsDate> orderBaseEsDates = BeanUtil.copyToList(list, OrderBaseEsDate.class);
   /*      for (PgOrderBase pgOrderBase : list) {
             OrderBaseEs orderBaseEs = BeanUtil.toBean(pgOrderBase, OrderBaseEs.class);
 
@@ -289,7 +290,7 @@ public class OrderBaseEsLogic {
             orderBaseEsList.add(orderBaseEs);
         }*/
 
-       orderBaseEsRepository.saveAll(orderBaseEsDates);
+      // orderBaseEsRepository.saveAll(orderBaseEsDates);
 
     }
 
@@ -307,6 +308,8 @@ public class OrderBaseEsLogic {
             should.add(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()));
         }
 
+        if (!StringUtil.isEmpty(orderSmallTypeText))
+            queryBuilder.must(QueryBuilders.termsQuery("order_small_type_text",orderSmallTypeText));
 
 
         //待预约
@@ -385,8 +388,8 @@ public class OrderBaseEsLogic {
                 .withPageable(PageRequest.of(1, 1))
                 .addAggregation(this.getAggs(AggregationBuilders.filter("DJD", QueryBuilders.boolQuery()
                         .mustNot(QueryBuilders.termsQuery("order_status","YQX", "FWQX", "FL", "FWZT", "YCGB"))
-                        .should(QueryBuilders.termsQuery("is_meet", "0"))
-                        .should(QueryBuilders.termsQuery("order_status", "DJD"))
+                        .must(QueryBuilders.boolQuery().should(QueryBuilders.termQuery("is_meet", false))
+                        .should(QueryBuilders.termsQuery("order_status", "DJD")))
                         )))
                 .build();
         SearchHits responseDJD = elasticsearchRestTemplate.search(searchQueryDJD, OrderBaseEs.class);
@@ -504,7 +507,7 @@ public class OrderBaseEsLogic {
 
         HashMap<String, Object> PJYDH = new HashMap<>();
         PJYDH.put("total",this.getWorkerOrderCountResult(responsePJYDH.getAggregations(),"PJYDH"));
-        PJYDH.put("orderStatus","PJSQZ");
+        PJYDH.put("orderStatus","PJYDH");
 
         maps.add(PJYDH);
 
@@ -543,4 +546,15 @@ public class OrderBaseEsLogic {
         return totalOrderNums;
     }
 
+    public void esSync() {
+
+        List<PgOrderBase> list = pgOrderBaseService.lambdaQuery()
+                .gt(PgOrderBase::getUpdateTime,DateUtil.offsetMinute(new Date(),-5))
+                .list();
+
+        List<OrderBaseEsDate> orderBaseEsDates = BeanUtil.copyToList(list, OrderBaseEsDate.class);
+
+
+        orderBaseEsRepository.saveAll(orderBaseEsDates);
+    }
 }

+ 37 - 0
mall-server-api/src/main/java/com/gree/mall/manager/schedule/daily/EsSyncSchedule.java

@@ -0,0 +1,37 @@
+package com.gree.mall.manager.schedule.daily;
+
+
+
+import com.gree.mall.manager.logic.EsOrder.EsOrderLogic;
+import com.gree.mall.manager.logic.SyncOrderInfoLogic;
+import com.gree.mall.manager.logic.workorder.OrderBaseEsLogic;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.mail.MessagingException;
+import java.io.IOException;
+
+/**
+ * 定时购买保险
+ */
+@ConditionalOnProperty(name = "schedule.gongdan.es.enable", havingValue = "true", matchIfMissing = true)
+@Component
+public class EsSyncSchedule {
+
+
+    @Autowired
+    private OrderBaseEsLogic orderBaseEsLogic;
+
+
+
+    //同步工单数据
+    @Scheduled(fixedDelay =2* 1000)
+    public void task() throws IOException {
+        orderBaseEsLogic.esSync();
+    }
+
+
+
+}

+ 1 - 0
mall-server-api/src/main/resources/bootstrap-dev.properties

@@ -9,6 +9,7 @@ express.callback=${sys.url}/${server.servlet.context-path}/common/express/callba
 #定时器
 schedule.enable=false
 schedule.gongdan.enable=false
+schedule.gongdan.es.enable=false
 #分销商城商品接口
 gjmall.goods.url=http://121.43.111.127:10003/goods/outside/list
 

+ 1 - 0
mall-server-api/src/main/resources/bootstrap-prd.properties

@@ -9,6 +9,7 @@ express.callback=${sys.url}/${server.servlet.context-path}/common/express/callba
 #定时器
 schedule.enable=true
 schedule.gongdan.enable=false
+schedule.gongdan.es.enable=false
 #分销商城商品接口
 gjmall.goods.url=https://gjmall.zfire.top/api/goods/outside/list
 

+ 1 - 0
mall-server-api/src/main/resources/bootstrap-test.properties

@@ -9,6 +9,7 @@ express.callback=${sys.url}/${server.servlet.context-path}/common/express/callba
 #定时器
 schedule.enable=true
 schedule.gongdan.enable=false
+schedule.gongdan.es.enable=true
 #分销商城商品接口
 gjmall.goods.url=http://121.43.111.127:10003/goods/outside/list