diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index acc85f9..0c83669 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -305,6 +305,41 @@ export const appRoutes: Route[] = [ (m: any) => m.BasicModule ), }, + { + path: 'ladder', + loadChildren: () => + import('app/modules/admin/settings/ladder/ladder.module').then( + (m: any) => m.LadderModule + ), + }, + { + path: 'game', + loadChildren: () => + import('app/modules/admin/settings/game/game.module').then( + (m: any) => m.GameModule + ), + }, + { + path: 'evo', + loadChildren: () => + import('app/modules/admin/settings/evo/evo.module').then( + (m: any) => m.EvoModule + ), + }, + { + path: 'branch', + loadChildren: () => + import('app/modules/admin/settings/branch/branch.module').then( + (m: any) => m.BranchModule + ), + }, + { + path: 'indexing', + loadChildren: () => + import( + 'app/modules/admin/settings/indexing/indexing.module' + ).then((m: any) => m.IndexingModule), + }, ], }, { diff --git a/src/app/mock-api/apps/settings/branch/api.ts b/src/app/mock-api/apps/settings/branch/api.ts new file mode 100644 index 0000000..61b35dc --- /dev/null +++ b/src/app/mock-api/apps/settings/branch/api.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { basicSetting as basicSettingData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class BranchSettingMockApi { + private _basicSetting: any = basicSettingData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/settings/branch', 300) + .reply(({ request }) => { + // Clone the deposits + let basicSetting: any | null = cloneDeep(this._basicSetting); + + // Return the response + return [ + 200, + { + basicSetting, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/settings/branch') + .reply(({ request }) => { + // Get the id and deposit + const id = request.body.id; + const basicSetting = cloneDeep(request.body.basicSetting); + + // Prepare the updated basicSetting + let updatedBasicSetting = null; + + // Find the deposit and update it + // this._basicSetting.forEach((item, index, bs) => { + // if (item.id === id) { + // // Update the deposit + // basicSetting[index] = assign({}, basicSetting[index], deposit); + + // // Store the updated deposit + // updatedDeposit = deposits[index]; + // } + // }); + + // Return the response + return [200, basicSetting]; + }); + } +} diff --git a/src/app/mock-api/apps/settings/branch/data.ts b/src/app/mock-api/apps/settings/branch/data.ts new file mode 100644 index 0000000..ae3bccb --- /dev/null +++ b/src/app/mock-api/apps/settings/branch/data.ts @@ -0,0 +1,102 @@ +/* eslint-disable */ + +import { SiteStatusType } from 'app/modules/admin/settings/basic/types/site-status.type'; + +export const basicSetting = { + infos: [ + { + name: '사이트 ON/OFF 설정', + content: SiteStatusType.joinAvailable, + }, + { + name: '메모', + content: '메모 테스트', + }, + ], + earnSettings: [ + { + level: 'LV1', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV2', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV3', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV4', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + ], + gameSetting: [ + { + name: '스포츠게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기가져오고 있음(5분)', + }, + { + name: '스포츠게임 결과 가져오기', + isUse: false, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기결과 가져오고 있음(5분)', + }, + { + name: '실시간게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '하루한번 21시50분에 가져옴', + }, + { + name: '실시간게임 결과처리/정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분 단위로 체크(4분35초, 40초, 54초, 50초, 55초 정각)', + }, + { + name: '스포츠실시간 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '10초마다 완료된 경기 포인트 정산', + }, + { + name: '카지노 로그 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '20초마다 마지막 로그 가져옴', + }, + { + name: '카지노 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분마다 정산내용 DB저장', + }, + ], +}; +// siteStatus?: SiteStatusType; +// memo?: string; +// earnSetting?: any; +// gameSetting?: any; diff --git a/src/app/mock-api/apps/settings/evo/api.ts b/src/app/mock-api/apps/settings/evo/api.ts new file mode 100644 index 0000000..8077862 --- /dev/null +++ b/src/app/mock-api/apps/settings/evo/api.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { basicSetting as basicSettingData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class EvoSettingMockApi { + private _basicSetting: any = basicSettingData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/settings/evo', 300) + .reply(({ request }) => { + // Clone the deposits + let basicSetting: any | null = cloneDeep(this._basicSetting); + + // Return the response + return [ + 200, + { + basicSetting, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/settings/evo') + .reply(({ request }) => { + // Get the id and deposit + const id = request.body.id; + const basicSetting = cloneDeep(request.body.basicSetting); + + // Prepare the updated basicSetting + let updatedBasicSetting = null; + + // Find the deposit and update it + // this._basicSetting.forEach((item, index, bs) => { + // if (item.id === id) { + // // Update the deposit + // basicSetting[index] = assign({}, basicSetting[index], deposit); + + // // Store the updated deposit + // updatedDeposit = deposits[index]; + // } + // }); + + // Return the response + return [200, basicSetting]; + }); + } +} diff --git a/src/app/mock-api/apps/settings/evo/data.ts b/src/app/mock-api/apps/settings/evo/data.ts new file mode 100644 index 0000000..ae3bccb --- /dev/null +++ b/src/app/mock-api/apps/settings/evo/data.ts @@ -0,0 +1,102 @@ +/* eslint-disable */ + +import { SiteStatusType } from 'app/modules/admin/settings/basic/types/site-status.type'; + +export const basicSetting = { + infos: [ + { + name: '사이트 ON/OFF 설정', + content: SiteStatusType.joinAvailable, + }, + { + name: '메모', + content: '메모 테스트', + }, + ], + earnSettings: [ + { + level: 'LV1', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV2', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV3', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV4', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + ], + gameSetting: [ + { + name: '스포츠게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기가져오고 있음(5분)', + }, + { + name: '스포츠게임 결과 가져오기', + isUse: false, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기결과 가져오고 있음(5분)', + }, + { + name: '실시간게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '하루한번 21시50분에 가져옴', + }, + { + name: '실시간게임 결과처리/정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분 단위로 체크(4분35초, 40초, 54초, 50초, 55초 정각)', + }, + { + name: '스포츠실시간 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '10초마다 완료된 경기 포인트 정산', + }, + { + name: '카지노 로그 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '20초마다 마지막 로그 가져옴', + }, + { + name: '카지노 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분마다 정산내용 DB저장', + }, + ], +}; +// siteStatus?: SiteStatusType; +// memo?: string; +// earnSetting?: any; +// gameSetting?: any; diff --git a/src/app/mock-api/apps/settings/game/api.ts b/src/app/mock-api/apps/settings/game/api.ts new file mode 100644 index 0000000..8dee8e5 --- /dev/null +++ b/src/app/mock-api/apps/settings/game/api.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { basicSetting as basicSettingData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class GameSettingMockApi { + private _basicSetting: any = basicSettingData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/settings/game', 300) + .reply(({ request }) => { + // Clone the deposits + let basicSetting: any | null = cloneDeep(this._basicSetting); + + // Return the response + return [ + 200, + { + basicSetting, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/settings/game') + .reply(({ request }) => { + // Get the id and deposit + const id = request.body.id; + const basicSetting = cloneDeep(request.body.basicSetting); + + // Prepare the updated basicSetting + let updatedBasicSetting = null; + + // Find the deposit and update it + // this._basicSetting.forEach((item, index, bs) => { + // if (item.id === id) { + // // Update the deposit + // basicSetting[index] = assign({}, basicSetting[index], deposit); + + // // Store the updated deposit + // updatedDeposit = deposits[index]; + // } + // }); + + // Return the response + return [200, basicSetting]; + }); + } +} diff --git a/src/app/mock-api/apps/settings/game/data.ts b/src/app/mock-api/apps/settings/game/data.ts new file mode 100644 index 0000000..ae3bccb --- /dev/null +++ b/src/app/mock-api/apps/settings/game/data.ts @@ -0,0 +1,102 @@ +/* eslint-disable */ + +import { SiteStatusType } from 'app/modules/admin/settings/basic/types/site-status.type'; + +export const basicSetting = { + infos: [ + { + name: '사이트 ON/OFF 설정', + content: SiteStatusType.joinAvailable, + }, + { + name: '메모', + content: '메모 테스트', + }, + ], + earnSettings: [ + { + level: 'LV1', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV2', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV3', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV4', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + ], + gameSetting: [ + { + name: '스포츠게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기가져오고 있음(5분)', + }, + { + name: '스포츠게임 결과 가져오기', + isUse: false, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기결과 가져오고 있음(5분)', + }, + { + name: '실시간게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '하루한번 21시50분에 가져옴', + }, + { + name: '실시간게임 결과처리/정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분 단위로 체크(4분35초, 40초, 54초, 50초, 55초 정각)', + }, + { + name: '스포츠실시간 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '10초마다 완료된 경기 포인트 정산', + }, + { + name: '카지노 로그 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '20초마다 마지막 로그 가져옴', + }, + { + name: '카지노 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분마다 정산내용 DB저장', + }, + ], +}; +// siteStatus?: SiteStatusType; +// memo?: string; +// earnSetting?: any; +// gameSetting?: any; diff --git a/src/app/mock-api/apps/settings/indexing/api.ts b/src/app/mock-api/apps/settings/indexing/api.ts new file mode 100644 index 0000000..00e66c2 --- /dev/null +++ b/src/app/mock-api/apps/settings/indexing/api.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { basicSetting as basicSettingData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class IndexingSettingMockApi { + private _basicSetting: any = basicSettingData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/settings/indexing', 300) + .reply(({ request }) => { + // Clone the deposits + let basicSetting: any | null = cloneDeep(this._basicSetting); + + // Return the response + return [ + 200, + { + basicSetting, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/settings/indexing') + .reply(({ request }) => { + // Get the id and deposit + const id = request.body.id; + const basicSetting = cloneDeep(request.body.basicSetting); + + // Prepare the updated basicSetting + let updatedBasicSetting = null; + + // Find the deposit and update it + // this._basicSetting.forEach((item, index, bs) => { + // if (item.id === id) { + // // Update the deposit + // basicSetting[index] = assign({}, basicSetting[index], deposit); + + // // Store the updated deposit + // updatedDeposit = deposits[index]; + // } + // }); + + // Return the response + return [200, basicSetting]; + }); + } +} diff --git a/src/app/mock-api/apps/settings/indexing/data.ts b/src/app/mock-api/apps/settings/indexing/data.ts new file mode 100644 index 0000000..ae3bccb --- /dev/null +++ b/src/app/mock-api/apps/settings/indexing/data.ts @@ -0,0 +1,102 @@ +/* eslint-disable */ + +import { SiteStatusType } from 'app/modules/admin/settings/basic/types/site-status.type'; + +export const basicSetting = { + infos: [ + { + name: '사이트 ON/OFF 설정', + content: SiteStatusType.joinAvailable, + }, + { + name: '메모', + content: '메모 테스트', + }, + ], + earnSettings: [ + { + level: 'LV1', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV2', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV3', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV4', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + ], + gameSetting: [ + { + name: '스포츠게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기가져오고 있음(5분)', + }, + { + name: '스포츠게임 결과 가져오기', + isUse: false, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기결과 가져오고 있음(5분)', + }, + { + name: '실시간게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '하루한번 21시50분에 가져옴', + }, + { + name: '실시간게임 결과처리/정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분 단위로 체크(4분35초, 40초, 54초, 50초, 55초 정각)', + }, + { + name: '스포츠실시간 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '10초마다 완료된 경기 포인트 정산', + }, + { + name: '카지노 로그 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '20초마다 마지막 로그 가져옴', + }, + { + name: '카지노 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분마다 정산내용 DB저장', + }, + ], +}; +// siteStatus?: SiteStatusType; +// memo?: string; +// earnSetting?: any; +// gameSetting?: any; diff --git a/src/app/mock-api/apps/settings/ladder/api.ts b/src/app/mock-api/apps/settings/ladder/api.ts new file mode 100644 index 0000000..63dfe45 --- /dev/null +++ b/src/app/mock-api/apps/settings/ladder/api.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { basicSetting as basicSettingData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class LadderSettingMockApi { + private _basicSetting: any = basicSettingData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/settings/ladder', 300) + .reply(({ request }) => { + // Clone the deposits + let basicSetting: any | null = cloneDeep(this._basicSetting); + + // Return the response + return [ + 200, + { + basicSetting, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ BasicSetting - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/settings/ladder') + .reply(({ request }) => { + // Get the id and deposit + const id = request.body.id; + const basicSetting = cloneDeep(request.body.basicSetting); + + // Prepare the updated basicSetting + let updatedBasicSetting = null; + + // Find the deposit and update it + // this._basicSetting.forEach((item, index, bs) => { + // if (item.id === id) { + // // Update the deposit + // basicSetting[index] = assign({}, basicSetting[index], deposit); + + // // Store the updated deposit + // updatedDeposit = deposits[index]; + // } + // }); + + // Return the response + return [200, basicSetting]; + }); + } +} diff --git a/src/app/mock-api/apps/settings/ladder/data.ts b/src/app/mock-api/apps/settings/ladder/data.ts new file mode 100644 index 0000000..ae3bccb --- /dev/null +++ b/src/app/mock-api/apps/settings/ladder/data.ts @@ -0,0 +1,102 @@ +/* eslint-disable */ + +import { SiteStatusType } from 'app/modules/admin/settings/basic/types/site-status.type'; + +export const basicSetting = { + infos: [ + { + name: '사이트 ON/OFF 설정', + content: SiteStatusType.joinAvailable, + }, + { + name: '메모', + content: '메모 테스트', + }, + ], + earnSettings: [ + { + level: 'LV1', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV2', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV3', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + { + level: 'LV4', + firstRate: '15', + firstIsUse: true, + firstMaxEarnMoney: '10000', + everyRate: '15', + everyIsUse: true, + everyMaxEarnMoney: '10000', + }, + ], + gameSetting: [ + { + name: '스포츠게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기가져오고 있음(5분)', + }, + { + name: '스포츠게임 결과 가져오기', + isUse: false, + memo: '슬롯 사이트 메모', + description: '다른서버에서 경기결과 가져오고 있음(5분)', + }, + { + name: '실시간게임 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '하루한번 21시50분에 가져옴', + }, + { + name: '실시간게임 결과처리/정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분 단위로 체크(4분35초, 40초, 54초, 50초, 55초 정각)', + }, + { + name: '스포츠실시간 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '10초마다 완료된 경기 포인트 정산', + }, + { + name: '카지노 로그 가져오기', + isUse: true, + memo: '슬롯 사이트 메모', + description: '20초마다 마지막 로그 가져옴', + }, + { + name: '카지노 포인트 정산', + isUse: true, + memo: '슬롯 사이트 메모', + description: '5분마다 정산내용 DB저장', + }, + ], +}; +// siteStatus?: SiteStatusType; +// memo?: string; +// earnSetting?: any; +// gameSetting?: any; diff --git a/src/app/mock-api/apps/settings/withdraw/api.ts b/src/app/mock-api/apps/settings/withdraw/api.ts deleted file mode 100644 index b328d3c..0000000 --- a/src/app/mock-api/apps/settings/withdraw/api.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; -import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; -import { withdraws as withdrawsData } from './data'; - -@Injectable({ - providedIn: 'root', -}) -export class BankWithdrawMockApi { - private _withdraws: any[] = withdrawsData; - - /** - * Constructor - */ - constructor(private _fuseMockApiService: FuseMockApiService) { - // Register Mock API handlers - this.registerHandlers(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Register Mock API handlers - */ - registerHandlers(): void { - // ----------------------------------------------------------------------------------------------------- - // @ Withdraws - GET - // ----------------------------------------------------------------------------------------------------- - this._fuseMockApiService - .onGet('api/apps/bank/withdraw/withdraws', 300) - .reply(({ request }) => { - // Get available queries - const search = request.params.get('search'); - const sort = request.params.get('sort') || 'name'; - const order = request.params.get('order') || 'asc'; - const page = parseInt(request.params.get('page') ?? '1', 10); - const size = parseInt(request.params.get('size') ?? '10', 10); - - // Clone the withdraws - let withdraws: any[] | null = cloneDeep(this._withdraws); - - // Sort the withdraws - if (sort === 'sku' || sort === 'name' || sort === 'active') { - withdraws.sort((a, b) => { - const fieldA = a[sort].toString().toUpperCase(); - const fieldB = b[sort].toString().toUpperCase(); - return order === 'asc' - ? fieldA.localeCompare(fieldB) - : fieldB.localeCompare(fieldA); - }); - } else { - withdraws.sort((a, b) => - order === 'asc' ? a[sort] - b[sort] : b[sort] - a[sort] - ); - } - - // If search exists... - if (search) { - // Filter the withdraws - withdraws = withdraws.filter( - (contact: any) => - contact.name && - contact.name.toLowerCase().includes(search.toLowerCase()) - ); - } - - // Paginate - Start - const withdrawsLength = withdraws.length; - - // Calculate pagination details - const begin = page * size; - const end = Math.min(size * (page + 1), withdrawsLength); - const lastPage = Math.max(Math.ceil(withdrawsLength / size), 1); - - // Prepare the pagination object - let pagination = {}; - - // If the requested page number is bigger than - // the last possible page number, return null for - // users but also send the last possible page so - // the app can navigate to there - if (page > lastPage) { - withdraws = null; - pagination = { - lastPage, - }; - } else { - // Paginate the results by size - withdraws = withdraws.slice(begin, end); - - // Prepare the pagination mock-api - pagination = { - length: withdrawsLength, - size: size, - page: page, - lastPage: lastPage, - startIndex: begin, - endIndex: end - 1, - }; - } - - // Return the response - return [ - 200, - { - withdraws, - pagination, - }, - ]; - }); - - // ----------------------------------------------------------------------------------------------------- - // @ Withdraws - GET - // ----------------------------------------------------------------------------------------------------- - this._fuseMockApiService - .onGet('api/apps/bank/withdraw/withdraw') - .reply(({ request }) => { - // Get the id from the params - const id = request.params.get('id'); - - // Clone the users - const withdraws = cloneDeep(this._withdraws); - - // Find the withdraw - const withdraw = withdraws.find((item: any) => item.id === id); - - // Return the response - return [200, withdraw]; - }); - - // ----------------------------------------------------------------------------------------------------- - // @ Withdraws - POST - // ----------------------------------------------------------------------------------------------------- - this._fuseMockApiService - .onPost('api/apps/bank/withdraw/withdraw') - .reply(() => { - // Generate a new withdraw - const newWithdraw = { - id: FuseMockApiUtils.guid(), - rank: '', - nickname: '', - exchangeApplication: '', - calculateType: '', - accountHolder: '', - note: '', - registrationDate: '', - processDate: '', - deposit: '', - withdrawal: '', - total: '', - highRank: '', - state: '', - }; - - // Unshift the new withdraw - this._withdraws.unshift(newWithdraw); - - // Return the response - return [200, newWithdraw]; - }); - - // ----------------------------------------------------------------------------------------------------- - // @ Withdraw - PATCH - // ----------------------------------------------------------------------------------------------------- - this._fuseMockApiService - .onPatch('api/apps/bank/withdraw/withdraw') - .reply(({ request }) => { - // Get the id and withdraw - const id = request.body.id; - const withdraw = cloneDeep(request.body.withdraw); - - // Prepare the updated withdraw - let updatedWithdraw = null; - - // Find the withdraw and update it - this._withdraws.forEach((item, index, withdraws) => { - if (item.id === id) { - // Update the withdraw - withdraws[index] = assign({}, withdraws[index], withdraw); - - // Store the updated withdraw - updatedWithdraw = withdraws[index]; - } - }); - - // Return the response - return [200, updatedWithdraw]; - }); - - // ----------------------------------------------------------------------------------------------------- - // @ Withdraw - DELETE - // ----------------------------------------------------------------------------------------------------- - this._fuseMockApiService - .onDelete('api/apps/bank/withdraw/withdraw') - .reply(({ request }) => { - // Get the id - const id = request.params.get('id'); - - // Find the withdraw and delete it - this._withdraws.forEach((item, index) => { - if (item.id === id) { - this._withdraws.splice(index, 1); - } - }); - - // Return the response - return [200, true]; - }); - } -} diff --git a/src/app/mock-api/apps/settings/withdraw/data.ts b/src/app/mock-api/apps/settings/withdraw/data.ts deleted file mode 100644 index 72ff135..0000000 --- a/src/app/mock-api/apps/settings/withdraw/data.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* eslint-disable */ - -export const withdraws = [ - { - rank: '회원', - id: 'aa100', - nickname: 'aa100', - exchangeApplication: 14000000, - calculateType: '롤링', - accountHolder: '광주은행121212121212sss', - note: '@', - registrationDate: '2022-06-10 16:51', - processDate: '2022-06-10 16:51', - deposit: 41200000, - withdraw: 19000000, - total: 22200000, - highRank: '[매장]kgon5', - state: '완료', - }, - { - rank: '회원', - id: 'aa100', - nickname: 'aa100', - exchangeApplication: 5000000, - calculateType: '롤링', - accountHolder: '광주은행121212121212sss', - note: '@', - registrationDate: '2022-06-08 18:31', - processDate: '2022-06-08 20:13', - deposit: 41200000, - withdraw: 19000000, - total: 22200000, - highRank: '[매장]kgon5', - state: '완료', - }, - { - rank: '회원', - id: 'qwer12', - nickname: '하하하', - exchangeApplication: 10000, - calculateType: '롤링', - accountHolder: '하나은행000210654151테스트', - note: '', - registrationDate: '2022-06-08 01:22', - processDate: '2022-06-08 01:22', - deposit: 10000000, - withdraw: 10000, - total: 9990000, - highRank: '[매장]kgon5', - state: '완료', - }, -]; diff --git a/src/app/mock-api/common/navigation/data.ts b/src/app/mock-api/common/navigation/data.ts index cee6ba1..8a6be35 100644 --- a/src/app/mock-api/common/navigation/data.ts +++ b/src/app/mock-api/common/navigation/data.ts @@ -213,6 +213,41 @@ export const defaultNavigation: FuseNavigationItem[] = [ icon: 'heroicons_outline:cog', link: '/settings/basic', }, + { + id: 'settings.ladder', + title: 'Ladder-Setting', + type: 'basic', + icon: 'heroicons_outline:cog', + link: '/settings/ladder', + }, + { + id: 'settings.game', + title: 'Game-Setting', + type: 'basic', + icon: 'heroicons_outline:cog', + link: '/settings/game', + }, + { + id: 'settings.evo', + title: 'Evo-Setting', + type: 'basic', + icon: 'heroicons_outline:cog', + link: '/settings/evo', + }, + { + id: 'settings.branch', + title: 'Branch-Setting', + type: 'basic', + icon: 'heroicons_outline:cog', + link: '/settings/branch', + }, + { + id: 'settings.indexing', + title: 'Indexing-Setting', + type: 'basic', + icon: 'heroicons_outline:cog', + link: '/settings/indexing', + }, ], }, { diff --git a/src/app/modules/admin/settings/ladder/evolution.module.ts b/src/app/modules/admin/settings/branch/branch.module.ts similarity index 90% rename from src/app/modules/admin/settings/ladder/evolution.module.ts rename to src/app/modules/admin/settings/branch/branch.module.ts index 7fb584a..6c11d89 100644 --- a/src/app/modules/admin/settings/ladder/evolution.module.ts +++ b/src/app/modules/admin/settings/branch/branch.module.ts @@ -18,14 +18,14 @@ import { SharedModule } from 'app/shared/shared.module'; import { COMPONENTS } from './components'; -import { evolutionRoutes } from './evolution.routing'; +import { branchRoutes } from './branch.routing'; @NgModule({ declarations: [COMPONENTS], imports: [ TranslocoModule, SharedModule, - RouterModule.forChild(evolutionRoutes), + RouterModule.forChild(branchRoutes), MatButtonModule, MatFormFieldModule, @@ -39,4 +39,4 @@ import { evolutionRoutes } from './evolution.routing'; MatTooltipModule, ], }) -export class EvolutionModule {} +export class BranchModule {} diff --git a/src/app/modules/admin/settings/branch/branch.routing.ts b/src/app/modules/admin/settings/branch/branch.routing.ts new file mode 100644 index 0000000..3b47af2 --- /dev/null +++ b/src/app/modules/admin/settings/branch/branch.routing.ts @@ -0,0 +1,15 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; + +import { BranchResolver } from './resolvers/branch.resolver'; + +export const branchRoutes: Route[] = [ + { + path: '', + component: ListComponent, + // resolve: { + // // branch: BranchResolver, + // }, + }, +]; diff --git a/src/app/modules/admin/settings/branch/components/list.component.html b/src/app/modules/admin/settings/branch/components/list.component.html index 907126a..82b2b01 100644 --- a/src/app/modules/admin/settings/branch/components/list.component.html +++ b/src/app/modules/admin/settings/branch/components/list.component.html @@ -1,350 +1 @@ -
- -
- -
- -
- -
Evolution
- -
- - - - - - - 전체금액 - 배팅100만미만 - 배팅100-300만 - 배팅300-500만 - 배팅500만이상 - 당첨1000만초과 - - - - - 아이디 - 게임아이디 - 닉네임 - 게임종류 - - - - - - - - - -
-
- - -
- -
- - -
- -
-
- - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
- - -
- There are no evolution! -
-
-
-
-
+

branch account setting page

diff --git a/src/app/modules/admin/settings/branch/components/list.component.ts b/src/app/modules/admin/settings/branch/components/list.component.ts index 629a2cb..fa3f145 100644 --- a/src/app/modules/admin/settings/branch/components/list.component.ts +++ b/src/app/modules/admin/settings/branch/components/list.component.ts @@ -29,12 +29,8 @@ import { import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; -import { EvolutionService } from '../services/evolution.service'; - @Component({ - selector: 'evolution-list', + selector: 'settings-branch-list', templateUrl: './list.component.html', styles: [ /* language=SCSS */ @@ -64,13 +60,6 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - evolutions$!: Observable; - - isLoading = false; - searchInputControl = new FormControl(); - selectedEvolution?: Evolution; - pagination?: EvolutionPagination; - private _unsubscribeAll: Subject = new Subject(); /** @@ -79,8 +68,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, - private _formBuilder: FormBuilder, - private _evolutionService: EvolutionService + private _formBuilder: FormBuilder ) {} // ----------------------------------------------------------------------------------------------------- @@ -90,64 +78,12 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { /** * On init */ - ngOnInit(): void { - // Get the pagination - this._evolutionService.pagination$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: EvolutionPagination | undefined) => { - // Update the pagination - this.pagination = pagination; - - // Mark for check - this._changeDetectorRef.markForCheck(); - }); - - // Get the products - this.evolutions$ = this._evolutionService.evolutions$; - } + ngOnInit(): void {} /** * After view init */ - ngAfterViewInit(): void { - if (this._sort && this._paginator) { - // Set the initial sort - this._sort.sort({ - id: 'nickname', - start: 'asc', - disableClear: true, - }); - - // Mark for check - this._changeDetectorRef.markForCheck(); - - // If the evolution changes the sort order... - this._sort.sortChange - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(() => { - // Reset back to the first page - this._paginator.pageIndex = 0; - }); - - // Get products if sort or page changes - merge(this._sort.sortChange, this._paginator.page) - .pipe( - switchMap(() => { - this.isLoading = true; - return this._evolutionService.getEvolutions( - this._paginator.pageIndex, - this._paginator.pageSize, - this._sort.active, - this._sort.direction - ); - }), - map(() => { - this.isLoading = false; - }) - ) - .subscribe(); - } - } + ngAfterViewInit(): void {} /** * On destroy diff --git a/src/app/modules/admin/settings/branch/evolution.routing.ts b/src/app/modules/admin/settings/branch/evolution.routing.ts deleted file mode 100644 index 78500d7..0000000 --- a/src/app/modules/admin/settings/branch/evolution.routing.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Route } from '@angular/router'; - -import { ListComponent } from './components/list.component'; - -import { EvolutionsResolver } from './resolvers/evolution.resolver'; - -export const evolutionRoutes: Route[] = [ - { - path: '', - component: ListComponent, - resolve: { - deposits: EvolutionsResolver, - }, - }, -]; diff --git a/src/app/modules/admin/settings/branch/models/evolution-pagination.ts b/src/app/modules/admin/settings/branch/models/evolution-pagination.ts deleted file mode 100644 index d1bff25..0000000 --- a/src/app/modules/admin/settings/branch/models/evolution-pagination.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface EvolutionPagination { - length: number; - size: number; - page: number; - lastPage: number; - startIndex: number; - endIndex: number; -} diff --git a/src/app/modules/admin/settings/branch/models/evolution.ts b/src/app/modules/admin/settings/branch/models/evolution.ts deleted file mode 100644 index 8d6f322..0000000 --- a/src/app/modules/admin/settings/branch/models/evolution.ts +++ /dev/null @@ -1,58 +0,0 @@ -export interface Evolution { - id?: string; - startDate?: string; - finishDate?: string; - availableBetting?: number; - bettingMoney?: number; - winningMoney?: number; - cancel?: number; - betWinCancel?: number; - mainofficeRolling?: number; - branchRolling?: number; - divisionRolling?: number; - officeRolling?: number; - storeRolling?: number; - memberRolling?: number; - totalrolling?: number; - highRank?: string; - gameId?: string; - nickname?: string; - gameName?: string; - gameInfo1?: string; - gameInfo2?: string; - gameInfo3?: string; - form?: string; - betting?: number; - profitLoss?: number; - beforeWinning?: number; - winning?: number; - afterWinning?: number; - beforeBetting?: number; - afterBetting?: number; - finalMoney?: number; - bettingInfo1?: string; - bettingInfo2?: number; - bettingInfo3?: number; - data?: string; - comp?: string; - mainofficeName?: string; - mainofficePercent?: number; - mainofficePoint?: number; - branchName?: string; - branchPercent?: number; - branchPoint?: number; - divisionName?: string; - divisionPercent?: number; - divisionPoint?: number; - officeName?: string; - officePercent?: number; - officePoint?: number; - storeName?: string; - storePercent?: number; - storePoint?: number; - memberName?: string; - memberPercent?: number; - memberPoint?: number; - bettingTime?: string; - registrationTime?: string; -} diff --git a/src/app/modules/admin/settings/branch/resolvers/branch.resolver.ts b/src/app/modules/admin/settings/branch/resolvers/branch.resolver.ts new file mode 100644 index 0000000..be338bc --- /dev/null +++ b/src/app/modules/admin/settings/branch/resolvers/branch.resolver.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { BranchService } from '../services/branch.service'; + +@Injectable({ + providedIn: 'root', +}) +export class BranchResolver implements Resolve { + /** + * Constructor + */ + constructor(private _branchService: BranchService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + branchSetting: any; + }> { + return this._branchService.getBranchSetting(); + } +} diff --git a/src/app/modules/admin/settings/branch/resolvers/evolution.resolver.ts b/src/app/modules/admin/settings/branch/resolvers/evolution.resolver.ts deleted file mode 100644 index 4fc4dd8..0000000 --- a/src/app/modules/admin/settings/branch/resolvers/evolution.resolver.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - Resolve, - Router, - RouterStateSnapshot, -} from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; - -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; -import { EvolutionService } from '../services/evolution.service'; - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionResolver implements Resolve { - /** - * Constructor - */ - constructor( - private _evolutionService: EvolutionService, - private _router: Router - ) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable { - return this._evolutionService - .getEvolutionById(route.paramMap.get('id')) - .pipe( - // Error here means the requested product is not available - catchError((error) => { - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionsResolver implements Resolve { - /** - * Constructor - */ - constructor(private _evolutionService: EvolutionService) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable<{ - pagination: EvolutionPagination; - evolutions: Evolution[]; - }> { - return this._evolutionService.getEvolutions(); - } -} diff --git a/src/app/modules/admin/settings/branch/services/branch.service.ts b/src/app/modules/admin/settings/branch/services/branch.service.ts new file mode 100644 index 0000000..69c1112 --- /dev/null +++ b/src/app/modules/admin/settings/branch/services/branch.service.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class BranchService { + // Private + private __branchSetting = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for game + */ + get branchSetting$(): Observable { + return this.__branchSetting.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get powerballs + * + * + */ + getBranchSetting(): Observable<{ + branchSetting: any; + }> { + return this._httpClient + .get<{ branchSetting: any }>('api/apps/settings/branch') + .pipe( + tap((response) => { + this.__branchSetting.next(response.branchSetting); + }) + ); + } +} diff --git a/src/app/modules/admin/settings/branch/services/evolution.service.ts b/src/app/modules/admin/settings/branch/services/evolution.service.ts deleted file mode 100644 index 396f0f7..0000000 --- a/src/app/modules/admin/settings/branch/services/evolution.service.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { - BehaviorSubject, - filter, - map, - Observable, - of, - switchMap, - take, - tap, - throwError, -} from 'rxjs'; - -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionService { - // Private - private __pagination = new BehaviorSubject( - undefined - ); - private __evolution = new BehaviorSubject(undefined); - private __evolutions = new BehaviorSubject( - undefined - ); - - /** - * Constructor - */ - constructor(private _httpClient: HttpClient) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Accessors - // ----------------------------------------------------------------------------------------------------- - - /** - * Getter for pagination - */ - get pagination$(): Observable { - return this.__pagination.asObservable(); - } - - /** - * Getter for evolution - */ - get evolution$(): Observable { - return this.__evolution.asObservable(); - } - - /** - * Getter for evolutions - */ - get evolutions$(): Observable { - return this.__evolutions.asObservable(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Get evolutions - * - * - * @param page - * @param size - * @param sort - * @param order - * @param search - */ - getEvolutions( - page: number = 0, - size: number = 10, - sort: string = 'nickname', - order: 'asc' | 'desc' | '' = 'asc', - search: string = '' - ): Observable<{ - pagination: EvolutionPagination; - evolutions: Evolution[]; - }> { - return this._httpClient - .get<{ pagination: EvolutionPagination; evolutions: Evolution[] }>( - 'api/apps/game/evolution/evolutions', - { - params: { - page: '' + page, - size: '' + size, - sort, - order, - search, - }, - } - ) - .pipe( - tap((response) => { - this.__pagination.next(response.pagination); - this.__evolutions.next(response.evolutions); - }) - ); - } - - /** - * Get product by id - */ - getEvolutionById(id: string | null): Observable { - return this.__evolutions.pipe( - take(1), - map((evolutions) => { - // Find the product - const evolution = - evolutions?.find((item) => item.id === id) || undefined; - - // Update the product - this.__evolution.next(evolution); - - // Return the product - return evolution; - }), - switchMap((product) => { - if (!product) { - return throwError('Could not found product with id of ' + id + '!'); - } - - return of(product); - }) - ); - } - - /** - * Create product - */ - createEvolution(): Observable { - return this.evolutions$.pipe( - take(1), - switchMap((evolutions) => - this._httpClient - .post('api/apps/game/evolution/product', {}) - .pipe( - map((newEvolution) => { - // Update the evolutions with the new product - if (!!evolutions) { - this.__evolutions.next([newEvolution, ...evolutions]); - } - - // Return the new product - return newEvolution; - }) - ) - ) - ); - } -} diff --git a/src/app/modules/admin/settings/evo/components/list.component.html b/src/app/modules/admin/settings/evo/components/list.component.html index eee3cf2..25dc387 100644 --- a/src/app/modules/admin/settings/evo/components/list.component.html +++ b/src/app/modules/admin/settings/evo/components/list.component.html @@ -1,372 +1 @@ -
- -
- -
- -
- -
Slot
- -
- - - - - - - 카지노 - 슬롯 - - - - - 전체 - 프라그마틱 슬롯 - 마이크로게이밍 슬롯 - 하바네로 - 부운고 - 플레이손 - 퀵스핀 - 플레이엔고 - 넷엔트 - 메버릭 - 레드레이크 - 릴렉스 - 블루프린트 - ELK - 아시안게이밍 슬롯 - CQ9 슬롯 - 레드타이거 - 드래곤 소프트 - 스피어헤드 - 엘리시움 - - - - - 전체금액 - 배팅100만미만 - 배팅100-300만 - 배팅300-500만 - 배팅500만이상 - 당첨1000만초과 - - - - - 아이디 - 게임아이디 - 닉네임 - 게임종류 - - - - - - - - - -
-
- - -
- -
- - -
- -
-
- - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
- - -
- There are no slot! -
-
-
-
-
+

evo game setting page

diff --git a/src/app/modules/admin/settings/evo/components/list.component.ts b/src/app/modules/admin/settings/evo/components/list.component.ts index 63e9563..c5a4efa 100644 --- a/src/app/modules/admin/settings/evo/components/list.component.ts +++ b/src/app/modules/admin/settings/evo/components/list.component.ts @@ -29,12 +29,8 @@ import { import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; -import { Slot } from '../models/slot'; -import { SlotPagination } from '../models/slot-pagination'; -import { SlotService } from '../services/slot.service'; - @Component({ - selector: 'slot-list', + selector: 'settings-evo-list', templateUrl: './list.component.html', styles: [ /* language=SCSS */ @@ -64,13 +60,6 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - slots$!: Observable; - - isLoading = false; - searchInputControl = new FormControl(); - selectedSlot?: Slot; - pagination?: SlotPagination; - private _unsubscribeAll: Subject = new Subject(); /** @@ -79,8 +68,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, - private _formBuilder: FormBuilder, - private _slotService: SlotService + private _formBuilder: FormBuilder ) {} // ----------------------------------------------------------------------------------------------------- @@ -90,64 +78,12 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { /** * On init */ - ngOnInit(): void { - // Get the pagination - this._slotService.pagination$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: SlotPagination | undefined) => { - // Update the pagination - this.pagination = pagination; - - // Mark for check - this._changeDetectorRef.markForCheck(); - }); - - // Get the products - this.slots$ = this._slotService.slots$; - } + ngOnInit(): void {} /** * After view init */ - ngAfterViewInit(): void { - if (this._sort && this._paginator) { - // Set the initial sort - this._sort.sort({ - id: 'nickname', - start: 'asc', - disableClear: true, - }); - - // Mark for check - this._changeDetectorRef.markForCheck(); - - // If the slot changes the sort order... - this._sort.sortChange - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(() => { - // Reset back to the first page - this._paginator.pageIndex = 0; - }); - - // Get products if sort or page changes - merge(this._sort.sortChange, this._paginator.page) - .pipe( - switchMap(() => { - this.isLoading = true; - return this._slotService.getSlots( - this._paginator.pageIndex, - this._paginator.pageSize, - this._sort.active, - this._sort.direction - ); - }), - map(() => { - this.isLoading = false; - }) - ) - .subscribe(); - } - } + ngAfterViewInit(): void {} /** * On destroy diff --git a/src/app/modules/admin/settings/evo/slot.module.ts b/src/app/modules/admin/settings/evo/evo.module.ts similarity index 91% rename from src/app/modules/admin/settings/evo/slot.module.ts rename to src/app/modules/admin/settings/evo/evo.module.ts index 6b92e2f..05c77fc 100644 --- a/src/app/modules/admin/settings/evo/slot.module.ts +++ b/src/app/modules/admin/settings/evo/evo.module.ts @@ -18,14 +18,14 @@ import { SharedModule } from 'app/shared/shared.module'; import { COMPONENTS } from './components'; -import { slotRoutes } from './slot.routing'; +import { evoRoutes } from './evo.routing'; @NgModule({ declarations: [COMPONENTS], imports: [ TranslocoModule, SharedModule, - RouterModule.forChild(slotRoutes), + RouterModule.forChild(evoRoutes), MatButtonModule, MatFormFieldModule, @@ -39,4 +39,4 @@ import { slotRoutes } from './slot.routing'; MatTooltipModule, ], }) -export class SlotModule {} +export class EvoModule {} diff --git a/src/app/modules/admin/settings/evo/slot.routing.ts b/src/app/modules/admin/settings/evo/evo.routing.ts similarity index 51% rename from src/app/modules/admin/settings/evo/slot.routing.ts rename to src/app/modules/admin/settings/evo/evo.routing.ts index 6643300..8b49c0a 100644 --- a/src/app/modules/admin/settings/evo/slot.routing.ts +++ b/src/app/modules/admin/settings/evo/evo.routing.ts @@ -2,14 +2,14 @@ import { Route } from '@angular/router'; import { ListComponent } from './components/list.component'; -import { SlotsResolver } from './resolvers/slot.resolver'; +import { EvoResolver } from './resolvers/evo.resolver'; -export const slotRoutes: Route[] = [ +export const evoRoutes: Route[] = [ { path: '', component: ListComponent, - resolve: { - deposits: SlotsResolver, - }, + // resolve: { + // evo: EvoResolver, + // }, }, ]; diff --git a/src/app/modules/admin/settings/evo/models/slot-pagination.ts b/src/app/modules/admin/settings/evo/models/slot-pagination.ts deleted file mode 100644 index fb8c889..0000000 --- a/src/app/modules/admin/settings/evo/models/slot-pagination.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface SlotPagination { - length: number; - size: number; - page: number; - lastPage: number; - startIndex: number; - endIndex: number; -} diff --git a/src/app/modules/admin/settings/evo/models/slot.ts b/src/app/modules/admin/settings/evo/models/slot.ts deleted file mode 100644 index db2b6dc..0000000 --- a/src/app/modules/admin/settings/evo/models/slot.ts +++ /dev/null @@ -1,58 +0,0 @@ -export interface Slot { - id?: string; - startDate?: string; - finishDate?: string; - availableBetting?: number; - bettingMoney?: number; - winningMoney?: number; - cancel?: number; - betWinCancel?: number; - mainofficeRolling?: number; - branchRolling?: number; - divisionRolling?: number; - officeRolling?: number; - storeRolling?: number; - memberRolling?: number; - totalrolling?: number; - highRank?: string; - gameId?: string; - nickname?: string; - gameName?: string; - gameInfo1?: string; - gameInfo2?: string; - gameInfo3?: string; - form?: string; - betting?: number; - profitLoss?: number; - beforeWinning?: number; - winning?: number; - afterWinning?: number; - beforeBetting?: number; - afterBetting?: number; - finalMoney?: number; - bettingInfo1?: string; - bettingInfo2?: number; - bettingInfo3?: number; - data?: string; - comp?: string; - mainofficeName?: string; - mainofficePercent?: number; - mainofficePoint?: number; - branchName?: string; - branchPercent?: number; - branchPoint?: number; - divisionName?: string; - divisionPercent?: number; - divisionPoint?: number; - officeName?: string; - officePercent?: number; - officePoint?: number; - storeName?: string; - storePercent?: number; - storePoint?: number; - memberName?: string; - memberPercent?: number; - memberPoint?: number; - bettingTime?: string; - registrationTime?: string; -} diff --git a/src/app/modules/admin/settings/evo/resolvers/evo.resolver.ts b/src/app/modules/admin/settings/evo/resolvers/evo.resolver.ts new file mode 100644 index 0000000..2d38303 --- /dev/null +++ b/src/app/modules/admin/settings/evo/resolvers/evo.resolver.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { EvoService } from '../services/evo.service'; + +@Injectable({ + providedIn: 'root', +}) +export class EvoResolver implements Resolve { + /** + * Constructor + */ + constructor(private _evoService: EvoService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + evoSetting: any; + }> { + return this._evoService.getEvoSetting(); + } +} diff --git a/src/app/modules/admin/settings/evo/resolvers/slot.resolver.ts b/src/app/modules/admin/settings/evo/resolvers/slot.resolver.ts deleted file mode 100644 index a88f4c4..0000000 --- a/src/app/modules/admin/settings/evo/resolvers/slot.resolver.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - Resolve, - Router, - RouterStateSnapshot, -} from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; - -import { Slot } from '../models/slot'; -import { SlotPagination } from '../models/slot-pagination'; -import { SlotService } from '../services/slot.service'; - -@Injectable({ - providedIn: 'root', -}) -export class SlotResolver implements Resolve { - /** - * Constructor - */ - constructor(private _slotService: SlotService, private _router: Router) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable { - return this._slotService.getSlotById(route.paramMap.get('id')).pipe( - // Error here means the requested product is not available - catchError((error) => { - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root', -}) -export class SlotsResolver implements Resolve { - /** - * Constructor - */ - constructor(private _slotService: SlotService) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable<{ - pagination: SlotPagination; - slots: Slot[]; - }> { - return this._slotService.getSlots(); - } -} diff --git a/src/app/modules/admin/settings/evo/services/evo.service.ts b/src/app/modules/admin/settings/evo/services/evo.service.ts new file mode 100644 index 0000000..6e9bb83 --- /dev/null +++ b/src/app/modules/admin/settings/evo/services/evo.service.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class EvoService { + // Private + private __evoSetting = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for game + */ + get evoSetting$(): Observable { + return this.__evoSetting.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get powerballs + * + * + */ + getEvoSetting(): Observable<{ + evoSetting: any; + }> { + return this._httpClient + .get<{ evoSetting: any }>('api/apps/settings/ladder') + .pipe( + tap((response) => { + this.__evoSetting.next(response.evoSetting); + }) + ); + } +} diff --git a/src/app/modules/admin/settings/evo/services/slot.service.ts b/src/app/modules/admin/settings/evo/services/slot.service.ts deleted file mode 100644 index 099df86..0000000 --- a/src/app/modules/admin/settings/evo/services/slot.service.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { - BehaviorSubject, - filter, - map, - Observable, - of, - switchMap, - take, - tap, - throwError, -} from 'rxjs'; - -import { Slot } from '../models/slot'; -import { SlotPagination } from '../models/slot-pagination'; - -@Injectable({ - providedIn: 'root', -}) -export class SlotService { - // Private - private __pagination = new BehaviorSubject( - undefined - ); - private __slot = new BehaviorSubject(undefined); - private __slots = new BehaviorSubject(undefined); - - /** - * Constructor - */ - constructor(private _httpClient: HttpClient) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Accessors - // ----------------------------------------------------------------------------------------------------- - - /** - * Getter for pagination - */ - get pagination$(): Observable { - return this.__pagination.asObservable(); - } - - /** - * Getter for slot - */ - get slot$(): Observable { - return this.__slot.asObservable(); - } - - /** - * Getter for slots - */ - get slots$(): Observable { - return this.__slots.asObservable(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Get slots - * - * - * @param page - * @param size - * @param sort - * @param order - * @param search - */ - getSlots( - page: number = 0, - size: number = 10, - sort: string = 'nickname', - order: 'asc' | 'desc' | '' = 'asc', - search: string = '' - ): Observable<{ - pagination: SlotPagination; - slots: Slot[]; - }> { - return this._httpClient - .get<{ pagination: SlotPagination; slots: Slot[] }>( - 'api/apps/game/slot/slots', - { - params: { - page: '' + page, - size: '' + size, - sort, - order, - search, - }, - } - ) - .pipe( - tap((response) => { - this.__pagination.next(response.pagination); - this.__slots.next(response.slots); - }) - ); - } - - /** - * Get product by id - */ - getSlotById(id: string | null): Observable { - return this.__slots.pipe( - take(1), - map((slots) => { - // Find the product - const slot = slots?.find((item) => item.id === id) || undefined; - - // Update the product - this.__slot.next(slot); - - // Return the product - return slot; - }), - switchMap((product) => { - if (!product) { - return throwError('Could not found product with id of ' + id + '!'); - } - - return of(product); - }) - ); - } - - /** - * Create product - */ - createSlot(): Observable { - return this.slots$.pipe( - take(1), - switchMap((slots) => - this._httpClient.post('api/apps/game/slot/product', {}).pipe( - map((newSlot) => { - // Update the slots with the new product - if (!!slots) { - this.__slots.next([newSlot, ...slots]); - } - - // Return the new product - return newSlot; - }) - ) - ) - ); - } -} diff --git a/src/app/modules/admin/settings/game/components/list.component.html b/src/app/modules/admin/settings/game/components/list.component.html index fa9d0dd..b128d7c 100644 --- a/src/app/modules/admin/settings/game/components/list.component.html +++ b/src/app/modules/admin/settings/game/components/list.component.html @@ -1,355 +1 @@ -
- -
- -
- -
- -
Powerball
- -
- - - - - - - 파워볼 - 카지노 - 슬롯 - - - - - 전체 - 단폴 - 조합 - - - - - 리스트수 - 40 - 60 - 80 - 100 - - - - - 전체금액 - 100-50만미만 - 50만-100만미만 - 100만-200만이하 - 300만초과 - - - - - 진행목록 - 당첨 - 실패 - 실패제외 - 취소 - 관리자취소 - 전체목록 - - - - - 아이디 - 닉네임 - 파워볼회차 - 배팅번호 - - - - - - - - - -
-
- - -
- -
- - -
- -
-
- - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
- - -
- There are no powerball! -
-
-
-
-
+

powerball game setting page

diff --git a/src/app/modules/admin/settings/game/components/list.component.ts b/src/app/modules/admin/settings/game/components/list.component.ts index fd01f57..242a7d5 100644 --- a/src/app/modules/admin/settings/game/components/list.component.ts +++ b/src/app/modules/admin/settings/game/components/list.component.ts @@ -29,13 +29,8 @@ import { import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; -import { User } from 'app/modules/admin/member/user/models/user'; -import { Powerball } from '../models/powerball'; -import { PowerballPagination } from '../models/powerball-pagination'; -import { PowerballService } from '../services/powerball.service'; - @Component({ - selector: 'powerball-list', + selector: 'settings-game-list', templateUrl: './list.component.html', styles: [ /* language=SCSS */ @@ -65,14 +60,6 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - powerballs$!: Observable; - users$!: Observable; - - isLoading = false; - searchInputControl = new FormControl(); - selectedPowerball?: Powerball; - pagination?: PowerballPagination; - private _unsubscribeAll: Subject = new Subject(); /** @@ -81,8 +68,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, - private _formBuilder: FormBuilder, - private _powerballService: PowerballService + private _formBuilder: FormBuilder ) {} // ----------------------------------------------------------------------------------------------------- @@ -92,64 +78,12 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { /** * On init */ - ngOnInit(): void { - // Get the pagination - this._powerballService.pagination$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: PowerballPagination | undefined) => { - // Update the pagination - this.pagination = pagination; - - // Mark for check - this._changeDetectorRef.markForCheck(); - }); - - // Get the products - this.powerballs$ = this._powerballService.powerballs$; - } + ngOnInit(): void {} /** * After view init */ - ngAfterViewInit(): void { - if (this._sort && this._paginator) { - // Set the initial sort - this._sort.sort({ - id: 'nickname', - start: 'asc', - disableClear: true, - }); - - // Mark for check - this._changeDetectorRef.markForCheck(); - - // If the powerball changes the sort order... - this._sort.sortChange - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(() => { - // Reset back to the first page - this._paginator.pageIndex = 0; - }); - - // Get products if sort or page changes - merge(this._sort.sortChange, this._paginator.page) - .pipe( - switchMap(() => { - this.isLoading = true; - return this._powerballService.getPowerballs( - this._paginator.pageIndex, - this._paginator.pageSize, - this._sort.active, - this._sort.direction - ); - }), - map(() => { - this.isLoading = false; - }) - ) - .subscribe(); - } - } + ngAfterViewInit(): void {} /** * On destroy diff --git a/src/app/modules/admin/settings/branch/evolution.module.ts b/src/app/modules/admin/settings/game/game.module.ts similarity index 90% rename from src/app/modules/admin/settings/branch/evolution.module.ts rename to src/app/modules/admin/settings/game/game.module.ts index 7fb584a..37d9df9 100644 --- a/src/app/modules/admin/settings/branch/evolution.module.ts +++ b/src/app/modules/admin/settings/game/game.module.ts @@ -18,14 +18,14 @@ import { SharedModule } from 'app/shared/shared.module'; import { COMPONENTS } from './components'; -import { evolutionRoutes } from './evolution.routing'; +import { gameRoutes } from './game.routing'; @NgModule({ declarations: [COMPONENTS], imports: [ TranslocoModule, SharedModule, - RouterModule.forChild(evolutionRoutes), + RouterModule.forChild(gameRoutes), MatButtonModule, MatFormFieldModule, @@ -39,4 +39,4 @@ import { evolutionRoutes } from './evolution.routing'; MatTooltipModule, ], }) -export class EvolutionModule {} +export class GameModule {} diff --git a/src/app/modules/admin/settings/game/game.routing.ts b/src/app/modules/admin/settings/game/game.routing.ts new file mode 100644 index 0000000..16bc492 --- /dev/null +++ b/src/app/modules/admin/settings/game/game.routing.ts @@ -0,0 +1,15 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; + +import { GameResolver } from './resolvers/game.resolver'; + +export const gameRoutes: Route[] = [ + { + path: '', + component: ListComponent, + // resolve: { + // deposits: GameResolver, + // }, + }, +]; diff --git a/src/app/modules/admin/settings/game/models/powerball-pagination.ts b/src/app/modules/admin/settings/game/models/powerball-pagination.ts deleted file mode 100644 index 6866a29..0000000 --- a/src/app/modules/admin/settings/game/models/powerball-pagination.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface PowerballPagination { - length: number; - size: number; - page: number; - lastPage: number; - startIndex: number; - endIndex: number; -} diff --git a/src/app/modules/admin/settings/game/models/powerball.ts b/src/app/modules/admin/settings/game/models/powerball.ts deleted file mode 100644 index 9964f0f..0000000 --- a/src/app/modules/admin/settings/game/models/powerball.ts +++ /dev/null @@ -1,19 +0,0 @@ -export interface Powerball { - id?: string; - nickname?: string; - startDate?: string; - finishDate?: string; - totalBetting?: string; - totalWinning?: number; - proceedingMoney?: number; - calculate?: number; - index?: string; - way?: string; - rank?: string; - bettingProgress?: string; - odds?: number; - bettingMoney?: number; - hitMoney?: number; - bettingTime?: string; - result?: string; -} diff --git a/src/app/modules/admin/settings/game/powerball.routing.ts b/src/app/modules/admin/settings/game/powerball.routing.ts deleted file mode 100644 index 6f935ac..0000000 --- a/src/app/modules/admin/settings/game/powerball.routing.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Route } from '@angular/router'; - -import { ListComponent } from './components/list.component'; -import { ViewComponent } from '../../member/user/components/view.component'; - -import { PowerballsResolver } from './resolvers/powerball.resolver'; -import { UserResolver } from '../../dashboards/user/user.resolvers'; - -export const powerballRoutes: Route[] = [ - { - path: '', - component: ListComponent, - resolve: { - deposits: PowerballsResolver, - }, - }, - { - path: ':id', - component: ViewComponent, - resolve: { - users: UserResolver, - }, - }, -]; diff --git a/src/app/modules/admin/settings/game/resolvers/game.resolver.ts b/src/app/modules/admin/settings/game/resolvers/game.resolver.ts new file mode 100644 index 0000000..0bc6da9 --- /dev/null +++ b/src/app/modules/admin/settings/game/resolvers/game.resolver.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { GameService } from '../services/game.service'; + +@Injectable({ + providedIn: 'root', +}) +export class GameResolver implements Resolve { + /** + * Constructor + */ + constructor(private _gameService: GameService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + gameSetting: any; + }> { + return this._gameService.getGameSetting(); + } +} diff --git a/src/app/modules/admin/settings/game/resolvers/powerball.resolver.ts b/src/app/modules/admin/settings/game/resolvers/powerball.resolver.ts deleted file mode 100644 index fbe0c30..0000000 --- a/src/app/modules/admin/settings/game/resolvers/powerball.resolver.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - Resolve, - Router, - RouterStateSnapshot, -} from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; - -import { Powerball } from '../models/powerball'; -import { PowerballPagination } from '../models/powerball-pagination'; -import { PowerballService } from '../services/powerball.service'; - -@Injectable({ - providedIn: 'root', -}) -export class PowerballResolver implements Resolve { - /** - * Constructor - */ - constructor( - private _powerballService: PowerballService, - private _router: Router - ) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable { - return this._powerballService - .getPowerballById(route.paramMap.get('id')) - .pipe( - // Error here means the requested product is not available - catchError((error) => { - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root', -}) -export class PowerballsResolver implements Resolve { - /** - * Constructor - */ - constructor(private _powerballService: PowerballService) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable<{ - pagination: PowerballPagination; - powerballs: Powerball[]; - }> { - return this._powerballService.getPowerballs(); - } -} diff --git a/src/app/modules/admin/settings/game/services/game.service.ts b/src/app/modules/admin/settings/game/services/game.service.ts new file mode 100644 index 0000000..ed619df --- /dev/null +++ b/src/app/modules/admin/settings/game/services/game.service.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class GameService { + // Private + private __gameSetting = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for game + */ + get gameSetting$(): Observable { + return this.__gameSetting.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get powerballs + * + * + */ + getGameSetting(): Observable<{ + gameSetting: any; + }> { + return this._httpClient + .get<{ gameSetting: any }>('api/apps/settings/game') + .pipe( + tap((response) => { + this.__gameSetting.next(response.gameSetting); + }) + ); + } +} diff --git a/src/app/modules/admin/settings/game/services/powerball.service.ts b/src/app/modules/admin/settings/game/services/powerball.service.ts deleted file mode 100644 index fddd2d1..0000000 --- a/src/app/modules/admin/settings/game/services/powerball.service.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { - BehaviorSubject, - filter, - map, - Observable, - of, - switchMap, - take, - tap, - throwError, -} from 'rxjs'; - -import { Powerball } from '../models/powerball'; -import { PowerballPagination } from '../models/powerball-pagination'; - -@Injectable({ - providedIn: 'root', -}) -export class PowerballService { - // Private - private __pagination = new BehaviorSubject( - undefined - ); - private __powerball = new BehaviorSubject(undefined); - private __powerballs = new BehaviorSubject( - undefined - ); - - /** - * Constructor - */ - constructor(private _httpClient: HttpClient) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Accessors - // ----------------------------------------------------------------------------------------------------- - - /** - * Getter for pagination - */ - get pagination$(): Observable { - return this.__pagination.asObservable(); - } - - /** - * Getter for powerball - */ - get powerball$(): Observable { - return this.__powerball.asObservable(); - } - - /** - * Getter for powerballs - */ - get powerballs$(): Observable { - return this.__powerballs.asObservable(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Get powerballs - * - * - * @param page - * @param size - * @param sort - * @param order - * @param search - */ - getPowerballs( - page: number = 0, - size: number = 10, - sort: string = 'nickname', - order: 'asc' | 'desc' | '' = 'asc', - search: string = '' - ): Observable<{ - pagination: PowerballPagination; - powerballs: Powerball[]; - }> { - return this._httpClient - .get<{ pagination: PowerballPagination; powerballs: Powerball[] }>( - 'api/apps/game/powerball/powerballs', - { - params: { - page: '' + page, - size: '' + size, - sort, - order, - search, - }, - } - ) - .pipe( - tap((response) => { - this.__pagination.next(response.pagination); - this.__powerballs.next(response.powerballs); - }) - ); - } - - /** - * Get product by id - */ - getPowerballById(id: string | null): Observable { - return this.__powerballs.pipe( - take(1), - map((powerballs) => { - // Find the product - const powerball = - powerballs?.find((item) => item.id === id) || undefined; - - // Update the product - this.__powerball.next(powerball); - - // Return the product - return powerball; - }), - switchMap((product) => { - if (!product) { - return throwError('Could not found product with id of ' + id + '!'); - } - - return of(product); - }) - ); - } - - /** - * Create product - */ - createPowerball(): Observable { - return this.powerballs$.pipe( - take(1), - switchMap((powerballs) => - this._httpClient - .post('api/apps/game/powerball/product', {}) - .pipe( - map((newPowerball) => { - // Update the powerballs with the new product - if (!!powerballs) { - this.__powerballs.next([newPowerball, ...powerballs]); - } - - // Return the new product - return newPowerball; - }) - ) - ) - ); - } -} diff --git a/src/app/modules/admin/settings/indexing/components/index.ts b/src/app/modules/admin/settings/indexing/components/index.ts new file mode 100644 index 0000000..04759eb --- /dev/null +++ b/src/app/modules/admin/settings/indexing/components/index.ts @@ -0,0 +1,3 @@ +import { ListComponent } from './list.component'; + +export const COMPONENTS = [ListComponent]; diff --git a/src/app/modules/admin/settings/indexing/components/list.component.html b/src/app/modules/admin/settings/indexing/components/list.component.html new file mode 100644 index 0000000..9126c50 --- /dev/null +++ b/src/app/modules/admin/settings/indexing/components/list.component.html @@ -0,0 +1 @@ +

indexing server setting page

diff --git a/src/app/modules/admin/settings/indexing/components/list.component.ts b/src/app/modules/admin/settings/indexing/components/list.component.ts new file mode 100644 index 0000000..844477e --- /dev/null +++ b/src/app/modules/admin/settings/indexing/components/list.component.ts @@ -0,0 +1,126 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +@Component({ + selector: 'settings-indexing-list', + templateUrl: './list.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 60px auto 40px; + + @screen sm { + grid-template-columns: 60px auto 60px 72px; + } + + @screen md { + grid-template-columns: 60px 60px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 60px 60px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ListComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void {} + + /** + * After view init + */ + ngAfterViewInit(): void {} + + /** + * On destroy + */ + ngOnDestroy(): void { + // Unsubscribe from all subscriptions + this._unsubscribeAll.next(null); + this._unsubscribeAll.complete(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + // ----------------------------------------------------------------------------------------------------- + // @ Private methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Create product + */ + __createProduct(): void {} + + /** + * Toggle product details + * + * @param productId + */ + __toggleDetails(productId: string): void {} + + /** + * Track by function for ngFor loops + * + * @param index + * @param item + */ + __trackByFn(index: number, item: any): any { + return item.id || index; + } +} diff --git a/src/app/modules/admin/settings/game/powerball.module.ts b/src/app/modules/admin/settings/indexing/indexing.module.ts similarity index 90% rename from src/app/modules/admin/settings/game/powerball.module.ts rename to src/app/modules/admin/settings/indexing/indexing.module.ts index d43cd9b..74cb003 100644 --- a/src/app/modules/admin/settings/game/powerball.module.ts +++ b/src/app/modules/admin/settings/indexing/indexing.module.ts @@ -18,14 +18,14 @@ import { SharedModule } from 'app/shared/shared.module'; import { COMPONENTS } from './components'; -import { powerballRoutes } from './powerball.routing'; +import { indexingRoutes } from './indexing.routing'; @NgModule({ declarations: [COMPONENTS], imports: [ TranslocoModule, SharedModule, - RouterModule.forChild(powerballRoutes), + RouterModule.forChild(indexingRoutes), MatButtonModule, MatFormFieldModule, @@ -39,4 +39,4 @@ import { powerballRoutes } from './powerball.routing'; MatTooltipModule, ], }) -export class PowerballModule {} +export class IndexingModule {} diff --git a/src/app/modules/admin/settings/indexing/indexing.routing.ts b/src/app/modules/admin/settings/indexing/indexing.routing.ts new file mode 100644 index 0000000..23e1818 --- /dev/null +++ b/src/app/modules/admin/settings/indexing/indexing.routing.ts @@ -0,0 +1,12 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; + +import { IndexingResolver } from './resolvers/indexing.resolver'; + +export const indexingRoutes: Route[] = [ + { + path: '', + component: ListComponent, + }, +]; diff --git a/src/app/modules/admin/settings/indexing/resolvers/indexing.resolver.ts b/src/app/modules/admin/settings/indexing/resolvers/indexing.resolver.ts new file mode 100644 index 0000000..afccc6c --- /dev/null +++ b/src/app/modules/admin/settings/indexing/resolvers/indexing.resolver.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { IndexingService } from '../services/indexing.service'; + +@Injectable({ + providedIn: 'root', +}) +export class IndexingResolver implements Resolve { + /** + * Constructor + */ + constructor(private _indexingService: IndexingService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable { + return this._indexingService.getIndexingSetting(); + } +} diff --git a/src/app/modules/admin/settings/indexing/services/indexing.service.ts b/src/app/modules/admin/settings/indexing/services/indexing.service.ts new file mode 100644 index 0000000..0bec495 --- /dev/null +++ b/src/app/modules/admin/settings/indexing/services/indexing.service.ts @@ -0,0 +1,54 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class IndexingService { + // Private + private __indexingSetting = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for game + */ + get indexingSetting$(): Observable { + return this.__indexingSetting.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get powerballs + * + * + */ + getIndexingSetting(): Observable { + return this._httpClient.get('api/apps/settings/indexing').pipe( + tap((response) => { + // this.__gameSetting.next(response.gameSetting); + }) + ); + } +} diff --git a/src/app/modules/admin/settings/ladder/components/list.component.html b/src/app/modules/admin/settings/ladder/components/list.component.html index 907126a..84449d1 100644 --- a/src/app/modules/admin/settings/ladder/components/list.component.html +++ b/src/app/modules/admin/settings/ladder/components/list.component.html @@ -1,350 +1 @@ -
- -
- -
- -
- -
Evolution
- -
- - - - - - - 전체금액 - 배팅100만미만 - 배팅100-300만 - 배팅300-500만 - 배팅500만이상 - 당첨1000만초과 - - - - - 아이디 - 게임아이디 - 닉네임 - 게임종류 - - - - - - - - - -
-
- - -
- -
- - -
- -
-
- - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
- - -
- There are no evolution! -
-
-
-
-
+

ladder game setting page

diff --git a/src/app/modules/admin/settings/ladder/components/list.component.ts b/src/app/modules/admin/settings/ladder/components/list.component.ts index 629a2cb..449f5b7 100644 --- a/src/app/modules/admin/settings/ladder/components/list.component.ts +++ b/src/app/modules/admin/settings/ladder/components/list.component.ts @@ -29,12 +29,8 @@ import { import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; -import { EvolutionService } from '../services/evolution.service'; - @Component({ - selector: 'evolution-list', + selector: 'settings-ladder-list', templateUrl: './list.component.html', styles: [ /* language=SCSS */ @@ -64,13 +60,6 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - evolutions$!: Observable; - - isLoading = false; - searchInputControl = new FormControl(); - selectedEvolution?: Evolution; - pagination?: EvolutionPagination; - private _unsubscribeAll: Subject = new Subject(); /** @@ -79,8 +68,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, - private _formBuilder: FormBuilder, - private _evolutionService: EvolutionService + private _formBuilder: FormBuilder ) {} // ----------------------------------------------------------------------------------------------------- @@ -90,64 +78,12 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { /** * On init */ - ngOnInit(): void { - // Get the pagination - this._evolutionService.pagination$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: EvolutionPagination | undefined) => { - // Update the pagination - this.pagination = pagination; - - // Mark for check - this._changeDetectorRef.markForCheck(); - }); - - // Get the products - this.evolutions$ = this._evolutionService.evolutions$; - } + ngOnInit(): void {} /** * After view init */ - ngAfterViewInit(): void { - if (this._sort && this._paginator) { - // Set the initial sort - this._sort.sort({ - id: 'nickname', - start: 'asc', - disableClear: true, - }); - - // Mark for check - this._changeDetectorRef.markForCheck(); - - // If the evolution changes the sort order... - this._sort.sortChange - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(() => { - // Reset back to the first page - this._paginator.pageIndex = 0; - }); - - // Get products if sort or page changes - merge(this._sort.sortChange, this._paginator.page) - .pipe( - switchMap(() => { - this.isLoading = true; - return this._evolutionService.getEvolutions( - this._paginator.pageIndex, - this._paginator.pageSize, - this._sort.active, - this._sort.direction - ); - }), - map(() => { - this.isLoading = false; - }) - ) - .subscribe(); - } - } + ngAfterViewInit(): void {} /** * On destroy diff --git a/src/app/modules/admin/settings/ladder/evolution.routing.ts b/src/app/modules/admin/settings/ladder/evolution.routing.ts deleted file mode 100644 index 78500d7..0000000 --- a/src/app/modules/admin/settings/ladder/evolution.routing.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Route } from '@angular/router'; - -import { ListComponent } from './components/list.component'; - -import { EvolutionsResolver } from './resolvers/evolution.resolver'; - -export const evolutionRoutes: Route[] = [ - { - path: '', - component: ListComponent, - resolve: { - deposits: EvolutionsResolver, - }, - }, -]; diff --git a/src/app/modules/admin/settings/ladder/ladder.module.ts b/src/app/modules/admin/settings/ladder/ladder.module.ts new file mode 100644 index 0000000..65bd841 --- /dev/null +++ b/src/app/modules/admin/settings/ladder/ladder.module.ts @@ -0,0 +1,42 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatRippleModule } from '@angular/material/core'; +import { MatSortModule } from '@angular/material/sort'; +import { MatSelectModule } from '@angular/material/select'; +import { MatTooltipModule } from '@angular/material/tooltip'; + +import { TranslocoModule } from '@ngneat/transloco'; + +import { SharedModule } from 'app/shared/shared.module'; + +import { COMPONENTS } from './components'; + +import { ladderRoutes } from './ladder.routing'; + +@NgModule({ + declarations: [COMPONENTS], + imports: [ + TranslocoModule, + SharedModule, + RouterModule.forChild(ladderRoutes), + + MatButtonModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + MatPaginatorModule, + MatProgressBarModule, + MatRippleModule, + MatSortModule, + MatSelectModule, + MatTooltipModule, + ], +}) +export class LadderModule {} diff --git a/src/app/modules/admin/settings/ladder/ladder.routing.ts b/src/app/modules/admin/settings/ladder/ladder.routing.ts new file mode 100644 index 0000000..bc8ac9e --- /dev/null +++ b/src/app/modules/admin/settings/ladder/ladder.routing.ts @@ -0,0 +1,15 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; + +import { LadderResolver } from './resolvers/ladder.resolver'; + +export const ladderRoutes: Route[] = [ + { + path: '', + component: ListComponent, + // resolve: { + // ladder: LadderResolver, + // }, + }, +]; diff --git a/src/app/modules/admin/settings/ladder/models/evolution-pagination.ts b/src/app/modules/admin/settings/ladder/models/evolution-pagination.ts deleted file mode 100644 index d1bff25..0000000 --- a/src/app/modules/admin/settings/ladder/models/evolution-pagination.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface EvolutionPagination { - length: number; - size: number; - page: number; - lastPage: number; - startIndex: number; - endIndex: number; -} diff --git a/src/app/modules/admin/settings/ladder/models/evolution.ts b/src/app/modules/admin/settings/ladder/models/evolution.ts deleted file mode 100644 index 8d6f322..0000000 --- a/src/app/modules/admin/settings/ladder/models/evolution.ts +++ /dev/null @@ -1,58 +0,0 @@ -export interface Evolution { - id?: string; - startDate?: string; - finishDate?: string; - availableBetting?: number; - bettingMoney?: number; - winningMoney?: number; - cancel?: number; - betWinCancel?: number; - mainofficeRolling?: number; - branchRolling?: number; - divisionRolling?: number; - officeRolling?: number; - storeRolling?: number; - memberRolling?: number; - totalrolling?: number; - highRank?: string; - gameId?: string; - nickname?: string; - gameName?: string; - gameInfo1?: string; - gameInfo2?: string; - gameInfo3?: string; - form?: string; - betting?: number; - profitLoss?: number; - beforeWinning?: number; - winning?: number; - afterWinning?: number; - beforeBetting?: number; - afterBetting?: number; - finalMoney?: number; - bettingInfo1?: string; - bettingInfo2?: number; - bettingInfo3?: number; - data?: string; - comp?: string; - mainofficeName?: string; - mainofficePercent?: number; - mainofficePoint?: number; - branchName?: string; - branchPercent?: number; - branchPoint?: number; - divisionName?: string; - divisionPercent?: number; - divisionPoint?: number; - officeName?: string; - officePercent?: number; - officePoint?: number; - storeName?: string; - storePercent?: number; - storePoint?: number; - memberName?: string; - memberPercent?: number; - memberPoint?: number; - bettingTime?: string; - registrationTime?: string; -} diff --git a/src/app/modules/admin/settings/ladder/resolvers/evolution.resolver.ts b/src/app/modules/admin/settings/ladder/resolvers/evolution.resolver.ts deleted file mode 100644 index 4fc4dd8..0000000 --- a/src/app/modules/admin/settings/ladder/resolvers/evolution.resolver.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - Resolve, - Router, - RouterStateSnapshot, -} from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; - -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; -import { EvolutionService } from '../services/evolution.service'; - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionResolver implements Resolve { - /** - * Constructor - */ - constructor( - private _evolutionService: EvolutionService, - private _router: Router - ) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable { - return this._evolutionService - .getEvolutionById(route.paramMap.get('id')) - .pipe( - // Error here means the requested product is not available - catchError((error) => { - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionsResolver implements Resolve { - /** - * Constructor - */ - constructor(private _evolutionService: EvolutionService) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable<{ - pagination: EvolutionPagination; - evolutions: Evolution[]; - }> { - return this._evolutionService.getEvolutions(); - } -} diff --git a/src/app/modules/admin/settings/ladder/resolvers/ladder.resolver.ts b/src/app/modules/admin/settings/ladder/resolvers/ladder.resolver.ts new file mode 100644 index 0000000..2cff930 --- /dev/null +++ b/src/app/modules/admin/settings/ladder/resolvers/ladder.resolver.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { LadderService } from '../services/ladder.service'; + +@Injectable({ + providedIn: 'root', +}) +export class LadderResolver implements Resolve { + /** + * Constructor + */ + constructor(private _ladderService: LadderService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + ladderSetting: any; + }> { + return this._ladderService.getLadderSetting(); + } +} diff --git a/src/app/modules/admin/settings/ladder/services/evolution.service.ts b/src/app/modules/admin/settings/ladder/services/evolution.service.ts deleted file mode 100644 index 396f0f7..0000000 --- a/src/app/modules/admin/settings/ladder/services/evolution.service.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { - BehaviorSubject, - filter, - map, - Observable, - of, - switchMap, - take, - tap, - throwError, -} from 'rxjs'; - -import { Evolution } from '../models/evolution'; -import { EvolutionPagination } from '../models/evolution-pagination'; - -@Injectable({ - providedIn: 'root', -}) -export class EvolutionService { - // Private - private __pagination = new BehaviorSubject( - undefined - ); - private __evolution = new BehaviorSubject(undefined); - private __evolutions = new BehaviorSubject( - undefined - ); - - /** - * Constructor - */ - constructor(private _httpClient: HttpClient) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Accessors - // ----------------------------------------------------------------------------------------------------- - - /** - * Getter for pagination - */ - get pagination$(): Observable { - return this.__pagination.asObservable(); - } - - /** - * Getter for evolution - */ - get evolution$(): Observable { - return this.__evolution.asObservable(); - } - - /** - * Getter for evolutions - */ - get evolutions$(): Observable { - return this.__evolutions.asObservable(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Get evolutions - * - * - * @param page - * @param size - * @param sort - * @param order - * @param search - */ - getEvolutions( - page: number = 0, - size: number = 10, - sort: string = 'nickname', - order: 'asc' | 'desc' | '' = 'asc', - search: string = '' - ): Observable<{ - pagination: EvolutionPagination; - evolutions: Evolution[]; - }> { - return this._httpClient - .get<{ pagination: EvolutionPagination; evolutions: Evolution[] }>( - 'api/apps/game/evolution/evolutions', - { - params: { - page: '' + page, - size: '' + size, - sort, - order, - search, - }, - } - ) - .pipe( - tap((response) => { - this.__pagination.next(response.pagination); - this.__evolutions.next(response.evolutions); - }) - ); - } - - /** - * Get product by id - */ - getEvolutionById(id: string | null): Observable { - return this.__evolutions.pipe( - take(1), - map((evolutions) => { - // Find the product - const evolution = - evolutions?.find((item) => item.id === id) || undefined; - - // Update the product - this.__evolution.next(evolution); - - // Return the product - return evolution; - }), - switchMap((product) => { - if (!product) { - return throwError('Could not found product with id of ' + id + '!'); - } - - return of(product); - }) - ); - } - - /** - * Create product - */ - createEvolution(): Observable { - return this.evolutions$.pipe( - take(1), - switchMap((evolutions) => - this._httpClient - .post('api/apps/game/evolution/product', {}) - .pipe( - map((newEvolution) => { - // Update the evolutions with the new product - if (!!evolutions) { - this.__evolutions.next([newEvolution, ...evolutions]); - } - - // Return the new product - return newEvolution; - }) - ) - ) - ); - } -} diff --git a/src/app/modules/admin/settings/ladder/services/ladder.service.ts b/src/app/modules/admin/settings/ladder/services/ladder.service.ts new file mode 100644 index 0000000..308892d --- /dev/null +++ b/src/app/modules/admin/settings/ladder/services/ladder.service.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class LadderService { + // Private + private __ladderSetting = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for game + */ + get ladderSetting$(): Observable { + return this.__ladderSetting.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get powerballs + * + * + */ + getLadderSetting(): Observable<{ + ladderSetting: any; + }> { + return this._httpClient + .get<{ ladderSetting: any }>('api/apps/settings/ladder') + .pipe( + tap((response) => { + this.__ladderSetting.next(response.ladderSetting); + }) + ); + } +} diff --git a/src/assets/i18n/ko.json b/src/assets/i18n/ko.json index 89d0e4a..571a163 100644 --- a/src/assets/i18n/ko.json +++ b/src/assets/i18n/ko.json @@ -25,6 +25,11 @@ "Slot": "슬롯배팅리스트", "Current User": "현재접속자 & 쪽지전송", "Basic-Setting": "사이트 기본설정", + "Ladder-Setting": "게임 ON/OFF", + "Game-Setting": "게임설정", + "Evo-Setting": "에볼류션/보타 금액설정", + "Branch-Setting": "대본벌 계좌 설정", + "Indexing-Setting": "서버 인덱싱", "Daily": "일일현황", "Monthly": "월 현황", "Daily Partner": "파트너 일일현황",