Merge pull request #141 from TeamBNBN/BE/userinfo

feat: 유저 회원정보 수정 기능
This commit is contained in:
Jungmin 2024-07-30 13:05:25 +09:00 committed by GitHub
commit 97db5b2bbb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 107 additions and 43 deletions

View File

@ -1,5 +1,7 @@
package com.edufocus.edufocus.user.controller; package com.edufocus.edufocus.user.controller;
import com.edufocus.edufocus.user.model.entity.InfoDto;
import com.edufocus.edufocus.user.model.entity.PasswordDto;
import com.edufocus.edufocus.user.model.entity.User; import com.edufocus.edufocus.user.model.entity.User;
import com.edufocus.edufocus.user.model.service.UserService; import com.edufocus.edufocus.user.model.service.UserService;
import com.edufocus.edufocus.user.util.JWTUtil; import com.edufocus.edufocus.user.util.JWTUtil;
@ -42,7 +44,30 @@ public class UserController {
} }
@PutMapping("/updateinfo/{id}")
public ResponseEntity<String> updateUserInfo(
@PathVariable("id") Long id,
@RequestBody InfoDto infoDto) {
try {
userService.changeuInfo(infoDto, id);
return ResponseEntity.ok("User info updated successfully");
} catch (Exception e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}
// 비밀번호 변경
@PutMapping("/updatepassword/{id}")
public ResponseEntity<String> updatePassword(
@PathVariable("id") Long id,
@RequestBody PasswordDto passwordDto) {
try {
userService.changePassword(passwordDto, id);
return ResponseEntity.ok("Password changed successfully");
} catch (Exception e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}
@Operation(summary = "로그인", description = "아이디와 비밀번호를 이용하여 로그인 처리.") @Operation(summary = "로그인", description = "아이디와 비밀번호를 이용하여 로그인 처리.")
@PostMapping("/login") @PostMapping("/login")
public ResponseEntity<Map<String, Object>> login( public ResponseEntity<Map<String, Object>> login(

View File

@ -1,8 +1,15 @@
package com.edufocus.edufocus.user.model.entity; package com.edufocus.edufocus.user.model.entity;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class InfoDto { public class InfoDto {
String name; String name;
String email; String email;
} }

View File

@ -0,0 +1,14 @@
package com.edufocus.edufocus.user.model.entity;
import lombok.Generated;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class PasswordDto {
String currentPassword;
String newPassword;
String newPasswordCheck;
}

View File

@ -1,5 +1,7 @@
package com.edufocus.edufocus.user.model.service; package com.edufocus.edufocus.user.model.service;
import com.edufocus.edufocus.user.model.entity.InfoDto;
import com.edufocus.edufocus.user.model.entity.PasswordDto;
import com.edufocus.edufocus.user.model.entity.User; import com.edufocus.edufocus.user.model.entity.User;
public interface UserService { public interface UserService {
@ -12,7 +14,7 @@ public interface UserService {
void sendEamail(User user) throws Exception; void sendEamail(User user) throws Exception;
void userCheck(Long id) throws Exception; void userCheck(Long id) throws Exception;
String getUserName(Long id) throws Exception; String getUserName(Long id) throws Exception;
void changeuInfo(Long id) throws Exception; void changeuInfo(InfoDto infoDto,Long id) throws Exception;
void changePassword(Long id) throws Exception; void changePassword(PasswordDto passwordDto,Long id) throws Exception;
} }

View File

@ -1,9 +1,7 @@
package com.edufocus.edufocus.user.model.service; package com.edufocus.edufocus.user.model.service;
import com.edufocus.edufocus.user.model.entity.MailDto; import com.edufocus.edufocus.user.model.entity.*;
import com.edufocus.edufocus.user.model.entity.MemberChangeDto;
import com.edufocus.edufocus.user.model.entity.User;
import com.edufocus.edufocus.user.model.exception.UserException; import com.edufocus.edufocus.user.model.exception.UserException;
import com.edufocus.edufocus.user.model.repository.UserRepository; import com.edufocus.edufocus.user.model.repository.UserRepository;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
@ -21,46 +19,38 @@ import java.util.Optional;
@Service @Service
@Transactional @Transactional
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserServiceImpl implements UserService{ public class UserServiceImpl implements UserService {
private final UserRepository userRepository; private final UserRepository userRepository;
private final JavaMailSender mailSender; private final JavaMailSender mailSender;
public void join(User user) {
public void join(User user)
{
userRepository.save(user); userRepository.save(user);
} }
public User login(User user) throws SQLException public User login(User user) throws SQLException {
{
Optional<User> findUser = userRepository.findByUserId(user.getUserId()); Optional<User> findUser = userRepository.findByUserId(user.getUserId());
if(findUser.isEmpty()) if (findUser.isEmpty()) {
{
throw new UserException("없는 유저"); throw new UserException("없는 유저");
} }
if(findUser.isPresent()) if (findUser.isPresent()) {
{
User find = findUser.get(); User find = findUser.get();
if(find.getPassword().equals(user.getPassword())) if (find.getPassword().equals(user.getPassword())) {
{
return find; return find;
} } else {
else{
throw new UserException("비밀번호 틀림"); throw new UserException("비밀번호 틀림");
} }
} } else {
else{
throw new UserException("없는 유저"); throw new UserException("없는 유저");
@ -69,13 +59,10 @@ public class UserServiceImpl implements UserService{
} }
@Override @Override
public User userInfo(Long id) public User userInfo(Long id) {
{ try {
try{
return userRepository.findById(id).get(); return userRepository.findById(id).get();
} } catch (Exception e) {
catch (Exception e)
{
throw new UserException(e.getMessage()); throw new UserException(e.getMessage());
} }
@ -89,12 +76,11 @@ public class UserServiceImpl implements UserService{
SimpleMailMessage message = new SimpleMailMessage(); SimpleMailMessage message = new SimpleMailMessage();
message.setTo(mailDto.getAddress()); message.setTo(mailDto.getAddress());
message.setFrom("passfinder111@gmail.com"); message.setFrom("passfinder111@gmail.com");
message.setSubject(mailDto.getTitle()); message.setSubject(mailDto.getTitle());
message.setText(mailDto.getMessage()); message.setText(mailDto.getMessage());
System.out.println("!!!!!!!!!!!!!!!!!!"+ message); System.out.println("!!!!!!!!!!!!!!!!!!" + message);
mailSender.send(message); mailSender.send(message);
@ -105,15 +91,15 @@ public class UserServiceImpl implements UserService{
String str = getTempPassword(); String str = getTempPassword();
MailDto dto = new MailDto(); MailDto dto = new MailDto();
dto.setAddress(user.getEmail()); dto.setAddress(user.getEmail());
dto.setTitle(user.getUserId()+"님의 임시비밀번호 안내 이메일 입니다."); dto.setTitle(user.getUserId() + "님의 임시비밀번호 안내 이메일 입니다.");
dto.setMessage("안녕하세요. EduFoucs 입니다. "+ "\n"+ "임시비밀번호 안내 관련 메일 입니다." + "\n[" + user.getName() + "]" + "님의 임시 비밀번호는 " dto.setMessage("안녕하세요. EduFoucs 입니다. " + "\n" + "임시비밀번호 안내 관련 메일 입니다." + "\n[" + user.getName() + "]" + "님의 임시 비밀번호는 "
+ str + " 입니다."); + str + " 입니다.");
System.out.println(dto); System.out.println(dto);
MemberChangeDto memberChangeDto = new MemberChangeDto(user.getId(),str); MemberChangeDto memberChangeDto = new MemberChangeDto(user.getId(), str);
System.out.println(memberChangeDto); System.out.println(memberChangeDto);
userRepository.updatePassword(memberChangeDto.getId(),memberChangeDto.getPassword()); userRepository.updatePassword(memberChangeDto.getId(), memberChangeDto.getPassword());
System.out.println(); System.out.println();
return dto; return dto;
@ -125,13 +111,11 @@ public class UserServiceImpl implements UserService{
User user = userRepository.findById(id).orElse(null); User user = userRepository.findById(id).orElse(null);
if(user == null) if (user == null) {
{
System.out.println("불가"); System.out.println("불가");
throw new RuntimeException("유효하지 않은 아이디입니다. 다시 입력하세요"); throw new RuntimeException("유효하지 않은 아이디입니다. 다시 입력하세요");
} } else {
else {
sendEamail(user); sendEamail(user);
} }
@ -143,16 +127,48 @@ public class UserServiceImpl implements UserService{
return userRepository.findById(id).get().getName(); return userRepository.findById(id).get().getName();
} }
@Override
public void changeuInfo(Long id) throws Exception {
}
@Override @Override
public void changePassword(Long id) throws Exception { public void changeuInfo(InfoDto infoDto, Long id) throws Exception {
User user = userRepository.findById(id).orElse(null);
if (user == null) {
throw new Exception("User not found");
}
if (infoDto.getName() != null)
{
user.setName(infoDto.getName());
}
if(infoDto.getEmail()!=null)
{
user.setEmail(infoDto.getEmail());
}
userRepository.save(user);
}
@Override
public void changePassword(PasswordDto passwordDto, Long id) throws Exception {
User user = userRepository.findById(id).orElse(null);
if (user == null) {
throw new Exception("User not found");
}
if (!user.getPassword().equals(passwordDto.getCurrentPassword())) {
throw new Exception("Current password is incorrect");
} else {
if (!passwordDto.getNewPassword().equals(passwordDto.getNewPasswordCheck())) {
throw new Exception("New password confirmation does not match");
}
}
user.setPassword(passwordDto.getNewPassword());
userRepository.save(user);
} }
public String getTempPassword() { public String getTempPassword() {
char[] charSet = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', char[] charSet = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};