diff --git a/documents/업무/5월/1째주/0506.txt b/documents/업무/5월/1째주/0506.txt index fe76c26..d4e09d0 100644 --- a/documents/업무/5월/1째주/0506.txt +++ b/documents/업무/5월/1째주/0506.txt @@ -24,4 +24,10 @@ 4. 그룹수정 유저 리스트 - 그룹명 수정 \ No newline at end of file + 그룹명 수정 + +대화상대 추가 -> 그룹생성 -> 그룹명 +대화상대 추가 -> 그룹수정 -> 그룹명 수정 +대화상대 추가 -> 메세지 전달 +대화상대 추가 -> 채팅방 생성 + diff --git a/documents/업무/5월/1째주/0507.txt b/documents/업무/5월/1째주/0507.txt new file mode 100644 index 0000000..1dbe056 --- /dev/null +++ b/documents/업무/5월/1째주/0507.txt @@ -0,0 +1,289 @@ +대화방 생성 + 파라미터 + 대화방 제목 + 결과 + 선택된 유저 리스트 + 대화방 생성 액션 + +대화 전달 + 파라미터 + 대화방 제목 + 결과 + 선택된 유저 리스트 + 대화 전달 액션 + 룸seq: -999 + +대화방 멤버 수정 (EditChatMember) + 파라미터 + 대화방 제목 + 대화방 유저[] + 결과 + 선택된 유저 리스트 + 수정검사 + 대화방 멤버 수정 액션 + +그룹 생성 + 파라미터 + 대화방 제목 + 결과 + 선택된 유저 리스트 + 그룹 생성 액션 + +그룹 멤버 수정 (EditMember) + 파라미터 + 대화방 제목 + groupDetailData + 결과 + 선택된 유저 리스트 + 그룹 멤버 수정 + + +createChatDialog + 오픈 시 받아야 할 데이터 + type: + title: + group?: + curRoomUser?: + + 결과 + 선택 유저 리스트 + + 대화방 생성 + 검색 + 그룹/조직도 출력 + 선택 유저 출력 + + 완료 + 대화방 오픈 + 선택 유저 리스트 + 취소 + x + 그룹지정 후 완료 + 그룹 생성? + 선택 유저 리스트 + 기존 그룹 수정? + 선택 유저 리스트 + 대화 전달 + 검색 + 그룹/조직도 출력 + 선택 유저 출력 + + 완료 + 대화 전달 액션 + 이벤트 seq + 선택 유저 리스트 + 취소 + x + + 대화방 멤버 수정 (EditChatMember) + 검색 + 그룹/조직도 출력 + 기존 대화방 유저[] 체크 + 선택 유저 출력 + + 그룹 생성 + 검색 + 그룹/조직도 출력 + 선택 유저 출력 + + 완료 + 그룹 생성 액션 + 그룹이름 + 선택 유저 리스트 + 취소 + x + 그룹 멤버 수정 (EditMember) + 검색 + 그룹/조직도 출력 + 선택 유저 출력 + + 완료 + 그룹 수정 액션 + 선택 유저 리스트 + 기존 그룹 유저 리스트 + 취소 + x + +대화 + +createChatDialogComponent + selectUserSectionComponent + tenantSearchComponent + groupListSectionComponent + treeSectionComponent + 타입별 다음 단계 정의 + 타입별 액션 정의 + +UserSelectDialogType.EditChatMember + message-write.dialog.component.ts + if (!!result && !!result.choice && result.choice) { + // while (receiverList.length) { + // receiverList.pop(); + // } + const selectedUserList: UserInfo[] = []; + result.selectedUserList.forEach(v => { + selectedUserList.push(v as UserInfo); + }); + this.curReceiverList = selectedUserList; + } + + room-user-list.component.ts + if (!!result && !!result.choice && result.choice) { + if ( + !!result.selectedUserList && + result.selectedUserList.length > 0 && + curRoomUser + .map(user => user.seq) + .sort() + .join('|') === + result.selectedUserList + .map(user => user.seq) + .sort() + .join('|') + ) { + // 변경된 것이 없다면 중지. + return; + } + + // include me here.. + const userSeqs: number[] = this.userInfoList + .filter(userInfo => userInfo.isJoinRoom) + .map(userInfo => userInfo.seq); + if (!!result.selectedUserList && result.selectedUserList.length > 0) { + result.selectedUserList.forEach(user => { + if (userSeqs.indexOf(user.seq) < 0) { + userSeqs.push(user.seq); + } + }); + } + + if (userSeqs.length > 0) { + this.store.dispatch( + RoomStore.inviteOrOpen({ + req: { + divCd: 'Invite', + userSeqs + } + }) + ); + } + } + + messages.component.ts + if (!!result && !!result.choice && result.choice) { + if ( + !!result.selectedUserList && + result.selectedUserList.length > 0 && + curRoomUser + .map((user) => user.seq) + .sort() + .join('|') === + result.selectedUserList + .map((user) => user.seq) + .sort() + .join('|') + ) { + // 변경된 것이 없다면 중지. + return; + } + + // include me here.. + const userSeqs: number[] = this.userInfoListSubject.value + .filter((userInfo) => userInfo.isJoinRoom) + .map((userInfo) => userInfo.seq); + + if ( + !!result.selectedUserList && + result.selectedUserList.length > 0 + ) { + result.selectedUserList.forEach((user) => { + if (userSeqs.indexOf(user.seq) < 0) { + userSeqs.push(user.seq); + } + }); + } + + if (userSeqs.length > 0) { + // include me + const myUserSeq = this.loginResSubject.value.userSeq; + if (!!myUserSeq && userSeqs.indexOf(myUserSeq) < 0) { + userSeqs.push(myUserSeq); + } + + this.store.dispatch( + RoomStore.inviteOrOpen({ + req: { + divCd: 'Invite', + userSeqs + } + }) + ); + } + } + + + +add$ = createEffect(() => + this.actions$.pipe( + ofType(add), + withLatestFrom(this.store.pipe(select(BuddySelector.buddies))), + exhaustMap(([action, buddies]) => { + return this.buddyProtocolService.add(action.req).pipe( + map((res: BuddyAddResponse) => { + return buddy2(); + }), + catchError(error => of(addFailure({ error }))) + )} + ) + ) + ); + + + create$ = createEffect(() => + this.actions$.pipe( + ofType(create), + withLatestFrom(this.store.pipe(select(BuddySelector.buddies))), + exhaustMap(([action, buddies]) => { + return this.groupProtocolService + .add({ + groupName: action.groupName + }) + .pipe( + switchMap((res: GroupAddResponse) => { + const actions: any[] = []; + + if (!!action.targetUserSeqs && 0 < action.targetUserSeqs.length) { + const addBuddies: number[] = []; + action.targetUserSeqs.forEach((item) => { + if (!buddies[item]) { + addBuddies.push(Number(item)); + } + }); + if (addBuddies.length > 0) { + actions.push( + BuddyActions.add({ + req: { userSeqs: action.targetUserSeqs } + }) + ); + } + actions.push( + update({ + req: { + groupSeq: res.groupSeq, + groupName: res.groupName, + userSeqs: action.targetUserSeqs + } + }) + ); + } + actions.push( + createSuccess({ res, targetUserSeqs: action.targetUserSeqs }) + ); + + return actions; + }), + catchError((error) => of(createFailure({ error }))) + ); + }) + ) + ); \ No newline at end of file diff --git a/documents/업무/5월/1째주/ucap-angular_2020-0507.zip b/documents/업무/5월/1째주/ucap-angular_2020-0507.zip new file mode 100644 index 0000000..3865581 Binary files /dev/null and b/documents/업무/5월/1째주/ucap-angular_2020-0507.zip differ diff --git a/documents/업무/5월/1째주/ucap-lg-web_2020-0507.zip b/documents/업무/5월/1째주/ucap-lg-web_2020-0507.zip new file mode 100644 index 0000000..f5b0b55 Binary files /dev/null and b/documents/업무/5월/1째주/ucap-lg-web_2020-0507.zip differ diff --git a/documents/업무/new-pc-doc/UCAP 메신저 화면정의서_V1.6_200507.pptx b/documents/업무/new-pc-doc/UCAP 메신저 화면정의서_V1.6_200507.pptx new file mode 100644 index 0000000..ef572fc Binary files /dev/null and b/documents/업무/new-pc-doc/UCAP 메신저 화면정의서_V1.6_200507.pptx differ diff --git a/documents/업무/new-pc-doc/UCAP_UX 가이드_V1.3_200325.pptx b/documents/업무/new-pc-doc/UCAP_UX 가이드_V1.3_200325.pptx new file mode 100644 index 0000000..c43f4f8 Binary files /dev/null and b/documents/업무/new-pc-doc/UCAP_UX 가이드_V1.3_200325.pptx differ