Explorar el Código

add 迁移api

GITZYY hace 7 meses
padre
commit
81de0964d7

+ 3 - 1
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/KunMingXiaoSongShuCreditService.java

@@ -16,6 +16,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
 
 import java.util.HashMap;
@@ -27,7 +29,7 @@ import java.util.Map;
  * 昆明小松鼠API
  **/
 @Slf4j
-@Component
+@Service
 public class KunMingXiaoSongShuCreditService implements LoanDockingApi {
     @Resource
     private ProductBusinessApiInfoService apiInfoService;

+ 3 - 1
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/LeXiangRongCreditService.java

@@ -14,13 +14,15 @@ import com.hrsk.cloud.eg.vo.response.DataVo;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
 /**
  * @Author Liu Tao
  * @Date 2024 07 18 14 51
  **/
 @Slf4j
-@Component
+@Service
 public class LeXiangRongCreditService implements LoanDockingApi {
     @Resource
     private ProductBusinessApiInfoService apiInfoService;

+ 2 - 1
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/LianKeYunKongCreditService.java

@@ -16,6 +16,7 @@ import com.hrsk.cloud.eg.vo.response.DataVo;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -27,7 +28,7 @@ import java.time.Instant;
  * @Date 2024 06 19 17 49
  **/
 @Slf4j
-@Component
+@Service
 public class LianKeYunKongCreditService implements LoanDockingApi {
     @Resource
     private ProductBusinessApiInfoService apiInfoService;

+ 104 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/LiaoChengXinYiDaiCreditService.java

@@ -0,0 +1,104 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.infrastructure.utils.Md5Util;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author Liu Tao
+ * @Date 2023 08 22 09 57
+ **/
+@Slf4j
+@Service
+public class LiaoChengXinYiDaiCreditService implements LoanDockingApi {
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+
+    @Override
+    public ServerCodeEnums getType() {
+        return ServerCodeEnums.DaXiangHuaBei;
+    }
+
+    @Data
+    private static class CheckInfo{
+        private String phone;//md5 的手机号
+        private String source;//合作标识
+        private String city;//客户所在城市。比如:北京
+    }
+    @Data
+    private static class ResultHt{
+        private String code;
+        private String msg;
+        private JSONObject data;
+    }
+
+    /**
+     * 撞库 实现单个用户撞库
+     *
+     * @param userInfo
+     * @param product
+     * @return
+     *  {"source":"xy_dxhb","checkUrl":"http://api-crm.krdcrm.cn:8181/home/encryptCheckCustomer","publicKey":"hxW7zT4BI9siImpE"}
+     */
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        try {
+            log.info("credit LiaoChengXinYiDaiCreditService qualityCheck begin...userId:{}",userInfo.getUserId());
+//            XdProductJointConfig xdProductJointConfig = xdProductJointConfigMapper.selectById(product.getJointType());
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+            log.info("聊城鑫易代对接参数:{}", JSON.toJSONString(config));
+            CheckInfo checkInfo = new CheckInfo();
+            String phoneMd5 = userInfo.getPhoneMd5() == null ? Md5Util.encoderByMd5(userInfo.getUserMobile()) : userInfo.getPhoneMd5();
+            checkInfo.setPhone(phoneMd5);
+            checkInfo.setSource(config.getString("source"));
+            checkInfo.setCity(userInfo.getCompanyCity());
+            String url = config.getString("checkUrl");
+            log.info("credit qualityCheck LiaoChengXinYiDaiService request userId:{}, url:{}, CheckInfo:{}",userInfo.getUserId(), url, checkInfo);
+            String response = null;
+            try{
+                response =httpRestTemplate.restTemplate().postForObject(url,checkInfo, String.class);
+            }catch (Exception e){
+                log.error("聊城鑫易代准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck LiaoChengXinYiDaiCreditService response userId:{}, result:{}",userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(),product.getPlanName());
+            }
+            JSONObject jsonObject=JSONObject.parseObject(response);
+
+            if (jsonObject == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            if (jsonObject.getInteger("code") == 200 && jsonObject.getJSONObject("data")!=null && jsonObject.getJSONObject("data").getInteger("isRegistered")==0) {
+                return DataVo.success(0, "聊城鑫易代撞库成功", product.getPlanId());
+            } else {
+                return DataVo.fail(1, "聊城鑫易代撞库失败,请联系系统管理员", product.getPlanId());
+            }
+        } catch (Exception e) {
+            log.error("聊城鑫易代撞库失败", e);
+            return DataVo.fail(1, "聊城鑫易代撞库失败,请联系系统管理员", product.getPlanId());
+        }
+
+    }
+
+}

+ 123 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/MoGuTouCreditService.java

@@ -0,0 +1,123 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.infrastructure.utils.Md5Util;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.Instant;
+import java.util.Random;
+
+/**
+ * @Author Liu Tao
+ * @Date 2024 03 22 11 13
+ **/
+@Slf4j
+@Service
+public class MoGuTouCreditService implements LoanDockingApi {
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+
+    @Override
+    public ServerCodeEnums getType() {
+        return ServerCodeEnums.MoGuTou;
+    }
+
+    @Data
+    private static class CheckInfo{
+        private String tenantId;//企业ID
+        private String md5Code;//手机号Md5小写加密串
+        private String signature;//按照tenantId、timestamp、randomStr、系统密钥和企业密钥的顺序拼接的字符串,再通过Md5小写加密串
+        private String randomStr;//由大小写字母和数字组成的6位的随机字符串
+        private String timestamp;//时间戳,单位:毫秒
+    }
+
+
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        try {
+            log.info("credit SouYuJinFuCreditService qualityCheck begin...userId:{}", userInfo.getUserId());
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+            log.info("蘑菇投对接参数:{}", JSON.toJSONString(config));
+            CheckInfo checkInfo = new CheckInfo();
+            checkInfo.setMd5Code((userInfo.getPhoneMd5() == null ? Md5Util.encoderByMd5(userInfo.getUserMobile()) : userInfo.getPhoneMd5()));
+            checkInfo.setTenantId(config.getString("tenantId"));
+            String millisecondsSinceEpoch = String.valueOf(Instant.now().toEpochMilli());
+            checkInfo.setTimestamp(millisecondsSinceEpoch);//当前时间搓
+            checkInfo.setRandomStr(getRandomStr());//随机字符串
+            String signature=checkInfo.getTenantId()+checkInfo.getTimestamp()+checkInfo.getRandomStr()+config.getString("key")+config.getString("qykey");
+            String s = Md5Util.encoderByMd5(signature);
+            checkInfo.setSignature(s);
+            String url = config.getString("checkUrl");
+
+            log.info("credit qualityCheck MoGuTouCreditService request userId:{}, url:{}, CheckInfo:{}", userInfo.getUserId(), url, checkInfo);
+            String response = null;
+            try {
+                response =httpRestTemplate.restTemplate().postForObject(url,checkInfo, String.class);
+            } catch (Exception e) {
+                log.error("蘑菇投准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck MoGuTouCreditService response userId:{}, result:{}", userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            JSONObject jsonObject = JSONObject.parseObject(response);
+            log.info("credit qualityCheck MoGuTouCreditService response userId:{}, jsonObject:{}", userInfo.getUserId(), jsonObject);
+            if (jsonObject == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            if (jsonObject.getInteger("code")==200&&!jsonObject.getString("data").equals("duplicate")) {
+                return DataVo.success(0, "蘑菇投撞库成功", product.getPlanId());
+            } else {
+                return DataVo.fail(1, "蘑菇投撞库失败,请联系系统管理员", product.getPlanId());
+            }
+        } catch (Exception e) {
+            log.error("蘑菇投撞库失败", e);
+            return DataVo.fail(1, "授渔金服撞库失败,请联系系统管理员", product.getPlanId());
+        }
+    }
+
+    public static String getRandomStr(){
+        // 定义一个字符串,包含所有可能的字符
+        String charPool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+
+        // 创建Random对象
+        Random random = new Random();
+
+        // 使用StringBuilder来构建随机字符串
+        StringBuilder sb = new StringBuilder(6);
+
+        // 循环6次,生成6个随机字符
+        for (int i = 0; i < 6; i++) {
+            // 从charPool中随机选择一个字符
+            int index = random.nextInt(charPool.length());
+            char randomChar = charPool.charAt(index);
+
+            // 将随机字符添加到StringBuilder中
+            sb.append(randomChar);
+        }
+
+        // 将StringBuilder转换为String并输出
+        String randomString = sb.toString();
+        return randomString;
+    }
+
+}

+ 107 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/NanTongXingChengCreditService.java

@@ -0,0 +1,107 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.infrastructure.utils.Md5Util;
+import com.hrsk.cloud.eg.infrastructure.utils.RSAUtils;
+import com.hrsk.cloud.eg.infrastructure.utils.RedisUtil;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.security.interfaces.RSAPublicKey;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author Liu Tao
+ * @Date 2024 04 12 09 29
+ **/
+@Slf4j
+@Service
+public class NanTongXingChengCreditService implements LoanDockingApi {
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+    @Resource
+    private RedisUtil redisUtil;
+
+
+    @Override
+    public ServerCodeEnums getType() {
+        return ServerCodeEnums.NanTongXingChengCreditService;
+    }
+
+    @Data
+    private static class CheckInfo{
+        private String openId;//广告平台
+        private String cityCode;//城市代码
+        private String phone;
+    }
+    @Data
+    private static class Request{
+        private String data;
+    }
+
+
+
+
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        try {
+            log.info("credit NanTongXingChengCreditService qualityCheck begin...userId:{}",userInfo.getUserId());
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+            log.info("南通星辰对接参数:{}", JSON.toJSONString(config));
+            String phoneMd5 = userInfo.getPhoneMd5() == null ? Md5Util.encoderByMd5(userInfo.getUserMobile()) : userInfo.getPhoneMd5();
+            CheckInfo checkInfo = new CheckInfo();
+            checkInfo.setPhone(phoneMd5);
+            checkInfo.setOpenId(config.getString("openId"));
+            String cityCode = String.valueOf(userInfo.getCityCode());
+            String citycodes=cityCode+"000000";
+            checkInfo.setCityCode(citycodes);
+            RSAPublicKey publicKey = RSAUtils.getPublicKey(config.getString("key"));
+            String data = RSAUtils.publicEncrypt(JSON.toJSONString(checkInfo), publicKey);
+            Request request= new Request();
+            request.setData(data);
+            String url = config.getString("checkUrl");
+            log.info("credit qualityCheck NanTongXingChengCreditService request userId:{}, url:{}, CheckInfo:{}",userInfo.getUserId(), url, phoneMd5);
+            String response = null;
+            try{
+                response =httpRestTemplate.restTemplate().postForObject(url,request, String.class);
+            }catch (Exception e){
+                log.error("南通星辰准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck NanTongXingChengCreditService response userId:{}, result:{}",userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(),product.getPlanName());
+            }
+            JSONObject jsonObject=JSONObject.parseObject(response);
+            if (jsonObject == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            if (jsonObject.getString("result").equals("true")) {
+                redisUtil.set(String.format("zudai:token:%s:%s", "nantong", phoneMd5), jsonObject.getString("token"),1, TimeUnit.DAYS);
+                return DataVo.success(0, "南通星辰撞库成功", product.getPlanId());
+            } else {
+                return DataVo.fail(1, "南通星辰撞库失败,请联系系统管理员", product.getPlanId());
+            }
+        } catch (Exception e) {
+            log.error("南通星辰撞库失败", e);
+            return DataVo.fail(1, "南通星辰撞库失败,请联系系统管理员", product.getPlanId());
+        }
+    }
+
+}

+ 86 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/NiYouKeCreditService.java

@@ -0,0 +1,86 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.infrastructure.utils.Md5Util;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+
+/**
+ * @Author Liu Tao
+ * @Date 2024 06 06 13 43
+ **/
+@Slf4j
+@Service
+public class NiYouKeCreditService implements LoanDockingApi {
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+    @Override
+    public ServerCodeEnums  getType() {
+        return ServerCodeEnums.NiYouKe;
+    }
+    @Data
+    private static class CheckInfo{
+        private String channelcode;//渠道号
+        private String phone_md5;//手 机 号 md5 小 写
+        private String city;//申请人所在城市,如上海市
+        private String sign;//键按照升序组合,加上秘钥(URSolKiBSlcxUuAVtbEO)md5
+    }
+
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        try {
+            log.info("credit NiYouKeCreditService qualityCheck begin...userId:{}",userInfo.getUserId());
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+            log.info("尼优客对接参数:{}", JSONObject.toJSONString(config));
+            CheckInfo checkInfo = new CheckInfo();
+            String phoneMd5 = userInfo.getPhoneMd5() == null ? Md5Util.encoderByMd5(userInfo.getUserMobile()) : userInfo.getPhoneMd5();
+            checkInfo.setPhone_md5(phoneMd5);
+            checkInfo.setCity(userInfo.getCityAllName());
+            checkInfo.setChannelcode(config.getString("channelCode"));
+            String sign="channelcode="+config.getString("channelCode")+"&city="+checkInfo.getCity()+"&phone_md5="+phoneMd5+config.getString("appKey");
+            checkInfo.setSign(Md5Util.encoderByMd5(sign));
+            String url = config.getString("checkUrl");
+            log.info("credit qualityCheck NiYouKeCreditService request userId:{}, url:{}, CheckInfo:{}",userInfo.getUserId(), url, checkInfo);
+            String response = null;
+            try{
+                response =httpRestTemplate.restTemplate().postForObject(url,checkInfo, String.class);
+            }catch (Exception e){
+                log.error("尼优客准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck NiYouKeCreditService response userId:{}, result:{}",userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(),product.getPlanName());
+            }
+            JSONObject jsonObject=JSONObject.parseObject(response);
+
+            if (jsonObject == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            if (jsonObject.getInteger("code") == 200) {
+                return DataVo.success(0, "尼优客撞库成功", product.getPlanId());
+            } else {
+                return DataVo.fail(1, "尼优客撞库失败,请联系系统管理员", product.getPlanId());
+            }
+        } catch (Exception e) {
+            log.error("尼优客撞库失败", e);
+            return DataVo.fail(1, "尼优客撞库失败,请联系系统管理员", product.getPlanId());
+        }
+    }
+
+}

+ 101 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/NingBoTianChengCreditService.java

@@ -0,0 +1,101 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.infrastructure.utils.Md5Util;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+
+/**
+ * @Author Liu Tao
+ * @Date 2023 10 23 16 56
+ * 宁波天澄API对接
+ **/
+@Slf4j
+@Component
+public class NingBoTianChengCreditService implements LoanDockingApi {
+
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+    @Override
+    public ServerCodeEnums getType() {
+        return ServerCodeEnums.NingBoTianCheng;
+    }
+
+    @Data
+    private static class CheckInfo{
+        private String mobile;//md5 的手机号
+        private String file_id;
+    }
+    @Data
+    private static class ResultHt{
+        private String code;
+        private String msg;
+        private JSONObject data;
+    }
+
+
+    /**
+     * 撞库 实现单个用户撞库
+     *
+     * @param userInfo
+     * @param product
+     * @return
+     *
+     */
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        try {
+            log.info("credit NingBoTianChengCreditService qualityCheck begin...userId:{}",userInfo.getUserId());
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+            log.info("宁波天澄对接参数:{}", JSON.toJSONString(config));
+            CheckInfo checkInfo = new CheckInfo();
+            String phoneMd5 = userInfo.getPhoneMd5() == null ? Md5Util.encoderByMd5(userInfo.getUserMobile()) : userInfo.getPhoneMd5();
+            checkInfo.setMobile(phoneMd5);
+            checkInfo.setFile_id(config.getString("file_id"));
+            String url = config.getString("checkUrl");
+            log.info("credit qualityCheck NingBoTianChengCreditService request userId:{}, url:{}, CheckInfo:{}",userInfo.getUserId(), url, checkInfo);
+            String response = null;
+            try{
+                response =httpRestTemplate.restTemplate().postForObject(url,checkInfo, String.class);
+            }catch (Exception e){
+                log.error("宁波天澄准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck NingBoTianChengCreditService response userId:{}, result:{}",userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(),product.getPlanName());
+            }
+            JSONObject jsonObject=JSONObject.parseObject(response);
+
+            if (jsonObject == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            if (jsonObject.getInteger("code") == 0) {
+                return DataVo.success(0, "宁波天澄撞库成功", product.getPlanId());
+            } else {
+                return DataVo.fail(1, "宁波天澄撞库失败,请联系系统管理员", product.getPlanId());
+            }
+        } catch (Exception e) {
+            log.error("宁波天澄撞库失败", e);
+            return DataVo.fail(1, "宁波天澄撞库失败,请联系系统管理员", product.getPlanId());
+        }
+
+    }
+
+}

+ 94 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/OpenApiAesCreditService.java

@@ -0,0 +1,94 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Objects;
+
+/**
+ * @Author Liu Tao
+ * @Date 2024 08 29 14 20
+ **/
+@Slf4j
+@Service
+public class OpenApiAesCreditService implements LoanDockingApi {
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+    private final static String IV="go9yPim47avSQZ8m";
+
+
+    @Data
+    private static class CheckInfo {
+        private String channelCode = "hrsk";
+
+        private String city;
+
+        private String phoneMd5;
+    }
+
+    @Data
+    private static class Result {
+        private Integer code;
+        private String msg;
+        private JSONObject data;
+    }
+
+
+
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        log.info("credit OpenApiAesCreditService qualityCheck begin...userId:{}", userInfo.getUserId());
+        try {
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            String configJson = apiInfo.getThreeSystemConfig();
+            JSONObject config = JSONObject.parseObject(configJson);
+
+            String url = config.getString("checkUrl");
+
+            CheckInfo checkInfo = new CheckInfo();
+            checkInfo.setPhoneMd5(userInfo.getPhoneMd5());
+            checkInfo.setCity(userInfo.getCompanyCity());
+            log.info("credit qualityCheck OpenApiAesCreditService request userId:{}, url:{}, CheckInfo:{}", userInfo.getUserId(), url, checkInfo);
+            Result response = null;
+            try {
+                response = httpRestTemplate.restTemplate().postForObject(url, checkInfo, Result.class);
+            } catch (Exception e) {
+                log.error("OpenAPI准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck OpenApiAesCreditService response userId:{}, result:{}", userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            return Objects.equals(0, response.getCode()) && Objects.equals(0, response.getData().getInteger("status")) ?
+                   DataVo.success(0, "OpenAPI撞库成功", product.getPlanId())
+                    : DataVo.fail(response.getMsg(), product.getPlanId());
+
+        } catch (Exception e) {
+            log.error("OpenAPI撞库失败", e);
+            return DataVo.fail(1, "OpenAPI撞库失败,请联系系统管理员", product.getPlanId());
+        }
+    }
+
+
+
+    @Override
+    public ServerCodeEnums  getType() {
+        return ServerCodeEnums.OPEN_API_AES;
+    }
+
+}
+

+ 95 - 0
egress-gateway-service-app/src/main/java/com/hrsk/cloud/eg/app/threedocking/impl/OpenApiCreditService.java

@@ -0,0 +1,95 @@
+package com.hrsk.cloud.eg.app.threedocking.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hrsk.cloud.eg.app.constant.ServerCodeEnums;
+import com.hrsk.cloud.eg.app.threedocking.LoanDockingApi;
+import com.hrsk.cloud.eg.dto.data.egPlan.PlanDto;
+import com.hrsk.cloud.eg.dto.data.user.UserInBaseInfoDto;
+import com.hrsk.cloud.eg.infrastructure.config.client.config.RetryRestTemplate;
+import com.hrsk.cloud.eg.infrastructure.repository.database.entity.ProductBusinessApiInfoDo;
+import com.hrsk.cloud.eg.infrastructure.service.ProductBusinessApiInfoService;
+import com.hrsk.cloud.eg.vo.response.DataVo;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Objects;
+
+/**
+ * @Descrption
+ * @Author: chend
+ * @Date: 2023/2/27
+ * @Version V1.0
+ **/
+@Slf4j
+@Service
+public class OpenApiCreditService implements LoanDockingApi {
+
+    @Resource
+    private ProductBusinessApiInfoService apiInfoService;
+
+    @Resource
+    private RetryRestTemplate httpRestTemplate;
+
+    private final static String IV="go9yPim47avSQZ8m";
+
+
+    @Data
+    private static class CheckInfo {
+        private String channelCode = "hrsk";
+
+        private String city;
+
+        private String phoneMd5;
+    }
+
+    @Data
+    private static class Result {
+        private Integer code;
+        private String msg;
+        private JSONObject data;
+    }
+
+
+
+    @Override
+    public DataVo qualityCheck(UserInBaseInfoDto userInfo, PlanDto product) {
+        log.info("credit OpenApiCreditService qualityCheck begin...userId:{}", userInfo.getUserId());
+        try {
+            ProductBusinessApiInfoDo apiInfo = apiInfoService.getById(product.getApiId());
+            if (StringUtils.isAnyEmpty(apiInfo.getOpenapiCheckUrl(), apiInfo.getOpenapiAccessKeySecret())) {
+                return DataVo.fail(product.getPlanName(), product.getPlanId());
+            }
+            CheckInfo checkInfo = new CheckInfo();
+            checkInfo.setPhoneMd5(userInfo.getPhoneMd5());
+            checkInfo.setCity(userInfo.getCompanyCity());
+            String url = apiInfo.getOpenapiCheckUrl();
+            log.info("credit qualityCheck OpenApiCreditService request userId:{}, url:{}, CheckInfo:{}", userInfo.getUserId(), url, checkInfo);
+            Result response = null;
+            try {
+                response = httpRestTemplate.restTemplate().postForObject(url, checkInfo, Result.class);
+            } catch (Exception e) {
+                log.error("OpenAPI准入异常,异常信息:{}", e.getMessage(), e);
+            }
+            log.info("credit qualityCheck OpenApiCreditService response userId:{}, result:{}", userInfo.getUserId(), response);
+            if (response == null) {
+                return DataVo.timeout(product.getPlanId(), product.getPlanName());
+            }
+            return Objects.equals(0, response.getCode()) && Objects.equals(0, response.getData().getInteger("status")) ?
+                    DataVo.success(0, "OpenAPI撞库成功", product.getPlanId())
+                    : DataVo.fail(response.getMsg(), product.getPlanId());
+
+        } catch (Exception e) {
+            log.error("OpenAPI撞库失败", e);
+            return DataVo.fail(1, "OpenAPI撞库失败,请联系系统管理员", product.getPlanId());
+        }
+    }
+
+
+    @Override
+    public ServerCodeEnums  getType() {
+        return ServerCodeEnums.OPEN_API;
+    }
+
+}