From f36bd861bcdcd008311bdd36beed32026a2fb72d Mon Sep 17 00:00:00 2001 From: mincheol Date: Sun, 27 Feb 2022 22:20:02 +0900 Subject: [PATCH 1/3] add User Response/Request --- .../anonymous/domain/user/entity/User.java | 37 +++++++++++++++++++ .../user/repository/UserRepository.java | 8 ++-- .../rest/controller/api/UserController.java | 23 ++++++++++++ .../rest/dto/request/RequestUser.java | 25 +++++++++++++ .../rest/dto/response/ResponseUser.java | 33 +++++++++++++++++ .../anonymous/service/user/UserService.java | 29 ++++++++++++++- 6 files changed, 150 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java create mode 100644 src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java diff --git a/src/main/java/com/makefire/anonymous/domain/user/entity/User.java b/src/main/java/com/makefire/anonymous/domain/user/entity/User.java index f9ae46b..16d930f 100644 --- a/src/main/java/com/makefire/anonymous/domain/user/entity/User.java +++ b/src/main/java/com/makefire/anonymous/domain/user/entity/User.java @@ -1,5 +1,13 @@ package com.makefire.anonymous.domain.user.entity; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import java.util.Date; + /** *packageName : com.makefire.anonymous * fileName : User @@ -9,7 +17,36 @@ * ================================= * DATE AUTHOR NOTE * 22-01-15 최푸름 + * 22-02-08 김민철 * --------------------------------- */ +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "SYS_USER") public class User { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name="USER_ID", nullable = false) + private String userId; //아이디 + + @Column(name="USER_NM", nullable = false) + private String name; //이름 + + @Column(name="PWD", nullable = false) + private String password; //패스워드 + + @Temporal(TemporalType.TIMESTAMP) + private Date regDate; //등록일자 + + @Builder + public User(String userId, String name, String password){ + this.userId = userId; + this.name = name; + this.password = password; + } + } diff --git a/src/main/java/com/makefire/anonymous/domain/user/repository/UserRepository.java b/src/main/java/com/makefire/anonymous/domain/user/repository/UserRepository.java index c61b2f4..dcc9d1c 100644 --- a/src/main/java/com/makefire/anonymous/domain/user/repository/UserRepository.java +++ b/src/main/java/com/makefire/anonymous/domain/user/repository/UserRepository.java @@ -1,8 +1,8 @@ package com.makefire.anonymous.domain.user.repository; -import com.makefire.anonymous.domain.user.entity.Authority; -import com.makefire.anonymous.service.user.UserService; +import com.makefire.anonymous.domain.user.entity.User; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; /** *packageName : com.makefire.anonymous @@ -13,8 +13,10 @@ * ================================= * DATE AUTHOR NOTE * 22-01-15 최푸름 + * 22-02-14 김민철 * --------------------------------- */ -public interface UserRepository extends JpaRepository { +@Repository +public interface UserRepository extends JpaRepository { } diff --git a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java index de85eb5..45d1f5d 100644 --- a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java +++ b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java @@ -1,6 +1,13 @@ package com.makefire.anonymous.rest.controller.api; +import com.makefire.anonymous.rest.dto.request.RequestUser; +import com.makefire.anonymous.rest.dto.response.ResponseUser; +import com.makefire.anonymous.service.user.UserService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *packageName : com.makefire.anonymous @@ -11,8 +18,24 @@ * ================================= * DATE AUTHOR NOTE * 22-01-15 최푸름 + * 22-02-16 김민철 * --------------------------------- */ @Controller +@RequiredArgsConstructor +@RequestMapping("/api/user") public class UserController { + + private final UserService userService; + + @PostMapping("/userSignUp") + public Long save(@RequestBody final RequestUser params){ + return userService.save(params); + } + + @GetMapping("/findAll") + public List findAll(){ + return userService.findAll(); + } + } diff --git a/src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java b/src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java new file mode 100644 index 0000000..3d8d77a --- /dev/null +++ b/src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java @@ -0,0 +1,25 @@ +package com.makefire.anonymous.rest.dto.request; + +import com.makefire.anonymous.domain.user.entity.User; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class RequestUser { + + private Long id; // id값 + private String userId; //아이디 + private String name; //이름 + private String password; //비밀번호 + + public User toEntity(){ + return User.builder(). + userId(userId). + name(name). + password(password). + build(); + } +} diff --git a/src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java b/src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java new file mode 100644 index 0000000..c33e9ea --- /dev/null +++ b/src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java @@ -0,0 +1,33 @@ +package com.makefire.anonymous.rest.dto.response; + +import com.makefire.anonymous.domain.user.entity.User; +import lombok.Builder; +import lombok.Getter; + +/** + * packageName : com.makefire.anonymous.rest.dto.response + * fileName : Response + * author : User + * date : 2022-01-15 + * description : + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 2022-01-15 User 최초 생성 + */ + +@Getter +public class ResponseUser { + + private Long id; // id값 + private String userId; //사용자 아이디 + private String name; //이름 + private String password; //패스워드 + + public ResponseUser(User user){ + this.id= user.getId(); + this.userId = user.getUserId(); + this.name = user.getName(); + this.password = user.getPassword(); + } +} diff --git a/src/main/java/com/makefire/anonymous/service/user/UserService.java b/src/main/java/com/makefire/anonymous/service/user/UserService.java index 9dc2165..04de144 100644 --- a/src/main/java/com/makefire/anonymous/service/user/UserService.java +++ b/src/main/java/com/makefire/anonymous/service/user/UserService.java @@ -1,8 +1,15 @@ package com.makefire.anonymous.service.user; +import com.makefire.anonymous.domain.user.entity.User; import com.makefire.anonymous.domain.user.repository.UserRepository; -import lombok.AllArgsConstructor; +import com.makefire.anonymous.rest.dto.request.RequestUser; +import com.makefire.anonymous.rest.dto.response.ResponseUser; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; /** *packageName : com.makefire.anonymous @@ -16,8 +23,26 @@ * --------------------------------- */ @Service -@AllArgsConstructor +@RequiredArgsConstructor public class UserService { + private final UserRepository userRepository; + //유저 생성 + @Transactional + public Long save(final RequestUser params){ + + User user = userRepository.save(params.toEntity()); + return user.getId(); + } + + //유저 조회 + public List findAll(){ + List userList = userRepository.findAll(); + return userList.stream().map(ResponseUser::new).collect(Collectors.toList()); + } + + //유저 정보 업데이트 + } + From a857c3db4b45343ecaee6430045b2aa02ead2375 Mon Sep 17 00:00:00 2001 From: mincheol Date: Fri, 4 Mar 2022 01:00:49 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[#22]=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D,=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/controller/api/UserController.java | 24 ++++++++++------- .../{RequestUser.java => UserRequest.java} | 18 +++++++++---- .../{ResponseUser.java => UserResponse.java} | 27 ++++++++++++++----- .../anonymous/service/user/UserService.java | 18 +++++++------ 4 files changed, 58 insertions(+), 29 deletions(-) rename src/main/java/com/makefire/anonymous/rest/dto/request/{RequestUser.java => UserRequest.java} (51%) rename src/main/java/com/makefire/anonymous/rest/dto/response/{ResponseUser.java => UserResponse.java} (51%) diff --git a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java index 45d1f5d..b8a2ef8 100644 --- a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java +++ b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java @@ -1,13 +1,16 @@ package com.makefire.anonymous.rest.controller.api; -import com.makefire.anonymous.rest.dto.request.RequestUser; -import com.makefire.anonymous.rest.dto.response.ResponseUser; +import com.makefire.anonymous.rest.RestSupport; +import com.makefire.anonymous.rest.dto.request.UserRequest; +import com.makefire.anonymous.rest.dto.response.Response; +import com.makefire.anonymous.rest.dto.response.UserResponse; import com.makefire.anonymous.service.user.UserService; import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.validation.Valid; /** *packageName : com.makefire.anonymous @@ -17,25 +20,26 @@ * description : 유저 E2E * ================================= * DATE AUTHOR NOTE - * 22-01-15 최푸름 * 22-02-16 김민철 * --------------------------------- */ @Controller @RequiredArgsConstructor @RequestMapping("/api/user") -public class UserController { +public class UserController extends RestSupport{ private final UserService userService; @PostMapping("/userSignUp") - public Long save(@RequestBody final RequestUser params){ - return userService.save(params); + public ResponseEntity insertUser(@Valid @RequestBody UserRequest userRequest){ + return response(userService.save(userRequest)); + //ResponseEntity.ok(userService.save(userRequest)); + } - @GetMapping("/findAll") - public List findAll(){ - return userService.findAll(); + @GetMapping("/findUserId/{id}") + public ResponseEntity getUser(@PathVariable("id") long userId){ + return response(userService.getUser(userId)); } } diff --git a/src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java b/src/main/java/com/makefire/anonymous/rest/dto/request/UserRequest.java similarity index 51% rename from src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java rename to src/main/java/com/makefire/anonymous/rest/dto/request/UserRequest.java index 3d8d77a..abd661f 100644 --- a/src/main/java/com/makefire/anonymous/rest/dto/request/RequestUser.java +++ b/src/main/java/com/makefire/anonymous/rest/dto/request/UserRequest.java @@ -2,24 +2,32 @@ import com.makefire.anonymous.domain.user.entity.User; import lombok.AccessLevel; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class RequestUser { +public class UserRequest { private Long id; // id값 private String userId; //아이디 private String name; //이름 private String password; //비밀번호 - public User toEntity(){ + @Builder + public UserRequest (String userId, String name, String password){ + this.userId = userId; + this.name = name; + this.password = password; + } + + public static User toEntity(UserRequest userRequest){ return User.builder(). - userId(userId). - name(name). - password(password). + userId(userRequest.getUserId()). + name(userRequest.getName()). + password(userRequest.getPassword()). build(); } } diff --git a/src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java b/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java similarity index 51% rename from src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java rename to src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java index c33e9ea..9d96e3d 100644 --- a/src/main/java/com/makefire/anonymous/rest/dto/response/ResponseUser.java +++ b/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java @@ -1,8 +1,10 @@ package com.makefire.anonymous.rest.dto.response; import com.makefire.anonymous.domain.user.entity.User; +import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; +import lombok.NoArgsConstructor; /** * packageName : com.makefire.anonymous.rest.dto.response @@ -17,17 +19,30 @@ */ @Getter -public class ResponseUser { +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class UserResponse { private Long id; // id값 private String userId; //사용자 아이디 private String name; //이름 private String password; //패스워드 - public ResponseUser(User user){ - this.id= user.getId(); - this.userId = user.getUserId(); - this.name = user.getName(); - this.password = user.getPassword(); + @Builder + public UserResponse(Long id, String userId, String name, String password){ + this.id= id; + this.userId = userId; + this.name = name; + this.password = password; } + + public static UserResponse from(User user){ + + return UserResponse.builder() + .id(user.getId()) + .userId(user.getUserId()) + .name(user.getName()) + .password(user.getPassword()) + .build(); + } + } diff --git a/src/main/java/com/makefire/anonymous/service/user/UserService.java b/src/main/java/com/makefire/anonymous/service/user/UserService.java index 04de144..e2ab39f 100644 --- a/src/main/java/com/makefire/anonymous/service/user/UserService.java +++ b/src/main/java/com/makefire/anonymous/service/user/UserService.java @@ -2,8 +2,9 @@ import com.makefire.anonymous.domain.user.entity.User; import com.makefire.anonymous.domain.user.repository.UserRepository; -import com.makefire.anonymous.rest.dto.request.RequestUser; -import com.makefire.anonymous.rest.dto.response.ResponseUser; +import com.makefire.anonymous.exception.BadRequestException; +import com.makefire.anonymous.rest.dto.request.UserRequest; +import com.makefire.anonymous.rest.dto.response.UserResponse; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,16 +31,17 @@ public class UserService { //유저 생성 @Transactional - public Long save(final RequestUser params){ + public UserResponse save(UserRequest userRequest){ - User user = userRepository.save(params.toEntity()); - return user.getId(); + User user = UserRequest.toEntity(userRequest); + return UserResponse.from(userRepository.save(user)); } //유저 조회 - public List findAll(){ - List userList = userRepository.findAll(); - return userList.stream().map(ResponseUser::new).collect(Collectors.toList()); + public UserResponse getUser(Long userId){ + User user = userRepository.findById(userId).orElseThrow(() + -> new BadRequestException("해당 사용자를 찾을수없습니다. 사용자 id를 확인해주세요.")); + return UserResponse.from(user); } //유저 정보 업데이트 From 9900ce650ba0ef0bcfddf2b8304f0220422349f5 Mon Sep 17 00:00:00 2001 From: mincheol Date: Fri, 4 Mar 2022 01:21:49 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[#22]=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/controller/api/UserController.java | 8 ++++++++ .../rest/dto/response/UserResponse.java | 16 ++++++++++++++++ .../anonymous/service/user/UserService.java | 10 +++++++--- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java index b8a2ef8..26e2640 100644 --- a/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java +++ b/src/main/java/com/makefire/anonymous/rest/controller/api/UserController.java @@ -30,6 +30,7 @@ public class UserController extends RestSupport{ private final UserService userService; + //사용자 등록 @PostMapping("/userSignUp") public ResponseEntity insertUser(@Valid @RequestBody UserRequest userRequest){ return response(userService.save(userRequest)); @@ -37,9 +38,16 @@ public ResponseEntity insertUser(@Valid @RequestBody UserRequest userR } + //사용자 조회 @GetMapping("/findUserId/{id}") public ResponseEntity getUser(@PathVariable("id") long userId){ return response(userService.getUser(userId)); } + //사용자 목록 + @GetMapping("/userList") + public ResponseEntity getUserList(){ + return response(userService.getUserList()); + } + } diff --git a/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java b/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java index 9d96e3d..b236e47 100644 --- a/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java +++ b/src/main/java/com/makefire/anonymous/rest/dto/response/UserResponse.java @@ -6,6 +6,9 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import java.util.ArrayList; +import java.util.List; + /** * packageName : com.makefire.anonymous.rest.dto.response * fileName : Response @@ -45,4 +48,17 @@ public static UserResponse from(User user){ .build(); } + public static List fromList(List users){ + List userList = new ArrayList<>(); + + users.forEach(user -> userList.add( + UserResponse.builder() + .id(user.getId()) + .userId(user.getUserId()) + .name(user.getName()) + .build() + )); + return userList; + } + } diff --git a/src/main/java/com/makefire/anonymous/service/user/UserService.java b/src/main/java/com/makefire/anonymous/service/user/UserService.java index e2ab39f..d3f5751 100644 --- a/src/main/java/com/makefire/anonymous/service/user/UserService.java +++ b/src/main/java/com/makefire/anonymous/service/user/UserService.java @@ -29,7 +29,7 @@ public class UserService { private final UserRepository userRepository; - //유저 생성 + //사용자 생성 @Transactional public UserResponse save(UserRequest userRequest){ @@ -37,14 +37,18 @@ public UserResponse save(UserRequest userRequest){ return UserResponse.from(userRepository.save(user)); } - //유저 조회 + //사용자 조회 public UserResponse getUser(Long userId){ User user = userRepository.findById(userId).orElseThrow(() -> new BadRequestException("해당 사용자를 찾을수없습니다. 사용자 id를 확인해주세요.")); return UserResponse.from(user); } - //유저 정보 업데이트 + //사용자 목록 + public List getUserList(){ + List userList = userRepository.findAll(); + return UserResponse.fromList(userList); + } }