ucap-doc/documents/업무/5월/1째주/0507.txt

289 lines
6.7 KiB
Plaintext
Raw Normal View History

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