From 74272f323319d38dd256d361609c26139964794e Mon Sep 17 00:00:00 2001 From: yoon Date: Thu, 6 Feb 2025 14:22:09 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=9E=AC=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/common/UserController.java | 192 +++++++++++------- .../localhost/mapper/NetmemberMapper.java | 5 + .../localhost/service/NetmemberService.java | 136 ++++++++----- src/main/resources/mapper/netmemberMapper.xml | 17 ++ 4 files changed, 223 insertions(+), 127 deletions(-) diff --git a/src/main/java/io/company/localhost/controller/common/UserController.java b/src/main/java/io/company/localhost/controller/common/UserController.java index 604463e..5626e28 100644 --- a/src/main/java/io/company/localhost/controller/common/UserController.java +++ b/src/main/java/io/company/localhost/controller/common/UserController.java @@ -41,6 +41,7 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolderStrategy; import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -58,65 +59,114 @@ import static org.springframework.security.web.authentication.rememberme.Abstrac @RequestMapping("/api/user") @RequiredArgsConstructor public class UserController { - + private final commoncodService commoncodservice; private final NetmemberService netmemberservice; + + /** + * 사용 가능 색상 조회 + * + * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/color") + public ApiResponse> getColorList() { + List ColorList = commoncodservice.getColorList(); + return ApiResponse.ok(ColorList); + } + + /** + * MBTI 목록 조회 + * + * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/mbti") + public ApiResponse> getMbtiList() { + List MbtiList = commoncodservice.getMbtiList(); + return ApiResponse.ok(MbtiList); + } + + /** + * 비밀번호 힌트 목록 조회 + * + * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/pwhint") + public ApiResponse> getPwhintList() { + List PwhintList = commoncodservice.getPwhintList(); + return ApiResponse.ok(PwhintList); + } + + /** + * 회원가입 + * + * @param profile + * @param map + * @return ApiResponse + * @throws RuntimeException 파일 업로드 실패 시 + */ + @PostMapping("/join") + public ApiResponse register(@RequestParam("memberPrf") MultipartFile memberPrf, @ReqMap MapDto map) { + int member = netmemberservice.register(memberPrf, map); + return ApiResponse.ok(member); + } + + /** + * 아이디 중복 체크 + * + * @param memberIds + * @return ApiResponse + * + */ + @GetMapping("/checkId") + public ApiResponse selectCheckId(@RequestParam String memberIds) { + boolean isDuplicate = netmemberservice.selectCheckId(memberIds); + return ApiResponse.ok(!isDuplicate); + } + + /** + * 로그인 여부 체크 + * + * @return ApiResponse + */ + @GetMapping("/isLogin") + public ApiResponse checkLogin() { + boolean isLoggedIn = AuthUtil.isLoggedIn(); + return ApiResponse.ok(isLoggedIn); + } + + /** + * 비밀번호 재설정 member 체크 + * + * @param map + * @return ApiResponse + * + */ + @PostMapping("/pwReset") + public ApiResponse selectPwReset(@ReqMap MapDto map) { + boolean isPwReset = netmemberservice.selectPwReset(map); + return ApiResponse.ok(isPwReset); + } /** - * 사용 가능 색상 조회 - * - * @return ApiResponse> - * - */ - @ParameterCheck - @GetMapping("/color") - public ApiResponse> getColorList() { - List ColorList = commoncodservice.getColorList(); - return ApiResponse.ok(ColorList); - } - - /** - * MBTI 목록 조회 - * - * @return ApiResponse> - * - */ - @ParameterCheck - @GetMapping("/mbti") - public ApiResponse> getMbtiList() { - List MbtiList = commoncodservice.getMbtiList(); - return ApiResponse.ok(MbtiList); - } - - /** - * 회원가입 - * - * @param profile - * @param map - * @return ApiResponse - * @throws RuntimeException 파일 업로드 실패 시 - */ - @PostMapping("/join") - public ApiResponse register(@RequestParam("memberPrf") MultipartFile memberPrf, @ReqMap MapDto map) { - int member = netmemberservice.register(memberPrf, map); - return ApiResponse.ok(member); - } - - /** - * 아이디 중복 체크 - * - * @param memberIds - * @return ApiResponse - * @throws IllegalArgumentException - */ - @GetMapping("/checkId") - public ApiResponse selectCheckId(@RequestParam String memberIds) { - boolean isDuplicate = netmemberservice.selectCheckId(memberIds); - return ApiResponse.ok(!isDuplicate); - } - + * 비밀번호 재설정 + * + * @param map + * @return ApiResponse + * + */ + @PatchMapping("/pwNew") + public ApiResponse updatePassword(@ReqMap MapDto map) { + boolean isPwNew = netmemberservice.updatePassword(map); + return ApiResponse.ok(isPwNew); + } - //security 인증 체크 + // security 인증 체크 @GetMapping("userInfo") public ApiResponse getUserInfo(@AuthenticationPrincipal MemberVo memberVo) { SecurityContextHolderStrategy contextHolderStrategy = SecurityContextHolder.getContextHolderStrategy(); @@ -133,9 +183,9 @@ public class UserController { return ApiResponse.ok(memberVo); } - //유저 세션 체크 + // 유저 세션 체크 @GetMapping(value = "check") - public ApiResponse check(){ + public ApiResponse check() { Map sessions = SessionListener.getSessions(); Map sessionData = new HashMap<>(); @@ -172,10 +222,7 @@ public class UserController { return ApiResponse.ok(remember); } - - - - //로그아웃 + // 로그아웃 @Guest @GetMapping("/logout") public ApiResponse logout(HttpServletRequest request, HttpServletResponse response) { @@ -198,20 +245,19 @@ public class UserController { return ApiResponse.ok(returnMessage); } - /** - * 사원 목록 전체 조회 - * - * - * - */ - @ParameterCheck - @GetMapping("/allUserList") - public ApiResponse> getallUserList() { - List allUserList = netmemberservice.getallUserList(); - return ApiResponse.ok(allUserList); - } - + /** + * 사원 목록 전체 조회 + * + * + * + */ + @ParameterCheck + @GetMapping("/allUserList") + public ApiResponse> getallUserList() { + List allUserList = netmemberservice.getallUserList(); + return ApiResponse.ok(allUserList); + } @Guest @GetMapping("get1") diff --git a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java index 3020353..39fbbc1 100644 --- a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java +++ b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java @@ -31,6 +31,11 @@ public interface NetmemberMapper { int insertMember(MapDto map); int selectCheckId(String memberIds); + + int selectPwReset(MapDto map); + + int updatePassword(MapDto map); List getallUserList(); + } diff --git a/src/main/java/io/company/localhost/service/NetmemberService.java b/src/main/java/io/company/localhost/service/NetmemberService.java index e00f7df..1302eef 100644 --- a/src/main/java/io/company/localhost/service/NetmemberService.java +++ b/src/main/java/io/company/localhost/service/NetmemberService.java @@ -34,66 +34,94 @@ public class NetmemberService { private final commoncodMapper commoncodMapper; private final DelegatingPasswordEncoder passwordEncoder; private final FileService fileService; - + /** - * 회원 가입 - * - * @param profile - * @param map - * @return - */ - public int register(MultipartFile memberPrf, MapDto map) { - // 프로필 이미지 저장, 저장된 경로 가져옴 - String profilePath = fileService.uploadFile(memberPrf); - map.put("memberPrf", profilePath); - - // 비밀번호 암호화 및 저장 - String encodedPassword = passwordEncoder.encode(map.getString("memberPwd")); - map.put("memberPwd", encodedPassword); - - // 회원 기본 정보 설정 - map.put("memberRol", "ROLE_MEMBER"); - map.put("memberPos", 500107); - map.put("memberTkn", "Null"); - map.put("memberPrm", "Y"); - map.put("memberDel", "N"); - map.put("memberLea", "N"); - map.put("memberRdt", LocalDateTime.now()); - map.put("memberCdt", LocalDateTime.now()); - - // 회원 정보 저장 - int result = memberMapper.insertMember(map); - - // 선택한 색상 코드 사용 처리 - String color = map.getString("memberCol"); - commoncodMapper.updateColorYon(color); - - return result; - } - - /** - * 아이디 중복 체크 - * - * @param memberIds - * @return - */ - public boolean selectCheckId(String memberIds) { - return memberMapper.selectCheckId(memberIds) > 0; - } - - /** - * 사원 목록 전체 조회 - * - * @param - * @return - */ + * 회원 가입 + * + * @param profile + * @param map + * @return + */ + public int register(MultipartFile memberPrf, MapDto map) { + // 프로필 이미지 저장, 저장된 경로 가져옴 + String profilePath = fileService.uploadFile(memberPrf); + map.put("memberPrf", profilePath); + + // 비밀번호 암호화 및 저장 + String encodedPassword = passwordEncoder.encode(map.getString("memberPwd")); + map.put("memberPwd", encodedPassword); + + // 회원 기본 정보 설정 + map.put("memberRol", "ROLE_MEMBER"); + map.put("memberPos", 500107); + map.put("memberTkn", "Null"); + map.put("memberPrm", "Y"); + map.put("memberDel", "N"); + map.put("memberLea", "N"); + map.put("memberRdt", LocalDateTime.now()); + map.put("memberCdt", LocalDateTime.now()); + + // 회원 정보 저장 + int result = memberMapper.insertMember(map); + + // 선택한 색상 코드 사용 처리 + String color = map.getString("memberCol"); + commoncodMapper.updateColorYon(color); + + return result; + } + + /** + * 아이디 중복 체크 + * + * @param memberIds + * @return + */ + public boolean selectCheckId(String memberIds) { + return memberMapper.selectCheckId(memberIds) > 0; + } + + /** + * 사원 목록 전체 조회 + * + * @param + * @return + */ public List getallUserList() { return memberMapper.getallUserList(); } - - @Transactional + /** + * 로그인 토큰 + * + * @param id, token + * @return + */ public void updateMemberToken(String id, String token) { memberMapper.updateMemberToken(id, token); } + + /** + * 비밀번호 재설정 member 체크 + * + * @param map + * @return + */ + public boolean selectPwReset(MapDto map) { + return memberMapper.selectPwReset(map) > 0; + } + + /** + * 비밀번호 재설정 + * + * @param map + * @return + */ + public boolean updatePassword(MapDto map) { + String encodedPassword = passwordEncoder.encode(map.getString("password")); + map.put("password", encodedPassword); + System.out.println("암호화된 비밀번호: " + encodedPassword); + return memberMapper.updatePassword(map) > 0; + } + } diff --git a/src/main/resources/mapper/netmemberMapper.xml b/src/main/resources/mapper/netmemberMapper.xml index e79edec..689ae90 100644 --- a/src/main/resources/mapper/netmemberMapper.xml +++ b/src/main/resources/mapper/netmemberMapper.xml @@ -95,6 +95,23 @@ WHERE MEMBERIDS = #{memberIds} + + + + + + UPDATE netmember + SET MEMBERPWD = #{password} + WHERE MEMBERIDS = #{id} + +