Parcourir la source

1、增加企业修改同步es逻辑

rayson il y a 1 an
Parent
commit
e68fcedf56

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java

@@ -54,7 +54,7 @@ public class ESJobAdvertisedMergeDO extends ESBaseDO {
     /**
      * 招聘类型
      * <p>
-     * 枚举 {@link TODO menduner_job_type 对应的类}
+     * 枚举 {@link  menduner_job_type 对应的类}
      */
     @Field(type = FieldType.Auto)
     private String type;

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/repository/ESJobAdvertisedMergeRepository.java

@@ -3,8 +3,12 @@ package com.citu.module.menduner.system.dal.repository;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
 
+import java.util.List;
+
 /**
  * ES 招聘职位 repository
  **/
 public interface ESJobAdvertisedMergeRepository extends ElasticsearchRepository<ESJobAdvertisedMergeDO, Long> {
+
+    List<ESJobAdvertisedMergeDO> findByEnterpriseId(Long enterpriseId);
 }

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

@@ -70,13 +70,12 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
                 jobDel(message.getId());
                 break;
             case ENTERPRISE_ADD:
-//                repository.save(message.getData());
                 break;
             case ENTERPRISE_UPDATE:
-//                repository.save(message.getData());
+                enterpriseUpdate(message.getId());
                 break;
             case ENTERPRISE_DELETE:
-//                repository.deleteById(message.getId());
+                enterpriseDel(message.getId());
                 break;
             default:
                 break;
@@ -131,6 +130,32 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         repository.deleteById(id);
     }
 
+    /**
+     * 企业信息修改
+     *
+     * @param id 企业id
+     **/
+    public void enterpriseUpdate(Long id) {
+        EnterpriseDO enterprise = enterpriseMapper.selectById(id);
+        if (null == enterprise) {
+            log.error("找不到企业信息 {} ", id);
+            return;
+        }
+        List<ESJobAdvertisedMergeDO> list = repository.findByEnterpriseId(id);
+        for (ESJobAdvertisedMergeDO merge : list) {
+            repository.save(build(merge, enterprise));
+        }
+    }
+
+    /**
+     * 企业信息删除
+     *
+     * @param id 企业id
+     **/
+    public void enterpriseDel(Long id) {
+        // 企业删除
+    }
+
     public void sync() {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start("ES 数据同步");
@@ -170,7 +195,6 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
      * 清空索引
      **/
     public void deleteAllIndexes(List<Class<?>> documentClasses) {
-
         for (Class<?> indexClass : documentClasses) {
             boolean exists = template.indexOps(indexClass).exists();
             if (exists) {
@@ -193,9 +217,11 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
 
 
     public ESJobAdvertisedMergeDO build(JobAdvertisedDO job, EnterpriseDO enterpriseDO) {
-
         ESJobAdvertisedMergeDO mergeDO = JobAdvertisedConvert.INSTANCE.convert2(job);
+        return build(mergeDO, enterpriseDO);
+    }
 
+    public ESJobAdvertisedMergeDO build(ESJobAdvertisedMergeDO mergeDO, EnterpriseDO enterpriseDO) {
         mergeDO.setEnterpriseName(enterpriseDO.getName());
         mergeDO.setEnterpriseAnotherName(enterpriseDO.getAnotherName());
         mergeDO.setIndustryId(enterpriseDO.getIndustryId());
@@ -211,7 +237,6 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         mergeDO.setWorkTime(enterpriseDO.getWorkTime());
         mergeDO.setReceivedHonors(enterpriseDO.getReceivedHonors());
         mergeDO.setIntroduce(enterpriseDO.getIntroduce());
-
         return mergeDO;
     }
 

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java

@@ -27,8 +27,10 @@ import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseBusinessMa
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
 import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
+import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.MdeVisitsProducer;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -63,6 +65,9 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     @Resource
     private EnterpriseAddressMapper enterpriseAddressMapper;
 
+    @Resource
+    private ESProducer esProducer;
+
 
     @Override
     public Long createEnterprise(EnterpriseSaveReqVO createReqVO) {
@@ -80,6 +85,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         // 更新
         EnterpriseDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseDO.class);
         enterpriseMapper.updateById(updateObj);
+        noticeES(updateObj.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
     }
 
     @Override
@@ -88,6 +94,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         validateEnterpriseExists(id);
         // 删除
         enterpriseMapper.deleteById(id);
+        noticeES(id, ESOperateEnum.ENTERPRISE_DELETE);
     }
 
     private void validateEnterpriseExists(Long id) {
@@ -199,6 +206,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setLogoUrl(logoUrl);
         enterpriseMapper.updateById(enterprise);
+        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
     }
 
     @Override
@@ -207,6 +215,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setAlbumList(reqVO.getAlbumList());
         enterpriseMapper.updateById(enterprise);
+        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
     }
 
     @Override
@@ -215,6 +224,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setWelfareList(reqVO.getWelfareList());
         enterpriseMapper.updateById(enterprise);
+        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
     }
 
     @Override
@@ -225,6 +235,11 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO updateObj = EnterpriseConvert.INSTANCE.convert12(reqVO);
         updateObj.setId(enterprise.getId());
         enterpriseMapper.updateById(updateObj);
+        noticeES(updateObj.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+    }
+
+    private void noticeES(Long id, ESOperateEnum operate) {
+        esProducer.send(operate,id);
     }
 
     @Override