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