feat: CreateRoomRequest 和 RoomItemResponse 新增 allowSpectate 字段
This commit is contained in:
@@ -30,5 +30,16 @@ public record CreateRoomRequest(
|
||||
/** 最大玩家数 */
|
||||
@NotNull(message = "最大玩家数不能为空")
|
||||
@Positive(message = "最大玩家数必须为正数")
|
||||
Integer maxPlayers
|
||||
) {}
|
||||
Integer maxPlayers,
|
||||
|
||||
/** 是否允许观战,默认 true */
|
||||
Boolean allowSpectate
|
||||
) {
|
||||
|
||||
/**
|
||||
* 获取观战开关值,未传时默认为 true
|
||||
*/
|
||||
public Boolean allowSpectate() {
|
||||
return allowSpectate != null ? allowSpectate : true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,8 @@ public record RoomItemResponse(
|
||||
String statusText,
|
||||
int stakes,
|
||||
String mode,
|
||||
String creatorName
|
||||
String creatorName,
|
||||
Boolean allowSpectate
|
||||
) {
|
||||
/** 状态 → 展示文本映射 */
|
||||
private static final Map<String, String> STATUS_TEXT_MAP = Map.of(
|
||||
@@ -53,7 +54,8 @@ public record RoomItemResponse(
|
||||
STATUS_TEXT_MAP.getOrDefault(room.getStatus(), "未知"),
|
||||
room.getStakes(),
|
||||
room.getMode(),
|
||||
creatorName
|
||||
creatorName,
|
||||
room.getAllowSpectate()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ public class GameServiceImpl implements GameService {
|
||||
private final UserRepository userRepository;
|
||||
private final BCryptPasswordEncoder passwordEncoder;
|
||||
private final SseEventPublisher sseEventPublisher;
|
||||
private final GameMoveRepository gameMoveRepository;
|
||||
|
||||
@Override
|
||||
public GameListResponse getGameList() {
|
||||
@@ -123,7 +124,8 @@ public class GameServiceImpl implements GameService {
|
||||
.setMode(request.mode())
|
||||
.setStakes(request.stakes())
|
||||
.setStatus("waiting")
|
||||
.setCreatorId(creatorId);
|
||||
.setCreatorId(creatorId)
|
||||
.setAllowSpectate(request.allowSpectate());
|
||||
|
||||
// 密码加密(如果提供了密码)
|
||||
if (request.password() != null && !request.password().isBlank()) {
|
||||
|
||||
Reference in New Issue
Block a user