사용자 조회 연동

This commit is contained in:
Park Byung Eun 2022-08-11 10:47:56 +00:00
parent afd51f5e3f
commit 5ac8ae584d
4 changed files with 80 additions and 16 deletions

View File

@ -51,7 +51,9 @@
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>가입일자</span> <span>가입일자</span>
<span class="mx-2">&bull;</span> <span class="mx-2">&bull;</span>
<span>{{ selectedUser?.registrationDate }}</span> <span>{{
selectedUser?.getCreatedAt() | date: "yyyy/MM/dd HH:mm"
}}</span>
</div> </div>
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>하부회원수</span> <span>하부회원수</span>
@ -61,17 +63,17 @@
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>총입금</span> <span>총입금</span>
<span class="mx-2">&bull;</span> <span class="mx-2">&bull;</span>
<span>{{ selectedUser?.totalDeposit }}</span> <span>2,000</span>
</div> </div>
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>총출금</span> <span>총출금</span>
<span class="mx-2">&bull;</span> <span class="mx-2">&bull;</span>
<span>{{ selectedUser?.totalWithdraw }}</span> <span>2,000</span>
</div> </div>
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>총입금-총출금</span> <span>총입금-총출금</span>
<span class="mx-2">&bull;</span> <span class="mx-2">&bull;</span>
<span>{{ selectedUser?.balance }}</span> <span>2,000</span>
</div> </div>
<div class="flex items-center text-secondary my-1"> <div class="flex items-center text-secondary my-1">
<span>최근30일 배팅금액</span> <span>최근30일 배팅금액</span>
@ -97,10 +99,7 @@
<div class="shadow-lg overflow-hidden"> <div class="shadow-lg overflow-hidden">
<div class="flex border-b"> <div class="flex border-b">
<!-- Selected product form --> <!-- Selected product form -->
<form <form class="flex flex-col w-full" [formGroup]="memberViewForm">
class="flex flex-col w-full"
[formGroup]="selectedProductForm"
>
<div class="flex flex-col sm:flex-row p-8"> <div class="flex flex-col sm:flex-row p-8">
<!-- Product images and status --> <!-- Product images and status -->

View File

@ -31,6 +31,9 @@ import { FuseConfirmationService } from '@fuse/services/confirmation';
import { User } from '../models/user'; import { User } from '../models/user';
import { UserService } from '../services/user.service'; import { UserService } from '../services/user.service';
import { ActivatedRoute } from '@angular/router';
import { GetMemberResponse } from 'app/modules/protobuf/c2se/backend/member_pb';
import { MemberModel } from 'app/modules/protobuf/models/member/member_pb';
@Component({ @Component({
selector: 'user-view', selector: 'user-view',
@ -65,8 +68,9 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
isLoading = false; isLoading = false;
searchInputControl = new FormControl(); searchInputControl = new FormControl();
selectedProductForm!: FormGroup; memberViewForm!: FormGroup;
selectedUser?: User; /* selectedUser?: User; */
selectedUser?: MemberModel;
private _unsubscribeAll: Subject<any> = new Subject<any>(); private _unsubscribeAll: Subject<any> = new Subject<any>();
@ -74,6 +78,7 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
* Constructor * Constructor
*/ */
constructor( constructor(
private _activatedRoute: ActivatedRoute,
private _changeDetectorRef: ChangeDetectorRef, private _changeDetectorRef: ChangeDetectorRef,
private _fuseConfirmationService: FuseConfirmationService, private _fuseConfirmationService: FuseConfirmationService,
private _formBuilder: FormBuilder, private _formBuilder: FormBuilder,
@ -88,7 +93,7 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
* On init * On init
*/ */
ngOnInit(): void { ngOnInit(): void {
this.selectedProductForm = this._formBuilder.group({ this.memberViewForm = this._formBuilder.group({
id: [''], id: [''],
signinId: [{ value: '', disabled: true }], signinId: [{ value: '', disabled: true }],
signinPw: [{ value: '' }], signinPw: [{ value: '' }],
@ -121,7 +126,7 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
}); });
// Get the User // Get the User
this._userService.user$ /* this._userService.user$
.pipe(takeUntil(this._unsubscribeAll)) .pipe(takeUntil(this._unsubscribeAll))
.subscribe((user: User | undefined) => { .subscribe((user: User | undefined) => {
if (!user) { if (!user) {
@ -129,12 +134,31 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
} }
this.selectedUser = user; this.selectedUser = user;
this.selectedProductForm.patchValue(user); this.memberViewForm.patchValue(user);
// Mark for check // Mark for check
this._changeDetectorRef.markForCheck(); this._changeDetectorRef.markForCheck();
}); }); */
/* this.user$ = this._userService.user$; */ /* this.user$ = this._userService.user$; */
this._activatedRoute.data.subscribe((data) => {
let member: GetMemberResponse.Result = data['member'];
this.selectedUser = member.getMember();
/* console.log('dddd', listMemberResult.getMembersList()); */
this.memberViewForm.patchValue({
signinId: this.selectedUser?.getUsername(),
signinPw: '1234',
exchangePw: '1234',
phoneNumber: this.selectedUser?.getMobilePhoneNumber(),
level: this.selectedUser?.getMemberLevel()?.getName(),
status: this.selectedUser?.getState(),
nickname: this.selectedUser?.getNickname(),
});
// Mark for check
this._changeDetectorRef.markForCheck();
});
} }
/** /**

View File

@ -5,6 +5,8 @@ import {
Router, Router,
RouterStateSnapshot, RouterStateSnapshot,
} from '@angular/router'; } from '@angular/router';
import { MemberService } from 'app/modules/polyglot/member/services/member.service';
import { GetMemberResponse } from 'app/modules/protobuf/c2se/backend/member_pb';
import { catchError, Observable, throwError } from 'rxjs'; import { catchError, Observable, throwError } from 'rxjs';
import { User } from '../models/user'; import { User } from '../models/user';
@ -82,3 +84,38 @@ export class UsersResolver implements Resolve<any> {
return this._userService.getUsers(); return this._userService.getUsers();
} }
} }
@Injectable({
providedIn: 'root',
})
export class MemberResolver implements Resolve<any> {
/**
* Constructor
*/
constructor(private _router: Router, private _memberService: MemberService) {}
// -----------------------------------------------------------------------------------------------------
// @ Public methods
// -----------------------------------------------------------------------------------------------------
/**
* Resolver
*
* @param route
* @param state
*/
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
):
| Observable<GetMemberResponse.Result>
| Promise<GetMemberResponse.Result>
| GetMemberResponse.Result {
let memberId = route.paramMap.get('id');
if (!memberId) {
console.error('user.resolver memberId is null');
}
return this._memberService.getMember(memberId!);
}
}

View File

@ -3,7 +3,11 @@ import { Route } from '@angular/router';
import { ListComponent } from 'app/modules/admin/member/user/components/list.component'; import { ListComponent } from 'app/modules/admin/member/user/components/list.component';
import { ViewComponent } from 'app/modules/admin/member/user/components/view.component'; import { ViewComponent } from 'app/modules/admin/member/user/components/view.component';
import { UsersResolver, UserResolver } from './resolvers/user.resolver'; import {
UsersResolver,
UserResolver,
MemberResolver,
} from './resolvers/user.resolver';
export const userRoutes: Route[] = [ export const userRoutes: Route[] = [
{ {
@ -17,7 +21,7 @@ export const userRoutes: Route[] = [
path: ':id', path: ':id',
component: ViewComponent, component: ViewComponent,
resolve: { resolve: {
user: UserResolver, member: MemberResolver,
}, },
}, },
]; ];