jp.ms.common.modules 1.0.42 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dto/app-table/card.dto.d.ts +1 -0
- package/dist/dto/app-table/card.dto.js +11 -0
- package/dist/dto/app-table/card.dto.js.map +1 -1
- package/dist/dto/app-table/player.dto.d.ts +1 -0
- package/dist/dto/app-table/player.dto.js +11 -0
- package/dist/dto/app-table/player.dto.js.map +1 -1
- package/dist/dto/games/fool/fool-table.dto.d.ts +1 -0
- package/dist/dto/games/fool/fool-table.dto.js +10 -0
- package/dist/dto/games/fool/fool-table.dto.js.map +1 -1
- package/dist/modules/events/events.gateway.js +4 -2
- package/dist/modules/events/events.gateway.js.map +1 -1
- package/dist/modules/main/main.controller.d.ts +0 -1
- package/dist/modules/main/main.controller.js +0 -12
- package/dist/modules/main/main.controller.js.map +1 -1
- package/dist/modules/main/main.service.d.ts +0 -1
- package/dist/modules/main/main.service.js +0 -13
- package/dist/modules/main/main.service.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +1 -0
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +12 -0
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +6 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +4 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +18 -2
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
- package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js +2 -0
- package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js.map +1 -1
- package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.d.ts +3 -2
- package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js +9 -6
- package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js.map +1 -1
- package/dist/modules/menu/menu-screen.view.d.ts +2 -1
- package/dist/modules/menu/menu-screen.view.js +9 -3
- package/dist/modules/menu/menu-screen.view.js.map +1 -1
- package/dist/modules/menu/menu.interfaces.d.ts +1 -0
- package/dist/modules/menu/menu.service.js +1 -1
- package/dist/modules/menu/menu.service.js.map +1 -1
- package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js +2 -0
- package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js.map +1 -1
- package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.d.ts +3 -2
- package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js +9 -6
- package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js.map +1 -1
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +2 -0
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +3 -2
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +8 -5
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/game-table-result.d.ts +4 -3
- package/dist/utils/game-table-result.js +54 -4
- package/dist/utils/game-table-result.js.map +1 -1
- package/package.json +4 -4
- package/src/dto/app-table/card.dto.ts +9 -0
- package/src/dto/app-table/player.dto.ts +9 -0
- package/src/dto/games/fool/fool-table.dto.ts +8 -0
- package/src/modules/events/events.gateway.ts +4 -2
- package/src/modules/main/main.controller.ts +1 -22
- package/src/modules/main/main.service.ts +0 -29
- package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +13 -0
- package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +9 -1
- package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +33 -0
- package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +5 -0
- package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +5 -3
- package/src/modules/menu/menu-screen.view.ts +9 -2
- package/src/modules/menu/menu.interfaces.ts +1 -0
- package/src/modules/menu/menu.service.ts +1 -0
- package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +5 -0
- package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +5 -3
- package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +5 -0
- package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +5 -3
- package/src/utils/game-table-result.ts +66 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Connection } from 'mongoose';
|
|
2
|
-
import { GameResultRepository, OneTableTournamentRoomsRepository, ManyTablesTournamentRoomsRepository, UsersRepository } from 'jp.db.schemas';
|
|
2
|
+
import { GameResultRepository, OneTableTournamentRoomsRepository, ManyTablesTournamentRoomsRepository, UsersRepository, RatingRepository } from 'jp.db.schemas';
|
|
3
3
|
import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
|
|
4
4
|
export declare function getGameTableResults(master: GameMaster): {
|
|
5
5
|
gameType: string;
|
|
@@ -35,5 +35,6 @@ export declare function getGameTableResults(master: GameMaster): {
|
|
|
35
35
|
}[];
|
|
36
36
|
}[];
|
|
37
37
|
};
|
|
38
|
-
export declare function
|
|
39
|
-
export declare function
|
|
38
|
+
export declare function saveGameTablesResultForSimpleRoom(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository, ratingRepository: RatingRepository): Promise<void>;
|
|
39
|
+
export declare function saveGameTablesResultForTournamentRoom(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository): Promise<void>;
|
|
40
|
+
export declare function saveTournamentResult(master: TournamentMaster, connection: Connection, tournamentRepository: OneTableTournamentRoomsRepository | ManyTablesTournamentRoomsRepository, usersRepository: UsersRepository, ratingRepository: RatingRepository): Promise<void>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getGameTableResults = getGameTableResults;
|
|
4
|
-
exports.
|
|
4
|
+
exports.saveGameTablesResultForSimpleRoom = saveGameTablesResultForSimpleRoom;
|
|
5
|
+
exports.saveGameTablesResultForTournamentRoom = saveGameTablesResultForTournamentRoom;
|
|
5
6
|
exports.saveTournamentResult = saveTournamentResult;
|
|
6
7
|
function getGameTableResults(master) {
|
|
7
8
|
return {
|
|
@@ -48,14 +49,53 @@ function getGameTableResults(master) {
|
|
|
48
49
|
})) ?? [],
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
|
-
async function
|
|
52
|
+
async function saveGameTablesResultForSimpleRoom(master, connection, gameResultRepository, usersRepository, ratingRepository) {
|
|
52
53
|
const userGameResult = master
|
|
53
54
|
.getTable()
|
|
54
55
|
.getPlayers()
|
|
55
56
|
.map((player) => {
|
|
56
57
|
return {
|
|
57
58
|
userId: player.id,
|
|
58
|
-
|
|
59
|
+
userName: player.fullName,
|
|
60
|
+
userAvatarUrl: player.avatarUrl,
|
|
61
|
+
balanceAdding: player.profit,
|
|
62
|
+
experienceAdding: master.levelHelper.getNewExperienceAmount(player),
|
|
63
|
+
levelAdding: master.levelHelper.getNewLevelAdding(player.level, player.experience),
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
const ratings = userGameResult.map((item) => ({
|
|
67
|
+
userId: item.userId,
|
|
68
|
+
userName: item.userName,
|
|
69
|
+
userAvatarUrl: item.userAvatarUrl,
|
|
70
|
+
profit: item.balanceAdding,
|
|
71
|
+
game: master.getRoom().getGameType(),
|
|
72
|
+
}));
|
|
73
|
+
const session = await connection.startSession();
|
|
74
|
+
session.startTransaction();
|
|
75
|
+
try {
|
|
76
|
+
await gameResultRepository.createGameResult(getGameTableResults(master));
|
|
77
|
+
await usersRepository.saveGameResult(userGameResult);
|
|
78
|
+
await ratingRepository.addBulkPlayerRating(ratings);
|
|
79
|
+
await session.commitTransaction();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
await session.abortTransaction();
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
await session.endSession();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function saveGameTablesResultForTournamentRoom(master, connection, gameResultRepository, usersRepository) {
|
|
90
|
+
const userGameResult = master
|
|
91
|
+
.getTable()
|
|
92
|
+
.getPlayers()
|
|
93
|
+
.map((player) => {
|
|
94
|
+
return {
|
|
95
|
+
userId: player.id,
|
|
96
|
+
userName: player.fullName,
|
|
97
|
+
userAvatarUrl: player.avatarUrl,
|
|
98
|
+
balanceAdding: 0,
|
|
59
99
|
experienceAdding: master.levelHelper.getNewExperienceAmount(player),
|
|
60
100
|
levelAdding: master.levelHelper.getNewLevelAdding(player.level, player.experience),
|
|
61
101
|
};
|
|
@@ -75,20 +115,30 @@ async function saveGameTablesResult(master, connection, gameResultRepository, us
|
|
|
75
115
|
await session.endSession();
|
|
76
116
|
}
|
|
77
117
|
}
|
|
78
|
-
async function saveTournamentResult(master, connection, tournamentRepository, usersRepository) {
|
|
118
|
+
async function saveTournamentResult(master, connection, tournamentRepository, usersRepository, ratingRepository) {
|
|
79
119
|
const userTournamentResult = master.getTournamentResult().map((player) => {
|
|
80
120
|
return {
|
|
81
121
|
userId: player.playerId,
|
|
122
|
+
userName: player.playerName,
|
|
123
|
+
userAvatarUrl: player.playerAvatarUrl,
|
|
82
124
|
balanceAdding: player.profit,
|
|
83
125
|
experienceAdding: 0,
|
|
84
126
|
levelAdding: 0,
|
|
85
127
|
};
|
|
86
128
|
});
|
|
129
|
+
const ratings = userTournamentResult.map((item) => ({
|
|
130
|
+
userId: item.userId,
|
|
131
|
+
userName: item.userName,
|
|
132
|
+
userAvatarUrl: item.userAvatarUrl,
|
|
133
|
+
profit: item.balanceAdding,
|
|
134
|
+
game: master.getRoom().getGameType(),
|
|
135
|
+
}));
|
|
87
136
|
const session = await connection.startSession();
|
|
88
137
|
session.startTransaction();
|
|
89
138
|
try {
|
|
90
139
|
await usersRepository.saveGameResult(userTournamentResult);
|
|
91
140
|
await tournamentRepository.finishTournament(master.getTournamentId(), master.getTournamentResult());
|
|
141
|
+
await ratingRepository.addBulkPlayerRating(ratings);
|
|
92
142
|
await session.commitTransaction();
|
|
93
143
|
}
|
|
94
144
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jp.ms.common.modules",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.43",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"@nestjs/mongoose": "11.0.4",
|
|
14
14
|
"@nestjs/websockets": "11.1.9",
|
|
15
15
|
"dayjs": "1.11.18",
|
|
16
|
-
"jp.common.models": "1.1.
|
|
16
|
+
"jp.common.models": "1.1.50",
|
|
17
17
|
"jp.common.utils": "1.0.6",
|
|
18
|
-
"jp.db.schemas": "2.2.
|
|
19
|
-
"jp.ms.common.engine": "3.0.
|
|
18
|
+
"jp.db.schemas": "2.2.16",
|
|
19
|
+
"jp.ms.common.engine": "3.0.26",
|
|
20
20
|
"mongoose": "9.1.5",
|
|
21
21
|
"nestjs-i18n": "10.5.1",
|
|
22
22
|
"node-schedule": "2.1.1",
|
|
@@ -31,6 +31,15 @@ export class PlayerDto implements IAppTablePlayer {
|
|
|
31
31
|
@IsString()
|
|
32
32
|
avatarUrl: string;
|
|
33
33
|
|
|
34
|
+
@ApiProperty({
|
|
35
|
+
description: 'avatar frame',
|
|
36
|
+
required: true,
|
|
37
|
+
type: String,
|
|
38
|
+
})
|
|
39
|
+
@Expose()
|
|
40
|
+
@IsString()
|
|
41
|
+
avatarFrame: string;
|
|
42
|
+
|
|
34
43
|
@ApiProperty({
|
|
35
44
|
description: 'stack',
|
|
36
45
|
required: true,
|
|
@@ -47,6 +47,14 @@ export class FoolTableDto implements IFoolTable {
|
|
|
47
47
|
@Expose()
|
|
48
48
|
tableSize: number;
|
|
49
49
|
|
|
50
|
+
@ApiProperty({
|
|
51
|
+
description: 'Table cards skin',
|
|
52
|
+
type: Number,
|
|
53
|
+
})
|
|
54
|
+
@IsNumber()
|
|
55
|
+
@Expose()
|
|
56
|
+
tableCardsSkin: string;
|
|
57
|
+
|
|
50
58
|
@IsArray()
|
|
51
59
|
@ValidateNested({ each: true })
|
|
52
60
|
@Type(() => FoolPlayerDto)
|
|
@@ -40,12 +40,14 @@ export class EventsGateway
|
|
|
40
40
|
if (user) {
|
|
41
41
|
const player = this.options.createPlayer({
|
|
42
42
|
id: user.userId,
|
|
43
|
-
fullName: user.
|
|
44
|
-
avatarUrl: user.
|
|
43
|
+
fullName: user.publicFullName,
|
|
44
|
+
avatarUrl: user.publicAvatarUrl,
|
|
45
|
+
avatarFrame: user.avatarFrame,
|
|
45
46
|
balance: user.balance,
|
|
46
47
|
experience: user.experience,
|
|
47
48
|
level: user.level,
|
|
48
49
|
language: user.normalizedLang,
|
|
50
|
+
cardsSkin: user.cardSkin,
|
|
49
51
|
onSendWsMessage: this.handleSendWsMessage,
|
|
50
52
|
onGotWsMessageClientResponse: this.handleGotWsMessageClientResponse,
|
|
51
53
|
});
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Controller,
|
|
3
|
-
Get,
|
|
4
|
-
Headers,
|
|
5
|
-
HttpCode,
|
|
6
|
-
HttpStatus,
|
|
7
|
-
Param,
|
|
8
|
-
Post,
|
|
9
|
-
} from '@nestjs/common';
|
|
1
|
+
import { Controller, Get, Headers } from '@nestjs/common';
|
|
10
2
|
import { IAppHeaders } from 'jp.common.models';
|
|
11
3
|
|
|
12
4
|
import {
|
|
@@ -56,17 +48,4 @@ export class MainController {
|
|
|
56
48
|
headers.client_language,
|
|
57
49
|
);
|
|
58
50
|
}
|
|
59
|
-
|
|
60
|
-
@Post('many_tables_tournament/buy_ticket/:tournamentId')
|
|
61
|
-
@HttpCode(HttpStatus.OK)
|
|
62
|
-
buyTicket(
|
|
63
|
-
@Param('tournamentId') tournamentId: string,
|
|
64
|
-
@Headers() headers: IAppHeaders,
|
|
65
|
-
): Promise<BaseAppScreenDto> {
|
|
66
|
-
return this.mainService.manyTablesTournamentbBuyTicket(
|
|
67
|
-
headers.client_auth_token,
|
|
68
|
-
headers.client_language,
|
|
69
|
-
tournamentId,
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
51
|
}
|
|
@@ -29,7 +29,6 @@ import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tourname
|
|
|
29
29
|
import { EventsBusMainTablesSubscribeService } from '../event-bus/events-bus.main-tables.subscribe.service';
|
|
30
30
|
import {
|
|
31
31
|
ErrorCodeEnum,
|
|
32
|
-
NotEnoughMoneyForPurchaseException,
|
|
33
32
|
NotFoundFreeRoomForFastGameException,
|
|
34
33
|
} from '../../exception';
|
|
35
34
|
|
|
@@ -152,32 +151,4 @@ export class MainService {
|
|
|
152
151
|
player.id,
|
|
153
152
|
);
|
|
154
153
|
}
|
|
155
|
-
|
|
156
|
-
async manyTablesTournamentbBuyTicket(
|
|
157
|
-
clientAuthToken: string,
|
|
158
|
-
lang: string,
|
|
159
|
-
tournamentId: string,
|
|
160
|
-
): Promise<BaseAppScreenDto> {
|
|
161
|
-
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
162
|
-
const tournament =
|
|
163
|
-
this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
|
|
164
|
-
const user = await this.usersRepository.findById(player?.id ?? '');
|
|
165
|
-
|
|
166
|
-
if (!player || !tournament || !user) {
|
|
167
|
-
throw new InternalServerErrorException();
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (user.balance < tournament.getTicketPrice()) {
|
|
171
|
-
throw new NotEnoughMoneyForPurchaseException(
|
|
172
|
-
new ErrorSnackbarComponent(
|
|
173
|
-
ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
|
|
174
|
-
this.options.i18n.t('common.server.message.code.4004', { lang }),
|
|
175
|
-
),
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
await this.manyTablesRoomsManagerService.buyTicket(tournamentId, player);
|
|
180
|
-
|
|
181
|
-
return this.getScreen(lang, clientAuthToken);
|
|
182
|
-
}
|
|
183
154
|
}
|
|
@@ -148,4 +148,17 @@ export class ManyTablesTournamentController {
|
|
|
148
148
|
removeTournament(@Param('tournamentId') tournamentId: string): Promise<void> {
|
|
149
149
|
return this.tournamentService.removeTournament(tournamentId);
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
@Post('many_tables_tournament/buy_ticket/:tournamentId')
|
|
153
|
+
@HttpCode(HttpStatus.OK)
|
|
154
|
+
buyTicket(
|
|
155
|
+
@Param('tournamentId') tournamentId: string,
|
|
156
|
+
@Headers() headers: IAppHeaders,
|
|
157
|
+
): Promise<void> {
|
|
158
|
+
return this.tournamentService.manyTablesTournamentbBuyTicket(
|
|
159
|
+
headers.client_auth_token,
|
|
160
|
+
headers.client_language,
|
|
161
|
+
tournamentId,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
151
164
|
}
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
ManyTablesTournamentRoom,
|
|
5
5
|
ManyTablesTournamentRoomSchema,
|
|
6
6
|
ManyTablesTournamentRoomsRepository,
|
|
7
|
+
User,
|
|
8
|
+
UserSchema,
|
|
9
|
+
UsersRepository,
|
|
7
10
|
} from 'jp.db.schemas';
|
|
8
11
|
import {
|
|
9
12
|
GamePlayer,
|
|
@@ -27,9 +30,14 @@ import { ManyTablesTournamentModuleOptions } from './many-tables-tournament.inte
|
|
|
27
30
|
schema: ManyTablesTournamentRoomSchema,
|
|
28
31
|
},
|
|
29
32
|
]),
|
|
33
|
+
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
|
|
30
34
|
],
|
|
31
35
|
controllers: [ManyTablesTournamentController],
|
|
32
|
-
providers: [
|
|
36
|
+
providers: [
|
|
37
|
+
ManyTablesTournamentService,
|
|
38
|
+
ManyTablesTournamentRoomsRepository,
|
|
39
|
+
UsersRepository,
|
|
40
|
+
],
|
|
33
41
|
})
|
|
34
42
|
export class ManyTablesTournamentModule {
|
|
35
43
|
constructor(
|
|
@@ -7,11 +7,13 @@ import {
|
|
|
7
7
|
IBaseMoveData,
|
|
8
8
|
IAppTableState,
|
|
9
9
|
AppScreenRouter,
|
|
10
|
+
ErrorSnackbarComponent,
|
|
10
11
|
} from 'jp.common.models';
|
|
11
12
|
import {
|
|
12
13
|
ManyTablesTournamentMaster,
|
|
13
14
|
TournamentMaster,
|
|
14
15
|
} from 'jp.ms.common.engine';
|
|
16
|
+
import { UsersRepository } from 'jp.db.schemas';
|
|
15
17
|
|
|
16
18
|
import { BaseAppScreenDto } from '../../dto';
|
|
17
19
|
import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
|
|
@@ -19,6 +21,10 @@ import { PlayersManagerService } from '../players-manager/players-manager.servic
|
|
|
19
21
|
import { JoinTournamentDto } from '../../dto/common/join-tournament.dto';
|
|
20
22
|
import { ManyTablesTournamentCreateDto } from '../../dto/common/many-tables-tournament-create.dto';
|
|
21
23
|
import { ManyTablesTournamentUpdateDto } from '../../dto/common/many-tables-tournament-update.dto';
|
|
24
|
+
import {
|
|
25
|
+
NotEnoughMoneyForPurchaseException,
|
|
26
|
+
ErrorCodeEnum,
|
|
27
|
+
} from '../../exception';
|
|
22
28
|
|
|
23
29
|
import { ManyTablesTournamentFactoryOptions } from './many-tables-tournament.interfaces';
|
|
24
30
|
import { MANY_TABLES_TOURNAMENT_OPTIONS } from './many-tables-tournament.constants';
|
|
@@ -32,6 +38,7 @@ export class ManyTablesTournamentService {
|
|
|
32
38
|
private readonly playersManager: PlayersManagerService,
|
|
33
39
|
@Inject(MANY_TABLES_TOURNAMENT_OPTIONS)
|
|
34
40
|
private readonly options: ManyTablesTournamentFactoryOptions,
|
|
41
|
+
private readonly usersRepository: UsersRepository,
|
|
35
42
|
) {}
|
|
36
43
|
|
|
37
44
|
getStatusScreen(tournamentId: string, lang: string): BaseAppScreenDto {
|
|
@@ -205,4 +212,30 @@ export class ManyTablesTournamentService {
|
|
|
205
212
|
async removeTournament(tournamentId: string) {
|
|
206
213
|
return this.manyTablesRoomsManagerService.removeTournament(tournamentId);
|
|
207
214
|
}
|
|
215
|
+
|
|
216
|
+
async manyTablesTournamentbBuyTicket(
|
|
217
|
+
clientAuthToken: string,
|
|
218
|
+
lang: string,
|
|
219
|
+
tournamentId: string,
|
|
220
|
+
): Promise<void> {
|
|
221
|
+
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
222
|
+
const tournament =
|
|
223
|
+
this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
|
|
224
|
+
const user = await this.usersRepository.findById(player?.id ?? '');
|
|
225
|
+
|
|
226
|
+
if (!player || !tournament || !user) {
|
|
227
|
+
throw new InternalServerErrorException();
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if (user.balance < tournament.getTicketPrice()) {
|
|
231
|
+
throw new NotEnoughMoneyForPurchaseException(
|
|
232
|
+
new ErrorSnackbarComponent(
|
|
233
|
+
ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
|
|
234
|
+
this.options.i18n.t('common.server.message.code.4004', { lang }),
|
|
235
|
+
),
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
await this.manyTablesRoomsManagerService.buyTicket(tournamentId, player);
|
|
240
|
+
}
|
|
208
241
|
}
|
|
@@ -19,6 +19,9 @@ import {
|
|
|
19
19
|
Purchase,
|
|
20
20
|
PurchaseSchema,
|
|
21
21
|
PurchaseRepository,
|
|
22
|
+
Rating,
|
|
23
|
+
RatingSchema,
|
|
24
|
+
RatingRepository,
|
|
22
25
|
} from 'jp.db.schemas';
|
|
23
26
|
|
|
24
27
|
import { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
|
|
@@ -42,6 +45,7 @@ import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournamen
|
|
|
42
45
|
MongooseModule.forFeature([
|
|
43
46
|
{ name: GameResult.name, schema: GameResultSchema },
|
|
44
47
|
]),
|
|
48
|
+
MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
|
|
45
49
|
],
|
|
46
50
|
providers: [
|
|
47
51
|
ManyTablesTournamentRoomsRepository,
|
|
@@ -49,6 +53,7 @@ import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournamen
|
|
|
49
53
|
ManyTablesTournamentRoomsManagerService,
|
|
50
54
|
GameResultRepository,
|
|
51
55
|
PurchaseRepository,
|
|
56
|
+
RatingRepository,
|
|
52
57
|
],
|
|
53
58
|
exports: [ManyTablesTournamentRoomsManagerService],
|
|
54
59
|
})
|
|
@@ -31,10 +31,11 @@ import {
|
|
|
31
31
|
ManyTablesTournamentRoomDocument,
|
|
32
32
|
ManyTablesTournamentRoomsRepository,
|
|
33
33
|
UsersRepository,
|
|
34
|
+
RatingRepository,
|
|
34
35
|
} from 'jp.db.schemas';
|
|
35
36
|
|
|
36
37
|
import {
|
|
37
|
-
|
|
38
|
+
saveGameTablesResultForTournamentRoom,
|
|
38
39
|
saveTournamentResult,
|
|
39
40
|
} from '../../utils/game-table-result';
|
|
40
41
|
import { JpLoggerService } from '../logger';
|
|
@@ -59,6 +60,7 @@ export class ManyTablesTournamentRoomsManagerService {
|
|
|
59
60
|
private readonly usersRepository: UsersRepository,
|
|
60
61
|
private readonly gameResultRepository: GameResultRepository,
|
|
61
62
|
private readonly purchaseRepository: PurchaseRepository,
|
|
63
|
+
private readonly ratingRepository: RatingRepository,
|
|
62
64
|
private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
|
|
63
65
|
private readonly eventsBusManyTablesTournamentSubscribeService: EventsBusManyTablesTournamentSubscribeService,
|
|
64
66
|
@Inject(MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
|
|
@@ -259,12 +261,11 @@ export class ManyTablesTournamentRoomsManagerService {
|
|
|
259
261
|
};
|
|
260
262
|
|
|
261
263
|
private handleRoomTableGameFinished = async (master: GameMaster) => {
|
|
262
|
-
await
|
|
264
|
+
await saveGameTablesResultForTournamentRoom(
|
|
263
265
|
master,
|
|
264
266
|
this.connection,
|
|
265
267
|
this.gameResultRepository,
|
|
266
268
|
this.usersRepository,
|
|
267
|
-
false,
|
|
268
269
|
);
|
|
269
270
|
};
|
|
270
271
|
|
|
@@ -282,6 +283,7 @@ export class ManyTablesTournamentRoomsManagerService {
|
|
|
282
283
|
this.connection,
|
|
283
284
|
this.tournamentRepository,
|
|
284
285
|
this.usersRepository,
|
|
286
|
+
this.ratingRepository,
|
|
285
287
|
);
|
|
286
288
|
};
|
|
287
289
|
|
|
@@ -18,16 +18,19 @@ import { Banner, Menu } from 'jp.db.schemas';
|
|
|
18
18
|
export class MenuScreenView extends UniversalScreenView {
|
|
19
19
|
private readonly menuItems: Array<Menu>;
|
|
20
20
|
private readonly banner: Banner | null;
|
|
21
|
+
private gameType: string;
|
|
21
22
|
|
|
22
23
|
constructor(
|
|
23
24
|
localeService: ILocaleService,
|
|
24
25
|
lang: string,
|
|
26
|
+
gameType: string,
|
|
25
27
|
menuItems: Array<Menu>,
|
|
26
28
|
banner: Banner | null,
|
|
27
29
|
) {
|
|
28
30
|
super(localeService, lang);
|
|
29
31
|
this.menuItems = menuItems;
|
|
30
32
|
this.banner = banner;
|
|
33
|
+
this.gameType = gameType;
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
build(): IAppScreen {
|
|
@@ -56,7 +59,9 @@ export class MenuScreenView extends UniversalScreenView {
|
|
|
56
59
|
new BannerSectionListItemComponent(
|
|
57
60
|
this.banner.bannerId,
|
|
58
61
|
this.getDbResource(this.banner.title),
|
|
59
|
-
this.localeService.t(
|
|
62
|
+
this.localeService.t(`${this.gameType}.menu.header.title`, {
|
|
63
|
+
lang: this.lang,
|
|
64
|
+
}),
|
|
60
65
|
new UrlImageComponent(this.banner.image),
|
|
61
66
|
this.banner.link,
|
|
62
67
|
),
|
|
@@ -65,7 +70,9 @@ export class MenuScreenView extends UniversalScreenView {
|
|
|
65
70
|
|
|
66
71
|
return new MenuHeaderSectionComponent(
|
|
67
72
|
'header',
|
|
68
|
-
this.localeService.t(
|
|
73
|
+
this.localeService.t(`${this.gameType}.menu.header.title`, {
|
|
74
|
+
lang: this.lang,
|
|
75
|
+
}),
|
|
69
76
|
);
|
|
70
77
|
}
|
|
71
78
|
}
|
package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts
CHANGED
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
GameResult,
|
|
11
11
|
GameResultSchema,
|
|
12
12
|
GameResultRepository,
|
|
13
|
+
Rating,
|
|
14
|
+
RatingSchema,
|
|
15
|
+
RatingRepository,
|
|
13
16
|
} from 'jp.db.schemas';
|
|
14
17
|
|
|
15
18
|
import { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
|
|
@@ -29,12 +32,14 @@ import { ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './one-table-tourname
|
|
|
29
32
|
MongooseModule.forFeature([
|
|
30
33
|
{ name: GameResult.name, schema: GameResultSchema },
|
|
31
34
|
]),
|
|
35
|
+
MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
|
|
32
36
|
],
|
|
33
37
|
providers: [
|
|
34
38
|
OneTableTournamentRoomsRepository,
|
|
35
39
|
UsersRepository,
|
|
36
40
|
OneTableTournamentRoomsManagerService,
|
|
37
41
|
GameResultRepository,
|
|
42
|
+
RatingRepository,
|
|
38
43
|
],
|
|
39
44
|
exports: [OneTableTournamentRoomsManagerService],
|
|
40
45
|
})
|
package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts
CHANGED
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
GameResultRepository,
|
|
21
21
|
OneTableTournamentRoomDocument,
|
|
22
22
|
OneTableTournamentRoomsRepository,
|
|
23
|
+
RatingRepository,
|
|
23
24
|
UsersRepository,
|
|
24
25
|
} from 'jp.db.schemas';
|
|
25
26
|
import { InjectConnection } from '@nestjs/mongoose';
|
|
@@ -27,7 +28,7 @@ import { Connection } from 'mongoose';
|
|
|
27
28
|
|
|
28
29
|
import { JpLoggerService } from '../logger/jp-logger.service';
|
|
29
30
|
import {
|
|
30
|
-
|
|
31
|
+
saveGameTablesResultForTournamentRoom,
|
|
31
32
|
saveTournamentResult,
|
|
32
33
|
} from '../../utils/game-table-result';
|
|
33
34
|
import {
|
|
@@ -46,6 +47,7 @@ export class OneTableTournamentRoomsManagerService {
|
|
|
46
47
|
private readonly tournamentRepository: OneTableTournamentRoomsRepository,
|
|
47
48
|
private readonly usersRepository: UsersRepository,
|
|
48
49
|
private readonly gameResultRepository: GameResultRepository,
|
|
50
|
+
private readonly ratingRepository: RatingRepository,
|
|
49
51
|
private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
|
|
50
52
|
private readonly eventsBusOneTableTournamentSubscribeService: EventsBusOneTableTournamentSubscribeService,
|
|
51
53
|
@Inject(ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
|
|
@@ -163,12 +165,11 @@ export class OneTableTournamentRoomsManagerService {
|
|
|
163
165
|
};
|
|
164
166
|
|
|
165
167
|
private handleRoomTableGameFinished = async (master: GameMaster) => {
|
|
166
|
-
await
|
|
168
|
+
await saveGameTablesResultForTournamentRoom(
|
|
167
169
|
master,
|
|
168
170
|
this.connection,
|
|
169
171
|
this.gameResultRepository,
|
|
170
172
|
this.usersRepository,
|
|
171
|
-
false,
|
|
172
173
|
);
|
|
173
174
|
};
|
|
174
175
|
|
|
@@ -210,6 +211,7 @@ export class OneTableTournamentRoomsManagerService {
|
|
|
210
211
|
this.connection,
|
|
211
212
|
this.tournamentRepository,
|
|
212
213
|
this.usersRepository,
|
|
214
|
+
this.ratingRepository,
|
|
213
215
|
);
|
|
214
216
|
};
|
|
215
217
|
|
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
GameResult,
|
|
11
11
|
GameResultSchema,
|
|
12
12
|
GameResultRepository,
|
|
13
|
+
Rating,
|
|
14
|
+
RatingSchema,
|
|
15
|
+
RatingRepository,
|
|
13
16
|
} from 'jp.db.schemas';
|
|
14
17
|
|
|
15
18
|
import { SimpleRoomsManagerService } from './simple-rooms-manager.service';
|
|
@@ -26,11 +29,13 @@ import { SIMPLE_ROOMS_MANAGER_OPTIONS } from './simple-rooms-manager.constants';
|
|
|
26
29
|
MongooseModule.forFeature([
|
|
27
30
|
{ name: GameResult.name, schema: GameResultSchema },
|
|
28
31
|
]),
|
|
32
|
+
MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
|
|
29
33
|
],
|
|
30
34
|
providers: [
|
|
31
35
|
SimpleRoomsRepository,
|
|
32
36
|
UsersRepository,
|
|
33
37
|
GameResultRepository,
|
|
38
|
+
RatingRepository,
|
|
34
39
|
SimpleRoomsManagerService,
|
|
35
40
|
],
|
|
36
41
|
exports: [SimpleRoomsManagerService],
|
|
@@ -16,13 +16,14 @@ import {
|
|
|
16
16
|
} from 'jp.ms.common.engine';
|
|
17
17
|
import {
|
|
18
18
|
GameResultRepository,
|
|
19
|
+
RatingRepository,
|
|
19
20
|
SimpleRoomDocument,
|
|
20
21
|
SimpleRoomsRepository,
|
|
21
22
|
UsersRepository,
|
|
22
23
|
} from 'jp.db.schemas';
|
|
23
24
|
|
|
24
25
|
import { JpLoggerService } from '../logger/jp-logger.service';
|
|
25
|
-
import {
|
|
26
|
+
import { saveGameTablesResultForSimpleRoom } from '../../utils/game-table-result';
|
|
26
27
|
import { EventsBusMainTablesSubscribeService } from '../event-bus/events-bus.main-tables.subscribe.service';
|
|
27
28
|
import { EventsBusAppSubscribeService } from '../event-bus/events-bus.app.subscribe.service';
|
|
28
29
|
|
|
@@ -37,6 +38,7 @@ export class SimpleRoomsManagerService {
|
|
|
37
38
|
private readonly roomsRepository: SimpleRoomsRepository,
|
|
38
39
|
private readonly usersRepository: UsersRepository,
|
|
39
40
|
private readonly gameResultRepository: GameResultRepository,
|
|
41
|
+
private readonly ratingRepository: RatingRepository,
|
|
40
42
|
private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
|
|
41
43
|
private readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
|
|
42
44
|
@Inject(SIMPLE_ROOMS_MANAGER_OPTIONS)
|
|
@@ -170,12 +172,12 @@ export class SimpleRoomsManagerService {
|
|
|
170
172
|
};
|
|
171
173
|
|
|
172
174
|
private handleRoomTableGameFinished = async (master: GameMaster) => {
|
|
173
|
-
await
|
|
175
|
+
await saveGameTablesResultForSimpleRoom(
|
|
174
176
|
master,
|
|
175
177
|
this.connection,
|
|
176
178
|
this.gameResultRepository,
|
|
177
179
|
this.usersRepository,
|
|
178
|
-
|
|
180
|
+
this.ratingRepository,
|
|
179
181
|
);
|
|
180
182
|
|
|
181
183
|
// TODO: записать разные события для достижений
|