|
@@ -1,23 +1,111 @@
|
|
|
package com.citu.module.menduner.system.mq.consumer;
|
|
|
|
|
|
-import com.citu.module.menduner.system.mq.message.*;
|
|
|
+import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
|
+import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
|
|
|
+import com.citu.module.menduner.system.dal.repository.ESJobAdvertisedMergeRepository;
|
|
|
+import com.citu.module.menduner.system.mq.message.ESJobAdvertisedMergeSendMessage;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.context.event.EventListener;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/**
|
|
|
- * @author Rayson
|
|
|
- * @description ESConsumer
|
|
|
- * @create 2024/5/29 下午5:12
|
|
|
+ * es 消费
|
|
|
**/
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
public class ESConsumer {
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ESJobAdvertisedMergeRepository repository;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EnterpriseMapper enterpriseMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private JobAdvertisedMapper jobAdvertisedMapper;
|
|
|
+
|
|
|
|
|
|
@Async
|
|
|
@EventListener
|
|
|
- public void onMessage(ESJobAdvertisedMergeSendMessage message) {
|
|
|
- // 更新es数据
|
|
|
+ public synchronized void onMessage(ESJobAdvertisedMergeSendMessage message) {
|
|
|
+
|
|
|
+ switch (message.getOperate()) {
|
|
|
+ case SYNC_ALL:
|
|
|
+ break;
|
|
|
+ case ADD:
|
|
|
+// repository.save(message.getData());
|
|
|
+ break;
|
|
|
+ case UPDATE:
|
|
|
+// repository.save(message.getData());
|
|
|
+ jobUpdate(message.getId());
|
|
|
+ break;
|
|
|
+ case DELETE:
|
|
|
+// repository.deleteById(message.getId());
|
|
|
+ break;
|
|
|
+ case ENTERPRISE_ADD:
|
|
|
+// repository.save(message.getData());
|
|
|
+ break;
|
|
|
+ case ENTERPRISE_UPDATE:
|
|
|
+// repository.save(message.getData());
|
|
|
+ break;
|
|
|
+ case ENTERPRISE_DELETE:
|
|
|
+// repository.deleteById(message.getId());
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
// 删除
|
|
|
+ Optional<ESJobAdvertisedMergeDO> mergeDO = repository.findById(message.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void jobUpdate(Long id) {
|
|
|
+ Optional<ESJobAdvertisedMergeDO> mergeOptional = repository.findById(id);
|
|
|
+ if (!mergeOptional.isPresent()) {
|
|
|
+ log.error("ES找不到招聘职位信息 {} ", id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ESJobAdvertisedMergeDO merge = mergeOptional.get();
|
|
|
+ JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
|
|
|
+ if (null == job) {
|
|
|
+ log.error("找不到招聘职位信息 {} ", id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ EnterpriseDO enterpriseDO = enterpriseMapper.selectById(job.getEnterpriseId());
|
|
|
+
|
|
|
+ repository.save(build(job, enterpriseDO));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public ESJobAdvertisedMergeDO build(JobAdvertisedDO job, EnterpriseDO enterpriseDO) {
|
|
|
+
|
|
|
+ ESJobAdvertisedMergeDO mergeDO = JobAdvertisedConvert.INSTANCE.convert2(job);
|
|
|
+
|
|
|
+ mergeDO.setEnterpriseName(enterpriseDO.getName());
|
|
|
+ mergeDO.setEnterpriseAnotherName(enterpriseDO.getAnotherName());
|
|
|
+ mergeDO.setIndustryId(enterpriseDO.getIndustryId());
|
|
|
+ mergeDO.setLogoUrl(enterpriseDO.getLogoUrl());
|
|
|
+ mergeDO.setScale(enterpriseDO.getScale());
|
|
|
+ mergeDO.setWebsite(enterpriseDO.getWebsite());
|
|
|
+ mergeDO.setFinancingStatus(enterpriseDO.getFinancingStatus());
|
|
|
+ mergeDO.setPhone(enterpriseDO.getPhone());
|
|
|
+ mergeDO.setDevelopHistory(enterpriseDO.getDevelopHistory());
|
|
|
+ mergeDO.setContact(enterpriseDO.getContact());
|
|
|
+ mergeDO.setWelfareList(enterpriseDO.getWelfareList());
|
|
|
+ mergeDO.setAlbumList(enterpriseDO.getAlbumList());
|
|
|
+ mergeDO.setWorkTime(enterpriseDO.getWorkTime());
|
|
|
+ mergeDO.setReceivedHonors(enterpriseDO.getReceivedHonors());
|
|
|
+ mergeDO.setIntroduce(enterpriseDO.getIntroduce());
|
|
|
|
|
|
+ return mergeDO;
|
|
|
}
|
|
|
|
|
|
}
|