瀏覽代碼

1、解决es同步空指针问题

rayson 6 月之前
父節點
當前提交
7a7b868f89

+ 17 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java

@@ -27,6 +27,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
 import org.springframework.data.elasticsearch.core.IndexOperations;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StopWatch;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -242,6 +243,10 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
                 continue;
             }
             EnterpriseDO enterpriseDO = enterpriseMapper.selectById(job.getEnterpriseId());
+            if (null == enterpriseDO) {
+                log.error("找不到企业信息 {} ", job.getEnterpriseId());
+                continue;
+            }
             ESJobAdvertisedMergeDO merge = build(job, enterpriseDO);
             repository.save(merge);
             log.info("ES 保存数据成功 {}",merge);
@@ -325,10 +330,18 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
 
     public ESJobAdvertisedMergeDO build(ESJobAdvertisedMergeDO mergeDO, EnterpriseDO enterpriseDO) {
         mergeDO.setName(replace(mergeDO.getName()));
-        mergeDO.setContent(replace(mergeDO.getContent()));
-        mergeDO.setRequirement(replace(mergeDO.getRequirement()));
-        mergeDO.setEnterpriseName(replace(enterpriseDO.getName()));
-        mergeDO.setEnterpriseAnotherName(replace(enterpriseDO.getAnotherName()));
+        if(StringUtils.hasText(mergeDO.getContent())) {
+            mergeDO.setContent(replace(mergeDO.getContent()));
+        }
+        if(StringUtils.hasText(mergeDO.getRequirement())) {
+            mergeDO.setRequirement(replace(mergeDO.getRequirement()));
+        }
+        if(StringUtils.hasText(enterpriseDO.getName())) {
+            mergeDO.setEnterpriseName(replace(enterpriseDO.getName()));
+        }
+        if(StringUtils.hasText(enterpriseDO.getAnotherName())) {
+            mergeDO.setEnterpriseAnotherName(replace(enterpriseDO.getAnotherName()));
+        }
         mergeDO.setIndustryId(enterpriseDO.getIndustryId());
         mergeDO.setLogoUrl(enterpriseDO.getLogoUrl());
         mergeDO.setScale(enterpriseDO.getScale());