From bca8aaaa23a3b07d276a9c547131f1b654c0fed6 Mon Sep 17 00:00:00 2001 From: guoz <763366136@qq.com> Date: Sun, 16 Oct 2022 16:20:05 +0800 Subject: [PATCH] FIX Data truncation: Data too long for column 'tp_id' at row (#738) --- .../config/service/ConfigCacheService.java | 17 +++++++++++++++++ .../service/biz/impl/HisRunDataServiceImpl.java | 14 +++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java index 194e1811..8802b6d4 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java @@ -71,6 +71,23 @@ public class ConfigCacheService { return Objects.equals(contentMd5, md5); } + /** + * check TpId. + * + * @param groupKey + * @param tpId + * @param clientIdentify + * @return + */ + public static boolean checkTpId(String groupKey, String tpId, String clientIdentify) { + Map cacheItemMap = Optional.ofNullable(CLIENT_CONFIG_CACHE.get(groupKey)).orElse(Maps.newHashMap()); + CacheItem cacheItem; + if (CollUtil.isNotEmpty(cacheItemMap) && (cacheItem = cacheItemMap.get(clientIdentify)) != null) { + return Objects.equals(tpId, cacheItem.configAllInfo.getTpId()); + } + return Boolean.FALSE; + } + /** * Get Md5. * diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java index 0466070a..a0c6cf57 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java @@ -31,6 +31,7 @@ import cn.hippo4j.config.model.biz.monitor.MonitorActiveRespDTO; import cn.hippo4j.config.model.biz.monitor.MonitorQueryReqDTO; import cn.hippo4j.config.model.biz.monitor.MonitorRespDTO; import cn.hippo4j.config.monitor.QueryMonitorExecuteChoose; +import cn.hippo4j.config.service.ConfigCacheService; import cn.hippo4j.config.service.biz.HisRunDataService; import cn.hippo4j.config.toolkit.BeanUtil; import cn.hutool.core.date.DateTime; @@ -150,11 +151,14 @@ public class HisRunDataServiceImpl extends ServiceImpl { HisRunDataInfo hisRunDataInfo = BeanUtil.convert(each, HisRunDataInfo.class); String[] parseKey = GroupKey.parseKey(each.getGroupKey()); - hisRunDataInfo.setTpId(parseKey[0]); - hisRunDataInfo.setItemId(parseKey[1]); - hisRunDataInfo.setTenantId(parseKey[2]); - hisRunDataInfo.setInstanceId(parseKey[3]); - hisRunDataInfos.add(hisRunDataInfo); + boolean checkFlag = ConfigCacheService.checkTpId(each.getGroupKey(), parseKey[0], parseKey[3]); + if (checkFlag) { + hisRunDataInfo.setTpId(parseKey[0]); + hisRunDataInfo.setItemId(parseKey[1]); + hisRunDataInfo.setTenantId(parseKey[2]); + hisRunDataInfo.setInstanceId(parseKey[3]); + hisRunDataInfos.add(hisRunDataInfo); + } }); this.saveBatch(hisRunDataInfos); }