feat: 유저 회원정보 수정 기능

This commit is contained in:
박정민 2024-07-30 13:04:45 +09:00
parent ace52afb55
commit bfa6387a72
5 changed files with 107 additions and 43 deletions

View File

@ -1,5 +1,7 @@
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.service.UserService;
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 = "아이디와 비밀번호를 이용하여 로그인 처리.")
@PostMapping("/login")
public ResponseEntity<Map<String, Object>> login(

View File

@ -1,8 +1,15 @@
package com.edufocus.edufocus.user.model.entity;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class InfoDto {
String name;
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;
import com.edufocus.edufocus.user.model.entity.InfoDto;
import com.edufocus.edufocus.user.model.entity.PasswordDto;
import com.edufocus.edufocus.user.model.entity.User;
public interface UserService {
@ -12,7 +14,7 @@ public interface UserService {
void sendEamail(User user) throws Exception;
void userCheck(Long id) throws Exception;
String getUserName(Long id) throws Exception;
void changeuInfo(Long id) throws Exception;
void changePassword(Long id) throws Exception;
void changeuInfo(InfoDto infoDto,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;
import com.edufocus.edufocus.user.model.entity.MailDto;
import com.edufocus.edufocus.user.model.entity.MemberChangeDto;
import com.edufocus.edufocus.user.model.entity.User;
import com.edufocus.edufocus.user.model.entity.*;
import com.edufocus.edufocus.user.model.exception.UserException;
import com.edufocus.edufocus.user.model.repository.UserRepository;
import jakarta.transaction.Transactional;
@ -21,46 +19,38 @@ import java.util.Optional;
@Service
@Transactional
@RequiredArgsConstructor
public class UserServiceImpl implements UserService{
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final JavaMailSender mailSender;
public void join(User user)
{
public void join(User 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());
if(findUser.isEmpty())
{
if (findUser.isEmpty()) {
throw new UserException("없는 유저");
}
if(findUser.isPresent())
{
if (findUser.isPresent()) {
User find = findUser.get();
if(find.getPassword().equals(user.getPassword()))
{
if (find.getPassword().equals(user.getPassword())) {
return find;
}
else{
} else {
throw new UserException("비밀번호 틀림");
}
}
else{
} else {
throw new UserException("없는 유저");
@ -69,13 +59,10 @@ public class UserServiceImpl implements UserService{
}
@Override
public User userInfo(Long id)
{
try{
public User userInfo(Long id) {
try {
return userRepository.findById(id).get();
}
catch (Exception e)
{
} catch (Exception e) {
throw new UserException(e.getMessage());
}
@ -89,12 +76,11 @@ public class UserServiceImpl implements UserService{
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(mailDto.getAddress());
message.setFrom("passfinder111@gmail.com");
message.setSubject(mailDto.getTitle());
message.setText(mailDto.getMessage());
System.out.println("!!!!!!!!!!!!!!!!!!"+ message);
System.out.println("!!!!!!!!!!!!!!!!!!" + message);
mailSender.send(message);
@ -105,15 +91,15 @@ public class UserServiceImpl implements UserService{
String str = getTempPassword();
MailDto dto = new MailDto();
dto.setAddress(user.getEmail());
dto.setTitle(user.getUserId()+"님의 임시비밀번호 안내 이메일 입니다.");
dto.setMessage("안녕하세요. EduFoucs 입니다. "+ "\n"+ "임시비밀번호 안내 관련 메일 입니다." + "\n[" + user.getName() + "]" + "님의 임시 비밀번호는 "
dto.setTitle(user.getUserId() + "님의 임시비밀번호 안내 이메일 입니다.");
dto.setMessage("안녕하세요. EduFoucs 입니다. " + "\n" + "임시비밀번호 안내 관련 메일 입니다." + "\n[" + user.getName() + "]" + "님의 임시 비밀번호는 "
+ str + " 입니다.");
System.out.println(dto);
MemberChangeDto memberChangeDto = new MemberChangeDto(user.getId(),str);
MemberChangeDto memberChangeDto = new MemberChangeDto(user.getId(), str);
System.out.println(memberChangeDto);
userRepository.updatePassword(memberChangeDto.getId(),memberChangeDto.getPassword());
userRepository.updatePassword(memberChangeDto.getId(), memberChangeDto.getPassword());
System.out.println();
return dto;
@ -125,13 +111,11 @@ public class UserServiceImpl implements UserService{
User user = userRepository.findById(id).orElse(null);
if(user == null)
{
if (user == null) {
System.out.println("불가");
throw new RuntimeException("유효하지 않은 아이디입니다. 다시 입력하세요");
}
else {
} else {
sendEamail(user);
}
@ -143,16 +127,48 @@ public class UserServiceImpl implements UserService{
return userRepository.findById(id).get().getName();
}
@Override
public void changeuInfo(Long id) throws Exception {
}
@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() {
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'};