From 7394f678b67a09108c178ffb1bd98905a5539402 Mon Sep 17 00:00:00 2001 From: lishuai Date: Tue, 6 Aug 2024 10:58:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BD=91=E5=85=B3=E5=92=8Cto?= =?UTF-8?q?ken=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=202024=E5=B9=B48?= =?UTF-8?q?=E6=9C=886=E6=97=A510:58:21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transport/api/adaptor/JsonConverter.java | 9 +++++++++ .../service/ThingManageContextService.java | 2 ++ .../impl/ThingManageContextServiceImpl.java | 5 +++++ .../model/service/IotThingModelService.java | 2 ++ .../service/impl/IotThingModelServiceImpl.java | 17 +++++++++++++++++ 5 files changed, 35 insertions(+) diff --git a/common/transport/src/main/java/com/thing/transport/api/adaptor/JsonConverter.java b/common/transport/src/main/java/com/thing/transport/api/adaptor/JsonConverter.java index 27c6670..057c881 100644 --- a/common/transport/src/main/java/com/thing/transport/api/adaptor/JsonConverter.java +++ b/common/transport/src/main/java/com/thing/transport/api/adaptor/JsonConverter.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map.Entry; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -158,6 +159,14 @@ public class JsonConverter { .map(node -> (ObjectNode) node) .collect(Collectors.toList()); } + + public static ObjectNode convertToJsonObjectObjectNode(T record) { + if(Objects.isNull(record)){ + return null; + } + return (ObjectNode)objectMapper.valueToTree(record); + } + public static List convertToJsonObjectList2(List records) { if(CollectionUtils.isEmpty(records)){ return Collections.emptyList(); diff --git a/modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java b/modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java index 15d9341..bb40744 100644 --- a/modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java +++ b/modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java @@ -28,6 +28,8 @@ public interface ThingManageContextService { Optional> findModelByGateway(String gateway); + Optional findModelByGatewayAndToken(String gateway,String token); + void saveModelBatch(List models); /** 查询 Entity 接口 **/ diff --git a/modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java b/modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java index 6de1fb0..c9a2ce4 100644 --- a/modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java @@ -82,6 +82,11 @@ public class ThingManageContextServiceImpl implements ThingManageContextService return modelService.findByGateway(gateway); } + @Override + public Optional findModelByGatewayAndToken(String gateway, String token) { + return modelService.findModelByGatewayAndToken(gateway,token); + } + @Override public void saveModelBatch(List models) { List entities = ConvertUtils.sourceToTarget(models, IotThingModelEntity.class); diff --git a/modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java b/modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java index ab20ca4..b0f2e35 100644 --- a/modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java +++ b/modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java @@ -29,6 +29,8 @@ public interface IotThingModelService extends IBaseService Optional> findByGateway(String gateway); + Optional findModelByGatewayAndToken(String gateway, String token); + List findByCodeIn(Collection codeList); List findAllOrigin(); diff --git a/modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java b/modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java index d95079b..5a4d913 100644 --- a/modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java @@ -182,6 +182,23 @@ public class IotThingModelServiceImpl extends BaseServiceImpl findModelByGatewayAndToken(String gateway, String token) { + List topicMap = cache.getTopicMap(CacheNameEnum.THING_MODEL); + if (CollectionUtils.isEmpty(topicMap)) { + IotThingModelDTO modelDTO = mapper.selectOneByQueryAs(QueryWrapper.create() + .eq(IotThingModelEntity::getGateway, gateway) + .eq(IotThingModelEntity::getToken, token) + , IotThingModelDTO.class); + return Optional.ofNullable(JsonConverter.convertToJsonObjectObjectNode(modelDTO)); + } + + return topicMap.stream().filter(obj -> + StringUtils.equals(obj.get(CacheNameEnum.ModelField.THING_MODEL_GATEWAY.getField()).asText(), gateway) + && StringUtils.equals(obj.get(CacheNameEnum.ModelField.THING_MODEL_TOKEN.getField()).asText(), token) + ).findFirst(); + } + @Override public List findByCodeIn(Collection codeList) { List modelList = cache.findAllKeyMap(CacheNameEnum.THING_MODEL, codeList);