|
|
|
@ -40,8 +40,6 @@ import java.util.*;
|
|
|
|
|
public class KafkaController {
|
|
|
|
|
@Resource
|
|
|
|
|
private KafkaUtil kafkaUtil;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/test")
|
|
|
|
|
public Result<?> test(){
|
|
|
|
|
String test = (String) CacheManager.get("test");
|
|
|
|
@ -51,13 +49,17 @@ public class KafkaController {
|
|
|
|
|
return Result.OK(test);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping("/consumer2/{topic}")
|
|
|
|
|
public Result<?> consumer2(@PathVariable String topic){
|
|
|
|
|
/*
|
|
|
|
|
* 不鉴权
|
|
|
|
|
**/
|
|
|
|
|
@GetMapping("/consumer/{topic}")
|
|
|
|
|
@ApiOperation(value = "consumer")
|
|
|
|
|
public Result<?> getConsumerData(@PathVariable String topic) {
|
|
|
|
|
if (StringUtils.isEmpty(topic)) {
|
|
|
|
|
return Result.error("请确认topic是否正确");
|
|
|
|
|
}
|
|
|
|
|
List<String> resultList = new ArrayList<>();
|
|
|
|
|
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro());
|
|
|
|
|
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro(false));
|
|
|
|
|
consumer.subscribe(Collections.singletonList(topic));
|
|
|
|
|
ConsumerRecords<String, String> records = consumer.poll(5000);
|
|
|
|
|
JSONArray jsonArray=new JSONArray();
|
|
|
|
@ -69,18 +71,110 @@ public class KafkaController {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
consumer.close();
|
|
|
|
|
return Result.OK(jsonArray);
|
|
|
|
|
long newCreateTime =0L;
|
|
|
|
|
switch (topic) {
|
|
|
|
|
case "guangzhaochuanganqi": {
|
|
|
|
|
//光照传感器
|
|
|
|
|
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
|
|
|
|
|
List<KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> kafkaConsumerDTOList;
|
|
|
|
|
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO;
|
|
|
|
|
//排除掉旧的重复aeid
|
|
|
|
|
Map<String, KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> aeidMap = new HashMap<>();
|
|
|
|
|
for (JSONObject jsonObject : jsonObjects) {
|
|
|
|
|
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
|
|
|
|
|
String aeid = kafkaConsumerDTO.getAeid();
|
|
|
|
|
String createtimeStr = kafkaConsumerDTO.getCreatetime();
|
|
|
|
|
newCreateTime = Long.parseLong(createtimeStr);
|
|
|
|
|
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
|
|
|
|
|
if (kafkaConsumerDTO1 == null) {
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
} else {
|
|
|
|
|
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
|
|
|
|
|
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (createtime >= newCreateTime) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
}
|
|
|
|
|
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
|
|
|
|
|
return Result.OK(kafkaConsumerDTOList);
|
|
|
|
|
}
|
|
|
|
|
case "kongqizhiliangchuanganqi": {
|
|
|
|
|
//空气质量传感器
|
|
|
|
|
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
|
|
|
|
|
List<KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> kafkaConsumerDTOList;
|
|
|
|
|
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO;
|
|
|
|
|
//排除掉旧的重复aeid
|
|
|
|
|
Map<String, KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> aeidMap = new HashMap<>();
|
|
|
|
|
for (JSONObject jsonObject : jsonObjects) {
|
|
|
|
|
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
|
|
|
|
|
String aeid = kafkaConsumerDTO.getAeid();
|
|
|
|
|
String createtimeStr = kafkaConsumerDTO.getCreatetime();
|
|
|
|
|
newCreateTime = Long.parseLong(createtimeStr);
|
|
|
|
|
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
|
|
|
|
|
if (kafkaConsumerDTO1 == null) {
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
} else {
|
|
|
|
|
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
|
|
|
|
|
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (createtime >= newCreateTime) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
}
|
|
|
|
|
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
|
|
|
|
|
return Result.OK(kafkaConsumerDTOList);
|
|
|
|
|
}
|
|
|
|
|
case "huanjingjiance": {
|
|
|
|
|
//环境监测
|
|
|
|
|
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
|
|
|
|
|
List<KafkaConsumerDTO<HuanJingJianCeDTO>> kafkaConsumerDTOList = new ArrayList<>();
|
|
|
|
|
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO;
|
|
|
|
|
//排除掉旧的重复aeid
|
|
|
|
|
Map<String, KafkaConsumerDTO<HuanJingJianCeDTO>> aeidMap = new HashMap<>();
|
|
|
|
|
for (JSONObject jsonObject : jsonObjects) {
|
|
|
|
|
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
|
|
|
|
|
String aeid = kafkaConsumerDTO.getAeid();
|
|
|
|
|
String createtimeStr = kafkaConsumerDTO.getCreatetime();
|
|
|
|
|
newCreateTime = Long.parseLong(createtimeStr);
|
|
|
|
|
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
|
|
|
|
|
if (kafkaConsumerDTO1 == null) {
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
} else {
|
|
|
|
|
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
|
|
|
|
|
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (createtime >= newCreateTime) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
aeidMap.put(aeid, kafkaConsumerDTO);
|
|
|
|
|
}
|
|
|
|
|
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
|
|
|
|
|
return Result.OK(kafkaConsumerDTOList);
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
return Result.error("请确认topic是否正确");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping("/consumer/{topic}")
|
|
|
|
|
@ApiOperation(value = "consumer")
|
|
|
|
|
public Result<?> getConsumerData(@PathVariable String topic) {
|
|
|
|
|
/*
|
|
|
|
|
* 鉴权
|
|
|
|
|
**/
|
|
|
|
|
@GetMapping("/consumer2/{topic}")
|
|
|
|
|
public Result<?> getConsumerData2(@PathVariable String topic) {
|
|
|
|
|
if (StringUtils.isEmpty(topic)) {
|
|
|
|
|
return Result.error("请确认topic是否正确");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<String> resultList = new ArrayList<>();
|
|
|
|
|
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro());
|
|
|
|
|
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro(true));
|
|
|
|
|
consumer.subscribe(Collections.singletonList(topic));
|
|
|
|
|
ConsumerRecords<String, String> records = consumer.poll(5000);
|
|
|
|
|
JSONArray jsonArray=new JSONArray();
|
|
|
|
@ -186,6 +280,8 @@ public class KafkaController {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/producer")
|
|
|
|
|
@ApiOperation(value = "producer")
|
|
|
|
|
public Result<?> postProducerData(@RequestBody JSONObject requestBody){
|
|
|
|
|