Kaynağa Gözat

Merge branch 'feature_xingjihuichuancallback_20250828'

wanxc 2 ay önce
ebeveyn
işleme
bc0d35a8b8

+ 33 - 5
src/main/java/com/tiangua/star/controller/Md5CallBackController.java

@@ -1,7 +1,9 @@
 package com.tiangua.star.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.tiangua.kirin.api.MessageResult;
+import com.tiangua.star.model.ProductBusInessApiDto;
 import com.tiangua.star.model.XdOrderDto;
 import com.tiangua.star.service.CallBackService;
 import com.tiangua.star.service.XinLuService;
@@ -16,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-
+import java.util.stream.Collectors;
 
 
 /**
@@ -36,14 +38,40 @@ public class Md5CallBackController {
     private CallBackService callBackService;
 
     @PostMapping("/request")
-    public MessageResult<Integer> request(@RequestBody Map<String,List<XdOrderDto>> map) {
-        log.info("md5GainStarData get begin map{}",map);
-        List<XdOrderDto> data = map.get("data");
+    public MessageResult<Integer> request(@RequestBody JSONObject jsonObject) {
+        //从 jsonObject 中获取 "md5手机号" 对应的 JSON 数组
+        JSONObject object = jsonObject.getJSONObject("orderDtoList");
+        Map<String, List<XdOrderDto>> orderDtoMap = object.toJavaObject(
+                new TypeReference<Map<String, List<XdOrderDto>>>() {}
+        );
+        log.info("md5GainStarData get begin map{}",orderDtoMap);
+        List<XdOrderDto> data = orderDtoMap.get("data");
+        //List<XdOrderDto> data = map.get("data");
         if (CollectionUtils.isEmpty(data)) {
             log.info("md5GainStarData 解析回传数据为null");
             return MessageResult.ok();
         }
-        callBackService.processInstitutionData(data);
+
+        // 1. 从 jsonObject 中获取 "星级配置starConfig" 对应的 JSON 数组
+        Object starConfigObj = jsonObject.get("starConfig");
+
+        // 2. 转换为 List<ProductBusInessApiDto> 类型
+        List<ProductBusInessApiDto> starConfigList = JSONObject.parseObject(
+                JSONObject.toJSONString(starConfigObj),  // 先转为JSON字符串
+                new TypeReference<List<ProductBusInessApiDto>>() {}  // 指定目标泛型类型
+        );
+
+        Map<String, String> resultMap = starConfigList.stream()
+                // 过滤出 isStarMapping 为 1 的元素
+                .filter(dto -> dto.getIsStarMapping() != null && dto.getIsStarMapping() == 1)
+                // 转换为 Map:键为 busiId,值为 starMappingConfig
+                .collect(Collectors.toMap(
+                        ProductBusInessApiDto::getBusiId,  // 键:busiId
+                        ProductBusInessApiDto::getStarMappingConfig,  // 值:starMappingConfig
+                        // 处理 key 重复的情况(如果存在相同 busiId,保留第一个值)
+                        (existingValue, newValue) -> existingValue
+                ));
+        callBackService.processInstitutionData(data,resultMap);
         log.info("md5GainStarData get end");
         return MessageResult.ok();
     }

+ 33 - 4
src/main/java/com/tiangua/star/controller/XinLuController.java

@@ -1,7 +1,10 @@
 package com.tiangua.star.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.tiangua.kirin.api.MessageResult;
+import com.tiangua.star.model.ProductBusInessApiDto;
+import com.tiangua.star.model.XdOrderDto;
 import com.tiangua.star.service.XinLuService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -13,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author
@@ -31,14 +35,39 @@ public class XinLuController {
     private XinLuService xinLuService;
 
     @PostMapping("/request")
-    public MessageResult<Integer> request(@RequestBody Map<String,List<JSONObject>> map) {
-        log.info("xinlu get begin map{}",map);
-        List<JSONObject> data = map.get("data");
+    public MessageResult<Integer> request(@RequestBody JSONObject jsonObject) {
+        log.info("xinlu get begin map{}",jsonObject);
+//        List<JSONObject> data = map.get("data");
+        JSONObject object = jsonObject.getJSONObject("orderDtoList");
+        Map<String, List<JSONObject>> orderDtoMap = object.toJavaObject(
+                new TypeReference<Map<String, List<JSONObject>>>() {}
+        );
+        List<JSONObject> data = orderDtoMap.get("data");
         if (CollectionUtils.isEmpty(data)) {
             log.info("xinlu 解析回传数据为null");
             return MessageResult.ok();
         }
-        xinLuService.processInstitutionData(data);
+        // 1. 从 jsonObject 中获取 "星级配置starConfig" 对应的 JSON 数组
+        Object starConfigObj = jsonObject.get("starConfig");
+
+        // 2. 转换为 List<ProductBusInessApiDto> 类型
+        List<ProductBusInessApiDto> starConfigList = JSONObject.parseObject(
+                JSONObject.toJSONString(starConfigObj),  // 先转为JSON字符串
+                new TypeReference<List<ProductBusInessApiDto>>() {}  // 指定目标泛型类型
+        );
+
+        Map<String, String> resultMap = starConfigList.stream()
+                // 过滤出 isStarMapping 为 1 的元素
+                .filter(dto -> dto.getIsStarMapping() != null && dto.getIsStarMapping() == 1)
+                // 转换为 Map:键为 busiId,值为 starMappingConfig
+                .collect(Collectors.toMap(
+                        ProductBusInessApiDto::getBusiId,  // 键:busiId
+                        ProductBusInessApiDto::getStarMappingConfig,  // 值:starMappingConfig
+                        // 处理 key 重复的情况(如果存在相同 busiId,保留第一个值)
+                        (existingValue, newValue) -> existingValue
+                ));
+
+        xinLuService.processInstitutionData(data,resultMap);
         log.info("xinlu get end");
         return MessageResult.ok();
     }

+ 23 - 0
src/main/java/com/tiangua/star/model/ProductBusInessApiDto.java

@@ -0,0 +1,23 @@
+package com.tiangua.star.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ProductBusInessApiDto implements Serializable {
+    @ApiModelProperty(value = "商户编号")
+    private String busiId;
+    @ApiModelProperty(value = "是否星级映射0:无;1:有")
+    private Integer isStarMapping;
+
+    @ApiModelProperty(value = "星级回传映射参数")
+    private String starMappingConfig;
+
+    public ProductBusInessApiDto(String busiId, Integer  isStarMapping, String starMappingConfig) {
+        this.busiId = busiId;
+        this.isStarMapping = isStarMapping;
+        this.starMappingConfig = starMappingConfig;
+    }
+}

+ 1 - 0
src/main/java/com/tiangua/star/model/XdOrderDto.java

@@ -10,6 +10,7 @@ public class XdOrderDto implements Serializable {
     private String productBizId;
     private String mobileMd5;
 
+
     public XdOrderDto(String productBizId, String mobileMd5) {
         this.productBizId = productBizId;
         this.mobileMd5 = mobileMd5;

+ 2 - 1
src/main/java/com/tiangua/star/service/CallBackService.java

@@ -5,9 +5,10 @@ import com.tiangua.star.model.ThirdStarDto;
 import com.tiangua.star.model.XdOrderDto;
 
 import java.util.List;
+import java.util.Map;
 
 public interface CallBackService {
-    void processInstitutionData(List<XdOrderDto> xdOrderDtos);
+    void processInstitutionData(List<XdOrderDto> xdOrderDtos, Map<String, String> resultMap);
 
     void thirdProcessInstitutionData(List<ThirdStarDto> thirdStarDtos);
 

+ 2 - 1
src/main/java/com/tiangua/star/service/XinLuService.java

@@ -3,7 +3,8 @@ package com.tiangua.star.service;
 import com.alibaba.fastjson.JSONObject;
 
 import java.util.List;
+import java.util.Map;
 
 public interface XinLuService {
-    void processInstitutionData(List<JSONObject> jsonObjects);
+    void processInstitutionData(List<JSONObject> jsonObjects, Map<String, String> resultMap);
 }

+ 245 - 92
src/main/java/com/tiangua/star/service/impl/CasllBackDataProcessor.java

@@ -46,7 +46,7 @@ public class CasllBackDataProcessor implements CallBackService {
      * 处理机构数据入口
      */
     @Override
-    public void processInstitutionData(List<XdOrderDto> xdOrderDtos) {
+    public void processInstitutionData(List<XdOrderDto> xdOrderDtos,Map<String, String> resultMap) {
         Map<String, List<String>> groupedByBusiId = xdOrderDtos.stream()
                 .collect(Collectors.groupingBy(
                         XdOrderDto::getProductBizId,
@@ -83,7 +83,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeLSDJC="21180";
                         String accessKeyLSDJC="3438EBF8-95AC-4739-8B32-59D273D38689";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeLSDJC,accessKeyLSDJC,"乐山都聚财信息技术咨询有限公司",md5ListLSDJC);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeLSDJC,accessKeyLSDJC,"乐山都聚财信息技术咨询有限公司",md5ListLSDJC,resultMap);
                         break;
                     case Commercial_LSDJ://乐山都聚财信息技术咨询有限公司
                         List<String> md5ListLSDJ = callBackMap.get(productBizId);
@@ -106,7 +106,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeSCNAZC="21180";
                         String accessKeySCNAZC="818DF3C7-0B11-4043-B7ED-84508F2C00EF";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeSCNAZC,accessKeySCNAZC,"四川诺安至诚信息科技有限公司",md5ListSCNAZC);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeSCNAZC,accessKeySCNAZC,"四川诺安至诚信息科技有限公司",md5ListSCNAZC,resultMap);
                         break;
                     case Commercial_SCNA://四川诺安至诚信息科技有限公司
                         List<String> md5ListSCNA = callBackMap.get(productBizId);
@@ -128,7 +128,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelType="21160";
                         String accessKey="4A79FD90-DA94-4D4B-AECD-BC48CD418970";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelType,accessKey,"弘盛信息咨询有限公司",md5ListGZWA);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelType,accessKey,"弘盛信息咨询有限公司",md5ListGZWA,resultMap);
                         break;
                     case Commercial_TSSX://唐山硕鑫科技有限公司
                         List<String> md5ListTSSX = callBackMap.get(productBizId);
@@ -139,7 +139,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeTSSX="21540";
                         String accessKeyTSSX="5D3842E0-7A2E-4077-8985-16F9782A0950";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeTSSX,accessKeyTSSX,"唐山硕鑫科技有限公司",md5ListTSSX);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeTSSX,accessKeyTSSX,"唐山硕鑫科技有限公司",md5ListTSSX,resultMap);
                         break;
                     case Commercial_SZRJX://苏州荣聚鑫科技有限公司
                         List<String> md5ListSZRJX = callBackMap.get(productBizId);
@@ -150,7 +150,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeSZRJX="21540";
                         String accessKeySZRJX="8AF3F228-913D-4430-883A-2CEA88D8657E";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeSZRJX,accessKeySZRJX,"苏州荣聚鑫科技有限公司",md5ListSZRJX);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeSZRJX,accessKeySZRJX,"苏州荣聚鑫科技有限公司",md5ListSZRJX,resultMap);
                         break;
                     case Commercial_GZXX://广州星象信息科技有限公司
                         List<String> md5ListGZXX = callBackMap.get(productBizId);
@@ -161,7 +161,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeGZXX="21540";
                         String accessKeyGZXX="8620FAD8-775C-4416-BB10-1486F008D2AA";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeGZXX,accessKeyGZXX,"广州星象信息科技有限公司",md5ListGZXX);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeGZXX,accessKeyGZXX,"广州星象信息科技有限公司",md5ListGZXX,resultMap);
                         break;
                     case Commercial_YBDSHY://延边鼎晟合盈企业管理有限公司
                         List<String> md5ListYBDSHY = callBackMap.get(productBizId);
@@ -172,7 +172,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String channelTypeYBDSHY="21540";
                         String accessKeyYBDSHY="73F3F2EB-1687-44A2-B647-4C00B8DDB77A";
                         sendGetRequestGZWA(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeYBDSHY,accessKeyYBDSHY,"延边鼎晟合盈企业管理有限公司",md5ListYBDSHY);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),channelTypeYBDSHY,accessKeyYBDSHY,"延边鼎晟合盈企业管理有限公司",md5ListYBDSHY,resultMap);
                         break;
                     case Commercial_XNLJKJ://西宁蓝鲸优享科技有限公司
                         List<String> md5ListXNLJKJ = callBackMap.get(productBizId);
@@ -181,7 +181,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"西宁蓝鲸优享科技有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"西宁蓝鲸优享科技有限公司",resultMap);
                         break;
                     case Commercial_CQHYJF://重庆寰宇金福信息科技有限公司
                         List<String> md5ListCQHYJF = callBackMap.get(productBizId);
@@ -190,7 +190,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"重庆寰宇金福信息科技有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"重庆寰宇金福信息科技有限公司",resultMap);
                         break;
                     case Commercial_SRLF://速融(廊坊)信息咨询服务有限公司
                         List<String> md5ListSRLF = callBackMap.get(productBizId);
@@ -199,7 +199,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"速融(廊坊)信息咨询服务有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"速融(廊坊)信息咨询服务有限公司",resultMap);
                         break;
                     case Commercial_NJCXS://南京诚享顺科技有限公司
                         List<String> md5ListNJCXS = callBackMap.get(productBizId);
@@ -208,7 +208,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"南京诚享顺科技有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"南京诚享顺科技有限公司",resultMap);
                         break;
                     case Commercial_HS://弘盛信息咨询有限公司
                         List<String> md5ListHS = callBackMap.get(productBizId);
@@ -217,7 +217,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"弘盛信息咨询有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"弘盛信息咨询有限公司",resultMap);
                         break;
                     case Commercial_JXJJG://4514江西聚金阁
                         List<String> md5ListJXJJG = callBackMap.get(productBizId);
@@ -226,7 +226,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestJXJJG(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),md5ListJXJJG);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),md5ListJXJJG,resultMap);
                         break;
                     case Commercial_SZYC://苏州央创
                         List<String> md5ListSZYC = callBackMap.get(productBizId);
@@ -235,7 +235,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"苏州央创");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"苏州央创",resultMap);
                         break;
                     case Commercial_SXJLHJ2://陕西聚隆汇金(二店)
                         List<String> md5ListSXJLHJ2 = callBackMap.get(productBizId);
@@ -244,7 +244,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"陕西聚隆汇金(二店)");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"陕西聚隆汇金(二店)",resultMap);
                         break;
                     case Commercial_SXJLHJ://陕西聚隆汇金
                         List<String> md5ListSXJLHJ = callBackMap.get(productBizId);
@@ -253,7 +253,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"陕西聚隆汇金");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"陕西聚隆汇金",resultMap);
                         break;
                     case Commercial_JXJL://嘉兴聚联
                         List<String> md5ListJXJL = callBackMap.get(productBizId);
@@ -262,7 +262,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"嘉兴聚联");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"嘉兴聚联",resultMap);
                         break;
                     case Commercial_JDPHAJ://广州金贷普惠按揭服务有限公司
                         List<String> md5ListJDPHAJ = callBackMap.get(productBizId);
@@ -271,7 +271,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"广州金贷普惠按揭服务有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"广州金贷普惠按揭服务有限公司",resultMap);
                         break;
                     case Commercial_NXCX://宁夏簇鑫科技有限公司
                         List<String> md5ListNXCX = callBackMap.get(productBizId);
@@ -280,7 +280,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"宁夏簇鑫科技有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"宁夏簇鑫科技有限公司",resultMap);
                         break;
                     case Commercial_CDHJT://成都汇锦通创商务信息咨询服务有限公司
                         List<String> md5ListCDHJT = callBackMap.get(productBizId);
@@ -289,7 +289,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"成都汇锦通创商务信息咨询服务有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"成都汇锦通创商务信息咨询服务有限公司",resultMap);
                         break;
                     case Commercial_HBSY://湖北十堰华融信息咨询有限公司
                         List<String> md5ListHBSY = callBackMap.get(productBizId);
@@ -298,7 +298,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"湖北十堰华融信息咨询有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"湖北十堰华融信息咨询有限公司",resultMap);
                         break;
                     case Commercial_CD://成都蓉鑫诚商有限公司
                         List<String> md5ListCD = callBackMap.get(productBizId);
@@ -307,7 +307,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"成都蓉鑫诚商有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"成都蓉鑫诚商有限公司",resultMap);
                         break;
                     case Commercial_QT://齐泰圣鑫有限公司
                         List<String> md5ListQt = callBackMap.get(productBizId);
@@ -316,7 +316,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"齐泰圣鑫有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"齐泰圣鑫有限公司",resultMap);
                         break;
                     case Commercial_HZ:
                         List<String> md5ListHz = callBackMap.get(productBizId);
@@ -325,7 +325,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"杭州聚壹融商务信息咨询有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"杭州聚壹融商务信息咨询有限公司",resultMap);
                         break;
                     case Commercial_NBHX:
                         List<String> md5ListNBHX = callBackMap.get(productBizId);
@@ -334,7 +334,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"宁波垣信信息科技有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"宁波垣信信息科技有限公司",resultMap);
                         break;
                     case Commercial_BJQN:
                         List<String> md5ListBJQN = callBackMap.get(productBizId);
@@ -343,7 +343,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"北京签牛企业管理咨询有限公司");
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),"北京签牛企业管理咨询有限公司",resultMap);
                         break;
                     case Commercial_FOSHAN:
                         List<String> md5ListFS = callBackMap.get(productBizId);
@@ -352,7 +352,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestFoShan(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(), md5ListFS);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(), md5ListFS,resultMap);
                         break;
 //                    case Commercial_HLJJC:
 //                        List<String> md5ListHLJJC = callBackMap.get(productBizId);
@@ -370,7 +370,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestCQYXJ(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),md5ListCQYXJ,"1D4C6329-399F-42CA-AC0C-236E0B048AD0",21540);
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),md5ListCQYXJ,"1D4C6329-399F-42CA-AC0C-236E0B048AD0",21540,resultMap);
                         break;
                     case Commercial_SXRKX:
                         List<String> md5ListSXRKX = callBackMap.get(productBizId);
@@ -379,7 +379,7 @@ public class CasllBackDataProcessor implements CallBackService {
                             return;
                         }
                         sendGetRequestSXRKX(commercialCallBackReadyEnum.getCode(),
-                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl());
+                                commercialCallBackReadyEnum.getBusid(),commercialCallBackReadyEnum.getUrl(),resultMap);
                         break;
 //                    case Commercial_XJZZ:
 //                        List<String> md5ListXJZZ = callBackMap.get(busiId);
@@ -400,7 +400,7 @@ public class CasllBackDataProcessor implements CallBackService {
                         String[] split = url.split(";");
                         for (String urlTemp : split) {
                             sendGetRequestHz(commercialCallBackReadyEnum.getCode(),
-                                    commercialCallBackReadyEnum.getBusid(),urlTemp,"重庆众诚");
+                                    commercialCallBackReadyEnum.getBusid(),urlTemp,"重庆众诚",resultMap);
                         }
                         break;
 //                    case Commercial_Test:
@@ -501,7 +501,7 @@ public class CasllBackDataProcessor implements CallBackService {
 }
 
 
-    private void sendGetRequestSXRKX(String productBizId,String busiId,String url){
+    private void sendGetRequestSXRKX(String productBizId,String busiId,String url,Map<String, String> resultMap){
         JSONObject param = SignUtil.generateSign(81, 43, "730969D3F673BA42432C574378B9A8F1");
         log.info("busiId:{},:山西瑞凯鑫 url:{} ,jsonString:{}" ,busiId, url,param);
         String responseStr = HttpClientThreeUtil.post(url, JSON.toJSONString(param));
@@ -514,13 +514,32 @@ public class CasllBackDataProcessor implements CallBackService {
                 log.info("busiId:{} 山西瑞凯鑫 list为空 没有星级数据", busiId);
                 return;
             }
+            String s = resultMap.get(busiId);
+            JSONObject object = JSON.parseObject(s);
             for (int i = 0; i < list.size(); i++) {
                 JSONObject item = list.getJSONObject(i);
                 CustomerFollowup customerFollowup = new CustomerFollowup();
                 customerFollowup.setBusiId(busiId);
                 customerFollowup.setProductBizId(Integer.parseInt(productBizId));
                 customerFollowup.setCustomerName(item.getString("name"));
-                customerFollowup.setStarLevel(new BigDecimal(item.getIntValue("stars")));
+                String stars = object.getString("stars");
+                if (StringUtils.isEmpty(stars)) {
+                    log.info("busiId:{} companyName {}, mobile_md5{} 没有填星级:", busiId, "山西瑞凯鑫" ,customerFollowup.getPhoneMd5());
+                    continue;
+                }else {
+                    if (s==null){
+                        customerFollowup.setStarLevel(new BigDecimal(stars));
+                    }else {
+                        Map<String, String> starMap = JSON.parseObject(object.toString(), Map.class);
+                        String level = starMap.get(stars);
+                        if (StringUtils.isEmpty(level)) {
+                            customerFollowup.setStarLevel(new BigDecimal(stars));
+                        }else{
+                            customerFollowup.setStarLevel(new BigDecimal(level));
+                        }
+                    }
+                }
+//                customerFollowup.setStarLevel(new BigDecimal(item.getIntValue("stars")));
                 customerFollowup.setFollowStatus(item.getString("statusStr"));
                 customerFollowup.setFollowRemark(item.getString("remark"));
                 String mobile = item.getString("mobile");
@@ -540,7 +559,7 @@ public class CasllBackDataProcessor implements CallBackService {
         log.info("busiId:{} 山西瑞凯鑫 处理数据条:{}", busiId, followupList.size());
         handleMappedData(busiId,followupList);
     }
-    private  void sendGetRequestCQYXJ(String productBizId,String busiId,String url,List<String> md5ListCQYXJ,String accessKey,Integer channelType){
+    private  void sendGetRequestCQYXJ(String productBizId,String busiId,String url,List<String> md5ListCQYXJ,String accessKey,Integer channelType,Map<String, String> resultMap){
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("accessKey", accessKey);
         jsonObject.put("channelType", channelType);
@@ -561,7 +580,8 @@ public class CasllBackDataProcessor implements CallBackService {
             log.info("busiId:{},:重庆优兴嘉 今天没有星级数据",busiId);
             return;
         }
-
+        String s = resultMap.get(busiId);
+        JSONObject object = JSON.parseObject(s);
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject obj = dataArray.getJSONObject(i);
             CustomerFollowup followup = new CustomerFollowup();
@@ -575,18 +595,48 @@ public class CasllBackDataProcessor implements CallBackService {
                 log.info("busiId:{} 重庆优兴嘉 mobile_md5{} 没有填星级:", busiId, followup.getPhoneMd5());
                 continue;
             } else {
-                if ("0".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(0));
-                } else if ("10".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(1));
-                }else if ("20".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(2));
-                }else if ("30".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(3));
-                }else if ("40".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(4));
-                }else if ("50".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(5));
+                if (s==null){//没有配置映射
+                    if ("0".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(0));
+                    } else if ("10".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(1));
+                    }else if ("20".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(2));
+                    }else if ("30".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(3));
+                    }else if ("40".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(4));
+                    }else if ("50".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(5));
+                    }
+                }else {
+                    //{  客户  :  我方
+                    //	"1星": "5星",
+                    //	"2星": "4星",
+                    //	"3星": "3星",
+                    //	"4星": "2星",
+                    //	"5星": "1星"
+                    //}
+                    Map<String, String> starMap = JSON.parseObject(object.toString(), Map.class);
+                    String level = starMap.get(star);
+                    if (StringUtils.isEmpty(level)) {
+                        if ("0".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(0));
+                        } else if ("10".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(1));
+                        }else if ("20".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(2));
+                        }else if ("30".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(3));
+                        }else if ("40".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(4));
+                        }else if ("50".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(5));
+                        }
+                    }else {
+                        followup.setStarLevel(new BigDecimal(level));
+                    }
+
                 }
             }
             followupList.add(followup);
@@ -601,7 +651,7 @@ public class CasllBackDataProcessor implements CallBackService {
 
     }
 
-    private  void sendGetRequestJXJJG(String productBizId,String busiId,String url,List<String> md5ListJXJJG){
+    private  void sendGetRequestJXJJG(String productBizId,String busiId,String url,List<String> md5ListJXJJG,Map<String, String> resultMap){
 
         StringBuilder stringBuilder = new StringBuilder();
         Map<String, String> map = new HashMap<>();
@@ -630,7 +680,8 @@ public class CasllBackDataProcessor implements CallBackService {
             log.info("busiId:{},:江西聚金阁 今天没有星级数据",busiId);
             return;
         }
-
+        String s = resultMap.get(busiId);
+        JSONObject jsonObject = JSON.parseObject(s);
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject obj = dataArray.getJSONObject(i);
             CustomerFollowup followup = new CustomerFollowup();
@@ -644,19 +695,43 @@ public class CasllBackDataProcessor implements CallBackService {
                 log.info("busiId:{} 江西聚金阁 mobile_md5{} 没有填星级:", busiId, followup.getPhoneMd5());
                 continue;
             } else {
-                if ("0".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(0));
-                } else if ("1".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(1));
-                }else if ("2".equals(star) || "3".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(2));
-                }else if ("4".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(3));
-                }else if ("5".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(4));
-                }else if ("6".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(5));
+                if (s==null){
+                    if ("0".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(0));
+                    } else if ("1".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(1));
+                    }else if ("2".equals(star) || "3".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(2));
+                    }else if ("4".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(3));
+                    }else if ("5".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(4));
+                    }else if ("6".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(5));
+                    }
+                }else {
+                    Map<String, String> starMap = JSON.parseObject(jsonObject.toString(), Map.class);
+                    String level = starMap.get(star);
+                    if (StringUtils.isEmpty(level)) {
+                        if ("0".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(0));
+                        } else if ("1".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(1));
+                        }else if ("2".equals(star) || "3".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(2));
+                        }else if ("4".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(3));
+                        }else if ("5".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(4));
+                        }else if ("6".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(5));
+                        }
+                    }else {
+                        followup.setStarLevel(new BigDecimal(level));
+                    }
+
                 }
+
             }
             followupList.add(followup);
         }
@@ -669,7 +744,7 @@ public class CasllBackDataProcessor implements CallBackService {
         handleMappedData(busiId,followupList);
 
     }
-    private void sendGetRequestFoShan(String productBizId,String busiId,String url,List<String> md5ListFS){
+    private void sendGetRequestFoShan(String productBizId,String busiId,String url,List<String> md5ListFS,Map<String, String> resultMap){
         List<Map<String, String>> jsonList = new ArrayList<>();
         for (String md5 : md5ListFS) {
             Map<String, String> map = new HashMap<>();
@@ -693,7 +768,8 @@ public class CasllBackDataProcessor implements CallBackService {
             log.info("busiId:{},:佛山市创智盈通企业管理有限公司 今天没有星级数据",busiId);
             return;
         }
-
+        String s = resultMap.get(busiId);
+        JSONObject jsonObject = JSON.parseObject(s);
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject obj = dataArray.getJSONObject(i);
             CustomerFollowup followup = new CustomerFollowup();
@@ -707,19 +783,43 @@ public class CasllBackDataProcessor implements CallBackService {
                 log.info("busiId:{} 佛山创智盈通企业管理有限公司 mobile_md5{} 没有填星级:", busiId, followup.getPhoneMd5());
                 continue;
             } else {
-                if ("0星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(0));
-                } else if ("1星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(1));
-                }else if ("2星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(2));
-                }else if ("3星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(3));
-                }else if ("4星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(4));
-                }else if ("5星".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(5));
+                if (s==null){
+                    if ("0星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(0));
+                    } else if ("1星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(1));
+                    }else if ("2星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(2));
+                    }else if ("3星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(3));
+                    }else if ("4星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(4));
+                    }else if ("5星".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(5));
+                    }
+                }else {
+                    Map<String, String> starMap = JSON.parseObject(jsonObject.toString(), Map.class);
+                    String level = starMap.get(star);
+                    if (StringUtils.isEmpty(level)) {
+                        if ("0星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(0));
+                        } else if ("1星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(1));
+                        }else if ("2星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(2));
+                        }else if ("3星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(3));
+                        }else if ("4星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(4));
+                        }else if ("5星".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(5));
+                        }
+                    }else {
+                        followup.setStarLevel(new BigDecimal(level));
+                    }
+
                 }
+
             }
             followupList.add(followup);
         }
@@ -796,7 +896,7 @@ public class CasllBackDataProcessor implements CallBackService {
 //
 //    }
     //融享客通用
-    private void sendGetRequestGZWA(String productBizId,String busiId,String url,String channelType,String accessKey,String companyName,List<String> md5ListGZWA){
+    private void sendGetRequestGZWA(String productBizId,String busiId,String url,String channelType,String accessKey,String companyName,List<String> md5ListGZWA,Map<String, String> resultMap){
 
         JSONObject object = new JSONObject();
         object.put("accessKey",accessKey);
@@ -807,6 +907,10 @@ public class CasllBackDataProcessor implements CallBackService {
         log.info("星级回传请求参数{}:{}",companyName,jsonString);
         String responseStr = HttpClientThreeUtil.post(url, jsonString);
         JSONObject response = JSON.parseObject(responseStr);
+        if (StringUtils.isEmpty(responseStr)) {
+            log.error("busiId:{},companyName:{} 星级回传响应为空", busiId, companyName);
+            return;
+        }
         log.info("星级回传返回参数{}:{}",companyName,response);
         String code = response.getString("code");
         if (!"200".equals(code)) {
@@ -817,7 +921,8 @@ public class CasllBackDataProcessor implements CallBackService {
 
         JSONArray dataArray = response.getJSONArray("data");
         List<CustomerFollowup> followupList = new ArrayList<>();
-
+        String s = resultMap.get(busiId);
+        JSONObject jsonObject = JSON.parseObject(s);
         // 遍历 data 数组,创建实体对象并设置对应字段
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject obj = dataArray.getJSONObject(i);
@@ -830,18 +935,47 @@ public class CasllBackDataProcessor implements CallBackService {
                 log.info("busiId:{} companyName {}, mobile_md5{} 没有填星级:", busiId, companyName ,followup.getPhoneMd5());
                 continue;
             } else {
-                if ("0".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(0));
-                } else if ("10".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(1));
-                }else if ("20".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(2));
-                }else if ("30".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(3));
-                }else if ("40".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(4));
-                }else if ("50".equals(star)) {
-                    followup.setStarLevel(new BigDecimal(5));
+                if (s==null){//没有配置映射
+                    if ("0".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(0));
+                    } else if ("10".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(1));
+                    }else if ("20".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(2));
+                    }else if ("30".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(3));
+                    }else if ("40".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(4));
+                    }else if ("50".equals(star)) {
+                        followup.setStarLevel(new BigDecimal(5));
+                    }
+                }else {
+                    //{  客户  :  我方
+                    //	"1星": "5星",
+                    //	"2星": "4星",
+                    //	"3星": "3星",
+                    //	"4星": "2星",
+                    //	"5星": "1星"
+                    //}
+                    Map<String, String> starMap = JSON.parseObject(jsonObject.toString(), Map.class);
+                    String level = starMap.get(star);
+                    if (StringUtils.isEmpty(level)) {
+                        if ("0".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(0));
+                        } else if ("10".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(1));
+                        }else if ("20".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(2));
+                        }else if ("30".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(3));
+                        }else if ("40".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(4));
+                        }else if ("50".equals(star)) {
+                            followup.setStarLevel(new BigDecimal(5));
+                        }
+                    }else {
+                        followup.setStarLevel(new BigDecimal(level));
+                    }
                 }
             }
             followup.setSourceType(3);
@@ -857,7 +991,7 @@ public class CasllBackDataProcessor implements CallBackService {
 
     }
     //https://api.zhudaicms.com/ 通用
-    private void sendGetRequestHz(String productBizId,String busiId,String url,String companyName){
+    private void sendGetRequestHz(String productBizId,String busiId,String url,String companyName,Map<String, String> resultMap){
         String responseStr = HttpClientThreeUtil.get(url,null);
         JSONObject response = JSON.parseObject(responseStr);
         String code = response.getString("code");
@@ -869,7 +1003,8 @@ public class CasllBackDataProcessor implements CallBackService {
 
         JSONArray dataArray = response.getJSONArray("data");
         List<CustomerFollowup> followupList = new ArrayList<>();
-
+        String s = resultMap.get(busiId);
+        JSONObject jsonObject = JSON.parseObject(s);
         // 遍历 data 数组,创建实体对象并设置对应字段
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject obj = dataArray.getJSONObject(i);
@@ -877,7 +1012,25 @@ public class CasllBackDataProcessor implements CallBackService {
             followup.setBusiId(busiId);
             followup.setProductBizId(Integer.parseInt(productBizId));
             followup.setPhoneMd5(obj.getString("md5mobile"));
-            followup.setStarLevel(new BigDecimal(obj.getString("stars")));
+            String stars = obj.getString("stars");
+            if (StringUtils.isEmpty(stars)) {
+                log.info("busiId:{} companyName {}, mobile_md5{} 没有填星级:", busiId, companyName ,followup.getPhoneMd5());
+                continue;
+            }else {
+                if (s==null){
+                    followup.setStarLevel(new BigDecimal(stars));
+                }else {
+                    Map<String, String> starMap = JSON.parseObject(jsonObject.toString(), Map.class);
+                    String level = starMap.get(stars);
+                    if (StringUtils.isEmpty(level)) {
+                        followup.setStarLevel(new BigDecimal(stars));
+                    }else {
+                        followup.setStarLevel(new BigDecimal(level));
+                    }
+
+                }
+            }
+
             followup.setSourceType(3);
             followup.setFollowTime(new Date());
             followupList.add(followup);

+ 209 - 5
src/main/java/com/tiangua/star/service/impl/XinLuDataProcessor.java

@@ -9,6 +9,7 @@ import com.tiangua.star.service.XinLuService;
 import com.tiangua.star.util.HttpClientThreeUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.utils.URIBuilder;
@@ -25,6 +26,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
@@ -60,7 +62,7 @@ public class XinLuDataProcessor implements XinLuService {
      * @param jsonObjects 包含productBizId和busiId的配置列表
      */
     @Override
-    public void processInstitutionData(List<JSONObject> jsonObjects) {
+    public void processInstitutionData(List<JSONObject> jsonObjects, Map<String, String> resultMap) {
         jsonObjects.forEach(config -> executor.execute(() -> {
             Integer institutionId = config.getInteger("institutionId");
             String busiId = config.getString("busiId");
@@ -80,7 +82,7 @@ public class XinLuDataProcessor implements XinLuService {
                 String responseJson = sendGetRequest(targetUrl,1, syncDate, syncDate);
                 if (responseJson == null) { continue; }
                 // 3. 解析并映射数据
-                List<XinLuUserStarCallbackParam> mappedData = parseAndMapData(responseJson, institutionId, busiId);
+                List<XinLuUserStarCallbackParam> mappedData = parseAndMapData(responseJson, institutionId, busiId,resultMap);
                 log.info("鑫路回传诚易融数据{},{},同步时间:{}", institutionId, mappedData, syncDate);
                 if (CollectionUtils.isEmpty(mappedData)) {
                     log.info("鑫路没有回传数据{},同步时间:{}", institutionId, syncDate);
@@ -164,7 +166,7 @@ public class XinLuDataProcessor implements XinLuService {
 //        return allRows;
 //    }
 
-    private List<XinLuUserStarCallbackParam> parseAndMapData(String json, Integer productBizId, String busiId) {
+    private List<XinLuUserStarCallbackParam> parseAndMapData(String json, Integer productBizId, String busiId, Map<String, String> resultMap) {
         JSONObject responseData = JSON.parseObject(json);
         
         // 验证响应结构
@@ -183,12 +185,29 @@ public class XinLuDataProcessor implements XinLuService {
                 .map(obj -> {
                     JSONObject item = (JSONObject) obj;
                     XinLuUserStarCallbackParam param = new XinLuUserStarCallbackParam();
-
+                    String s = resultMap.get(busiId);
+                    JSONObject object = JSON.parseObject(s);
                     // 基础字段映射
                     param.setCustomerName(item.getString("name"));
                     param.setMaskPhone(item.getString("phone"));
                     param.setFollowTime(item.getString("customerCreateTime"));
-                    param.setStarLevel(item.getFloat("importantDegree"));
+                    String stars = item.getString("importantDegree");
+                    if (StringUtils.isEmpty(stars)) {
+                        log.info("busiId:{} companyName {}, mobile_md5{} 没有填星级:", busiId, "山西瑞凯鑫" ,param.getMaskPhone());
+                    }else {
+                        if (s==null){
+                            param.setStarLevel(new Float(stars));
+                        }else {
+                            Map<String, String> starMap = JSON.parseObject(object.toString(), Map.class);
+                            String level = starMap.get(stars);
+                            if (StringUtils.isEmpty(level)) {
+                                param.setStarLevel(new Float(stars));
+                            }else {
+                                param.setStarLevel(new Float(level));
+                            }
+                        }
+                    }
+                    //param.setStarLevel(item.getFloat("importantDegree"));
                     param.setImportantDegreeStr(item.getString("importantDegreeStr"));
                     
                     // 从上游传入的字段
@@ -245,4 +264,189 @@ public class XinLuDataProcessor implements XinLuService {
 //            System.out.println("xinlu.callback.url: " + env.getProperty("xinlu.callback.url"));
     }
 
+
+    String testJson = "{" +
+            "\"total\":4," +
+            "\"rows\":[" +
+            "{" +
+            "\"name\":\"谢建斌\"," +
+            "\"phone\":\"****5401\"," +
+            "\"importantDegree\":0," +
+            "\"importantDegreeStr\":\"0星客户\"," +
+            "\"customerStatus\":1," +
+            "\"customerStatusStr\":\"持续跟进\"," +
+            "\"cuFollowList\":[" +
+            "{" +
+            "\"createUserId\":\"1950378831542091776\"," +
+            "\"createTime\":\"2025-08-27 18:55:26\"," +
+            "\"updateTime\":\"2025-08-27 18:55:26\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960657155485470720\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960638753093718017\"," +
+            "\"managerId\":\"1950378831542091776\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 18:54:25\"," +
+            "\"followContent\":\"加微信   发地址\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}," +
+            "{" +
+            "\"createUserId\":\"1950439801182355456\"," +
+            "\"createTime\":\"2025-08-27 17:42:40\"," +
+            "\"updateTime\":\"2025-08-27 17:42:40\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960638829241700352\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960638753093718017\"," +
+            "\"managerId\":\"1950439801182355456\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 17:42:40\"," +
+            "\"followContent\":\"正在通话中 *2 加微信\"," +
+            "\"customerStatus\":1," +
+            "\"importantDegree\":0," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}]," +
+            "\"customerCreateTime\":\"2025-08-27 17:41:20\"" +
+            "}," +
+            "{" +
+            "\"name\":\"孙良红\"," +
+            "\"phone\":\"****2217\"," +
+            "\"importantDegree\":4," +
+            "\"importantDegreeStr\":\"四星客户\"," +
+            "\"customerStatus\":0," +
+            "\"customerStatusStr\":\"未设置\"," +
+            "\"cuFollowList\":[" +
+            "{" +
+            "\"createUserId\":\"1950439801182355456\"," +
+            "\"createTime\":\"2025-08-27 16:21:23\"," +
+            "\"updateTime\":\"2025-08-27 16:21:23\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960618465623146496\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960600600886640640\"," +
+            "\"managerId\":\"1950439801182355456\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 16:21:23\"," +
+            "\"followContent\":\"建 直接挂  不需要 \"," +
+            "\"importantDegree\":4," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}," +
+            "{" +
+            "\"createUserId\":\"1950438957561020416\"," +
+            "\"createTime\":\"2025-08-27 15:15:05\"," +
+            "\"updateTime\":\"2025-08-27 15:15:05\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960600842009186304\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960600600886640640\"," +
+            "\"managerId\":\"1950438957561020416\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 15:10:40\"," +
+            "\"followContent\":\"金1300,房永靖全款,加微\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}]," +
+            "\"customerCreateTime\":\"2025-08-27 15:09:44\"" +
+            "}," +
+            "{" +
+            "\"name\":\"张忠海\"," +
+            "\"phone\":\"****2555\"," +
+            "\"importantDegree\":1," +
+            "\"importantDegreeStr\":\"一星客户\"," +
+            "\"customerStatus\":0," +
+            "\"customerStatusStr\":\"未设置\"," +
+            "\"cuFollowList\":[" +
+            "{" +
+            "\"createUserId\":\"1950438535957970944\"," +
+            "\"createTime\":\"2025-08-27 19:45:07\"," +
+            "\"updateTime\":\"2025-08-27 19:45:07\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960669735591477248\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960597752610291713\"," +
+            "\"managerId\":\"1950438535957970944\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 19:47:56\"," +
+            "\"followContent\":\"微信联系了,让他找人过来,说考虑一下\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}," +
+            "{" +
+            "\"createUserId\":\"1950438535957970944\"," +
+            "\"createTime\":\"2025-08-27 16:38:25\"," +
+            "\"updateTime\":\"2025-08-27 16:38:25\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960622479605633024\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960597752610291713\"," +
+            "\"managerId\":\"1950438535957970944\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 16:40:10\"," +
+            "\"followContent\":\"信用卡逾期2年黑户\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}," +
+            "{" +
+            "\"createUserId\":\"1950438535957970944\"," +
+            "\"createTime\":\"2025-08-27 15:22:08\"," +
+            "\"updateTime\":\"2025-08-27 15:22:08\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960603654982074369\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960597752610291713\"," +
+            "\"managerId\":\"1950438535957970944\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 15:25:22\"," +
+            "\"followContent\":\"微信通过,正常转\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}]," +
+            "\"customerCreateTime\":\"2025-08-27 14:58:25\"" +
+            "}," +
+            "{" +
+            "\"name\":\"白菲\"," +
+            "\"phone\":\"****0639\"," +
+            "\"importantDegree\":0," +
+            "\"importantDegreeStr\":\"0星客户\"," +
+            "\"customerStatus\":0," +
+            "\"customerStatusStr\":\"未设置\"," +
+            "\"cuFollowList\":[" +
+            "{" +
+            "\"createUserId\":\"1950378831542091776\"," +
+            "\"createTime\":\"2025-08-27 10:13:46\"," +
+            "\"updateTime\":\"2025-08-27 10:13:46\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960526075050725376\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960520501571096577\"," +
+            "\"managerId\":\"1950378831542091776\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 10:13:38\"," +
+            "\"followContent\":\"微信通过了  不说话\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}," +
+            "{" +
+            "\"createUserId\":\"1950378831542091776\"," +
+            "\"createTime\":\"2025-08-27 09:53:02\"," +
+            "\"updateTime\":\"2025-08-27 09:53:02\"," +
+            "\"delFlag\":0," +
+            "\"id\":\"1960520562107875328\"," +
+            "\"deptId\":\"1950378831097495552\"," +
+            "\"customerId\":\"1960520501571096577\"," +
+            "\"managerId\":\"1950378831542091776\"," +
+            "\"followType\":1," +
+            "\"followTime\":\"2025-08-27 09:51:44\"," +
+            "\"followContent\":\"未接\"," +
+            "\"commentNum\":0," +
+            "\"fileNum\":0" +
+            "}]," +
+            "\"customerCreateTime\":\"2025-08-27 09:51:27\"" +
+            "}]," +
+            "\"code\":200," +
+            "\"msg\":\"查询成功\"" +
+            "}";
 }