|
@@ -1,14 +1,20 @@
|
|
|
package com.example.ili_web.member.service;
|
|
package com.example.ili_web.member.service;
|
|
|
|
|
|
|
|
|
|
+import com.example.ili_web.board.dto.SuccessRes;
|
|
|
import com.example.ili_web.member.domain.Member;
|
|
import com.example.ili_web.member.domain.Member;
|
|
|
-import com.example.ili_web.member.dto.JoinReq;
|
|
|
|
|
-import com.example.ili_web.member.dto.LoginReq;
|
|
|
|
|
|
|
+import com.example.ili_web.member.dto.*;
|
|
|
import com.example.ili_web.member.repository.MemberRepository;
|
|
import com.example.ili_web.member.repository.MemberRepository;
|
|
|
|
|
+import com.example.ili_web.member.repository.MemberRepositoryDsl;
|
|
|
|
|
+import jakarta.persistence.EntityNotFoundException;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -16,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|
|
public class MemberService {
|
|
public class MemberService {
|
|
|
|
|
|
|
|
private final MemberRepository repository;
|
|
private final MemberRepository repository;
|
|
|
|
|
+ private final MemberRepositoryDsl repositoryDsl;
|
|
|
private final PasswordEncoder encoder;
|
|
private final PasswordEncoder encoder;
|
|
|
|
|
|
|
|
public ResponseEntity<?> login (LoginReq req) {
|
|
public ResponseEntity<?> login (LoginReq req) {
|
|
@@ -31,7 +38,47 @@ public class MemberService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public ResponseEntity join(JoinReq req) {
|
|
|
|
|
- return ResponseEntity.ok(null);
|
|
|
|
|
|
|
+ public ResponseEntity<SuccessRes> join(JoinReq req) {
|
|
|
|
|
+ Member member = Member.builder()
|
|
|
|
|
+ .userId(req.getUserId())
|
|
|
|
|
+ .password(encoder.encode(req.getPassword()))
|
|
|
|
|
+ .name(req.getName())
|
|
|
|
|
+ .email(req.getEmail())
|
|
|
|
|
+ .role("WAIT")
|
|
|
|
|
+ .useYn("Y")
|
|
|
|
|
+ .regDt(LocalDateTime.now())
|
|
|
|
|
+ .upDt(LocalDateTime.now())
|
|
|
|
|
+ .build();
|
|
|
|
|
+ repository.save(member);
|
|
|
|
|
+ return ResponseEntity.ok(new SuccessRes("200", "회원가입성공"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ResponseEntity checkId(JoinReq req) {
|
|
|
|
|
+ if (repository.existsByUserId(req.getUserId())) {
|
|
|
|
|
+ return ResponseEntity.ok().body("중복된 아이디입니다.");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return ResponseEntity.ok().body("사용 가능한 아이디입니다.");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ResponseEntity<MemberList> getMemberList(MemberListReq req) {
|
|
|
|
|
+ req.setOffset((req.getPage() -1) * req.getSize());
|
|
|
|
|
+ return ResponseEntity.ok(repositoryDsl.getMemberList(req));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Transactional
|
|
|
|
|
+ public ResponseEntity<SuccessRes> memberRole(MemberControlReq req) {
|
|
|
|
|
+ Member member = repository.findById(req.getId()).orElseThrow(()
|
|
|
|
|
+ ->new EntityNotFoundException("Member Not Found"));
|
|
|
|
|
+ member.updateMemberRole("ADMIN");
|
|
|
|
|
+ return ResponseEntity.ok(new SuccessRes("200", "수정 완료"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Transactional
|
|
|
|
|
+ public ResponseEntity<SuccessRes> deleteMember(MemberControlReq req) {
|
|
|
|
|
+ Member member = repository.findById(req.getId()).orElseThrow(()
|
|
|
|
|
+ ->new EntityNotFoundException("Member Not Found"));
|
|
|
|
|
+ member.deleteMember("N");
|
|
|
|
|
+ return ResponseEntity.ok(new SuccessRes("200", "삭제 완료"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|