Commit 5699726c authored by caotao's avatar caotao

户用光伏新增时序库表存储配置

parent d88a8293
......@@ -109,9 +109,15 @@ public class HouseholdPvUtils {
body(householdPvApiDto.getParamInfo()).execute().body();
}
JSONArray jsonArray = handlerResponseByResultResolverule(householdPvApiDto.getResultResolveRule(), respone);
handleResponseAndCacheData(String.valueOf(seq), householdPvApiDto.getCacheField(), jsonArray);
handleResponseAndCacheData(String.valueOf(seq), householdPvApiDto.getCacheField(), jsonArray,householdPvApiDto.getMeasurement());
return respone;
}
/**
* @param resultResovle 请求返回的解析规则 来源与数据库
* @param response 请求返回的字符串
* @return 解析后的数据
*/
public JSONArray handlerResponseByResultResolverule(String resultResovle, String response) {
String[] rules = resultResovle.split(",");
JSONObject jsonObject = JSONObject.parseObject(response);
......@@ -131,29 +137,40 @@ public class HouseholdPvUtils {
return jsonArray;
}
public void handleResponseAndCacheData(String seq, String cacheField, JSONArray jsonArray) {
/**
* @param seq apiID
* @param cacheField 要缓存的字段
* @param jsonArray 处理后的数据请求
* @param measurement 要在influxdb中存储的数
* @describe 该方法用于缓存需要缓存的字段 且将需要入库的数据进行入库
*/
public void handleResponseAndCacheData(String seq, String cacheField, JSONArray jsonArray, String measurement) {
String apiID = API_REDIS_PREFIX + seq;
List list = new ArrayList();
List saveList = new ArrayList();
if (jsonArray.size() > 0) {
for (Object o : jsonArray) {
Map<String, Object> maps1 = (Map<String, Object>) o;
if (cacheField != null) {
list.add(maps1.get(cacheField));
}
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("SH_DZ",maps2,maps1);
if (measurement != null) {
influxDbConnection.insert(measurement, maps2, maps1);
}
}
}
saveList = Redis.getRedisTemplate().opsForList().range(apiID, 0, -1);
if (saveList.size() == 0) {
Redis.getRedisTemplate().opsForList().leftPushAll(apiID, list);
}
// saveList = Redis.getRedisTemplate().opsForList().range(apiID,0,-1);
saveList = Redis.getRedisTemplate().opsForList().range(apiID,0,-1);
if (saveList.size() != list.size()) {
Redis.getRedisTemplate().delete(apiID);
Redis.getRedisTemplate().opsForList().leftPushAll(apiID, list);
}
list = Redis.getRedisTemplate().opsForList().range(apiID, 0, -1);
}
}
......@@ -66,5 +66,9 @@ public class HouseholdPvApiDto extends BaseModel {
*/
@ApiModelProperty(value = "是否分页")
private Integer isPage;
/**
* 时序库中的表名
*/
@ApiModelProperty(value = "时序库表名")
private String measurement;
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.householdapi.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......@@ -58,5 +59,35 @@ public class HouseholdPvApi extends BaseEntity {
*/
@TableField("param_info")
private String paramInfo;
/**
* 依赖的apiId
*/
@TableField("dependecy_api_id")
private String dependecyApiId;
/**
* 缓存的属性
*/
@TableField("cache_field")
private String cacheField;
/**
* 依赖的api属性
*/
@TableField("depend_api_param_key")
private String dependApiParamKey;
/**
* result解析结果
*/
@TableField("result_resolve_rule")
private String resultResolveRule;
/**
* 是否分页
*/
@TableField("is_page")
private Integer isPage;
/**
* 时序库中存储的表名
*/
@TableField("measurement")
private String measurement;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment