%(최소 0 ~ 최대 0.2)
@@ -501,6 +510,7 @@
type="text"
matInput
[formControlName]="'casinoRusingRate'"
+ style="width: 40%"
/>
%(최소 0 ~ 최대 0.2)
@@ -514,6 +524,7 @@
type="text"
matInput
[formControlName]="'slotRusingRate'"
+ style="width: 40%"
/>
%(최소 0 ~ 최대 0.2)
@@ -593,8 +604,45 @@
-
내역
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/modules/admin/member/user/components/view.component.ts b/src/app/modules/admin/member/user/components/view.component.ts
index a196139..3783410 100644
--- a/src/app/modules/admin/member/user/components/view.component.ts
+++ b/src/app/modules/admin/member/user/components/view.component.ts
@@ -62,6 +62,11 @@ import { MemberBankAccountService } from 'app/modules/polyglot/member_bank_accou
import { ListBanksResponse } from 'app/modules/proto/c2se/bank_pb';
import { ListMemberClassesResponse } from 'app/modules/proto/c2se/member_class_pb';
import { ListSitesResponse } from 'app/modules/proto/c2se/site_pb';
+import {
+ GetMemberSettlementSettingResponse,
+ ListMemberSettlementSettingsResponse,
+} from 'app/modules/proto/c2se/member_settlement_setting_pb';
+import { MemberSettlementSetting } from 'app/modules/proto/models/member_settlement_setting_pb';
@Component({
selector: 'user-view',
@@ -142,6 +147,8 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
selectedPanel: string = 'accountInfo';
memberLevels!: MemberLevel[];
+ memberSettlement!: MemberSettlementSetting;
+
banks!: Bank[];
sites!: Site[];
@@ -306,6 +313,15 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
let listSitesResult: ListSitesResponse.Result = data['listSites'];
this.sites = listSitesResult.getSitesList();
+ /*
+ let memberSettlementResult: GetMemberSettlementSettingResponse.Result =
+ data['memberSettlement'];
+ const memberSettlement =
+ memberSettlementResult.getMemberSettlementSetting();
+
+ if (!!memberSettlement) {
+ this.memberSettlement = memberSettlement;
+ } */
this.memberDefaultForm.patchValue({
username: this.currentMember?.getUsername(),
diff --git a/src/app/modules/admin/member/user/components/web-sign-in-history.component.html b/src/app/modules/admin/member/user/components/web-sign-in-history.component.html
new file mode 100644
index 0000000..4ebe771
--- /dev/null
+++ b/src/app/modules/admin/member/user/components/web-sign-in-history.component.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+ 검색
+
+
+ 웹로그인내역 테이블
+
+
+
+
+
+
diff --git a/src/app/modules/admin/member/user/components/web-sign-in-history.component.ts b/src/app/modules/admin/member/user/components/web-sign-in-history.component.ts
new file mode 100644
index 0000000..f740eed
--- /dev/null
+++ b/src/app/modules/admin/member/user/components/web-sign-in-history.component.ts
@@ -0,0 +1,106 @@
+import {
+ AfterViewInit,
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ OnDestroy,
+ OnInit,
+ ViewChild,
+ ViewEncapsulation,
+} from '@angular/core';
+import { MatPaginator } from '@angular/material/paginator';
+import { fuseAnimations } from '@fuse/animations';
+import { Subject } from 'rxjs';
+
+@Component({
+ selector: 'web-sign-in-history',
+ templateUrl: './web-sign-in-history.component.html',
+ styles: [
+ /* language=SCSS */
+ `
+ .web-sign-in-history-grid {
+ grid-template-columns: 60px auto 40px;
+
+ @screen sm {
+ grid-template-columns: 100px auto 60px 60px;
+ }
+
+ @screen md {
+ grid-template-columns: 100px 100px auto 60px 60px;
+ }
+
+ @screen lg {
+ grid-template-columns: 100px 100px 100px 60px 60px;
+ }
+ }
+ `,
+ ],
+ encapsulation: ViewEncapsulation.None,
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ animations: fuseAnimations,
+})
+export class WebSignInHistoryComponent
+ implements OnInit, AfterViewInit, OnDestroy
+{
+ @ViewChild(MatPaginator) private _paginator!: MatPaginator;
+
+ private _unsubscribeAll: Subject
= new Subject();
+
+ /**
+ * Constructor
+ */
+ constructor(private _changeDetectorRef: ChangeDetectorRef) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ 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/member/user/components/withdraw-history.component.html b/src/app/modules/admin/member/user/components/withdraw-history.component.html
new file mode 100644
index 0000000..1867d17
--- /dev/null
+++ b/src/app/modules/admin/member/user/components/withdraw-history.component.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+ 검색
+
+
+ 출금내역 테이블
+
+
+
+
+
+
diff --git a/src/app/modules/admin/member/user/components/withdraw-history.component.ts b/src/app/modules/admin/member/user/components/withdraw-history.component.ts
new file mode 100644
index 0000000..b57844c
--- /dev/null
+++ b/src/app/modules/admin/member/user/components/withdraw-history.component.ts
@@ -0,0 +1,106 @@
+import {
+ AfterViewInit,
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ OnDestroy,
+ OnInit,
+ ViewChild,
+ ViewEncapsulation,
+} from '@angular/core';
+import { MatPaginator } from '@angular/material/paginator';
+import { fuseAnimations } from '@fuse/animations';
+import { Subject } from 'rxjs';
+
+@Component({
+ selector: 'withdraw-history',
+ templateUrl: './withdraw-history.component.html',
+ styles: [
+ /* language=SCSS */
+ `
+ .withdraw-history-grid {
+ grid-template-columns: 60px auto 40px;
+
+ @screen sm {
+ grid-template-columns: 100px auto 60px 60px;
+ }
+
+ @screen md {
+ grid-template-columns: 100px 100px auto 60px 60px;
+ }
+
+ @screen lg {
+ grid-template-columns: 100px 100px 100px 60px 60px;
+ }
+ }
+ `,
+ ],
+ encapsulation: ViewEncapsulation.None,
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ animations: fuseAnimations,
+})
+export class WithdrawHistoryComponent
+ implements OnInit, AfterViewInit, OnDestroy
+{
+ @ViewChild(MatPaginator) private _paginator!: MatPaginator;
+
+ private _unsubscribeAll: Subject = new Subject();
+
+ /**
+ * Constructor
+ */
+ constructor(private _changeDetectorRef: ChangeDetectorRef) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ 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/member/user/resolvers/member-game-setting.resolver.ts b/src/app/modules/admin/member/user/resolvers/member-game-setting.resolver.ts
new file mode 100644
index 0000000..92f5460
--- /dev/null
+++ b/src/app/modules/admin/member/user/resolvers/member-game-setting.resolver.ts
@@ -0,0 +1,86 @@
+import { Injectable } from '@angular/core';
+import {
+ ActivatedRouteSnapshot,
+ Resolve,
+ Router,
+ RouterStateSnapshot,
+} from '@angular/router';
+import { MemberGameSettingService } from 'app/modules/polyglot/member_game_setting/services/member_game_setting.service';
+import {
+ GetMemberGameSettingResponse,
+ ListMemberGameSettingsResponse,
+} from 'app/modules/proto/c2se/member_game_setting_pb';
+
+import { Observable } from 'rxjs';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class ListMemberGameResolver implements Resolve {
+ /**
+ * Constructor
+ */
+ constructor(
+ private _router: Router,
+ private __memberGameSettingService: MemberGameSettingService
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Resolver
+ *
+ * @param route
+ * @param state
+ */
+
+ resolve(
+ route: ActivatedRouteSnapshot,
+ state: RouterStateSnapshot
+ ):
+ | Observable
+ | Promise
+ | ListMemberGameSettingsResponse.Result {
+ return this.__memberGameSettingService.listMemberGameSettings();
+ }
+}
+
+@Injectable({
+ providedIn: 'root',
+})
+export class MemberGameSettingResolver implements Resolve {
+ /**
+ * Constructor
+ */
+ constructor(
+ private _router: Router,
+ private __memberGameSettingService: MemberGameSettingService
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Resolver
+ *
+ * @param route
+ * @param state
+ */
+
+ resolve(
+ route: ActivatedRouteSnapshot,
+ state: RouterStateSnapshot
+ ):
+ | Observable
+ | Promise
+ | GetMemberGameSettingResponse.Result {
+ let memberId = route.paramMap.get('id');
+ if (!memberId) {
+ console.error('user.resolver memberId is null');
+ }
+ return this.__memberGameSettingService.getMemberGameSetting(memberId!);
+ }
+}
diff --git a/src/app/modules/admin/member/user/resolvers/member-settlement-setting.resolver.ts b/src/app/modules/admin/member/user/resolvers/member-settlement-setting.resolver.ts
new file mode 100644
index 0000000..055b2b6
--- /dev/null
+++ b/src/app/modules/admin/member/user/resolvers/member-settlement-setting.resolver.ts
@@ -0,0 +1,87 @@
+import { Injectable } from '@angular/core';
+import {
+ ActivatedRouteSnapshot,
+ Resolve,
+ Router,
+ RouterStateSnapshot,
+} from '@angular/router';
+import { MemberSettlementSettingService } from 'app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service';
+import {
+ GetMemberSettlementSettingResponse,
+ ListMemberSettlementSettingsResponse,
+} from 'app/modules/proto/c2se/member_settlement_setting_pb';
+import { Observable } from 'rxjs';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class ListMemberSettlementsResolver implements Resolve {
+ /**
+ * Constructor
+ */
+ constructor(
+ private _router: Router,
+ private __memberSettlementSettingService: MemberSettlementSettingService
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Resolver
+ *
+ * @param route
+ * @param state
+ */
+
+ resolve(
+ route: ActivatedRouteSnapshot,
+ state: RouterStateSnapshot
+ ):
+ | Observable
+ | Promise
+ | ListMemberSettlementSettingsResponse.Result {
+ return this.__memberSettlementSettingService.listMemberSettlementSettings();
+ }
+}
+
+@Injectable({
+ providedIn: 'root',
+})
+export class MemberSettlementResolver implements Resolve {
+ /**
+ * Constructor
+ */
+ constructor(
+ private _router: Router,
+ private __memberSettlementSettingService: MemberSettlementSettingService
+ ) {}
+
+ // -----------------------------------------------------------------------------------------------------
+ // @ Public methods
+ // -----------------------------------------------------------------------------------------------------
+
+ /**
+ * Resolver
+ *
+ * @param route
+ * @param state
+ */
+
+ resolve(
+ route: ActivatedRouteSnapshot,
+ state: RouterStateSnapshot
+ ):
+ | Observable
+ | Promise
+ | GetMemberSettlementSettingResponse.Result {
+ let memberId = route.paramMap.get('id');
+ if (!memberId) {
+ console.error('user.resolver memberId is null');
+ }
+ return this.__memberSettlementSettingService.getMemberSettlementSetting(
+ memberId!
+ );
+ }
+}
diff --git a/src/app/modules/admin/member/user/user.routing.ts b/src/app/modules/admin/member/user/user.routing.ts
index 28b9909..0953b8a 100644
--- a/src/app/modules/admin/member/user/user.routing.ts
+++ b/src/app/modules/admin/member/user/user.routing.ts
@@ -5,7 +5,9 @@ import { ViewComponent } from 'app/modules/admin/member/user/components/view.com
import { SiteResolver } from 'app/shared/resolvers/site.resolver';
import { ListMemberBanksResolver } from './resolvers/member-bank.resolver';
import { ListMemberClassesResolver } from './resolvers/member-class.resolver';
+import { MemberGameSettingResolver } from './resolvers/member-game-setting.resolver';
import { ListMemberLevelsResolver } from './resolvers/member-level.resolver';
+import { MemberSettlementResolver } from './resolvers/member-settlement-setting.resolver';
import { MemberResolver, ListMemberResolver } from './resolvers/user.resolver';
@@ -27,6 +29,8 @@ export const userRoutes: Route[] = [
listMemberLevels: ListMemberLevelsResolver,
listMemberBanks: ListMemberBanksResolver,
listSites: SiteResolver,
+ // memberSettlement: MemberSettlementResolver,
+ // memberGame: MemberGameSettingResolver,
},
},
];
diff --git a/src/app/modules/polyglot/member_game_setting/services/member_game_setting.service.ts b/src/app/modules/polyglot/member_game_setting/services/member_game_setting.service.ts
index ca607ae..600012e 100644
--- a/src/app/modules/polyglot/member_game_setting/services/member_game_setting.service.ts
+++ b/src/app/modules/polyglot/member_game_setting/services/member_game_setting.service.ts
@@ -87,10 +87,13 @@ export class MemberGameSettingService {
);
}
- getMemberGameSetting(): Promise {
+ getMemberGameSetting(
+ id: string
+ ): Promise {
return new Promise(
(resolve, reject) => {
let req = new GetMemberGameSettingRequest();
+ req.setId(id);
this.__natsService
.request(
diff --git a/src/app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service.ts b/src/app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service.ts
index 884e9c3..a553d32 100644
--- a/src/app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service.ts
+++ b/src/app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service.ts
@@ -91,10 +91,13 @@ export class MemberSettlementSettingService {
);
}
- getMemberSettlementSetting(): Promise {
+ getMemberSettlementSetting(
+ id: string
+ ): Promise {
return new Promise(
(resolve, reject) => {
let req = new GetMemberSettlementSettingRequest();
+ req.setId(id);
this.__natsService
.request(