From 006ceba21135eb433822f8b297ebe7ced31a9427 Mon Sep 17 00:00:00 2001 From: Kris <2893855659@qq.com> Date: Wed, 2 Jul 2025 15:51:44 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E5=A2=9E=E5=8A=A0org?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=BF=9E=E6=8E=A5=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/celnet/datadump/job/OrgConfigJob.java | 26 ++++ .../datadump/service/OrgConfigService.java | 2 + .../service/impl/OrgConfigServiceImpl.java | 117 ++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 src/main/java/com/celnet/datadump/job/OrgConfigJob.java diff --git a/src/main/java/com/celnet/datadump/job/OrgConfigJob.java b/src/main/java/com/celnet/datadump/job/OrgConfigJob.java new file mode 100644 index 0000000..aa2aa08 --- /dev/null +++ b/src/main/java/com/celnet/datadump/job/OrgConfigJob.java @@ -0,0 +1,26 @@ +package com.celnet.datadump.job; + + +import com.celnet.datadump.service.OrgConfigService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class OrgConfigJob { + + @Autowired + private OrgConfigService orgConfigService; + + @XxlJob("getOrgConfigJob") + public ReturnT getOrgConfigJob(String paramStr) throws Exception { + log.info("getOrgConfigJob execute start .................."); + + orgConfigService.verifyOrgConfig(); + + return null; + } +} diff --git a/src/main/java/com/celnet/datadump/service/OrgConfigService.java b/src/main/java/com/celnet/datadump/service/OrgConfigService.java index ffe1efd..e12408a 100644 --- a/src/main/java/com/celnet/datadump/service/OrgConfigService.java +++ b/src/main/java/com/celnet/datadump/service/OrgConfigService.java @@ -9,4 +9,6 @@ import com.celnet.datadump.entity.SystemConfig; */ public interface OrgConfigService extends IService { + void verifyOrgConfig(); + } diff --git a/src/main/java/com/celnet/datadump/service/impl/OrgConfigServiceImpl.java b/src/main/java/com/celnet/datadump/service/impl/OrgConfigServiceImpl.java index 337c8b4..896d07f 100644 --- a/src/main/java/com/celnet/datadump/service/impl/OrgConfigServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/OrgConfigServiceImpl.java @@ -1,18 +1,135 @@ package com.celnet.datadump.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.celnet.datadump.config.SalesforceConnect; +import com.celnet.datadump.config.SalesforceTargetConnect; import com.celnet.datadump.entity.OrgConfig; import com.celnet.datadump.entity.SystemConfig; +import com.celnet.datadump.mapper.CustomMapper; import com.celnet.datadump.mapper.OrgConfigMapper; import com.celnet.datadump.mapper.SystemConfigMapper; import com.celnet.datadump.service.OrgConfigService; import com.celnet.datadump.service.SystemConfigService; +import com.celnet.datadump.util.EmailUtil; +import com.sforce.soap.partner.PartnerConnection; +import com.sforce.ws.ConnectionException; +import com.sforce.ws.ConnectorConfig; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * org配置表 服务实现类 */ @Service public class OrgConfigServiceImpl extends ServiceImpl implements OrgConfigService { + @Resource + private CustomMapper customerMapper; + + @Override + public void verifyOrgConfig() { + + boolean flag = true; + String sourceOrgUrl = null; + String targetOrgUrl = null; + + try { + List> poll = customerMapper.list("code,value","org_config",null); + //遍历poll,找出code值为SOURCE_ORG_URL,SOURCE_ORG_USERNAME,SOURCE_ORG_PASSWORD的value值 + Map map = new HashMap<>(); + for (Map map1 : poll) { + if ("SOURCE_ORG_URL".equals(map1.get("code"))) { + map.put("url", (String) map1.get("value")); + sourceOrgUrl = map1.get("value").toString(); + } + if ("SOURCE_ORG_USERNAME".equals(map1.get("code"))) { + map.put("username", (String) map1.get("value")); + } + if ("SOURCE_ORG_PASSWORD".equals(map1.get("code"))) { + map.put("password", String.valueOf(map1.get("value"))); + } + } + + String username = map.get("username"); + ConnectorConfig config = new ConnectorConfig(); + config.setUsername(username); + config.setPassword(map.get("password")); + String url = map.get("url"); + config.setAuthEndpoint(url); + config.setServiceEndpoint(url); + config.setConnectionTimeout(60 * 60 * 1000); + config.setReadTimeout(60 * 60 * 1000); + PartnerConnection connection = new PartnerConnection(config); + String orgId = connection.getUserInfo().getOrganizationId(); + if (StringUtils.isEmpty(orgId)){ + String message = "源ORG连接配置错误!"; + String format = String.format("ORG连接异常!, \ncause:\n%s", message); + EmailUtil.send("DataDump ERROR", format); + flag = false; + } + } catch (ConnectionException e) { + String message = "源ORG连接配置错误!"; + String format = String.format("ORG连接异常!, \ncause:\n%s", message); + EmailUtil.send("DataDump ERROR", format); + log.error("exception message", e); + flag = false; + } + + try { + List> poll = customerMapper.list("code,value","org_config",null); + //遍历poll,找出code值为TARGET_ORG_URL,TARGET_ORG_USERNAME,TARGET_ORG_PASSWORD的value值 + Map map = new HashMap<>(); + for (Map map1 : poll) { + if ("TARGET_ORG_URL".equals(map1.get("code"))) { + map.put("url", (String) map1.get("value")); + targetOrgUrl = map1.get("value").toString(); + } + if ("TARGET_ORG_USERNAME".equals(map1.get("code"))) { + map.put("username", (String) map1.get("value")); + } + if ("TARGET_ORG_PASSWORD".equals(map1.get("code"))) { + map.put("password", (String) map1.get("value")); + } + } + + String username = map.get("username"); + ConnectorConfig config = new ConnectorConfig(); + config.setUsername(username); + config.setPassword(map.get("password")); + String url = map.get("url"); + config.setAuthEndpoint(url); + config.setServiceEndpoint(url); + config.setConnectionTimeout(60 * 60 * 1000); + config.setReadTimeout(60 * 60 * 1000); + PartnerConnection connection = new PartnerConnection(config); + String orgId = connection.getUserInfo().getOrganizationId(); + if (StringUtils.isEmpty(orgId)){ + String message = "目标ORG连接配置错误!"; + String format = String.format("ORG连接异常!, \ncause:\n%s", message); + EmailUtil.send("DataDump ERROR", format); + flag = false; + } + } catch (ConnectionException e) { + String message = "目标ORG连接配置错误!"; + String format = String.format("ORG连接异常!, \ncause:\n%s", message); + EmailUtil.send("DataDump ERROR", format); + log.error("exception message", e); + flag = false; + } + + if (flag){ + String message = "源ORG与目标ORG连接配置成功!"; + String format = String.format("ORG连接成功!, \ncause:\n%s , \n源ORG地址:\n%s , \n目标ORG地址:\n%s", message,sourceOrgUrl,targetOrgUrl); + EmailUtil.send("DataDump ERROR", format); + } + + } + + }