Compare commits
2 Commits
e02e19c2d1
...
45a832f777
Author | SHA1 | Date | |
---|---|---|---|
![]() |
45a832f777 | ||
![]() |
10cf9622bb |
|
@ -3,12 +3,18 @@ package com.hivekion.thread;
|
|||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.hivekion.Global;
|
||||
import com.hivekion.baseData.entity.Scenario;
|
||||
import com.hivekion.baseData.entity.WeatherResource;
|
||||
import com.hivekion.baseData.service.impl.ScenarioServiceImpl;
|
||||
import com.hivekion.baseData.service.impl.WeatherResourceServiceImpl;
|
||||
import com.hivekion.common.entity.RequestCmdInfo;
|
||||
import com.hivekion.common.entity.ResponseCmdInfo;
|
||||
import com.hivekion.room.RoomManager;
|
||||
import com.hivekion.room.bean.Room;
|
||||
import com.hivekion.scenario.entity.ScenarioResource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -39,8 +45,10 @@ public class HandleReceiveRunnable implements Runnable {
|
|||
//消息分发业务bean处理
|
||||
if (SpringUtil.getBean(WebsocketMsgWrapper.class) != null) {
|
||||
try {
|
||||
WebsocketMsgWrapper websocketMsgWrapper = SpringUtil.getBean(WebsocketMsgWrapper.class);
|
||||
websocketMsgWrapper.msgHandle(requestCmdInfo.getScenarioId(), requestCmdInfo.getRoom(),
|
||||
WebsocketMsgWrapper websocketMsgWrapper = SpringUtil.getBean(
|
||||
WebsocketMsgWrapper.class);
|
||||
websocketMsgWrapper.msgHandle(requestCmdInfo.getScenarioId(),
|
||||
requestCmdInfo.getRoom(),
|
||||
requestCmdInfo.getResourceId(), requestCmdInfo.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("error::", e);
|
||||
|
@ -52,8 +60,6 @@ public class HandleReceiveRunnable implements Runnable {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("error::", e);
|
||||
}
|
||||
|
@ -70,6 +76,9 @@ public class HandleReceiveRunnable implements Runnable {
|
|||
case "get_room_info":
|
||||
handleGetRootInfo(requestCmdInfo);
|
||||
break;
|
||||
case "get_weather":
|
||||
handleGetWeather(requestCmdInfo);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
|
@ -130,4 +139,32 @@ public class HandleReceiveRunnable implements Runnable {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void handleGetWeather(RequestCmdInfo requestCmdInfo) {
|
||||
//获取想定
|
||||
Scenario scenario = SpringUtil.getBean(ScenarioServiceImpl.class)
|
||||
.getScenarioById(requestCmdInfo.getScenarioId());
|
||||
LocalDateTime startTime = scenario.getStartTime();
|
||||
Room room = RoomManager.getRoom(requestCmdInfo.getRoom());
|
||||
if (room != null) {
|
||||
long duringTime = room.getDuringTime();
|
||||
List<WeatherResource> weatherList = SpringUtil.getBean(WeatherResourceServiceImpl.class)
|
||||
.list();
|
||||
weatherList.forEach(weatherResource -> {
|
||||
ResponseCmdInfo<Object> respObj = new ResponseCmdInfo<>();
|
||||
LocalDateTime weatherTime = weatherResource.getLastBegTime();
|
||||
LocalDateTime weatherEndTime = weatherResource.getLastEndTime();
|
||||
if (startTime.plusSeconds(duringTime).isAfter(weatherTime) && startTime.plusSeconds(
|
||||
duringTime).isBefore(weatherEndTime)) {
|
||||
|
||||
respObj.setCmdType("start_" + weatherResource.getWeatherType());
|
||||
}
|
||||
if (startTime.plusSeconds(duringTime).isAfter(weatherEndTime)) {
|
||||
respObj.setCmdType("stop_" + weatherResource.getWeatherType());
|
||||
}
|
||||
Global.sendCmdInfoQueue.add(respObj);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user