Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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;
}

}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -13,8 +13,10 @@
* =================================
* DATE AUTHOR NOTE
* 22-01-15 최푸름
* 22-02-14 김민철
* ---------------------------------
*/
public interface UserRepository extends JpaRepository<Authority, Long> {
@Repository
public interface UserRepository extends JpaRepository<User,Long> {

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
package com.makefire.anonymous.rest.controller.api;

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 javax.validation.Valid;

/**
*packageName : com.makefire.anonymous
Expand All @@ -10,9 +20,34 @@
* description : 유저 E2E
* =================================
* DATE AUTHOR NOTE
* 22-01-15 최푸름
* 22-02-16 김민철
* ---------------------------------
*/
@Controller
public class UserController {
@RequiredArgsConstructor
@RequestMapping("/api/user")
public class UserController extends RestSupport{

private final UserService userService;

//사용자 등록
@PostMapping("/userSignUp")
public ResponseEntity<Response> insertUser(@Valid @RequestBody UserRequest userRequest){
return response(userService.save(userRequest));
//ResponseEntity.ok(userService.save(userRequest));

}

//사용자 조회
@GetMapping("/findUserId/{id}")
public ResponseEntity<Response> getUser(@PathVariable("id") long userId){
return response(userService.getUser(userId));
}

//사용자 목록
@GetMapping("/userList")
public ResponseEntity<Response> getUserList(){
return response(userService.getUserList());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.makefire.anonymous.rest.dto.request;

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 UserRequest {

private Long id; // id값
private String userId; //아이디
private String name; //이름
private String password; //비밀번호

@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(userRequest.getUserId()).
name(userRequest.getName()).
password(userRequest.getPassword()).
build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
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;

import java.util.ArrayList;
import java.util.List;

/**
* packageName : com.makefire.anonymous.rest.dto.response
* fileName : Response
* author : User
* date : 2022-01-15
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2022-01-15 User 최초 생성
*/

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class UserResponse {

private Long id; // id값
private String userId; //사용자 아이디
private String name; //이름
private String password; //패스워드

@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();
}

public static List<UserResponse> fromList(List<User> users){
List<UserResponse> userList = new ArrayList<>();

users.forEach(user -> userList.add(
UserResponse.builder()
.id(user.getId())
.userId(user.getUserId())
.name(user.getName())
.build()
));
return userList;
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
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.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;

import java.util.List;
import java.util.stream.Collectors;

/**
*packageName : com.makefire.anonymous
Expand All @@ -16,8 +24,31 @@
* ---------------------------------
*/
@Service
@AllArgsConstructor
@RequiredArgsConstructor
public class UserService {

private final UserRepository userRepository;

//사용자 생성
@Transactional
public UserResponse save(UserRequest userRequest){

User user = UserRequest.toEntity(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<UserResponse> getUserList(){
List<User> userList = userRepository.findAll();
return UserResponse.fromList(userList);
}

}