ucap-doc/documents/업무/5월/1째주/0507.txt
Park Byung Eun 239d686ad3 sync 0507
2020-05-07 18:12:21 +09:00

289 lines
6.7 KiB
Plaintext

대화방 생성
파라미터
대화방 제목
결과
선택된 유저 리스트
대화방 생성 액션
대화 전달
파라미터
대화방 제목
결과
선택된 유저 리스트
대화 전달 액션
룸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 })))
);
})
)
);