55import com .chuseok22 .sejongportallogin .infrastructure .SejongPortalLoginService ;
66import com .example .enjoy .dto .loginDto .MemberCommand ;
77import com .example .enjoy .dto .loginDto .MemberDto ;
8+ import com .example .enjoy .entity .user .User ;
89import com .example .enjoy .exception .CustomException ;
910import com .example .enjoy .exception .ErrorCode ;
11+ import com .example .enjoy .repository .UserRepository ;
1012import lombok .RequiredArgsConstructor ;
1113import lombok .extern .slf4j .Slf4j ;
1214import okhttp3 .*;
2931public class SejongLoginService {
3032
3133 private final SejongPortalLoginService sejongPortalLoginService ;
34+ private final UserRepository userRepository ;
3235
3336 public MemberDto login (MemberCommand memberCommand ){
3437 SejongMemberInfo info = sejongPortalLoginService .getMemberAuthInfos (memberCommand .getSejongPortalId (), memberCommand .getSejongPortalPassword ());
38+ updateUserInfo (info .getStudentId (), info .getName (), info .getMajor (), info .getGrade (), info .getCompletedSemester ()); //로그인 시 유저 정보 DB에 저장
3539 return MemberDto .builder ()
3640 .major (info .getMajor ())
3741 .studentIdString (info .getStudentId ())
@@ -41,6 +45,14 @@ public MemberDto login(MemberCommand memberCommand){
4145 .build ();
4246 }
4347
48+ private void updateUserInfo (String studentId , String username , String major , String grade , String completedSemester ) {
49+ User user = userRepository .findByStudentId (studentId )
50+ .orElseThrow (() -> new CustomException (ErrorCode .USER_NOT_FOUND ));
51+
52+ user .updateUserInfo (studentId , username , major , grade , completedSemester );
53+ userRepository .save (user );
54+ }
55+
4456 public MemberDto getMemberAuthInfos (MemberCommand memberCommand ) throws IOException {
4557 try {
4658 SejongMemberInfo info = sejongPortalLoginService .getMemberAuthInfos (memberCommand .getSejongPortalId (), memberCommand .getSejongPortalPassword ());
@@ -56,6 +68,8 @@ public MemberDto getMemberAuthInfos(MemberCommand memberCommand) throws IOExcept
5668 throw new CustomException (ErrorCode .SEJONG_AUTH_DATA_FETCH_ERROR );
5769 }
5870 }
71+
72+
5973}
6074
6175
0 commit comments