初次提交
This commit is contained in:
parent
ad420b3e8c
commit
720748ea1e
|
@ -19,8 +19,10 @@ import java.util.concurrent.LinkedBlockingQueue;
|
|||
* @since 2025/7/22
|
||||
*/
|
||||
public class Global {
|
||||
public static BlockingQueue<RequestCmdInfo> receiveCmdInfoQueue = new LinkedBlockingQueue<>(10000);
|
||||
public static BlockingQueue<ResponseCmdInfo<?>> sendCmdInfoQueue = new LinkedBlockingQueue<>();
|
||||
|
||||
public static BlockingQueue<RequestCmdInfo> receiveCmdInfoQueue = new LinkedBlockingQueue<>(
|
||||
10000);
|
||||
public static BlockingQueue<ResponseCmdInfo<?>> sendCmdInfoQueue = new LinkedBlockingQueue<>();
|
||||
public static Map<String, ScenarioWsParam> roomParamMap = new ConcurrentHashMap<>();
|
||||
public static BlockingQueue<RoomLog> roomLogQueue = new LinkedBlockingQueue<>(1000);
|
||||
}
|
||||
|
|
|
@ -27,11 +27,7 @@ public class RoomLogController {
|
|||
|
||||
@GetMapping("/list")
|
||||
public ResponseData<List<RoomLog>> list(String roomId) {
|
||||
QueryWrapper<RoomLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("room_id", roomId==null?"0":roomId);
|
||||
queryWrapper.orderByAsc("log_time");
|
||||
queryWrapper.last("limit 10");
|
||||
List<RoomLog> roomLogs = roomLogService.list(queryWrapper);
|
||||
return ResponseData.success(roomLogs);
|
||||
|
||||
return ResponseData.success(roomLogService.roomLogListLimit10(roomId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.hivekion.enums.ScenarioRoomStatusEnum;
|
|||
import com.hivekion.scenario.bean.ScenarioWsParam;
|
||||
import com.hivekion.scenario.entity.RoomLog;
|
||||
import com.hivekion.scenario.entity.ScenarioRoom;
|
||||
import com.hivekion.scenario.service.IRoomLogService;
|
||||
import com.hivekion.scenario.service.ScenarioRoomService;
|
||||
import com.hivekion.scenario.service.ScenarioTaskService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
@ -48,6 +49,8 @@ public class ScenarioRoomController extends BaseController {
|
|||
private ScenarioService scenarioService;
|
||||
@Resource
|
||||
private ScenarioTaskService scenarioTaskService;
|
||||
@Resource
|
||||
private IRoomLogService roomLogService;
|
||||
|
||||
/**
|
||||
* 查询想定列表
|
||||
|
@ -103,7 +106,8 @@ public class ScenarioRoomController extends BaseController {
|
|||
if (scenarioRoomService.getById(room.getId()) == null) {
|
||||
return ResponseData.generator(ResultCodeEnum.PARAMETER_ERROR.getCode(), "房间不存在", null);
|
||||
}
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"启动想定",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "启动想定",
|
||||
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||
|
||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
||||
scenarioTaskService.start(room.getScenarioId(), room.getId());
|
||||
|
@ -112,7 +116,8 @@ public class ScenarioRoomController extends BaseController {
|
|||
|
||||
@PostMapping("/break")
|
||||
public ResponseData<Void> breakAWhile(@RequestBody ScenarioRoom room) {
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"暂停想定",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "暂停想定",
|
||||
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.BROKEN.getCode());
|
||||
scenarioTaskService.sleepWhile(room.getScenarioId(), room.getId());
|
||||
return ResponseData.success(null);
|
||||
|
@ -120,7 +125,8 @@ public class ScenarioRoomController extends BaseController {
|
|||
|
||||
@PostMapping("/wakeUp")
|
||||
public ResponseData<Void> wakeUp(@RequestBody ScenarioRoom room) {
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定继续",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定继续",
|
||||
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
||||
scenarioTaskService.wakeup(room.getScenarioId(), room.getId());
|
||||
return ResponseData.success(null);
|
||||
|
@ -129,7 +135,8 @@ public class ScenarioRoomController extends BaseController {
|
|||
@PostMapping("/mag")
|
||||
public ResponseData<Void> mag(@RequestBody ScenarioRoom room) {
|
||||
synchronized (this) {
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定加速/减速",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定加速/减速",
|
||||
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||
if (Global.roomParamMap.get(room.getScenarioId() + "_" + room.getId()) == null) {
|
||||
Global.roomParamMap.put(room.getScenarioId() + "_" + room.getId(), new ScenarioWsParam());
|
||||
}
|
||||
|
@ -141,13 +148,34 @@ public class ScenarioRoomController extends BaseController {
|
|||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping("/stop")
|
||||
public ResponseData<Void> stop(@RequestBody ScenarioRoom room) {
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定结束",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定结束",
|
||||
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.FINISHED.getCode());
|
||||
scenarioTaskService.stop(room.getScenarioId(), room.getId());
|
||||
return ResponseData.success(null);
|
||||
}
|
||||
|
||||
@GetMapping("/view")
|
||||
public ResponseData<ScenarioRoom> view(String id) {
|
||||
ScenarioRoom room = scenarioRoomService.getById(id);
|
||||
if (room != null) {
|
||||
Scenario scenario = scenarioService.getScenarioById(room.getScenarioId());
|
||||
room.setScenarioId(scenario.getId());
|
||||
room.setScenario(scenario);
|
||||
room.setScenarioName(scenario.getName());
|
||||
room.setRoomLogs(roomLogService.roomLogListLimit10(id));
|
||||
if (Global.roomParamMap.get(id) == null) {
|
||||
ScenarioWsParam scenarioWsParam = new ScenarioWsParam();
|
||||
scenarioWsParam.setMag(1);
|
||||
Global.roomParamMap.put(id, scenarioWsParam);
|
||||
room.setMag(1);
|
||||
} else {
|
||||
room.setMag(Global.roomParamMap.get(id).getMag());
|
||||
}
|
||||
}
|
||||
return ResponseData.success(room);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
package com.hivekion.scenario.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.hivekion.baseData.entity.Scenario;
|
||||
import com.hivekion.common.entity.SearchInputVo;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -21,25 +23,30 @@ import lombok.Data;
|
|||
@TableName("TBL_SCENARIO_ROOM")
|
||||
@ApiModel(value = "ScenarioRoom对象", description = "想定房间")
|
||||
@Data
|
||||
public class ScenarioRoom extends SearchInputVo {
|
||||
public class ScenarioRoom extends SearchInputVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
@NotNull(message = "房间号不能为空")
|
||||
@TableField(value="room_name")
|
||||
private String roomName;
|
||||
@NotNull(message = "想定ID不能为空")
|
||||
@TableField(value="scenario_id")
|
||||
private Integer scenarioId;
|
||||
@TableField(value="user_id")
|
||||
private String userId;
|
||||
@TableField(value="create_time")
|
||||
private LocalDateTime createTime;
|
||||
@TableField(exist = false)
|
||||
private Integer mag;
|
||||
private Integer status = 0;
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId(type = IdType.INPUT)
|
||||
private String id;
|
||||
@NotNull(message = "房间号不能为空")
|
||||
@TableField(value = "room_name")
|
||||
private String roomName;
|
||||
@NotNull(message = "想定ID不能为空")
|
||||
@TableField(value = "scenario_id")
|
||||
private Integer scenarioId;
|
||||
@TableField(value = "user_id")
|
||||
private String userId;
|
||||
@TableField(value = "create_time")
|
||||
private LocalDateTime createTime;
|
||||
@TableField(exist = false)
|
||||
private String scenarioName;
|
||||
private Integer mag = 1;
|
||||
private Integer status = 0;
|
||||
@TableField(exist = false)
|
||||
private String scenarioName;
|
||||
@TableField(exist = false)
|
||||
private Scenario scenario;
|
||||
@TableField(exist = false)
|
||||
private List<RoomLog> roomLogs;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.hivekion.scenario.service;
|
|||
|
||||
import com.hivekion.scenario.entity.RoomLog;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
@ -12,5 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
* @since 2025-09-17
|
||||
*/
|
||||
public interface IRoomLogService extends IService<RoomLog> {
|
||||
|
||||
List<RoomLog> roomLogListLimit10(String roomId);
|
||||
}
|
||||
|
|
|
@ -1,20 +1,32 @@
|
|||
package com.hivekion.scenario.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hivekion.scenario.entity.RoomLog;
|
||||
import com.hivekion.scenario.mapper.RoomLogMapper;
|
||||
import com.hivekion.scenario.service.IRoomLogService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author liDongYu
|
||||
* @since 2025-09-17
|
||||
*/
|
||||
@Service
|
||||
public class RoomLogServiceImpl extends ServiceImpl<RoomLogMapper, RoomLog> implements IRoomLogService {
|
||||
public class RoomLogServiceImpl extends ServiceImpl<RoomLogMapper, RoomLog> implements
|
||||
IRoomLogService {
|
||||
|
||||
@Override
|
||||
public List<RoomLog> roomLogListLimit10(String roomId) {
|
||||
QueryWrapper<RoomLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("room_id", roomId == null ? "0" : roomId);
|
||||
queryWrapper.orderByAsc("log_time");
|
||||
queryWrapper.last("limit 10");
|
||||
return list(queryWrapper);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
CreateUserId,
|
||||
CreateTime,
|
||||
start_time As startTime,
|
||||
end_time,
|
||||
end_time as endTime,
|
||||
id,
|
||||
left_up_lng AS leftUpLng,
|
||||
right_up_lng AS rightUpLng,
|
||||
|
|
Loading…
Reference in New Issue
Block a user