Browse Source

crtfyhp 패키지 주석 추가

pull/18/head
lkd9125(이경도) 10 months ago
parent
commit
6e4fa96498
  1. 103
      pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java
  2. 112
      pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/service/AcntCrtfyhpService.java
  3. 24
      pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCrtfyhpBasQueryRepository.java
  4. 102
      pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java

103
pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/controller/AcntCrtfyhpController.java

@ -49,36 +49,43 @@ public class AcntCrtfyhpController {
@ApiImplicitParam(name = "hnpo",value = "휴대폰번호", dataTypeClass = String.class) @ApiImplicitParam(name = "hnpo",value = "휴대폰번호", dataTypeClass = String.class)
public ResponseEntity<? extends BasicResponse> send(String hpno) { public ResponseEntity<? extends BasicResponse> send(String hpno) {
Map<String , Object> resultMap = new HashMap<String,Object>(); Map<String , Object> resultMap = new HashMap<String,Object>(); // 결과 반환을 위한 객체선언
try { try {
if(hpno == null) { if(hpno == null) { // hpno[휴대폰번호] 가 없을시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
//회원정보에 동일한 휴대폰 번호가 있는지 확인 , 암호화 해서 검색 //회원정보에 동일한 휴대폰 번호가 있는지 확인 , 암호화 해서 검색
String encHpno = EncryptUtils.encrypt(hpno); String encHpno = EncryptUtils.encrypt(hpno);
// 휴대폰 번호가 종복이면 isHpno가 True
boolean isHpno = ptyCstmrQueryRepository.findCstmrByHpno(encHpno); boolean isHpno = ptyCstmrQueryRepository.findCstmrByHpno(encHpno);
if(isHpno) { if(isHpno) { // 휴대폰 번호 중복인 경우
resultMap.put("result" , false); resultMap.put("result" , false); // 성공하지 못함을 의미
resultMap.put("code" , -1); // 동일한 휴대폰 번호 존재 resultMap.put("code" , -1); // 동일한 휴대폰 번호 존재
}else { // 휴대폰 번호 중복이 아닌경우
boolean result = service.registerSend(hpno); // 해당 휴대폰번호로 문자 메세지 발송
}else { resultMap.put("result" , result); // 메세지 발송이 성공일 경우 true
boolean result = service.registerSend(hpno);
resultMap.put("result" , result);
} }
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
} }
// 문제없을 시 결과값을 최종적으로 리턴해줌
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
} }
@ -93,22 +100,25 @@ public class AcntCrtfyhpController {
public ResponseEntity<? extends BasicResponse> confirm(String hpno , String crtfyNo) { public ResponseEntity<? extends BasicResponse> confirm(String hpno , String crtfyNo) {
Map<String , Boolean> resultMap = new HashMap<String,Boolean>(); Map<String , Boolean> resultMap = new HashMap<String,Boolean>(); // 결과 반환을 위한 객체선언
if(hpno == null || crtfyNo == null) { if(hpno == null || crtfyNo == null) { // hpno[휴대폰번호], crtfyNo[인증번호] 값이 없을 시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK)// "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
try {
try {
boolean result = service.registerConfirm(hpno, crtfyNo); // 휴대폰번호로 전송된 인증번호가 맞는지 확인하는 코드
boolean result = service.registerConfirm(hpno, crtfyNo); resultMap.put("result" , result); // 인증성공하면 true
resultMap.put("result" , result);
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -127,15 +137,15 @@ public class AcntCrtfyhpController {
@ApiImplicitParam(name = "hpno", value = "휴대폰 번호", dataTypeClass = String.class) @ApiImplicitParam(name = "hpno", value = "휴대폰 번호", dataTypeClass = String.class)
}) })
public ResponseEntity<? extends BasicResponse> sendForId(String memberName, String hpno) { public ResponseEntity<? extends BasicResponse> sendForId(String memberName, String hpno) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>(); // 결과 반환을 위한 객체선언
if(memberName == null || hpno == null) { if(memberName == null || hpno == null) { // hpno[휴대폰번호]와 memberName[회원이름]이 없을시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
try { try {
boolean result = service.certifNum(memberName, hpno); boolean result = service.certifNum(memberName, hpno); //
resultMap.put("result" , result); resultMap.put("result" , result);
if(!result) { if(!result) {
resultMap.put("code", -1); //일치하는 회원 없음 resultMap.put("code", -1); //일치하는 회원 없음
@ -143,6 +153,13 @@ public class AcntCrtfyhpController {
resultMap.put("code", 0); //일치하는 회원 존재 resultMap.put("code", 0); //일치하는 회원 존재
} }
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -159,10 +176,10 @@ public class AcntCrtfyhpController {
@ApiImplicitParam(name = "hpno",value = "휴대폰번호", dataTypeClass = String.class) @ApiImplicitParam(name = "hpno",value = "휴대폰번호", dataTypeClass = String.class)
}) })
public ResponseEntity<? extends BasicResponse> findUserId(String memberName, String hpno) { public ResponseEntity<? extends BasicResponse> findUserId(String memberName, String hpno) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>(); // 결과 반환을 위한 객체선언
if(memberName == null || hpno == null) { if(memberName == null || hpno == null) { // hpno[휴대폰번호]와 memberName[회원이름]이 없을시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
@ -195,13 +212,13 @@ public class AcntCrtfyhpController {
public ResponseEntity<? extends BasicResponse> sendForPw(String userId, String hpno) { public ResponseEntity<? extends BasicResponse> sendForPw(String userId, String hpno) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
if(userId == null || hpno == null) { if(userId == null || hpno == null) { // userId[회원아이디]와 memberName[회원이름]이 없을시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
try { try {
boolean result = service.certifPw(userId, hpno); boolean result = service.certifPw(userId, hpno); // 회원 ID와 휴대폰번호로 인증메세지 보내는 기능
resultMap.put("result", result); resultMap.put("result", result);
if(!result) { if(!result) {
resultMap.put("code", -1); //일치하는 회원 없음 resultMap.put("code", -1); //일치하는 회원 없음
@ -209,6 +226,13 @@ public class AcntCrtfyhpController {
resultMap.put("code", 0); //일치하는 회원 존재 resultMap.put("code", 0); //일치하는 회원 존재
} }
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -229,13 +253,13 @@ public class AcntCrtfyhpController {
public ResponseEntity<? extends BasicResponse> updatePw(String userId, String hpno, String newPw) throws Exception { public ResponseEntity<? extends BasicResponse> updatePw(String userId, String hpno, String newPw) throws Exception {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
if(hpno == null || newPw == null) { if(hpno == null || newPw == null) { // hpno[휴대폰번호]와 newPw[새로운 비밀번호]가 없을시 서버에서 파라미터가 없다는 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM)); .body(new ErrorResponse(RSErrorCode.ER_PARAM));
} }
try { try {
boolean result = service.updatePw(userId, hpno, newPw); boolean result = service.updatePw(userId, hpno, newPw); // 사용자가 입력한 새로운 암호로 업데이트
resultMap.put("result", result); resultMap.put("result", result);
if(!result) { if(!result) {
resultMap.put("code", -1); resultMap.put("code", -1);
@ -243,6 +267,13 @@ public class AcntCrtfyhpController {
resultMap.put("code", 0); resultMap.put("code", 0);
} }
} catch(Exception e) { } catch(Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e); log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));

112
pav-server/src/main/java/com/palnet/biz/api/acnt/crtfyhp/service/AcntCrtfyhpService.java

@ -106,9 +106,16 @@ public class AcntCrtfyhpService {
// //
// return true; // return true;
// } // }
/**
* hpno에 있는 번호로 인증번호 메세지 발송하는 기능
* @param hpno
* @return
* @throws Exception
*/
public boolean registerSend(String hpno) throws Exception{ public boolean registerSend(String hpno) throws Exception{
//인증번호 만들기 ( 6자리) //인증번호 만들기 (6자리)
String certifyNo = numberGen(6, 2); String certifyNo = numberGen(6, 2);
//메시지 만들기 //메시지 만들기
@ -126,15 +133,25 @@ public class AcntCrtfyhpService {
ptyEntity.setCrtfyhpYn("N"); ptyEntity.setCrtfyhpYn("N");
ptyCrtfyhpBasRepository.save(ptyEntity); ptyCrtfyhpBasRepository.save(ptyEntity);
logger.info("certifyNo :: " + certifyNo); logger.info("certifyNo :: {}", certifyNo); // 로그로 인증번호 값을 찍어줌
String nowStr = InstantUtils.toDatetimeStringByFormat(Instant.now(), "yyyyMMddHHmmss"); // 현재시간 값을 구해옴 예시 => nowStr = "20231206135600"
String nowStr = InstantUtils.toDatetimeStringByFormat(Instant.now(), "yyyyMMddHHmmss");
//발송 테이블 입력 //발송 테이블 입력
SuredataEntity entity = new SuredataEntity(); SuredataEntity entity = new SuredataEntity();
entity.setIntime(nowStr); entity.setIntime(nowStr);
entity.setCallphone(hpno); entity.setCallphone(hpno);
entity.setMsg(msg); entity.setMsg(msg);
/**
* Message 기본값들 applcation-local[dev,prod등].properties 파일에서 확인할 있음
* local,dev,prod는 서버가 돌아가는 환경 옵션입니다.
* local - 개발자 개인 컴퓨터 환경
* dev - 상용서버 배포전 테스트할 서버 환경[테스트서버]
* prod - 상용화 환경
*/
entity.setSubject(SUBJECT_CETIFY); entity.setSubject(SUBJECT_CETIFY);
entity.setCallname(CALLNAME_CERTIFY); entity.setCallname(CALLNAME_CERTIFY);
entity.setUsercode(USER_CODE); entity.setUsercode(USER_CODE);
@ -146,9 +163,11 @@ public class AcntCrtfyhpService {
entity.setKind(KIND); entity.setKind(KIND);
SuredataEntity result = sureDataRepository.save(entity); SuredataEntity result = sureDataRepository.save(entity); // 데이터 베이스에 저장[Data Insert]
if(result == null) { // Save했을시 성공하지 못하면 result는 null됨
// 그래서 null경우 성공하지 못한다고 판단
if(result == null) {
return false; return false;
} }
@ -156,14 +175,33 @@ public class AcntCrtfyhpService {
} }
/**
* 휴대폰 번호에 전송된 인증번호가 맞는지 확인하는 기능
* @param hpno
* @param crtfyNo
* @return
* @throws Exception
*/
public boolean registerConfirm(String hpno , String crtfyNo ) throws Exception{ public boolean registerConfirm(String hpno , String crtfyNo ) throws Exception{
hpno = EncryptUtils.encrypt(hpno); //암호화 해서 검색 hpno = EncryptUtils.encrypt(hpno); //암호화 해서 검색
List<PtyCrtfyhpBas> entity = query.confirmSms(hpno , crtfyNo); List<PtyCrtfyhpBas> entity = query.confirmSms(hpno , crtfyNo); // 데이터 베이스에서 휴대폰 번호와 인증번호 맞는지 체크
return entity.size() == 0 ? false : true; /**
* entity.size() 값은 인증성공하면 1이상 인증이 실패하면 0입니다.
* 그래서, [0]이면 false [인증실패]
* [1]이면 true [인증성공]
*/
return entity.size() == 0 ? false : true;
} }
/**
* len의 크기만큼 난수 생성,
* dupCd가 [1]이면 [중복허용], [2] [중복불가]
* @param len
* @param dupCd
* @return
*/
public static String numberGen(int len, int dupCd){ public static String numberGen(int len, int dupCd){
Random rand = new Random(); Random rand = new Random();
String numStr = ""; //난수가 저장될 변수 String numStr = ""; //난수가 저장될 변수
@ -187,46 +225,78 @@ public class AcntCrtfyhpService {
} }
return numStr; return numStr;
} }
/**
* 휴대폰 번호와 회원이름으로 회원 휴대폰에 인증번호 발송하는 기능
* @param memberName
* @param hpno
* @return
* @throws Exception
*/
public boolean certifNum(String memberName, String hpno) throws Exception{ public boolean certifNum(String memberName, String hpno) throws Exception{
// String name = EncryptUtils.encrypt(memberName); // String name = EncryptUtils.encrypt(memberName);
String phone = EncryptUtils.encrypt(hpno); String phone = EncryptUtils.encrypt(hpno);
boolean certifNum = cstmrQuery.certifNum(memberName , phone); boolean certifNum = cstmrQuery.certifNum(memberName , phone);
if(certifNum) {
registerSend(hpno); if(certifNum) { // 회원정보가 있어 true면 인증문자 발송
registerSend(hpno); // hpno번호에 있는 번호로 문자발송
} }
return certifNum; return certifNum;
} }
/**
* 휴대폰 번호와 회원 명으로 회원 ID 찾는 기능
* @param memberName
* @param hpno
* @return
* @throws Exception
*/
public String findUserId(String memberName, String hpno) throws Exception{ public String findUserId(String memberName, String hpno) throws Exception{
// String name = EncryptUtils.encrypt(memberName); // String name = EncryptUtils.encrypt(memberName);
String phone = EncryptUtils.encrypt(hpno); String phone = EncryptUtils.encrypt(hpno); // 번호 암호화
String resultFindId = cstmrQuery.findUserId(memberName,phone); String resultFindId = cstmrQuery.findUserId(memberName,phone); // 휴대폰번호[hpno]와 회원명[memberName]으로 ID찾기
return resultFindId; return resultFindId;
} }
/**
* 회원 ID와 휴대폰번호로 인증메세지 보내는 기능
* @param userId
* @param hpno
* @return
* @throws Exception
*/
public boolean certifPw(String userId, String hpno) throws Exception{ public boolean certifPw(String userId, String hpno) throws Exception{
String phone = EncryptUtils.encrypt(hpno); String phone = EncryptUtils.encrypt(hpno); // 번호 암호화
PtyCstmrBas certifNum = cstmrQuery.findUserPw(userId , phone); PtyCstmrBas certifNum = cstmrQuery.findUserPw(userId , phone);
boolean result = false; boolean result = false;
if(certifNum != null) {
//certifNum이 값이 있을경우 메세지 전송, 값이 있다는것은 데이터베이스에 ID와 휴대폰번호[hpno]가 일치한다는 것
if(certifNum != null) {
registerSend(hpno); registerSend(hpno);
result = true; result = true;
} }
return result; return result;
} }
/**
* 사용자가 입력한 새로운 암호로 변경[수정]하는 기능
* @param userId
* @param hpno
* @param newPw
* @return
* @throws Exception
*/
public boolean updatePw(String userId, String hpno, String newPw) throws Exception{ public boolean updatePw(String userId, String hpno, String newPw) throws Exception{
String phone = EncryptUtils.encrypt(hpno); String phone = EncryptUtils.encrypt(hpno); // 휴대폰번호 암호화
PtyCstmrBas certifNum = cstmrQuery.findUserPw(userId , phone); PtyCstmrBas certifNum = cstmrQuery.findUserPw(userId , phone); // 회원 아이디와 휴대폰번호로 데이터베이스에서 조회
boolean result = false; boolean result = false;
if(certifNum != null) { if(certifNum != null) { //certifNum이 값이 있을경우 메세지 전송, 값이 있다는것은 데이터베이스에 ID와 휴대폰번호[hpno]가 일치한다는 것
String encryptPw = EncryptUtils.sha256Encrypt(newPw); String encryptPw = EncryptUtils.sha256Encrypt(newPw);
certifNum.setUserPswd(encryptPw); certifNum.setUserPswd(encryptPw);
certifNum.setPswdUpdtDt(Instant.now()); certifNum.setPswdUpdtDt(Instant.now());
ptyCstmrBasRepository.save(certifNum); ptyCstmrBasRepository.save(certifNum); // 바뀐 암호로 변경[수정] 하는 코드
result = true; result = true;
} }
return result; return result;

24
pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCrtfyhpBasQueryRepository.java

@ -6,7 +6,6 @@ import com.palnet.biz.jpa.entity.QPtyCrtfyhpBas;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.Instant; import java.time.Instant;
@ -14,26 +13,43 @@ import java.time.temporal.ChronoUnit;
import java.util.List; import java.util.List;
@Slf4j
@Repository @Repository
@RequiredArgsConstructor @RequiredArgsConstructor
public class PtyCrtfyhpBasQueryRepository { public class PtyCrtfyhpBasQueryRepository {
private final JPAQueryFactory query; private final JPAQueryFactory query;
/**
* 휴대폰에 전송된 인증코드가 맞는지 확인하는 SQL기능
* @param hpno
* @param crtfyNo
* @return
*/
public List<PtyCrtfyhpBas> confirmSms(String hpno, String crtfyNo) { public List<PtyCrtfyhpBas> confirmSms(String hpno, String crtfyNo) {
QPtyCrtfyhpBas qEntity = QPtyCrtfyhpBas.ptyCrtfyhpBas; QPtyCrtfyhpBas qEntity = QPtyCrtfyhpBas.ptyCrtfyhpBas;
Instant now = Instant.now(); Instant now = Instant.now();
Instant prevTime = Instant.now().minus(5, ChronoUnit.MINUTES); Instant prevTime = Instant.now().minus(5, ChronoUnit.MINUTES);
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(qEntity.crtfyhpNo.eq(crtfyNo)); builder.and(qEntity.crtfyhpNo.eq(crtfyNo));
builder.and(qEntity.crtfyhpYn.eq("N")); builder.and(qEntity.crtfyhpYn.eq("N"));
builder.and(qEntity.createDt.goe(prevTime)); builder.and(qEntity.createDt.goe(prevTime));
builder.and(qEntity.createDt.loe(now)); builder.and(qEntity.createDt.loe(now));
/**
* 휴대폰 번호와 인증번호가 맞는지 확인하는 SQL 입니다.
*
* SELECT
* *
* FROM PTY_CRTFYHP_BAS PCB
* WHERE PCB.CRTFYHP_NO = #{crtfyNo} -- 인증번호
* AND PCB.CRTFYHP_YN = 'N'
* AND PCB.CREATE_DT = DATE_SUB(NOW(), INTERVAL 5 MINUTE)
* AND PCB.CREATE_DT = NOW()
*/
List<PtyCrtfyhpBas> entity = List<PtyCrtfyhpBas> entity =
query.select(qEntity).from(qEntity) query.select(qEntity).from(qEntity)
.where(builder) .where(builder)
@ -43,5 +59,5 @@ public class PtyCrtfyhpBasQueryRepository {
return entity; return entity;
} }
} }

102
pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java

@ -49,24 +49,49 @@ public class PtyCstmrQueryRepository {
return result; return result;
} }
/**
* 회원 이름과 휴대폰번호로 데이터 베이스에서 회원정보 찾는 SQL 기능
* @param name
* @param hpno
* @return
*/
public boolean certifNum(String name, String hpno) { public boolean certifNum(String name, String hpno) {
QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl; QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl; // PTY_CSTMR_DTL - 고객 상세 테이블
// 데이터베이스 조건 문을 주는 코드
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(dtl.hpno.eq(hpno)); builder.and(dtl.hpno.eq(hpno)); // 휴대폰 번호가 맞는지 조건추가
builder.and(dtl.memberName.eq(name)); builder.and(dtl.memberName.eq(name)); // 회원이름이 맞는지 조건추가
/**
* 휴대폰 번호와 이름으로 데이터베이스에서 회원정보를 가져오는 SQL 입니다.
*
* SELECT
* *
* FROM PTY_CSTMR_DTL PCD
* WHERE PCD.HPNO = #{hpno}
* AND PCD.MEMBER_NAME = #{name}
*/
PtyCstmrDtl entity = query.select(dtl) PtyCstmrDtl entity = query.select(dtl)
.from(dtl) .from(dtl)
.where(builder) .where(builder)
.fetchFirst(); .fetchFirst();
boolean result = false; boolean result = false;
if (entity != null) { if (entity != null) {
result = true; result = true;
} }
return result; return result;
} }
/**
* 회원명과 암호화된 휴대폰 번호로 ID찾는 SQL 기능
* @param name
* @param hpno
* @return
*/
public String findUserId(String name, String hpno) { public String findUserId(String name, String hpno) {
QPtyCstmrBas bas = QPtyCstmrBas.ptyCstmrBas; QPtyCstmrBas bas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl; QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl;
@ -75,6 +100,20 @@ public class PtyCstmrQueryRepository {
builder.and(bas.cstmrStatusCd.eq("A")); builder.and(bas.cstmrStatusCd.eq("A"));
builder.and(dtl.hpno.eq(hpno)); builder.and(dtl.hpno.eq(hpno));
builder.and(dtl.memberName.eq(name)); builder.and(dtl.memberName.eq(name));
/**
* 회원상태 활성화 여부[CSTMR_STATUS_CD],
* 휴대폰 번호 [HPNO],
* 회원 이름 [MEMBER_NAME] 으로 회원정보를 찾는 SQL 입니다.
* SELECT
* *
* FROM PTY_CSTMR_BAS PCB
* LEFT OUTER JOIN PTY_CSTMR_DTL PCD
* ON PCB.CSTMR_SNO = PCD.CSTMR_SNO
* WHERE PCB.CSTMR_STATUS_CD = 'A'
* AND PCD.HPNO = #{hpno}
* AND PCD.MEMBER_NAME = #{name}
*/
PtyCstmrBas entity = query.select(bas) PtyCstmrBas entity = query.select(bas)
.from(bas) .from(bas)
.leftJoin(dtl) .leftJoin(dtl)
@ -86,6 +125,12 @@ public class PtyCstmrQueryRepository {
return userId; return userId;
} }
/**
* 회원 ID와 휴대폰번호[hpno] 일치한지 확인하는 SQL기능
* @param id
* @param hpno
* @return
*/
public PtyCstmrBas findUserPw(String id, String hpno) { public PtyCstmrBas findUserPw(String id, String hpno) {
QPtyCstmrBas bas = QPtyCstmrBas.ptyCstmrBas; QPtyCstmrBas bas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl; QPtyCstmrDtl dtl = QPtyCstmrDtl.ptyCstmrDtl;
@ -94,6 +139,20 @@ public class PtyCstmrQueryRepository {
builder.and(bas.cstmrStatusCd.eq("A")); builder.and(bas.cstmrStatusCd.eq("A"));
builder.and(dtl.hpno.eq(hpno)); builder.and(dtl.hpno.eq(hpno));
builder.and(bas.userId.eq(id)); builder.and(bas.userId.eq(id));
/**
* 회원 아이디[USER_ID],
* 회원활성화 여부[CSTMR_STATUS_CD],
* 휴대폰번호 [HPNO] 값이 조건에 맞으면 회원 정보를 가져오는 SQL입니다.
* SELECT
* *
* FROM PTY_CSTMR_BAS PCB
* LEFT OUTER JOIN PTY_CSTMR_DTL PCD
* ON PCB.CSTMR_SNO = PCD.CSTMR_SNO
* WHERE PCB.CSTMR_STATUS_CD = 'A'
* AND PCD.HPNO = #{hpno}
* AND PCB.USER_ID = #{id}
*/
PtyCstmrBas entity = query.select(bas) PtyCstmrBas entity = query.select(bas)
.from(bas) .from(bas)
.leftJoin(dtl) .leftJoin(dtl)
@ -104,27 +163,44 @@ public class PtyCstmrQueryRepository {
return entity; return entity;
} }
/**
* 데이터베이스 안에 같은 휴대폰 번호가 있는지 확인
* result가 true 일시 동일한 번호가 존재함
* @param hpno
* @return
*/
public boolean findCstmrByHpno(String hpno) { public boolean findCstmrByHpno(String hpno) {
boolean result = false; boolean result = false; // 반환할 값 선언 [default false를 의미함]
QPtyCstmrBas basEntity = QPtyCstmrBas.ptyCstmrBas; QPtyCstmrBas basEntity = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl dtlEntity = QPtyCstmrDtl.ptyCstmrDtl; QPtyCstmrDtl dtlEntity = QPtyCstmrDtl.ptyCstmrDtl;
// 데이터베이스 조건 문을 주는 코드
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(basEntity.cstmrStatusCd.eq("A")); //활성화 상태 builder.and(basEntity.cstmrStatusCd.eq("A"));
builder.and(dtlEntity.hpno.eq(hpno)); builder.and(dtlEntity.hpno.eq(hpno));
/**
* 휴대폰 번호가 데이터베이스 안에 있는지 확인하는 SQL 입니다.
* SELECT
* *
* FROM PTY_CSTMR_BAS PCB
* LEFT OUTER JOIN PTY_CSTMR_DTL PCD
* ON PCB.CSTMR_SNO = PCD.CSTMR_SNO
* WHERE PCB.CSTMR_STATUS_CD = 'A'
* AND PCD.HPNO = #{hpno}
*/
PtyCstmrBas entity = query.select(basEntity) PtyCstmrBas entity = query.select(basEntity)
.from(basEntity) .from(basEntity)
.leftJoin(dtlEntity) .leftJoin(dtlEntity)
.on(basEntity.cstmrSno.eq(dtlEntity.cstmrSno)) .on(basEntity.cstmrSno.eq(dtlEntity.cstmrSno))
.where(builder) .where(builder)
.fetchFirst(); .fetchFirst();
if (entity != null) { if (entity != null) {
result = true; result = true;
} }
return result; return result;
} }
public JwtUserModel findUserPassword(String userId) { public JwtUserModel findUserPassword(String userId) {

Loading…
Cancel
Save