|
@@ -1,9 +1,10 @@
|
|
|
import { ROLES, CODEMEG, EVENT, FROMTYPE } from "../../enum/index.js";
|
|
|
import { getCurrentUser, updateUser, removeRoomAllUsers, getAllRoomUsers, updateRoomUser } from "../../service/userService.js";
|
|
|
// import { watchRoomService } from "../../service/watchRoomService.js";
|
|
|
-import { setRoomConfig, getRoomConfig, updateRoomConfigByKey } from "../../service/roomConfigService.js";
|
|
|
+import { setRoomConfig, getRoomConfig, updateRoomConfigByKey, isRoomMaster } from "../../service/roomConfigService.js";
|
|
|
|
|
|
import { RoomAssistant } from "./assistant.js";
|
|
|
+
|
|
|
import { Notify } from "./notify.js";
|
|
|
import { BasicController } from "../basicController.js";
|
|
|
|
|
@@ -77,14 +78,21 @@ export class RoomController extends BasicController {
|
|
|
|
|
|
updateUser(this.userId, userObj);
|
|
|
// this.sysUsers.push(this.user);
|
|
|
-
|
|
|
// 只有来源于小程序用户信息才记录到redis
|
|
|
if (this.isHoster(this.user.role)) {
|
|
|
if ([FROMTYPE.MiniAPP].includes(Number(this.user.from))) {
|
|
|
- await setRoomConfig(this.roomId, {
|
|
|
- userLimitNum: this.user.userLimitNum,
|
|
|
- enableTalk: this.user.enableTalk === "true" ? true : false,
|
|
|
- });
|
|
|
+ const roomConfig = getRoomConfig(this.roomId);
|
|
|
+ const checkoutMaster = await isRoomMaster(this.roomId, this.userId);
|
|
|
+ const isNoExistMaster = "masterId" in roomConfig;
|
|
|
+ console.log("checkoutMaster-isNoExistMaster", checkoutMaster, !isNoExistMaster);
|
|
|
+
|
|
|
+ if (checkoutMaster || !isNoExistMaster) {
|
|
|
+ await setRoomConfig(this.roomId, {
|
|
|
+ masterId: this.userId,
|
|
|
+ userLimitNum: this.user.userLimitNum,
|
|
|
+ enableTalk: this.user.enableTalk === "true" ? true : false,
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -155,8 +163,10 @@ export class RoomController extends BasicController {
|
|
|
this.socket.on(EVENT.changeRoomEnableTalk, async (data) => {
|
|
|
// this._roomsConfig[roomId].enableTalk = data;
|
|
|
try {
|
|
|
- await setRoomConfig(this.roomId, data);
|
|
|
const roomConfig = await getRoomConfig(this.roomId);
|
|
|
+ roomConfig.enableTalk = data;
|
|
|
+ await setRoomConfig(this.roomId, roomConfig);
|
|
|
+ console.log("setRoomConfig", data, roomConfig);
|
|
|
this.socket.broadcast.to(this.roomId).emit(EVENT.changeRoomEnableTalk, roomConfig);
|
|
|
} catch (error) {
|
|
|
this.logger.error("event:changeRoomEnableTalk", error);
|
|
@@ -213,7 +223,8 @@ export class RoomController extends BasicController {
|
|
|
this.socket.broadcast.to(roomId).emit(EVENT.beKicked, data);
|
|
|
}
|
|
|
} else {
|
|
|
- this.logger.warn(user.nickname || "" + " is hoster,cant be out of room");
|
|
|
+ const nickname = user.nickname || "";
|
|
|
+ this.logger.warn(nickname + "是房主,不能被踢!!");
|
|
|
}
|
|
|
} catch (error) {
|
|
|
console.error("error", error);
|
|
@@ -224,7 +235,9 @@ export class RoomController extends BasicController {
|
|
|
const userId = `user:${data.userId}`;
|
|
|
const roomId = `room:${data.sceneNumber}:${data.roomId}`;
|
|
|
console.log("设置助手", userId, roomId);
|
|
|
+
|
|
|
this.roomAssistant.setAssistant(roomId, userId);
|
|
|
+ // this.notify.notifyBeAssistant(roomId, userId, user);
|
|
|
});
|
|
|
|
|
|
if (this.debugger) {
|