Browse Source

物模型网关过滤

2024年8月8日15:23:41
thing_master
lishuai 1 year ago
parent
commit
68fc982d96
  1. 6
      modules/thing/src/main/java/com/thing/thing/cache/service/CacheInit.java
  2. 2
      modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java
  3. 4
      modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java
  4. 6
      modules/thing/src/main/java/com/thing/thing/model/controller/IotThingModelController.java
  5. 4
      modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java
  6. 18
      modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java

6
modules/thing/src/main/java/com/thing/thing/cache/service/CacheInit.java

@ -12,7 +12,6 @@ import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy; import jakarta.annotation.PreDestroy;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@ -21,6 +20,7 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,13 +52,13 @@ public class CacheInit {
//物模型的初始化 //物模型的初始化
cacheModel(); cacheModel();
//定时打印缓存 //定时打印缓存
// notificationsConsumerExecutor.scheduleAtFixedRate(thingCache::printStats, 0, 3000, TimeUnit.SECONDS);
notificationsConsumerExecutor.scheduleAtFixedRate(thingCache::printStats, 0, 5, TimeUnit.MINUTES);
log.info("thing 【物模型:物实体:物指标】 cache init end"); log.info("thing 【物模型:物实体:物指标】 cache init end");
} }
private void cacheModel() { private void cacheModel() {
modelService.findList(CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField(), modelService.findList(CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField(),
Constant.DESC, null, null, null, null, null, null, null);
Constant.DESC, null, null, null, null, null, null, null,null);
//物实体的初始化 //物实体的初始化
cacheEntity(); cacheEntity();
} }

2
modules/thing/src/main/java/com/thing/thing/context/service/ThingManageContextService.java

@ -22,7 +22,7 @@ public interface ThingManageContextService {
/** 查询 Model 接口 **/ /** 查询 Model 接口 **/
Optional<List<ObjectNode>> findAllModel(String orderField, String order, Optional<List<ObjectNode>> findAllModel(String orderField, String order,
String code, String token,String origin,String status,String realType,Long startTime,Long endTime);
String code, String token,String origin,String status,String realType,String gateway,Long startTime,Long endTime);
Optional<List<ObjectNode>> findModelByCodes(Collection<String> codes); Optional<List<ObjectNode>> findModelByCodes(Collection<String> codes);

4
modules/thing/src/main/java/com/thing/thing/context/service/impl/ThingManageContextServiceImpl.java

@ -68,8 +68,8 @@ public class ThingManageContextServiceImpl implements ThingManageContextService
@Override @Override
public Optional<List<ObjectNode>> findAllModel(String orderField, String order, public Optional<List<ObjectNode>> findAllModel(String orderField, String order,
String code, String token,String origin,String status,String realType,Long startTime,Long endTime) {
return Optional.ofNullable(modelService.findList(orderField,order,code,token,origin,status,realType,startTime,endTime));
String code, String token,String origin,String status,String realType,String gateway,Long startTime,Long endTime) {
return Optional.ofNullable(modelService.findList(orderField,order,code,token,origin,status,realType,gateway,startTime,endTime));
} }
@Override @Override

6
modules/thing/src/main/java/com/thing/thing/model/controller/IotThingModelController.java

@ -49,9 +49,10 @@ public class IotThingModelController {
@Parameter(name = "origin", description = "数据来源") @RequestParam(required = false) String origin, @Parameter(name = "origin", description = "数据来源") @RequestParam(required = false) String origin,
@Parameter(name = "status", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String status, @Parameter(name = "status", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String status,
@Parameter(name = "realType", description = "真实/虚拟类型") @RequestParam(required = false) String realType, @Parameter(name = "realType", description = "真实/虚拟类型") @RequestParam(required = false) String realType,
@Parameter(name = "gateway", description = "网关") @RequestParam(required = false) String gateway,
@Parameter(name = "startTime", description = "开始时间") @RequestParam(required = false) Long startTime, @Parameter(name = "startTime", description = "开始时间") @RequestParam(required = false) Long startTime,
@Parameter(name = "endTime", description = "结束时间") @RequestParam(required = false) Long endTime) { @Parameter(name = "endTime", description = "结束时间") @RequestParam(required = false) Long endTime) {
PageData<ObjectNode> pageList = service.pageList(page,limit,orderField,order,code,token,origin,status,realType,startTime,endTime);
PageData<ObjectNode> pageList = service.pageList(page,limit,orderField,order,code,token,origin,status,realType,gateway,startTime,endTime);
return new Result<PageData<ObjectNode>>().ok(pageList); return new Result<PageData<ObjectNode>>().ok(pageList);
} }
@ -65,9 +66,10 @@ public class IotThingModelController {
@Parameter(name = "origin", description = "数据来源") @RequestParam(required = false) String origin, @Parameter(name = "origin", description = "数据来源") @RequestParam(required = false) String origin,
@Parameter(name = "status", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String status, @Parameter(name = "status", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String status,
@Parameter(name = "realType", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String realType, @Parameter(name = "realType", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String realType,
@Parameter(name = "gateway", description = "网关") @RequestParam(required = false) String gateway,
@Parameter(name = "startTime", description = "开始时间") @RequestParam(required = false) Long startTime, @Parameter(name = "startTime", description = "开始时间") @RequestParam(required = false) Long startTime,
@Parameter(name = "endTime", description = "结束时间") @RequestParam(required = false) Long endTime) { @Parameter(name = "endTime", description = "结束时间") @RequestParam(required = false) Long endTime) {
List<ObjectNode> list = service.findList(orderField, order, code, token, origin, status, realType,startTime, endTime);
List<ObjectNode> list = service.findList(orderField, order, code, token, origin, status, realType,gateway,startTime, endTime);
return new Result<List<ObjectNode>>().ok(list); return new Result<List<ObjectNode>>().ok(list);
} }

4
modules/thing/src/main/java/com/thing/thing/model/service/IotThingModelService.java

@ -18,10 +18,10 @@ import java.util.Optional;
public interface IotThingModelService extends IBaseService<IotThingModelEntity> { public interface IotThingModelService extends IBaseService<IotThingModelEntity> {
PageData<ObjectNode> pageList(Integer page,Integer limit,String orderField,String order, PageData<ObjectNode> pageList(Integer page,Integer limit,String orderField,String order,
String code,String token,String origin,String status,String realType,Long startTime,Long endTime);
String code,String token,String origin,String status,String realType,String gateway,Long startTime,Long endTime);
List<ObjectNode> findList(String orderField, String order, List<ObjectNode> findList(String orderField, String order,
String code, String token,String origin,String status,String realType,Long startTime,Long endTime);
String code, String token,String origin,String status,String realType, String gateway,Long startTime,Long endTime);
ModelDetailDTO findById(Long id); ModelDetailDTO findById(Long id);

18
modules/thing/src/main/java/com/thing/thing/model/service/impl/IotThingModelServiceImpl.java

@ -87,6 +87,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String origin, String origin,
String status, String status,
String realType, String realType,
String gateway,
Long startTime, Long startTime,
Long endTime) { Long endTime) {
@ -97,6 +98,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
.eq(IotThingModelEntity::getOrigin, origin, StringUtils.isNotBlank(origin)) .eq(IotThingModelEntity::getOrigin, origin, StringUtils.isNotBlank(origin))
.eq(IotThingModelEntity::getStatus, status, StringUtils.isNotBlank(status)) .eq(IotThingModelEntity::getStatus, status, StringUtils.isNotBlank(status))
.eq(IotThingModelEntity::getRealType, realType, StringUtils.isNotBlank(realType)) .eq(IotThingModelEntity::getRealType, realType, StringUtils.isNotBlank(realType))
.eq(IotThingModelEntity::getGateway, gateway, StringUtils.isNotBlank(gateway))
.between(IotThingModelEntity::getCreateDate, .between(IotThingModelEntity::getCreateDate,
startTime, endTime, !Objects.isNull(startTime) && !Objects.isNull(endTime)) startTime, endTime, !Objects.isNull(startTime) && !Objects.isNull(endTime))
.orderBy(StringUtils.isNotBlank(orderField) ? orderField : CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField() .orderBy(StringUtils.isNotBlank(orderField) ? orderField : CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField()
@ -112,9 +114,10 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String origin, String origin,
String status, String status,
String realType, String realType,
String gateway,
Long startTime, Long startTime,
Long endTime) { Long endTime) {
List<ObjectNode> list = findList(orderField, order, code, token, origin, status, realType, startTime, endTime);
List<ObjectNode> list = findList(orderField, order, code, token, origin, status, realType,gateway, startTime, endTime);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return PageData.empty(); return PageData.empty();
} }
@ -130,12 +133,13 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String origin, String origin,
String status, String status,
String realType, String realType,
String gateway,
Long startTime, Long startTime,
Long endTime) { Long endTime) {
List<ObjectNode> modelList = cache.getTopicMap(CacheNameEnum.THING_MODEL); List<ObjectNode> modelList = cache.getTopicMap(CacheNameEnum.THING_MODEL);
if (CollectionUtils.isEmpty(modelList)) { if (CollectionUtils.isEmpty(modelList)) {
List<IotThingModelDTO> list = mapper.selectListByQueryAs(getWrapper(orderField, order, null, null, null, List<IotThingModelDTO> list = mapper.selectListByQueryAs(getWrapper(orderField, order, null, null, null,
null, null, null, null), IotThingModelDTO.class);
null, null,null,null, null), IotThingModelDTO.class);
modelList = JsonConverter.convertToJsonObjectListObjectNode(list); modelList = JsonConverter.convertToJsonObjectListObjectNode(list);
//更新缓存 //更新缓存
CacheInit.modelMap(modelList, cache); CacheInit.modelMap(modelList, cache);
@ -145,7 +149,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
} }
String finalOrderField = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, orderField); String finalOrderField = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, orderField);
Comparator<ObjectNode> comparator = CompareUtils.getComparator(order, finalOrderField);//封装参数 Comparator<ObjectNode> comparator = CompareUtils.getComparator(order, finalOrderField);//封装参数
List<Pair<String, String>> pairs = buildParam(code, token, origin, status, realType);
List<Pair<String, String>> pairs = buildParam(code, token, origin, status, realType,gateway);
return modelList.stream().filter(jsonObject -> JacksonUtil.filter(jsonObject, pairs, finalOrderField, startTime, endTime)) return modelList.stream().filter(jsonObject -> JacksonUtil.filter(jsonObject, pairs, finalOrderField, startTime, endTime))
.sorted(comparator.thenComparing(obj -> obj.get(CacheNameEnum.ModelField.THING_MODEL_ID.getField()).asLong())).toList(); .sorted(comparator.thenComparing(obj -> obj.get(CacheNameEnum.ModelField.THING_MODEL_ID.getField()).asLong())).toList();
} }
@ -213,7 +217,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
@Override @Override
public List<String> findAllOrigin() { public List<String> findAllOrigin() {
List<ObjectNode> modelList = findList(CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField(), List<ObjectNode> modelList = findList(CacheNameEnum.ModelField.THING_MODEL_CREATE_DATE.getField(),
Constant.DESC, null, null, null, null, null, null, null);
Constant.DESC, null, null, null, null, null, null, null,null);
if (CollectionUtil.isEmpty(modelList)) { if (CollectionUtil.isEmpty(modelList)) {
return Lists.newArrayList(); return Lists.newArrayList();
} }
@ -439,7 +443,8 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String token, String token,
String origin, String origin,
String status, String status,
String realType) {
String realType,
String gateway) {
List<Pair<String, String>> filterList = new ArrayList<>(); List<Pair<String, String>> filterList = new ArrayList<>();
if (StringUtils.isNotBlank(code)) { if (StringUtils.isNotBlank(code)) {
filterList.add(Pair.of(CacheNameEnum.ModelField.THING_MODEL_CODE.getField(), code)); filterList.add(Pair.of(CacheNameEnum.ModelField.THING_MODEL_CODE.getField(), code));
@ -456,6 +461,9 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
if (StringUtils.isNotBlank(realType)) { if (StringUtils.isNotBlank(realType)) {
filterList.add(Pair.of(CacheNameEnum.ModelField.THING_MODEL_REAL_TYPE.getField(), realType)); filterList.add(Pair.of(CacheNameEnum.ModelField.THING_MODEL_REAL_TYPE.getField(), realType));
} }
if (StringUtils.isNotBlank(gateway)) {
filterList.add(Pair.of(CacheNameEnum.ModelField.THING_MODEL_GATEWAY.getField(), gateway));
}
return filterList; return filterList;
} }

Loading…
Cancel
Save