sync 0507

This commit is contained in:
Park Byung Eun 2020-05-07 18:12:21 +09:00
parent 0d68fa7611
commit 239d686ad3
6 changed files with 296 additions and 1 deletions

View File

@ -25,3 +25,9 @@
4. 그룹수정
유저 리스트
그룹명 수정
대화상대 추가 -> 그룹생성 -> 그룹명
대화상대 추가 -> 그룹수정 -> 그룹명 수정
대화상대 추가 -> 메세지 전달
대화상대 추가 -> 채팅방 생성

View File

@ -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 })))
);
})
)
);