设置全局scenario值

This commit is contained in:
wangwenhua 2025-09-20 15:56:14 +08:00
parent 6f2cef9edc
commit 17ce8ecebd

View File

@ -3,34 +3,57 @@ package com.hivekion.thread;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.Global; import com.hivekion.Global;
import com.hivekion.baseData.entity.Scenario;
import com.hivekion.common.entity.ResponseCmdInfo; import com.hivekion.common.entity.ResponseCmdInfo;
import com.hivekion.common.redis.RedisUtil;
import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.service.ScenarioResourceService;
import com.hivekion.statistic.bean.ScenarioInfo; import com.hivekion.statistic.bean.ScenarioInfo;
import com.hivekion.statistic.service.ScenarioService; import com.hivekion.statistic.service.ScenarioService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Component @Component
@Slf4j @Slf4j
public class WebsocketMsgWrapper { public class WebsocketMsgWrapper {
private RedisUtil redisUtil;
@Resource
private ScenarioResourceService scenarioResourceService;
public void msgHandle(Integer scenarioId,String roomId,String resourceId,String msg){ public void msgHandle(Integer scenarioId,String roomId,String resourceId,String msg){
ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo();
responseCmdInfo.setScenarioId(scenarioId); responseCmdInfo.setScenarioId(scenarioId);
responseCmdInfo.setRoom(roomId); responseCmdInfo.setRoom(roomId);
try { try {
JSONObject msgObj = (JSONObject) JSON.parse(msg); JSONObject msgObj = (JSONObject) JSON.parse(msg);
if(msgObj.getString("cmdType").equals("scenarioInfo")){ if(msgObj.getString("cmdType").equals("scenarioInfo")){
ScenarioService scenarioService = SpringUtil.getBean(ScenarioService.class); if( redisUtil == null) {
if(scenarioService != null){ redisUtil = SpringUtil.getBean(RedisUtil.class);
ScenarioInfo scenarioInfo= scenarioService.listScenarioInfo(scenarioId,roomId,resourceId); }
String scenarioInfoStr = com.alibaba.fastjson2.JSON.toJSONString(scenarioInfo); JSONArray allScenario = new JSONArray();
responseCmdInfo.setData(scenarioInfoStr); List<ScenarioResource> scenarioResourceList = this.scenarioResourceService.list(new QueryWrapper<ScenarioResource>().eq("scenario_id",scenarioId));
}else { for(ScenarioResource scenarioResource : scenarioResourceList) {
log.warn("=============scenarioService is null================================"); if(redisUtil.hasKey(scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId(), "scenarioInfo")) {
} String jsonStr = (String) redisUtil.hget(scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId(), "scenarioInfo");
allScenario.add(jsonStr);
}
}
responseCmdInfo.setData(JSONArray.toJSONString(allScenario));
} }
responseCmdInfo.setCmdType("scenarioInfo");
Global.sendCmdInfoQueue.add(responseCmdInfo); Global.sendCmdInfoQueue.add(responseCmdInfo);
}catch (Exception ex){ }catch (Exception ex){
ex.printStackTrace(); ex.printStackTrace();