@@ -90,12 +90,7 @@ public Member createMember(String name, String profileUrl, String key, Provider
9090 Member saved = memberRepository .save (member );
9191
9292 // ElasticSearch용 document 생성.
93- MemberDocument doc = new MemberDocument ();
94- doc .setId (saved .getId ());
95- doc .setName (saved .getName ());
96- doc .setProfileImageUrl (saved .getProfileImageUrl ());
97- memberSearchRepository .save (doc );
98-
93+ createDocument (member );
9994 return saved ;
10095 }
10196
@@ -108,11 +103,8 @@ public void updateMemberName(Member member, String newName){
108103 member .updateName (generateUniqueUserNameTag (newName ));
109104 memberRepository .save (member );
110105
111- MemberDocument doc = new MemberDocument ();
112- doc .setId (member .getId ());
113- doc .setName (member .getName ());
114- doc .setProfileImageUrl (member .getProfileImageUrl ());
115- memberSearchRepository .save (doc );
106+ // ElasticSearch용 document 생성.
107+ createDocument (member );
116108 }
117109
118110 @ Transactional
@@ -123,6 +115,9 @@ public void updateMemberProfileUrl(Member member, MultipartFile file){
123115 String newUrl = s3Service .upload (file , fileName );
124116 member .updateProfileUrl (newUrl );
125117 memberRepository .save (member );
118+
119+ // ElasticSearch용 document 생성.
120+ createDocument (member );
126121 } catch (IOException e ) {
127122 throw new IllegalArgumentException ("잘못된 파일 입력입니다." );
128123 }
@@ -140,6 +135,9 @@ public void updateMemberProfile(Member member, String newName, MultipartFile fil
140135 String newUrl = s3Service .upload (file , fileName );
141136 member .updateProfileUrl (newUrl );
142137 memberRepository .save (member );
138+
139+ // ElasticSearch용 document 생성.
140+ createDocument (member );
143141 } catch (IOException e ) {
144142 throw new IllegalArgumentException ("잘못된 파일 입력입니다." );
145143 }
@@ -151,9 +149,16 @@ public void updateMemberProfile(Member member, String newName, MultipartFile fil
151149 @ Transactional
152150 public void hardDeleteMember (Member member ){
153151 Integer memberId = member .getId ();
152+
153+ // 관련 데이터 정리
154154 tagRepository .bulkDeleteTagsByMemberId (memberId );
155155 dataSourceRepository .bulkDeleteByMemberId (memberId );
156+
157+ // 회원 삭제
156158 memberRepository .delete (member );
159+
160+ // Elastic Search 인덱스에서 회원 삭제.
161+ memberSearchRepository .deleteById (memberId );
157162 }
158163
159164 //soft-delete한 회원 복구
@@ -168,4 +173,19 @@ private String generateUniqueUserNameTag(String baseName) {
168173 } while (memberRepository .existsByName (candidate ));
169174 return candidate ;
170175 }
176+
177+ // ElasticSearch용 document 생성 메소드.
178+ private void createDocument (Member member ){
179+ MemberDocument doc = new MemberDocument ();
180+ doc .setId (member .getId ());
181+
182+ String name = member .getName ();
183+ String nameOnly = name .contains ("#" ) ? name .substring (0 , name .indexOf ("#" )) : name ;
184+
185+ doc .setNameOnly (nameOnly );
186+ doc .setNameWithTag (name );
187+ doc .setProfileImageUrl (member .getProfileImageUrl ());
188+
189+ memberSearchRepository .save (doc );
190+ }
171191}
0 commit comments