From 1334e2da9476e42068e6c3e790c5207900fe0d9b Mon Sep 17 00:00:00 2001
From: yyy9942
Date: Fri, 18 Oct 2019 17:38:48 +0900
Subject: [PATCH 1/6] DMLOperationError -> DMLOperationResult
---
.../delfood/controller/MemberController.java | 16 ++++++------
.../delfood/controller/OwnerController.java | 10 +++----
...tionError.java => DMLOperationResult.java} | 2 +-
.../com/delfood/service/MemberService.java | 26 +++++++++----------
.../com/delfood/service/OwnerService.java | 18 ++++++-------
.../java/com/delfood/service/ShopService.java | 2 +-
6 files changed, 37 insertions(+), 37 deletions(-)
rename src/main/java/com/delfood/mapper/{DMLOperationError.java => DMLOperationResult.java} (81%)
diff --git a/src/main/java/com/delfood/controller/MemberController.java b/src/main/java/com/delfood/controller/MemberController.java
index 23a3c3e..6b36616 100644
--- a/src/main/java/com/delfood/controller/MemberController.java
+++ b/src/main/java/com/delfood/controller/MemberController.java
@@ -1,7 +1,7 @@
package com.delfood.controller;
import com.delfood.dto.MemberDTO;
-import com.delfood.mapper.DMLOperationError;
+import com.delfood.mapper.DMLOperationResult;
import com.delfood.service.MemberService;
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotNull;
@@ -199,8 +199,8 @@ public ResponseEntity updateMemberInfo(HttpSession
new ResponseEntity(updateResponse, HttpStatus.BAD_REQUEST);
} else {
// 성공시
- DMLOperationError dmlResponse = memberService.updateMemberPassword(id, newPassword);
- if (dmlResponse == DMLOperationError.SUCCESS) {
+ DMLOperationResult dmlResponse = memberService.updateMemberPassword(id, newPassword);
+ if (dmlResponse == DMLOperationResult.SUCCESS) {
updateResponse = UpdateMemberPasswordResponse.SUCCESS;
responseEntity =
new ResponseEntity(updateResponse, HttpStatus.OK);
@@ -231,8 +231,8 @@ public ResponseEntity deleteMemberInfo(HttpSession session
responseEntity =
new ResponseEntity(deleteResponse, HttpStatus.UNAUTHORIZED);
} else {
- DMLOperationError dmlResponse = memberService.deleteMember(id);
- if (dmlResponse == DMLOperationError.SUCCESS) {
+ DMLOperationResult dmlResponse = memberService.deleteMember(id);
+ if (dmlResponse == DMLOperationResult.SUCCESS) {
deleteResponse = DeleteMemberResponse.SUCCESS;
// 회원 탈퇴시 로그아웃 시켜야 하기 때문에 세션 정보를 날린다
session.invalidate();
@@ -274,12 +274,12 @@ public ResponseEntity updateMemberAddress(
responseEntity = new ResponseEntity(
UpdateMemberAddressResponse.NO_LOGIN, HttpStatus.UNAUTHORIZED);
} else {
- DMLOperationError dmlResponse = memberService.updateMemberAddress(id, address, addressDetail);
- if (dmlResponse == DMLOperationError.SUCCESS) {
+ DMLOperationResult dmlResponse = memberService.updateMemberAddress(id, address, addressDetail);
+ if (dmlResponse == DMLOperationResult.SUCCESS) {
// 성공시
responseEntity = new ResponseEntity(
UpdateMemberAddressResponse.SUCCESS, HttpStatus.OK);
- } else if (dmlResponse == DMLOperationError.NONE_CHANGED) {
+ } else if (dmlResponse == DMLOperationResult.NONE_CHANGED) {
// 주소 변경이 되지 않았을 때
log.error("Member Address Update ERROR " + dmlResponse);
throw new RuntimeException("Member Address Update ERROR");
diff --git a/src/main/java/com/delfood/controller/OwnerController.java b/src/main/java/com/delfood/controller/OwnerController.java
index 3c24f78..b77384b 100644
--- a/src/main/java/com/delfood/controller/OwnerController.java
+++ b/src/main/java/com/delfood/controller/OwnerController.java
@@ -2,7 +2,7 @@
import com.delfood.dto.OwnerDTO;
import com.delfood.dto.OwnerDTO.Status;
-import com.delfood.mapper.DMLOperationError;
+import com.delfood.mapper.DMLOperationResult;
import com.delfood.service.OwnerService;
import javax.servlet.http.HttpSession;
import lombok.AllArgsConstructor;
@@ -175,8 +175,8 @@ public ResponseEntity updateOwnerInfo(
UpdateOwnerResponse.EMPTY_CONTENT, HttpStatus.BAD_REQUEST);
}
- DMLOperationError dmlOperationError = ownerService.updateOwnerMailAndTel(id, mail, tel);
- if (dmlOperationError == DMLOperationError.SUCCESS) {
+ DMLOperationResult dmlOperationError = ownerService.updateOwnerMailAndTel(id, mail, tel);
+ if (dmlOperationError == DMLOperationResult.SUCCESS) {
return new ResponseEntity(
UpdateOwnerResponse.SUCCESS, HttpStatus.OK);
} else {
@@ -215,9 +215,9 @@ public ResponseEntity updatePassword(
responseEntity = new ResponseEntity(
UpdateOwnerResponse.PASSWORD_DUPLICATED, HttpStatus.CONFLICT);
} else {
- DMLOperationError dmlOperationError = ownerService.updateOwnerPassword(id, newPassword);
+ DMLOperationResult dmlOperationError = ownerService.updateOwnerPassword(id, newPassword);
- if (DMLOperationError.SUCCESS.equals(dmlOperationError)) {
+ if (DMLOperationResult.SUCCESS.equals(dmlOperationError)) {
responseEntity = new ResponseEntity(
UpdateOwnerResponse.SUCCESS, HttpStatus.OK);
} else {
diff --git a/src/main/java/com/delfood/mapper/DMLOperationError.java b/src/main/java/com/delfood/mapper/DMLOperationResult.java
similarity index 81%
rename from src/main/java/com/delfood/mapper/DMLOperationError.java
rename to src/main/java/com/delfood/mapper/DMLOperationResult.java
index f31495b..383410a 100644
--- a/src/main/java/com/delfood/mapper/DMLOperationError.java
+++ b/src/main/java/com/delfood/mapper/DMLOperationResult.java
@@ -1,6 +1,6 @@
package com.delfood.mapper;
// SUCCESS 빼고 에러발생시 아래 내용을 포함하여 throw Exception
-public enum DMLOperationError {
+public enum DMLOperationResult {
SUCCESS, NONE_CHANGED, TOO_MANY_CHANGED, EMPTY_RESULT
}
diff --git a/src/main/java/com/delfood/service/MemberService.java b/src/main/java/com/delfood/service/MemberService.java
index 1d3afaa..85524b6 100644
--- a/src/main/java/com/delfood/service/MemberService.java
+++ b/src/main/java/com/delfood/service/MemberService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.MemberDTO;
-import com.delfood.mapper.DMLOperationError;
+import com.delfood.mapper.DMLOperationResult;
import com.delfood.mapper.MemberMapper;
import com.delfood.utils.SHA256Util;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,15 +62,15 @@ public boolean isDuplicatedId(String id) {
* @param password 변경할 비밀번호
* @return
*/
- public DMLOperationError updateMemberPassword(String id, String password) {
+ public DMLOperationResult updateMemberPassword(String id, String password) {
String cryptoPassword = SHA256Util.encryptSHA256(password);
int result = memberMapper.updateMemberPassword(id, cryptoPassword);
if (result == 1) {
- return DMLOperationError.SUCCESS; // 원하는 1개의 데이터만 수정
+ return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationError.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationError.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
+ return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
}
}
@@ -81,14 +81,14 @@ public DMLOperationError updateMemberPassword(String id, String password) {
* @param id 탈퇴할 회원의 아이디
* @return
*/
- public DMLOperationError deleteMember(String id) {
+ public DMLOperationResult deleteMember(String id) {
int result = memberMapper.deleteMember(id);
if (result == 1) {
- return DMLOperationError.SUCCESS; // 원하는 1개의 데이터만 수정
+ return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationError.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationError.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
+ return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
}
}
@@ -100,14 +100,14 @@ public DMLOperationError deleteMember(String id) {
* @param addressDetail 변경할 상세 주소
* @return
*/
- public DMLOperationError updateMemberAddress(String id, String address, String addressDetail) {
+ public DMLOperationResult updateMemberAddress(String id, String address, String addressDetail) {
int result = memberMapper.updateMemberAddress(id, address, addressDetail);
if (result == 1) {
- return DMLOperationError.SUCCESS; // 원하는 1개의 데이터만 수정
+ return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationError.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationError.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요. 정상적인 상황에서는 발생하지
+ return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요. 정상적인 상황에서는 발생하지
// 않음.
}
}
diff --git a/src/main/java/com/delfood/service/OwnerService.java b/src/main/java/com/delfood/service/OwnerService.java
index fe3bc2d..5102fa5 100644
--- a/src/main/java/com/delfood/service/OwnerService.java
+++ b/src/main/java/com/delfood/service/OwnerService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.OwnerDTO;
-import com.delfood.mapper.DMLOperationError;
+import com.delfood.mapper.DMLOperationResult;
import com.delfood.mapper.OwnerMapper;
import com.delfood.utils.SHA256Util;
import lombok.extern.log4j.Log4j2;
@@ -76,14 +76,14 @@ public OwnerDTO getOwner(String id) {
* @return
*/
@Transactional(rollbackFor = RuntimeException.class)
- public DMLOperationError updateOwnerMailAndTel(String id, String mail, String tel) {
+ public DMLOperationResult updateOwnerMailAndTel(String id, String mail, String tel) {
int result = ownerMapper.updateMailAndTel(id, mail, tel);
if (result == 1) {
- return DMLOperationError.SUCCESS; // 정상 수행
+ return DMLOperationResult.SUCCESS; // 정상 수행
} else if (result == 0) {
- return DMLOperationError.NONE_CHANGED; // 데이터가 변경되지 않음
+ return DMLOperationResult.NONE_CHANGED; // 데이터가 변경되지 않음
} else {
- throw new RuntimeException("password update error : " + DMLOperationError.TOO_MANY_CHANGED);
+ throw new RuntimeException("password update error : " + DMLOperationResult.TOO_MANY_CHANGED);
}
}
@@ -95,15 +95,15 @@ public DMLOperationError updateOwnerMailAndTel(String id, String mail, String te
* @return
*/
@Transactional(rollbackFor = RuntimeException.class) // runtimeException이 발생하면 rollback을 수행한다.
- public DMLOperationError updateOwnerPassword(String id, String password) {
+ public DMLOperationResult updateOwnerPassword(String id, String password) {
String cryptoPassword = SHA256Util.encryptSHA256(password);
int result = ownerMapper.updatePassword(id, cryptoPassword);
if (result == 1) {
- return DMLOperationError.SUCCESS;
+ return DMLOperationResult.SUCCESS;
} else if (result == 0) {
- return DMLOperationError.NONE_CHANGED;
+ return DMLOperationResult.NONE_CHANGED;
} else {
- throw new RuntimeException("password update error : " + DMLOperationError.TOO_MANY_CHANGED);
+ throw new RuntimeException("password update error : " + DMLOperationResult.TOO_MANY_CHANGED);
}
}
diff --git a/src/main/java/com/delfood/service/ShopService.java b/src/main/java/com/delfood/service/ShopService.java
index c568e03..11ea140 100644
--- a/src/main/java/com/delfood/service/ShopService.java
+++ b/src/main/java/com/delfood/service/ShopService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.ShopDTO;
-import com.delfood.mapper.DMLOperationError;
+import com.delfood.mapper.DMLOperationResult;
import com.delfood.mapper.ShopMapper;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
From 0bb1ad252cf1b683a6d8a82317b19df13df1612f Mon Sep 17 00:00:00 2001
From: yyy9942
Date: Fri, 18 Oct 2019 18:03:28 +0900
Subject: [PATCH 2/6] =?UTF-8?q?Member=20Logout=20=EA=B8=B0=EB=8A=A5=20?=
=?UTF-8?q?=EC=B6=94=EA=B0=80,=20=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../delfood/controller/MemberController.java | 55 +++++++++++++++++--
1 file changed, 49 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/delfood/controller/MemberController.java b/src/main/java/com/delfood/controller/MemberController.java
index 6b36616..2b75ee7 100644
--- a/src/main/java/com/delfood/controller/MemberController.java
+++ b/src/main/java/com/delfood/controller/MemberController.java
@@ -41,6 +41,7 @@
* 스레드 환경 로깅이 필요하다면 Log4j2를 사용하는 것이 성능면에서 유리하다. 사용자 정의 로그레벨과 람다 표현식을 지원한다. Log4j2 자체적으로 직접 사용할 수는
* 있지만 일반적으로는 SLF4J와 함께 사용한다.
*
+ *
* @Log @Slf4j @Log4j2 등 어노테이션 적용시 자동으로 log 필드를 만들고 해당 클래스의 이름으로 로거 객체를 생성하여 할당한다.
*
* @author 정준
@@ -165,6 +166,25 @@ public ResponseEntity login(@RequestBody @NonNull MemberLoginRequ
return responseEntity;
}
+ /**
+ * 회원 로그아웃 메서드.
+ * @author jun
+ * @param session 현제 접속한 세션
+ * @return 로그인 하지 않았을 시 401코드를 반환하고 result:NO_LOGIN 반환
+ * 로그아웃 성공시 200 코드를 반환하고 result:SUCCESS 반환
+ */
+ public ResponseEntity logout(HttpSession session) {
+ String memberId = (String) session.getAttribute("LOGIN_MEMBER_ID");
+ if (memberId == null) {
+ return new ResponseEntity(LogoutResponse.NO_LOGIN,
+ HttpStatus.UNAUTHORIZED);
+ }
+
+ session.invalidate();
+ return new ResponseEntity(LogoutResponse.SUCCESS,
+ HttpStatus.OK);
+ }
+
/**
* 회원 비밀번호 변경
*
@@ -274,7 +294,8 @@ public ResponseEntity updateMemberAddress(
responseEntity = new ResponseEntity(
UpdateMemberAddressResponse.NO_LOGIN, HttpStatus.UNAUTHORIZED);
} else {
- DMLOperationResult dmlResponse = memberService.updateMemberAddress(id, address, addressDetail);
+ DMLOperationResult dmlResponse =
+ memberService.updateMemberAddress(id, address, addressDetail);
if (dmlResponse == DMLOperationResult.SUCCESS) {
// 성공시
responseEntity = new ResponseEntity(
@@ -303,24 +324,46 @@ public ResponseEntity updateMemberAddress(
@AllArgsConstructor
@RequiredArgsConstructor
private static class LoginResponse {
- enum LogInStatus {
+ enum LoginStatus {
SUCCESS, FAIL, DELETED, ERROR
}
@NonNull
- private LogInStatus result;
+ private LoginStatus result;
private MemberDTO memberInfo;
// success의 경우 memberInfo의 값을 set해줘야 하기 때문에 new 하도록 해준다.
- private static final LoginResponse FAIL = new LoginResponse(LogInStatus.FAIL);
- private static final LoginResponse DELETED = new LoginResponse(LogInStatus.DELETED);
+ private static final LoginResponse FAIL = new LoginResponse(LoginStatus.FAIL);
+ private static final LoginResponse DELETED = new LoginResponse(LoginStatus.DELETED);
private static LoginResponse success(MemberDTO memberInfo) {
- return new LoginResponse(LogInStatus.SUCCESS, memberInfo);
+ return new LoginResponse(LoginStatus.SUCCESS, memberInfo);
}
+ }
+
+ @Getter
+ @AllArgsConstructor
+ @RequiredArgsConstructor
+ private static class LogoutResponse {
+ enum LogoutStatus {
+ SUCCESS, FAIL, NO_LOGIN, ERROR
+ }
+
+ @NonNull
+ private LogoutStatus result;
+ private MemberDTO memberInfo;
+
+ // success의 경우 memberInfo의 값을 set해줘야 하기 때문에 new 하도록 해준다.
+
+ private static final LogoutResponse FAIL = new LogoutResponse(LogoutStatus.FAIL);
+ private static final LogoutResponse NO_LOGIN = new LogoutResponse(LogoutStatus.NO_LOGIN);
+ private static final LogoutResponse SUCCESS = new LogoutResponse(LogoutStatus.SUCCESS);
+
+
+
}
@Getter
From acd4a29ac796a13fa096f531dc3589287f0cc5dd Mon Sep 17 00:00:00 2001
From: yyy9942
Date: Mon, 21 Oct 2019 10:03:07 +0900
Subject: [PATCH 3/6] =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81=20-?=
=?UTF-8?q?=20DMLOperationResult=20->=20OperationResult=20-=20final?=
=?UTF-8?q?=EC=9D=B4=20=EC=97=86=EB=8A=94=20=EB=B6=88=EB=B3=80=EA=B0=9D?=
=?UTF-8?q?=EC=B2=B4=EB=A5=BC=20final=EB=A1=9C=20=EB=A7=8C=EB=93=A6=20-=20?=
=?UTF-8?q?newShop=20->=20addShop=20-=20tab=20->=20space?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../delfood/controller/MemberController.java | 17 ++++---
.../delfood/controller/OwnerController.java | 10 ++---
.../delfood/controller/ShopController.java | 13 +++---
.../java/com/delfood/dto/MenuCategoryDTO.java | 5 ---
...rationResult.java => OperationResult.java} | 2 +-
.../com/delfood/service/MemberService.java | 26 +++++------
.../com/delfood/service/OwnerService.java | 18 ++++----
.../java/com/delfood/service/ShopService.java | 4 +-
src/main/resources/mybatis/mapper/member.xml | 44 +++++++++----------
9 files changed, 67 insertions(+), 72 deletions(-)
rename src/main/java/com/delfood/mapper/{DMLOperationResult.java => OperationResult.java} (81%)
diff --git a/src/main/java/com/delfood/controller/MemberController.java b/src/main/java/com/delfood/controller/MemberController.java
index 2b75ee7..b1c415e 100644
--- a/src/main/java/com/delfood/controller/MemberController.java
+++ b/src/main/java/com/delfood/controller/MemberController.java
@@ -1,7 +1,7 @@
package com.delfood.controller;
import com.delfood.dto.MemberDTO;
-import com.delfood.mapper.DMLOperationResult;
+import com.delfood.mapper.OperationResult;
import com.delfood.service.MemberService;
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotNull;
@@ -219,8 +219,8 @@ public ResponseEntity updateMemberInfo(HttpSession
new ResponseEntity(updateResponse, HttpStatus.BAD_REQUEST);
} else {
// 성공시
- DMLOperationResult dmlResponse = memberService.updateMemberPassword(id, newPassword);
- if (dmlResponse == DMLOperationResult.SUCCESS) {
+ OperationResult dmlResponse = memberService.updateMemberPassword(id, newPassword);
+ if (dmlResponse == OperationResult.SUCCESS) {
updateResponse = UpdateMemberPasswordResponse.SUCCESS;
responseEntity =
new ResponseEntity(updateResponse, HttpStatus.OK);
@@ -251,8 +251,8 @@ public ResponseEntity deleteMemberInfo(HttpSession session
responseEntity =
new ResponseEntity(deleteResponse, HttpStatus.UNAUTHORIZED);
} else {
- DMLOperationResult dmlResponse = memberService.deleteMember(id);
- if (dmlResponse == DMLOperationResult.SUCCESS) {
+ OperationResult dmlResponse = memberService.deleteMember(id);
+ if (dmlResponse == OperationResult.SUCCESS) {
deleteResponse = DeleteMemberResponse.SUCCESS;
// 회원 탈퇴시 로그아웃 시켜야 하기 때문에 세션 정보를 날린다
session.invalidate();
@@ -294,13 +294,13 @@ public ResponseEntity updateMemberAddress(
responseEntity = new ResponseEntity(
UpdateMemberAddressResponse.NO_LOGIN, HttpStatus.UNAUTHORIZED);
} else {
- DMLOperationResult dmlResponse =
+ OperationResult dmlResponse =
memberService.updateMemberAddress(id, address, addressDetail);
- if (dmlResponse == DMLOperationResult.SUCCESS) {
+ if (dmlResponse == OperationResult.SUCCESS) {
// 성공시
responseEntity = new ResponseEntity(
UpdateMemberAddressResponse.SUCCESS, HttpStatus.OK);
- } else if (dmlResponse == DMLOperationResult.NONE_CHANGED) {
+ } else if (dmlResponse == OperationResult.NONE_CHANGED) {
// 주소 변경이 되지 않았을 때
log.error("Member Address Update ERROR " + dmlResponse);
throw new RuntimeException("Member Address Update ERROR");
@@ -356,7 +356,6 @@ enum LogoutStatus {
private LogoutStatus result;
private MemberDTO memberInfo;
- // success의 경우 memberInfo의 값을 set해줘야 하기 때문에 new 하도록 해준다.
private static final LogoutResponse FAIL = new LogoutResponse(LogoutStatus.FAIL);
private static final LogoutResponse NO_LOGIN = new LogoutResponse(LogoutStatus.NO_LOGIN);
diff --git a/src/main/java/com/delfood/controller/OwnerController.java b/src/main/java/com/delfood/controller/OwnerController.java
index b77384b..3b33b1a 100644
--- a/src/main/java/com/delfood/controller/OwnerController.java
+++ b/src/main/java/com/delfood/controller/OwnerController.java
@@ -2,7 +2,7 @@
import com.delfood.dto.OwnerDTO;
import com.delfood.dto.OwnerDTO.Status;
-import com.delfood.mapper.DMLOperationResult;
+import com.delfood.mapper.OperationResult;
import com.delfood.service.OwnerService;
import javax.servlet.http.HttpSession;
import lombok.AllArgsConstructor;
@@ -175,8 +175,8 @@ public ResponseEntity updateOwnerInfo(
UpdateOwnerResponse.EMPTY_CONTENT, HttpStatus.BAD_REQUEST);
}
- DMLOperationResult dmlOperationError = ownerService.updateOwnerMailAndTel(id, mail, tel);
- if (dmlOperationError == DMLOperationResult.SUCCESS) {
+ OperationResult dmlOperationError = ownerService.updateOwnerMailAndTel(id, mail, tel);
+ if (dmlOperationError == OperationResult.SUCCESS) {
return new ResponseEntity(
UpdateOwnerResponse.SUCCESS, HttpStatus.OK);
} else {
@@ -215,9 +215,9 @@ public ResponseEntity updatePassword(
responseEntity = new ResponseEntity(
UpdateOwnerResponse.PASSWORD_DUPLICATED, HttpStatus.CONFLICT);
} else {
- DMLOperationResult dmlOperationError = ownerService.updateOwnerPassword(id, newPassword);
+ OperationResult dmlOperationError = ownerService.updateOwnerPassword(id, newPassword);
- if (DMLOperationResult.SUCCESS.equals(dmlOperationError)) {
+ if (OperationResult.SUCCESS.equals(dmlOperationError)) {
responseEntity = new ResponseEntity(
UpdateOwnerResponse.SUCCESS, HttpStatus.OK);
} else {
diff --git a/src/main/java/com/delfood/controller/ShopController.java b/src/main/java/com/delfood/controller/ShopController.java
index 802f849..4d4d0ae 100644
--- a/src/main/java/com/delfood/controller/ShopController.java
+++ b/src/main/java/com/delfood/controller/ShopController.java
@@ -40,7 +40,7 @@ public ResponseEntity openShop(HttpSession session,
return new ResponseEntity(OpenShopResponse.NO_LOGIN,
HttpStatus.UNAUTHORIZED);
}
-
+
shopInfo.setOwnerId(ownerId);
// 입력한 데이터 중 필수 데이터가 null일 경우 400 에러코드를 반환한다.
@@ -49,7 +49,7 @@ public ResponseEntity openShop(HttpSession session,
HttpStatus.BAD_REQUEST);
}
- shopService.newShop(shopInfo);
+ shopService.addShop(shopInfo);
return new ResponseEntity(OpenShopResponse.SUCCESS,
@@ -68,10 +68,11 @@ enum Result {
@NonNull
Result result;
-
- private static OpenShopResponse SUCCESS = new OpenShopResponse(Result.SUCCESS);
- private static OpenShopResponse NO_LOGIN = new OpenShopResponse(Result.NO_LOGIN);
- private static OpenShopResponse NULL_ARGUMENTS = new OpenShopResponse(Result.NULL_ARGUMENTS);
+
+ private static final OpenShopResponse SUCCESS = new OpenShopResponse(Result.SUCCESS);
+ private static final OpenShopResponse NO_LOGIN = new OpenShopResponse(Result.NO_LOGIN);
+ private static final OpenShopResponse NULL_ARGUMENTS =
+ new OpenShopResponse(Result.NULL_ARGUMENTS);
}
}
diff --git a/src/main/java/com/delfood/dto/MenuCategoryDTO.java b/src/main/java/com/delfood/dto/MenuCategoryDTO.java
index b9cbb18..51578f6 100644
--- a/src/main/java/com/delfood/dto/MenuCategoryDTO.java
+++ b/src/main/java/com/delfood/dto/MenuCategoryDTO.java
@@ -9,11 +9,6 @@
@ToString
public class MenuCategoryDTO {
// 주력 메뉴
- // 한식, 분식, 카페, 일식,
- // 치킨, 피자, 아시안, 양식,
- // 중국집, 족발보쌈, 야식, 찜탕,
- // 도시락, 패스트푸드, 프렌차이즈
-
// KOREAN, SCHOOL_FOOD, CAFE, JAPANESE,
// CHICKEN, PIZZA, ASIAN, WESTERN,
// CHINESE, BOSSAM, MIDNIGHT_MEAL, SOUP,
diff --git a/src/main/java/com/delfood/mapper/DMLOperationResult.java b/src/main/java/com/delfood/mapper/OperationResult.java
similarity index 81%
rename from src/main/java/com/delfood/mapper/DMLOperationResult.java
rename to src/main/java/com/delfood/mapper/OperationResult.java
index 383410a..4bc10ed 100644
--- a/src/main/java/com/delfood/mapper/DMLOperationResult.java
+++ b/src/main/java/com/delfood/mapper/OperationResult.java
@@ -1,6 +1,6 @@
package com.delfood.mapper;
// SUCCESS 빼고 에러발생시 아래 내용을 포함하여 throw Exception
-public enum DMLOperationResult {
+public enum OperationResult {
SUCCESS, NONE_CHANGED, TOO_MANY_CHANGED, EMPTY_RESULT
}
diff --git a/src/main/java/com/delfood/service/MemberService.java b/src/main/java/com/delfood/service/MemberService.java
index 85524b6..c5b729e 100644
--- a/src/main/java/com/delfood/service/MemberService.java
+++ b/src/main/java/com/delfood/service/MemberService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.MemberDTO;
-import com.delfood.mapper.DMLOperationResult;
+import com.delfood.mapper.OperationResult;
import com.delfood.mapper.MemberMapper;
import com.delfood.utils.SHA256Util;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,15 +62,15 @@ public boolean isDuplicatedId(String id) {
* @param password 변경할 비밀번호
* @return
*/
- public DMLOperationResult updateMemberPassword(String id, String password) {
+ public OperationResult updateMemberPassword(String id, String password) {
String cryptoPassword = SHA256Util.encryptSHA256(password);
int result = memberMapper.updateMemberPassword(id, cryptoPassword);
if (result == 1) {
- return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
+ return OperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return OperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
+ return OperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
}
}
@@ -81,14 +81,14 @@ public DMLOperationResult updateMemberPassword(String id, String password) {
* @param id 탈퇴할 회원의 아이디
* @return
*/
- public DMLOperationResult deleteMember(String id) {
+ public OperationResult deleteMember(String id) {
int result = memberMapper.deleteMember(id);
if (result == 1) {
- return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
+ return OperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return OperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
+ return OperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요.
}
}
@@ -100,14 +100,14 @@ public DMLOperationResult deleteMember(String id) {
* @param addressDetail 변경할 상세 주소
* @return
*/
- public DMLOperationResult updateMemberAddress(String id, String address, String addressDetail) {
+ public OperationResult updateMemberAddress(String id, String address, String addressDetail) {
int result = memberMapper.updateMemberAddress(id, address, addressDetail);
if (result == 1) {
- return DMLOperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
+ return OperationResult.SUCCESS; // 원하는 1개의 데이터만 수정
} else if (result == 0) {
- return DMLOperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
+ return OperationResult.NONE_CHANGED; // 데이터가 수정되지 않음. WHERE 조건 확인 필요
} else {
- return DMLOperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요. 정상적인 상황에서는 발생하지
+ return OperationResult.TOO_MANY_CHANGED; // 데이터가 너무 많이 바뀜. WHERE 조건 확인 필요. 정상적인 상황에서는 발생하지
// 않음.
}
}
diff --git a/src/main/java/com/delfood/service/OwnerService.java b/src/main/java/com/delfood/service/OwnerService.java
index 5102fa5..d7784b8 100644
--- a/src/main/java/com/delfood/service/OwnerService.java
+++ b/src/main/java/com/delfood/service/OwnerService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.OwnerDTO;
-import com.delfood.mapper.DMLOperationResult;
+import com.delfood.mapper.OperationResult;
import com.delfood.mapper.OwnerMapper;
import com.delfood.utils.SHA256Util;
import lombok.extern.log4j.Log4j2;
@@ -76,14 +76,14 @@ public OwnerDTO getOwner(String id) {
* @return
*/
@Transactional(rollbackFor = RuntimeException.class)
- public DMLOperationResult updateOwnerMailAndTel(String id, String mail, String tel) {
+ public OperationResult updateOwnerMailAndTel(String id, String mail, String tel) {
int result = ownerMapper.updateMailAndTel(id, mail, tel);
if (result == 1) {
- return DMLOperationResult.SUCCESS; // 정상 수행
+ return OperationResult.SUCCESS; // 정상 수행
} else if (result == 0) {
- return DMLOperationResult.NONE_CHANGED; // 데이터가 변경되지 않음
+ return OperationResult.NONE_CHANGED; // 데이터가 변경되지 않음
} else {
- throw new RuntimeException("password update error : " + DMLOperationResult.TOO_MANY_CHANGED);
+ throw new RuntimeException("password update error : " + OperationResult.TOO_MANY_CHANGED);
}
}
@@ -95,15 +95,15 @@ public DMLOperationResult updateOwnerMailAndTel(String id, String mail, String t
* @return
*/
@Transactional(rollbackFor = RuntimeException.class) // runtimeException이 발생하면 rollback을 수행한다.
- public DMLOperationResult updateOwnerPassword(String id, String password) {
+ public OperationResult updateOwnerPassword(String id, String password) {
String cryptoPassword = SHA256Util.encryptSHA256(password);
int result = ownerMapper.updatePassword(id, cryptoPassword);
if (result == 1) {
- return DMLOperationResult.SUCCESS;
+ return OperationResult.SUCCESS;
} else if (result == 0) {
- return DMLOperationResult.NONE_CHANGED;
+ return OperationResult.NONE_CHANGED;
} else {
- throw new RuntimeException("password update error : " + DMLOperationResult.TOO_MANY_CHANGED);
+ throw new RuntimeException("password update error : " + OperationResult.TOO_MANY_CHANGED);
}
}
diff --git a/src/main/java/com/delfood/service/ShopService.java b/src/main/java/com/delfood/service/ShopService.java
index 11ea140..e8f0779 100644
--- a/src/main/java/com/delfood/service/ShopService.java
+++ b/src/main/java/com/delfood/service/ShopService.java
@@ -1,7 +1,7 @@
package com.delfood.service;
import com.delfood.dto.ShopDTO;
-import com.delfood.mapper.DMLOperationResult;
+import com.delfood.mapper.OperationResult;
import com.delfood.mapper.ShopMapper;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +19,7 @@ public class ShopService {
* @param shopInfo 삽입할 매장의 데이터
* @return
*/
- public void newShop(ShopDTO shopInfo) {
+ public void addShop(ShopDTO shopInfo) {
int insertShop = shopMapper.insertShop(shopInfo);
if (insertShop != 1) {
log.error("insert ERROR - {}", shopInfo);
diff --git a/src/main/resources/mybatis/mapper/member.xml b/src/main/resources/mybatis/mapper/member.xml
index 2d0082a..1d2238b 100644
--- a/src/main/resources/mybatis/mapper/member.xml
+++ b/src/main/resources/mybatis/mapper/member.xml
@@ -1,8 +1,8 @@
-
-
+
+
- INSERT INTO MEMBER(id, password, name, tel, mail)
- VALUES(#{id}, #{password}, #{name}, #{tel}, #{mail})
+ INSERT INTO MEMBER(id, password, name, tel, mail)
+ VALUES(#{id}, #{password}, #{name}, #{tel}, #{mail})
- UPDATE MEMBER
- SET password = #{password}
- WHERE id=#{id}
+ UPDATE MEMBER
+ SET password = #{password}
+ WHERE id=#{id}
- UPDATE MEMBER
- SET status = 'DELETE'
- WHERE id=#{id}
+ UPDATE MEMBER
+ SET status = 'DELETE'
+ WHERE id=#{id}
- UPDATE MEMBER
- SET address = #{address},
- address_detail = #{addressDetail}
- WHERE id = #{id}
+ UPDATE MEMBER
+ SET address = #{address},
+ address_detail = #{addressDetail}
+ WHERE id = #{id}
From 1ad26ff65d9b7f2ff9e63cbc9d2285589bb99da2 Mon Sep 17 00:00:00 2001
From: yyy9942
Date: Mon, 21 Oct 2019 10:56:19 +0900
Subject: [PATCH 4/6] =?UTF-8?q?SessionUtil=20=EC=A0=81=EC=9A=A9=20-=20Memb?=
=?UTF-8?q?er=EC=97=90=EC=84=9C=20session=EC=9D=84=20=EC=A7=81=EC=A0=91=20?=
=?UTF-8?q?=EC=9E=91=EC=97=85=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B3=A0,=20Se?=
=?UTF-8?q?ssionUtil=EC=9D=84=20=ED=86=B5=ED=95=B4=20=EC=9E=91=EC=97=85?=
=?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD=20-=20Owner?=
=?UTF-8?q?=EC=97=90=EC=84=9C=20session=EC=9D=84=20=EC=A7=81=EC=A0=91=20?=
=?UTF-8?q?=EC=9E=91=EC=97=85=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B3=A0,=20Se?=
=?UTF-8?q?ssionUtil=EC=9D=84=20=ED=86=B5=ED=95=B4=20=EC=9E=91=EC=97=85?=
=?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../delfood/controller/MemberController.java | 32 +++----
.../delfood/controller/OwnerController.java | 29 ++++---
.../delfood/controller/ShopController.java | 3 +-
.../java/com/delfood/utils/SessionUtil.java | 87 +++++++++++++++++++
4 files changed, 121 insertions(+), 30 deletions(-)
create mode 100644 src/main/java/com/delfood/utils/SessionUtil.java
diff --git a/src/main/java/com/delfood/controller/MemberController.java b/src/main/java/com/delfood/controller/MemberController.java
index b1c415e..35468c1 100644
--- a/src/main/java/com/delfood/controller/MemberController.java
+++ b/src/main/java/com/delfood/controller/MemberController.java
@@ -3,6 +3,7 @@
import com.delfood.dto.MemberDTO;
import com.delfood.mapper.OperationResult;
import com.delfood.service.MemberService;
+import com.delfood.utils.SessionUtil;
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
@@ -63,7 +64,7 @@ public class MemberController {
@GetMapping("myInfo")
public ResponseEntity memberInfo(HttpSession session) {
ResponseEntity responseEntity = null;
- String id = (String) session.getAttribute("LOGIN_MEMBER_ID");
+ String id = SessionUtil.getLoginMemberId(session);
if (id == null) {
responseEntity = new ResponseEntity(HttpStatus.UNAUTHORIZED);
} else {
@@ -131,8 +132,9 @@ public ResponseEntity signUp(@RequestBody @NotNull MemberDTO mem
return responseEntity;
}
- /*
- * 회원 로그인을 진행한다. Login 요청시 id, password가 NULL일 경우 NullPointerException을 throw한다.
+ /**
+ * 회원 로그인을 진행한다.
+ * Login 요청시 id, password가 NULL일 경우 NullPointerException을 throw한다.
*/
@PostMapping("login")
public ResponseEntity login(@RequestBody @NonNull MemberLoginRequest loginRequest,
@@ -151,7 +153,7 @@ public ResponseEntity login(@RequestBody @NonNull MemberLoginRequ
} else if (MemberDTO.Status.DEFAULT.equals(memberInfo.getStatus())) {
// 성공시 세션에 ID를 저장
loginResponse = LoginResponse.success(memberInfo);
- session.setAttribute("LOGIN_MEMBER_ID", memberInfo.getId());
+ SessionUtil.setLoginMemberId(session, id);
responseEntity = new ResponseEntity(loginResponse, HttpStatus.OK);
} else if (MemberDTO.Status.DELETED.equals(memberInfo.getStatus())) {
// 삭제된 경우
@@ -173,20 +175,23 @@ public ResponseEntity login(@RequestBody @NonNull MemberLoginRequ
* @return 로그인 하지 않았을 시 401코드를 반환하고 result:NO_LOGIN 반환
* 로그아웃 성공시 200 코드를 반환하고 result:SUCCESS 반환
*/
+ @GetMapping("logout")
public ResponseEntity logout(HttpSession session) {
String memberId = (String) session.getAttribute("LOGIN_MEMBER_ID");
if (memberId == null) {
return new ResponseEntity(LogoutResponse.NO_LOGIN,
HttpStatus.UNAUTHORIZED);
+ } else {
+ SessionUtil.logoutMember(session);
}
+
- session.invalidate();
return new ResponseEntity(LogoutResponse.SUCCESS,
HttpStatus.OK);
}
/**
- * 회원 비밀번호 변경
+ * 회원 비밀번호 변경.
*
* @param session 현재 로그인한 사용자의 세션
* @return
@@ -196,7 +201,7 @@ public ResponseEntity updateMemberInfo(HttpSession
@RequestBody @NotNull UpdateMemberPasswordRequest passwordRequest) {
String password = passwordRequest.getPassword();
String newPassword = passwordRequest.getNewPassword();
- String id = (String) session.getAttribute("LOGIN_MEMBER_ID");
+ String id = SessionUtil.getLoginMemberId(session);
ResponseEntity responseEntity = null;
UpdateMemberPasswordResponse updateResponse;
@@ -245,7 +250,7 @@ public ResponseEntity updateMemberInfo(HttpSession
public ResponseEntity deleteMemberInfo(HttpSession session) {
ResponseEntity responseEntity = null;
DeleteMemberResponse deleteResponse;
- String id = (String) session.getAttribute("LOGIN_MEMBER_ID");
+ String id = SessionUtil.getLoginMemberId(session);
if (id == null) {
deleteResponse = DeleteMemberResponse.NO_LOGIN;
responseEntity =
@@ -267,7 +272,7 @@ public ResponseEntity deleteMemberInfo(HttpSession session
}
/**
- * 회원 주소 변경
+ * 회원 주소 변경.
*
* @param memberInfo 회원 주소 정보
* @param session 현재 로그인한 고객의 세션
@@ -278,8 +283,8 @@ public ResponseEntity updateMemberAddress(
ResponseEntity responseEntity = null;
String address = memberInfo.getAddress();
String addressDetail = memberInfo.getAddressDetail();
- String id = (String) session.getAttribute("LOGIN_MEMBER_ID");
-
+ String id = SessionUtil.getLoginMemberId(session);
+
if (address == null || addressDetail == null) {
// 요청한 주소가 null일 때
if (address == null) {
@@ -345,19 +350,16 @@ private static LoginResponse success(MemberDTO memberInfo) {
}
@Getter
- @AllArgsConstructor
@RequiredArgsConstructor
private static class LogoutResponse {
enum LogoutStatus {
- SUCCESS, FAIL, NO_LOGIN, ERROR
+ SUCCESS, NO_LOGIN, ERROR
}
@NonNull
private LogoutStatus result;
- private MemberDTO memberInfo;
- private static final LogoutResponse FAIL = new LogoutResponse(LogoutStatus.FAIL);
private static final LogoutResponse NO_LOGIN = new LogoutResponse(LogoutStatus.NO_LOGIN);
private static final LogoutResponse SUCCESS = new LogoutResponse(LogoutStatus.SUCCESS);
diff --git a/src/main/java/com/delfood/controller/OwnerController.java b/src/main/java/com/delfood/controller/OwnerController.java
index 3b33b1a..c419d68 100644
--- a/src/main/java/com/delfood/controller/OwnerController.java
+++ b/src/main/java/com/delfood/controller/OwnerController.java
@@ -4,6 +4,7 @@
import com.delfood.dto.OwnerDTO.Status;
import com.delfood.mapper.OperationResult;
import com.delfood.service.OwnerService;
+import com.delfood.utils.SessionUtil;
import javax.servlet.http.HttpSession;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -93,7 +94,7 @@ public ResponseEntity login(@RequestBody OwnerLoginRequest l
Status ownerStatus = ownerInfo.getStatus();
if (ownerStatus == Status.DEFAULT) {
ownerLoginResponse = OwnerLoginResponse.success(ownerInfo);
- session.setAttribute("LOGIN_OWNER_ID", ownerInfo.getId());
+ SessionUtil.setLoginOwnerId(session, loginRequest.getId());
responseEntity = new ResponseEntity(ownerLoginResponse, HttpStatus.OK);
} else {
ownerLoginResponse = OwnerLoginResponse.DELETED;
@@ -112,14 +113,14 @@ public ResponseEntity login(@RequestBody OwnerLoginRequest l
* @return
*/
@GetMapping("logout")
- public ResponseEntity logout(HttpSession session) {
- String id = (String) session.getAttribute("LOGIN_OWNER_ID");
+ public ResponseEntity logout(HttpSession session) {
+ String id = SessionUtil.getLoginOwnerId(session);
if (id != null) {
- session.invalidate();
- return new ResponseEntity(logoutResponse.SUCCESS,
+ SessionUtil.logoutOwner(session);
+ return new ResponseEntity(LogoutResponse.SUCCESS,
HttpStatus.OK);
} else {
- return new ResponseEntity(logoutResponse.NO_LOGIN,
+ return new ResponseEntity(LogoutResponse.NO_LOGIN,
HttpStatus.UNAUTHORIZED);
}
}
@@ -134,7 +135,7 @@ public ResponseEntity logout(HttpSession session) {
@GetMapping("myInfo")
public ResponseEntity ownerInfo(HttpSession session) {
ResponseEntity responseEntity = null;
- String id = (String) session.getAttribute("LOGIN_OWNER_ID");
+ String id = SessionUtil.getLoginOwnerId(session);
if (id == null) {
responseEntity = new ResponseEntity(HttpStatus.UNAUTHORIZED);
} else {
@@ -158,7 +159,7 @@ public ResponseEntity updateOwnerInfo(
String mail = updateRequest.getMail();
String tel = updateRequest.getTel();
String password = updateRequest.getPassword();
- String id = (String) session.getAttribute("LOGIN_OWNER_ID");
+ String id = SessionUtil.getLoginOwnerId(session);
if (id == null) { // 로그인 상태가 아닌 경우
return new ResponseEntity(
@@ -195,7 +196,7 @@ public ResponseEntity updateOwnerInfo(
@PatchMapping("password")
public ResponseEntity updatePassword(
@RequestBody UpdateOwnerPasswordRequest passwordResquest, HttpSession session) {
- String id = (String) session.getAttribute("LOGIN_OWNER_ID");
+ String id = SessionUtil.getLoginOwnerId(session);
String password = passwordResquest.getPassword();
String newPassword = passwordResquest.getNewPassword();
@@ -344,16 +345,16 @@ enum UpdateStatus {
@Getter
@RequiredArgsConstructor
- private static class logoutResponse {
- enum logoutStatus {
+ private static class LogoutResponse {
+ enum LogoutStatus {
SUCCESS, NO_LOGIN
}
@NonNull
- private logoutStatus result;
+ private LogoutStatus result;
- private static final logoutResponse SUCCESS = new logoutResponse(logoutStatus.SUCCESS);
- private static final logoutResponse NO_LOGIN = new logoutResponse(logoutStatus.NO_LOGIN);
+ private static final LogoutResponse SUCCESS = new LogoutResponse(LogoutStatus.SUCCESS);
+ private static final LogoutResponse NO_LOGIN = new LogoutResponse(LogoutStatus.NO_LOGIN);
}
diff --git a/src/main/java/com/delfood/controller/ShopController.java b/src/main/java/com/delfood/controller/ShopController.java
index 4d4d0ae..898cbc3 100644
--- a/src/main/java/com/delfood/controller/ShopController.java
+++ b/src/main/java/com/delfood/controller/ShopController.java
@@ -2,6 +2,7 @@
import com.delfood.dto.ShopDTO;
import com.delfood.service.ShopService;
+import com.delfood.utils.SessionUtil;
import javax.servlet.http.HttpSession;
import lombok.Getter;
import lombok.NonNull;
@@ -33,7 +34,7 @@ public class ShopController {
@PostMapping
public ResponseEntity openShop(HttpSession session,
@RequestBody ShopDTO shopInfo) {
- String ownerId = (String) session.getAttribute("LOGIN_OWNER_ID");
+ String ownerId = SessionUtil.getLoginOwnerId(session);
// 로그인 하지 않았을 시 401코드를 반환한다.
if (ownerId == null) {
diff --git a/src/main/java/com/delfood/utils/SessionUtil.java b/src/main/java/com/delfood/utils/SessionUtil.java
new file mode 100644
index 0000000..79db788
--- /dev/null
+++ b/src/main/java/com/delfood/utils/SessionUtil.java
@@ -0,0 +1,87 @@
+package com.delfood.utils;
+
+import javax.servlet.http.HttpSession;
+
+public class SessionUtil {
+
+ private static final String LOGIN_MEMBER_ID = "LOGIN_MEMBER_ID";
+ private static final String LOGIN_OWNER_ID = "LOGIN_OWNER_ID";
+
+ // 인스턴스화 방지
+ private SessionUtil() {}
+
+ /**
+ * 로그인한 고객의 아이디를 세션에서 꺼낸다.
+ * @author jun
+ * @param session 사용자의 세션
+ * @return 로그인한 고객의 id 또는 null
+ */
+ public static String getLoginMemberId(HttpSession session) {
+ return (String) session.getAttribute(LOGIN_MEMBER_ID);
+ }
+
+ /**
+ * 로그인 한 고객의 id를 세션에 저장한다.
+ * @author jun
+ * @param session 사용자의 session
+ * @param id 로그인한 고객의 id
+ */
+ public static void setLoginMemberId(HttpSession session, String id) {
+ session.setAttribute(LOGIN_MEMBER_ID, id);
+ }
+
+
+
+
+ /**
+ * 로그인한 사장님 id를 세션에서 꺼낸다.
+ * 로그인 하지 않았다면 null이 반환된다
+ * @author jun
+ * @param session 사용자의 세션
+ * @return 로그인한 사장님 id 또는 null
+ */
+ public static String getLoginOwnerId(HttpSession session) {
+ return (String) session.getAttribute(LOGIN_OWNER_ID);
+ }
+
+ /**
+ * 로그인한 사장님의 id를 세션에 저장한다.
+ * @author jun
+ * @param session 사용자의 세션
+ * @param id 로그인한 사장님 id
+ */
+ public static void setLoginOwnerId(HttpSession session, String id) {
+ session.setAttribute(LOGIN_OWNER_ID, id);
+ }
+
+
+ /**
+ * 해당 세션의 정보를 모두 삭제한다.
+ * @author jun
+ * @param session 사용자의 세션
+ */
+ public static void logoutAll(HttpSession session) {
+ session.invalidate();
+ }
+
+ /**
+ * 고객 로그인 정보를 삭제한다.
+ * @author jun
+ * @param session 사용자의 세션
+ */
+ public static void logoutMember(HttpSession session) {
+ session.removeAttribute(LOGIN_MEMBER_ID);
+ }
+
+ /**
+ * 사장님 로그인 정보를 삭제한다.
+ * @author jun
+ * @param session 사용자의 세션
+ */
+ public static void logoutOwner(HttpSession session) {
+ session.removeAttribute(LOGIN_OWNER_ID);
+ }
+
+
+
+}
From 2692670b33cdfb331b337cff148d0a86c4d3a175 Mon Sep 17 00:00:00 2001
From: yyy9942
Date: Tue, 22 Oct 2019 20:56:13 +0900
Subject: [PATCH 5/6] =?UTF-8?q?=EB=A7=A4=EC=9E=A5=20=EC=A1=B0=ED=9A=8C=20?=
=?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=201.=20=ED=8E=98?=
=?UTF-8?q?=EC=9D=B4=EC=A7=95=20=EC=A0=81=EC=9A=A9=20-=20page=20=EA=B0=92?=
=?UTF-8?q?=EC=9D=84=20=EC=A3=BC=EC=A7=80=20=EC=95=8A=EC=9D=84=EC=8B=9C=20?=
=?UTF-8?q?=EC=9E=90=EB=8F=99=EC=9C=BC=EB=A1=9C=200=20=EA=B0=92=EC=9D=84?=
=?UTF-8?q?=20=EC=A3=BC=EC=9E=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
2. 총 매장 개수를 같이 return하여 매장 개수를 알 수 있도록 만듦
---
.../delfood/controller/ShopController.java | 88 +++++++++++++++----
src/main/java/com/delfood/dto/ShopDTO.java | 5 +-
.../java/com/delfood/mapper/ShopMapper.java | 21 ++++-
.../java/com/delfood/service/ShopService.java | 20 +++++
src/main/resources/mybatis/mapper/shop.xml | 17 +++-
5 files changed, 127 insertions(+), 24 deletions(-)
diff --git a/src/main/java/com/delfood/controller/ShopController.java b/src/main/java/com/delfood/controller/ShopController.java
index 898cbc3..50021d9 100644
--- a/src/main/java/com/delfood/controller/ShopController.java
+++ b/src/main/java/com/delfood/controller/ShopController.java
@@ -1,20 +1,25 @@
package com.delfood.controller;
-import com.delfood.dto.ShopDTO;
-import com.delfood.service.ShopService;
-import com.delfood.utils.SessionUtil;
+import java.util.List;
import javax.servlet.http.HttpSession;
-import lombok.Getter;
-import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.lang.Nullable;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import com.delfood.dto.ShopDTO;
+import com.delfood.service.ShopService;
+import com.delfood.utils.SessionUtil;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
@RestController
@RequestMapping("/owners/shops/")
@@ -32,13 +37,13 @@ public class ShopController {
* @return
*/
@PostMapping
- public ResponseEntity openShop(HttpSession session,
+ public ResponseEntity addShop(HttpSession session,
@RequestBody ShopDTO shopInfo) {
String ownerId = SessionUtil.getLoginOwnerId(session);
// 로그인 하지 않았을 시 401코드를 반환한다.
if (ownerId == null) {
- return new ResponseEntity(OpenShopResponse.NO_LOGIN,
+ return new ResponseEntity(AddShopResponse.NO_LOGIN,
HttpStatus.UNAUTHORIZED);
}
@@ -46,23 +51,44 @@ public ResponseEntity openShop(HttpSession session,
// 입력한 데이터 중 필수 데이터가 null일 경우 400 에러코드를 반환한다.
if (ShopDTO.hasNullDataBeforeCreate(shopInfo)) {
- return new ResponseEntity(OpenShopResponse.NULL_ARGUMENTS,
+ return new ResponseEntity(AddShopResponse.NULL_ARGUMENTS,
HttpStatus.BAD_REQUEST);
}
shopService.addShop(shopInfo);
- return new ResponseEntity(OpenShopResponse.SUCCESS,
+ return new ResponseEntity(AddShopResponse.SUCCESS,
HttpStatus.CREATED);
}
+ /**
+ * 사장님이 가진 매장들을 불러온다.
+ *
+ * @param myShopsRequest 페이징 정보
+ * @param session 사용자의 세션
+ * @return 페이지에 따른 사장님 매장, 총 매장 개수
+ */
+ @GetMapping
+ public ResponseEntity myShops(MyShopsRequest myShopsRequest,
+ HttpSession session) {
+ String id = SessionUtil.getLoginOwnerId(session);
+ if (id == null) {
+ return new ResponseEntity(MyShopsResponse.NO_LOGIN, HttpStatus.UNAUTHORIZED);
+ }
+
+ List myShops = shopService.getMyShops(id, myShopsRequest.getPage());
+ long myShopCount = shopService.getMyShopCount(id);
+ return new ResponseEntity(MyShopsResponse.success(myShops, myShopCount),
+ HttpStatus.OK);
+ }
+
// Response 객체
@Getter
@RequiredArgsConstructor
- private static class OpenShopResponse {
+ private static class AddShopResponse {
enum Result {
SUCCESS, NO_LOGIN, NULL_ARGUMENTS
}
@@ -70,10 +96,40 @@ enum Result {
@NonNull
Result result;
- private static final OpenShopResponse SUCCESS = new OpenShopResponse(Result.SUCCESS);
- private static final OpenShopResponse NO_LOGIN = new OpenShopResponse(Result.NO_LOGIN);
- private static final OpenShopResponse NULL_ARGUMENTS =
- new OpenShopResponse(Result.NULL_ARGUMENTS);
+ private static final AddShopResponse SUCCESS = new AddShopResponse(Result.SUCCESS);
+ private static final AddShopResponse NO_LOGIN = new AddShopResponse(Result.NO_LOGIN);
+ private static final AddShopResponse NULL_ARGUMENTS =
+ new AddShopResponse(Result.NULL_ARGUMENTS);
+ }
+
+ @Getter
+ @RequiredArgsConstructor
+ @AllArgsConstructor
+ private static class MyShopsResponse {
+ enum Result {
+ SUCCESS, NO_LOGIN
+ }
+
+ @NonNull
+ Result result;
+
+ List myShops;
+
+ Long shopCount;
+
+ private static final MyShopsResponse NO_LOGIN = new MyShopsResponse(Result.NO_LOGIN);
+
+ public static MyShopsResponse success(List myShops, Long shopCount) {
+ return new MyShopsResponse(Result.SUCCESS, myShops, shopCount);
+ }
+ }
+
+ // Request 객체
+ @Getter
+ @Setter
+ private static class MyShopsRequest {
+ @Nullable
+ private Long page;
}
}
diff --git a/src/main/java/com/delfood/dto/ShopDTO.java b/src/main/java/com/delfood/dto/ShopDTO.java
index e70e074..1ebc105 100644
--- a/src/main/java/com/delfood/dto/ShopDTO.java
+++ b/src/main/java/com/delfood/dto/ShopDTO.java
@@ -116,7 +116,10 @@ public static boolean hasNullDataBeforeCreate(ShopDTO shopInfo) {
|| shopInfo.getBizNumber() == null
|| shopInfo.getInfo() == null
|| shopInfo.getMinOrderPrice() == null
- || shopInfo.getOrderType() == null) {
+ || shopInfo.getOrderType() == null
+ || shopInfo.getTel() == null
+ || shopInfo.getAddress() == null
+ || shopInfo.getAddressDetail() == null) {
return true;
}
return false;
diff --git a/src/main/java/com/delfood/mapper/ShopMapper.java b/src/main/java/com/delfood/mapper/ShopMapper.java
index 953ee8d..1e400a4 100644
--- a/src/main/java/com/delfood/mapper/ShopMapper.java
+++ b/src/main/java/com/delfood/mapper/ShopMapper.java
@@ -6,6 +6,12 @@
@Repository
public interface ShopMapper {
+ /**
+ * 매장 입점 신청을 한다.
+ * @author jun
+ * @param shopInfo 입점 신청 매장 정보
+ * @return
+ */
public int insertShop(ShopDTO shopInfo);
/**
@@ -41,11 +47,20 @@ public interface ShopMapper {
public ShopDTO findById(Long id);
/**
- * 사장 id로 가지고 있는 매장을 모두 조회한다.
- * 한 사장당 많은 매장을 가지기는 어려우므로 페이징 처리를 따로 하지는 않았다.
+ * 사장 id로 가지고 있는 매장을 조회한다.
* @author jun
* @param ownerId 매장을 가진 사장의 id
+ * @param page 페이지
* @return
*/
- public List findByOwnerId(String ownerId);
+ public List findByOwnerId(String ownerId, Long page);
+
+ /**
+ * 사장 id로 가지고 있는 매장의 개수를 조회한다.
+ * @author jun
+ * @param ownerId 사장님 id
+ * @return 매장 개수
+ */
+ public long countByOwnerId(String ownerId);
+
}
diff --git a/src/main/java/com/delfood/service/ShopService.java b/src/main/java/com/delfood/service/ShopService.java
index e8f0779..0948e84 100644
--- a/src/main/java/com/delfood/service/ShopService.java
+++ b/src/main/java/com/delfood/service/ShopService.java
@@ -4,6 +4,7 @@
import com.delfood.mapper.OperationResult;
import com.delfood.mapper.ShopMapper;
import lombok.extern.log4j.Log4j2;
+import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,4 +27,23 @@ public void addShop(ShopDTO shopInfo) {
throw new RuntimeException("Shop insert ERROR");
}
}
+
+ /**
+ * 사장님 가게들의 정보를 불러오는 메서드.
+ * @param id 사장님 id
+ * @param page 페이지 정보
+ * @return
+ */
+ public List getMyShops(String id, Long page) {
+ return shopMapper.findByOwnerId(id, page);
+ }
+
+ /**
+ * 사장님이 가진 총 가게 개수를 불러오는 메서드.
+ * @param id 사장님 아이디
+ * @return
+ */
+ public long getMyShopCount(String id) {
+ return shopMapper.countByOwnerId(id);
+ }
}
diff --git a/src/main/resources/mybatis/mapper/shop.xml b/src/main/resources/mybatis/mapper/shop.xml
index 1f8c64d..d76ed1a 100644
--- a/src/main/resources/mybatis/mapper/shop.xml
+++ b/src/main/resources/mybatis/mapper/shop.xml
@@ -20,7 +20,7 @@
created_at createdAt,
updated_at updatedAt,
status,
- oreder_type orderType,
+ order_type orderType,
origin_info originInfo,
work_condition workCondition
FROM SHOP
@@ -58,13 +58,15 @@
WHERE id = #{id}
-