diff --git a/pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java b/pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java index efc4fd33..e39c72dd 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java @@ -43,7 +43,12 @@ public class AcntCrtfyhpController { @Autowired private PtyCstmrQueryRepository ptyCstmrQueryRepository; - + /** + * 인증번호를 발송하는 기능, + * hpno 값은 휴대폰번호입니다. 이 번호에 인증번호를 발송합니다. + * @param hpno + * @return + */ @GetMapping(value = "/register/send") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") @ApiImplicitParam(name = "hnpo",value = "휴대폰번호", dataTypeClass = String.class) @@ -91,6 +96,12 @@ public class AcntCrtfyhpController { + /** + * 인증메세지를 받은 사용자가 인증번호를 입력하여 인증처리하는 기능입니다. + * @param hpno + * @param crtfyNo + * @return + */ @GetMapping(value = "/register/confirm") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") @ApiImplicitParams({ @@ -128,7 +139,12 @@ public class AcntCrtfyhpController { } - //아이디 찾기 시 인증번호 발송 로직 + /** + * 아이디 찾기 시 인증번호 발송 로직 + * @param memberName + * @param hpno + * @return + */ @GetMapping(value = "/find/sendForId") @ApiOperation(value = "아이디 찾기 시 인증번호 발송") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") @@ -167,7 +183,12 @@ public class AcntCrtfyhpController { return ResponseEntity.ok().body(new SuccessResponse(resultMap)); } - //아이디 찾기 + /** + * 아이디 찾기 + * @param memberName + * @param hpno + * @return + */ @GetMapping(value = "/find/findUserId") @ApiOperation(value = "회원 아이디 찾기") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") @@ -201,7 +222,12 @@ public class AcntCrtfyhpController { return ResponseEntity.ok().body( new SuccessResponse(resultMap)); } - //비밀번호 찾기 시 인증번호 발송 로직 + /** + * 비밀번호 찾기 시 인증번호 발송 로직 + * @param userId + * @param hpno + * @return + */ @GetMapping(value = "/find/sendForPw") @ApiOperation(value = "비밀번호 찾기 시 인증번호 발송") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") @@ -241,7 +267,14 @@ public class AcntCrtfyhpController { return ResponseEntity.ok().body( new SuccessResponse(resultMap)); } - + /** + * 비밀번호 찾기 및 업데이트 + * @param userId + * @param hpno + * @param newPw + * @return + * @throws Exception + */ @GetMapping(value = "/find/updatePw") @ApiOperation(value = "비밀번호 찾기 및 업데이트") @Tag(name = "휴대폰 인증 관리", description = "회원 휴대폰 인증 관련 API") diff --git a/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java b/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java index 5e230937..5f41bdcf 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java @@ -32,6 +32,11 @@ public class AcntCstmrController { private final AcntCstmrService service; + /** + * 회원가입 기능, AcntCstmrRqModel에 사용자가 입력한 회원 정보가 들어있음 + * @param rq + * @return + */ @PostMapping(value = "/register") @ApiOperation(value = "회원 가입") @Tag(name = "회원관리", description = "회원 관련 API") @@ -46,9 +51,16 @@ public class AcntCstmrController { log.debug(">>> bd : {}", rq.getBrthdyDate().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime()); // log.debug(">>> td : {}", rq.getTestDt()); // log.debug(">>> td : {}", rq.getTestDt().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime()); - result = service.register(rq); + result = service.register(rq); // 회원정보를 데이터베이스에 추가[INSERT]함. } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNORE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); @@ -57,6 +69,12 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse(result)); } + /** + * 회원 조회하는 기능, cstmrSno는 회원 고유번호 입니다. + * 고유번호로 회원의 정보를 조회합니다. + * @param cstmrSno + * @return + */ @GetMapping(value = "/profile/{cstmrSno}") @ApiOperation(value = "회원 정보") @Tag(name = "회원관리", description = "회원 관련 API") @@ -66,9 +84,16 @@ public class AcntCstmrController { try { - result = service.list(cstmrSno); + result = service.list(cstmrSno); // 회원고유번호[cstmrSno]로 회원정보를 조회 함. } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); @@ -78,22 +103,43 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse(result)); } + /** + * 회원 계정 암호 변경하는 기능, + * AcntCstmrPwModel애 회원이 입력한 기존암호, 변경할 암호값이 있습니다. + * @param rq + * @return + */ @PostMapping(value = "/profile/pswdupdate") @ApiOperation(value = "회원 패스워드 변경") @Tag(name = "회원관리", description = "회원 관련 API") public ResponseEntity passwordupdate(@RequestBody AcntCstmrPwModel rq){ Map resultMap = new HashMap(); try { - PtyCstmrBas result = service.updatepas(rq); + PtyCstmrBas result = service.updatepas(rq); // 입력받은 값으로 회원계정 암호변경. resultMap.put("result", result); } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNOE : {}", e); resultMap.put("result", false); resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorMessage", e.getMessage()); return ResponseEntity.ok().body(new SuccessResponse(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGONE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ErrorResponse("Server Error", "-1")); } @@ -101,22 +147,43 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } + /** + * 회원 기존 패스워드 확인, + * userPswd 값에 있는 회원 암호가 맞는지 확인합니다. + * @param userPswdMap + * @return + */ @PostMapping(value = "/profile/pwcheck") @ApiOperation(value = "회원 기존 패스워드 확인") @Tag(name = "회원관리", description = "회원 관련 API") public ResponseEntity extendpsw(@RequestBody Map userPswdMap){ Map resultMap = new HashMap(); try { - boolean result = service.extendpsw(userPswdMap.get("userPswd")); + boolean result = service.extendpsw(userPswdMap.get("userPswd")); // 기존 암호가 맞는지 확인하는 기능. resultMap.put("result", result); } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNOE : {}", e); resultMap.put("result", false); resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorMessage", e.getMessage()); return ResponseEntity.ok().body(new SuccessResponse(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGONE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ErrorResponse("Server Error", "-1")); } @@ -124,6 +191,12 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } + /** + * 회원정보 수정하는 기능, + * AcntCstmrEmModel에 회원이 입력한 수정할 정보들로 수정합니다. + * @param rq + * @return + */ @PutMapping(value = "/profile/update") @ApiOperation(value = "회원 정보 변경 (이메일,핸드폰)") @Tag(name = "회원관리", description = "회원 관련 API") @@ -131,10 +204,18 @@ public class AcntCstmrController { Map resultMap = new HashMap(); try { - PtyCstmrDtl result = service.updateEmail(rq); + PtyCstmrDtl result = service.updateEmail(rq); // 이메일과 휴대폰번호를 업데이트 하는 기능 resultMap.put("result", result); } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNOE : {}", e); resultMap.put("result", false); resultMap.put("errorCode", e.getErrorCode()); @@ -142,6 +223,13 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGONE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ErrorResponse("Server Error", "-1")); @@ -149,6 +237,12 @@ public class AcntCstmrController { return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } + /** + * 회원 탈퇴 처리하는 기능, + * 회원고유[cstmrSno] 값으로 회원탈퇴처리함. + * @param cstmrSno + * @return + */ @PostMapping(value = "/profile/delete/{cstmrSno}") @ApiOperation(value = "회원 탈퇴") @Tag(name = "회원관리", description = "회원 관련 API") @@ -157,11 +251,19 @@ public class AcntCstmrController { Map resultMap = new HashMap(); try { - boolean result = service.userDelete(cstmrSno); + boolean result = service.userDelete(cstmrSno); // 회원고유[cstmrSno] 값으로 회원탈퇴처리함. resultMap.put("result", result); } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNOE : {}", e); resultMap.put("result", false); resultMap.put("errorCode", e.getErrorCode()); diff --git a/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java b/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java index af53d350..b07964b1 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java @@ -5,15 +5,14 @@ import java.util.List; import javax.persistence.EntityManagerFactory; -import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrEmModel; -import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrPwModel; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrEmModel; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrPwModel; import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRqModel; import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRsModel; import com.palnet.biz.api.acnt.cstmr.model.AnctCstmerRlModel; @@ -33,7 +32,6 @@ import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository; import com.palnet.biz.jpa.repository.pty.PtyTermsAgreeTxnRepository; import com.palnet.comn.code.ErrorCode; import com.palnet.comn.exception.CustomException; -import com.palnet.comn.utils.DateUtils; import com.palnet.comn.utils.EncryptUtils; import com.palnet.comn.utils.HttpUtils; @@ -74,7 +72,7 @@ public class AcntCstmrService { /** * - * + * AcntCstmrRqModel에 담겨있는 회원정보를 데이터베이스에 추가하는 기능 * @param rq * @return */ @@ -89,7 +87,7 @@ public class AcntCstmrService { //사전 체크. 동일한 ID 존재 여부 확인 isUserIdFind = query.findCstmrByUserId(rq.getUserId()); - if(isUserIdFind) { + if(isUserIdFind) { // 중복되면 에러코드 반환 rs.setErrCode(-1); return rs; } @@ -119,7 +117,7 @@ public class AcntCstmrService { } } - //성공 파람 담기 + //성공 데이터 담기 if(basEntity != null) { rs.setErrCode(1); rs.setLoginId(basEntity.getUserId()); @@ -134,6 +132,12 @@ public class AcntCstmrService { return rs; } + /** + * AcntCstmrRqModel에 담겨있는 회원정보를 데이터베이스에 추가[INSERT]하는 기능. + * @param rq + * @return + * @throws Exception + */ public PtyCstmrBas savePtyCstmrBas(AcntCstmrRqModel rq) throws Exception{ @@ -153,6 +157,13 @@ public class AcntCstmrService { } + /** + * AcntCstmrRqModel에 담겨있는 상세정보를 데이터베이스에 추가[INSERT]함. + * @param rq + * @param basEntity + * @return + * @throws Exception + */ public PtyCstmrDtl savePtyCstmrDtl(AcntCstmrRqModel rq , PtyCstmrBas basEntity) throws Exception{ if(rq.getCntryCd() == null || rq.getCntryCd().equals("")){ @@ -194,20 +205,30 @@ public class AcntCstmrService { return ptyTermsAgreeTxnRepository.save(agreeEntity); } - + + /** + * 회원 고유번호[cstmrSno]로 회원정보를 조회하는 기능. + * @param cstmrSno + * @return + */ public List list(int cstmrSno) { - List resultList = query.list(cstmrSno); + List resultList = query.list(cstmrSno); // 회원고유번호[cstmrSno]로 회원정보를 조회 함. for(AnctCstmerRlModel model : resultList) { - model.setEmail(EncryptUtils.decrypt(model.getEmail())); - model.setHpno(EncryptUtils.decrypt(model.getHpno())); + model.setEmail(EncryptUtils.decrypt(model.getEmail())); // 이메일은 회원추가할 때 암호화하기에 다시 복호화를 함 + model.setHpno(EncryptUtils.decrypt(model.getHpno())); // 휴대폰 번호는 회원추가할 때 암호화하기에 다시 복호화를 함 } return resultList; } + /** + * 회원에게 입력받은 암호로 변경하는 기능 + * @param rq + * @return + */ public PtyCstmrBas updatepas(AcntCstmrPwModel rq) { // 1. 토큰 유저 정보 불러오기 Integer userId = jwtTokenUtil.getCstmrSnoByToken(); @@ -233,6 +254,11 @@ public class AcntCstmrService { return updateUserEntity; } + /** + * 기존 암호가 맞는지 확인하는 기능. + * @param userPswd + * @return + */ public boolean extendpsw(String userPswd){ boolean result = false; // 1. 토큰 유저 정보 불러오기 @@ -263,36 +289,57 @@ public class AcntCstmrService { return result; } + /** + * 이메일과 휴대폰번호를 업데이트 하는 기능. + * @param rq + * @return + */ public PtyCstmrDtl updateEmail(AcntCstmrEmModel rq) { - Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); - String userId = jwtTokenUtil.getUserIdByToken(); - String newEmail = EncryptUtils.encrypt(rq.getEmail()); - String newHpno = EncryptUtils.encrypt(rq.getHpno()); + Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); // 회원 인가할 정보에 있는 회원 고유번호 + String userId = jwtTokenUtil.getUserIdByToken(); // 회원 인가할 정보에 있는 회원 아이디 + String newEmail = EncryptUtils.encrypt(rq.getEmail()); // 바뀔 이메일 암호화 + String newHpno = EncryptUtils.encrypt(rq.getHpno()); // 바뀔 휴대폰번호 암호화 + // 회원 고유번호로 회원정보를 데이터베이스에서 가져옴 PtyCstmrDtl userEntity = ptyCstmrDtlRepository.findById(cstmrSno).orElse(null); - + + // 바뀔 내용 넣어줌 userEntity.setEmail(newEmail); userEntity.setUpdateDt(Instant.now() ); userEntity.setUpdateUserId(userId); userEntity.setHpno(newHpno); - + + // 바뀔 내용을 데이터베이스에 수정함 PtyCstmrDtl updateEmailEntity = ptyCstmrDtlRepository.save(userEntity); return updateEmailEntity; } + /** + * 회원고유[cstmrSno] 값으로 회원탈퇴처리 하는 기능. + * @param cstmrSno + * @return + */ public boolean userDelete(int cstmrSno) { - List groupInfo = jwtTokenUtil.getGroupAuthByToken(); + List groupInfo = jwtTokenUtil.getGroupAuthByToken(); // 회원의 속한 그룹을 조회 + for(JwtGroupModel group : groupInfo) { // if(group.getGroupAuthCd().equals("CREATER")) { + + // 회원의 그룹 권한이 MASTER 일 경우 if(group.getGroupAuthCd().equals("MASTER")) { - PtyGroupBas groupEntity = ptyGroupBasRepository.findByGroupId(group.getGroupId()); + PtyGroupBas groupEntity = ptyGroupBasRepository.findByGroupId(group.getGroupId()); + + // 그룹이 있을경우 그룹의 사용여부 "N" 값으로 저장 if(!(groupEntity == null)) { groupEntity.setUseYn("N"); ptyGroupBasRepository.save(groupEntity); } - List cstmrEntity = ptyCstmrGroupRepository.changeGroupJoinYn(group.getGroupId()); + + List cstmrEntity = ptyCstmrGroupRepository.changeGroupJoinYn(group.getGroupId()); + + // cstmrEntity 값이 있을 경우 참여여부 "N" 값으로 저장 if(!(cstmrEntity == null)) { for(PtyCstmrGroup cstmr : cstmrEntity) { cstmr.setJoinYn("N"); @@ -300,20 +347,29 @@ public class AcntCstmrService { } } } + + // 회원 고유번호로 데이터베이스에서 그룹참여정보 가져옴 List AprvlEntity = ptyCstmrGroupRepository.changeGroupAprvlYn(cstmrSno); + + // AprvlEntity[그룹참여 정보가] 있을경우 if(!(AprvlEntity == null)) { + // 그룹 승인여부를 "N"값으로 저장 for(PtyCstmrGroup Aprvl : AprvlEntity) { Aprvl.setAprvlYn("N"); Aprvl.setAprvlDt(null); ptyCstmrGroupRepository.save(Aprvl); } - PtyCstmrGroup cstmrEntity = ptyCstmrGroupRepository.findGroupId(group.getGroupId(), cstmrSno); - if(!(cstmrEntity == null)) { - cstmrEntity.setJoinYn("N"); - ptyCstmrGroupRepository.save(cstmrEntity); + + // 그룹 참여여부를 "N"값으로 저장 + PtyCstmrGroup cstmrEntity = ptyCstmrGroupRepository.findGroupId(group.getGroupId(), cstmrSno); + if(!(cstmrEntity == null)) { + cstmrEntity.setJoinYn("N"); + ptyCstmrGroupRepository.save(cstmrEntity); + } } } - } + + // 데이터베이스에 있는 회원 정보를 탈퇴처리 후 저장함 PtyCstmrBas userEntity = ptyCstmrBasRepository.findByUserGroupId(cstmrSno); userEntity.setCstmrStatusCd("W"); userEntity.setCstmrStatusCngDt(Instant.now() ); diff --git a/pav-server/src/main/java/com/palnet/biz/api/acnt/jwt/utils/JwtTokenUtil.java b/pav-server/src/main/java/com/palnet/biz/api/acnt/jwt/utils/JwtTokenUtil.java index 86e1ef84..c10635b3 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/acnt/jwt/utils/JwtTokenUtil.java +++ b/pav-server/src/main/java/com/palnet/biz/api/acnt/jwt/utils/JwtTokenUtil.java @@ -146,6 +146,10 @@ public class JwtTokenUtil implements Serializable { return cstmrSno; } + /** + * 회원 인가정보로 그룹 + * @return + */ public List getGroupAuthByToken() { HttpServletRequest rq = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = rq.getHeader("Authorization"); diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java index 2a6ae1fa..92cac8e0 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java @@ -26,6 +26,13 @@ public class PtyCstmrQueryRepository { private final JPAQueryFactory query; + /** + * 입력받은 회원 아이디가 데이터베이스에 있는지 조회하는 SQL기능. + * ID가 있으면 중복되는 것, true 반환 + * ID가 없으면 중복되지 않는 것, false 반환 + * @param userId + * @return + */ public boolean findCstmrByUserId(String userId) { boolean result = false; @@ -38,6 +45,15 @@ public class PtyCstmrQueryRepository { builder.and(basEntity.cstmrStatusCd.eq("A")); //활성화 상태 builder.and(basEntity.userId.eq(userId)); + /** + * 회원 아이디[USER_ID], + * 회원활성화 여부[CSTMR_STATUS_CD] 값이 조건에 맞으면 회원정보를 가져오는 SQL입니다. + * SELECT + * * + * FROM PTY_CSTMR_BAS PCB + * WHERE PCB.CSTMR_STATUS_CD = 'A' + * AND PCB.USER_ID = #{id} + */ PtyCstmrBas entity = query.select(basEntity) .from(basEntity) .where(builder) @@ -340,11 +356,34 @@ public class PtyCstmrQueryRepository { } else { return null; } - } + } + + /** + * 회원 고유번호로 데이터베이스에서 회원정보를 조회하는 SQL 기능. + * @param cstmrSno + * @return + */ public List list(int cstmrSno) { QPtyCstmrBas bas = QPtyCstmrBas.ptyCstmrBas; QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl; + /** + * 회원 고유번호로 데이터베이스에서 회원정보를 조회하는 SQL 입니다. + * SELECT + * PCD.MEMBER_NAME , + * PCD.BRTHDY_DATE , + * PCD.GENDER_CD , + * PCD.CNTRY_CD , + * PCD.EMAIL , + * PCD.HPNO , + * PCD.UPDATE_DT , + * PCB.CPT_AUTH_CODE , + * PCB.USER_ID + * FROM PTY_CSTMR_BAS PCB + * LEFT OUTER JOIN PTY_CSTMR_DTL PCD + * ON PCB.CSTMR_SNO = PCD.CSTMR_SNO + * WHERE PCB.CSTMR_SNO = #{cstmrSno} + */ List list = query .select(Projections.bean( AnctCstmerRlModel.class,