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

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

@ -22,7 +22,7 @@ public interface ThingManageContextService {
/** 查询 Model 接口 **/
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);

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

@ -68,8 +68,8 @@ public class ThingManageContextServiceImpl implements ThingManageContextService
@Override
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

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 = "status", description = "在线离线状态,0离线 1在线 2错误 3未接入") @RequestParam(required = false) String status,
@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 = "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);
}
@ -65,9 +66,10 @@ public class IotThingModelController {
@Parameter(name = "origin", description = "数据来源") @RequestParam(required = false) String origin,
@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 = "gateway", description = "网关") @RequestParam(required = false) String gateway,
@Parameter(name = "startTime", description = "开始时间") @RequestParam(required = false) Long startTime,
@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);
}

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> {
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,
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);

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 status,
String realType,
String gateway,
Long startTime,
Long endTime) {
@ -97,6 +98,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
.eq(IotThingModelEntity::getOrigin, origin, StringUtils.isNotBlank(origin))
.eq(IotThingModelEntity::getStatus, status, StringUtils.isNotBlank(status))
.eq(IotThingModelEntity::getRealType, realType, StringUtils.isNotBlank(realType))
.eq(IotThingModelEntity::getGateway, gateway, StringUtils.isNotBlank(gateway))
.between(IotThingModelEntity::getCreateDate,
startTime, endTime, !Objects.isNull(startTime) && !Objects.isNull(endTime))
.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 status,
String realType,
String gateway,
Long startTime,
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)) {
return PageData.empty();
}
@ -130,12 +133,13 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String origin,
String status,
String realType,
String gateway,
Long startTime,
Long endTime) {
List<ObjectNode> modelList = cache.getTopicMap(CacheNameEnum.THING_MODEL);
if (CollectionUtils.isEmpty(modelList)) {
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);
//更新缓存
CacheInit.modelMap(modelList, cache);
@ -145,7 +149,7 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
}
String finalOrderField = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, orderField);
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))
.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
public List<String> findAllOrigin() {
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)) {
return Lists.newArrayList();
}
@ -439,7 +443,8 @@ public class IotThingModelServiceImpl extends BaseServiceImpl<IotThingModelMappe
String token,
String origin,
String status,
String realType) {
String realType,
String gateway) {
List<Pair<String, String>> filterList = new ArrayList<>();
if (StringUtils.isNotBlank(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)) {
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;
}

Loading…
Cancel
Save