diff --git a/src/main/generated/com/example/api/domain/QBusinessCategory.java b/src/main/generated/com/example/api/domain/QBusinessCategory.java index 975e63bc..6654e604 100644 --- a/src/main/generated/com/example/api/domain/QBusinessCategory.java +++ b/src/main/generated/com/example/api/domain/QBusinessCategory.java @@ -55,7 +55,7 @@ public QBusinessCategory(PathMetadata metadata, PathInits inits) { public QBusinessCategory(Class type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); this.business = inits.isInitialized("business") ? new QBusiness(forProperty("business"), inits.get("business")) : null; - this.category = inits.isInitialized("category") ? new QCategory(forProperty("category")) : null; + this.category = inits.isInitialized("category") ? new QCategory(forProperty("category"), inits.get("category")) : null; } } diff --git a/src/main/generated/com/example/api/domain/QCategory.java b/src/main/generated/com/example/api/domain/QCategory.java index 5065ce4c..0bf67e23 100644 --- a/src/main/generated/com/example/api/domain/QCategory.java +++ b/src/main/generated/com/example/api/domain/QCategory.java @@ -7,6 +7,7 @@ import com.querydsl.core.types.PathMetadata; import javax.annotation.processing.Generated; import com.querydsl.core.types.Path; +import com.querydsl.core.types.dsl.PathInits; /** @@ -17,10 +18,14 @@ public class QCategory extends EntityPathBase { private static final long serialVersionUID = -1449757245L; + private static final PathInits INITS = PathInits.DIRECT2; + public static final QCategory category = new QCategory("category"); public final QBaseEntity _super = new QBaseEntity(this); + public final QAccount account; + public final NumberPath categoryId = createNumber("categoryId", Long.class); public final StringPath categoryName = createString("categoryName"); @@ -32,15 +37,24 @@ public class QCategory extends EntityPathBase { public final DateTimePath updatedDate = _super.updatedDate; public QCategory(String variable) { - super(Category.class, forVariable(variable)); + this(Category.class, forVariable(variable), INITS); } public QCategory(Path path) { - super(path.getType(), path.getMetadata()); + this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS)); } public QCategory(PathMetadata metadata) { - super(Category.class, metadata); + this(metadata, PathInits.getFor(metadata, INITS)); + } + + public QCategory(PathMetadata metadata, PathInits inits) { + this(Category.class, metadata, inits); + } + + public QCategory(Class type, PathMetadata metadata, PathInits inits) { + super(type, metadata, inits); + this.account = inits.isInitialized("account") ? new QAccount(forProperty("account")) : null; } } diff --git a/src/main/generated/com/example/api/domain/QFlavored.java b/src/main/generated/com/example/api/domain/QFlavored.java index 5c0a13db..a29bd767 100644 --- a/src/main/generated/com/example/api/domain/QFlavored.java +++ b/src/main/generated/com/example/api/domain/QFlavored.java @@ -54,7 +54,7 @@ public QFlavored(PathMetadata metadata, PathInits inits) { public QFlavored(Class type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); - this.category = inits.isInitialized("category") ? new QCategory(forProperty("category")) : null; + this.category = inits.isInitialized("category") ? new QCategory(forProperty("category"), inits.get("category")) : null; this.employee = inits.isInitialized("employee") ? new QAccount(forProperty("employee")) : null; } diff --git a/src/main/generated/com/example/api/domain/QReview.java b/src/main/generated/com/example/api/domain/QReview.java index 82a88240..30f99fe2 100644 --- a/src/main/generated/com/example/api/domain/QReview.java +++ b/src/main/generated/com/example/api/domain/QReview.java @@ -1,7 +1,3 @@ -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) package com.example.api.domain; import static com.querydsl.core.types.PathMetadataFactory.*; @@ -11,10 +7,7 @@ >>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) import com.querydsl.core.types.PathMetadata; import javax.annotation.processing.Generated; import com.querydsl.core.types.Path; -<<<<<<< HEAD import com.querydsl.core.types.dsl.PathInits; -======= ->>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) /** @@ -25,26 +18,20 @@ public class QReview extends EntityPathBase { private static final long serialVersionUID = 731127133L; -<<<<<<< HEAD private static final PathInits INITS = PathInits.DIRECT2; -======= ->>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) public static final QReview review = new QReview("review"); public final QBaseEntity _super = new QBaseEntity(this); -<<<<<<< HEAD public final QContract contract; //inherited public final DateTimePath createdDate = _super.createdDate; -<<<<<<< HEAD - public final QOfferEmployment offerEmployment; -======= public final QAccount employee; ->>>>>>> ace3d7a (#69 test(ReviewServiceTest): 테스트 코드 추가) + + public final QOfferEmployment offerEmployment; public final StringPath reviewContent = createString("reviewContent"); @@ -75,43 +62,11 @@ public QReview(PathMetadata metadata, PathInits inits) { public QReview(Class type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); -<<<<<<< HEAD this.contract = inits.isInitialized("contract") ? new QContract(forProperty("contract"), inits.get("contract")) : null; - this.offerEmployment = inits.isInitialized("offerEmployment") ? new QOfferEmployment(forProperty("offerEmployment"), inits.get("offerEmployment")) : null; -======= this.employee = inits.isInitialized("employee") ? new QAccount(forProperty("employee")) : null; + this.offerEmployment = inits.isInitialized("offerEmployment") ? new QOfferEmployment(forProperty("offerEmployment"), inits.get("offerEmployment")) : null; this.writer = inits.isInitialized("writer") ? new QBusiness(forProperty("writer"), inits.get("writer")) : null; ->>>>>>> ace3d7a (#69 test(ReviewServiceTest): 테스트 코드 추가) -======= - //inherited - public final DateTimePath createdDate = _super.createdDate; - - public final StringPath reviewContent = createString("reviewContent"); - - public final NumberPath reviewStarPoint = createNumber("reviewStarPoint", Integer.class); - - public final NumberPath suggestId = createNumber("suggestId", Long.class); - - //inherited - public final DateTimePath updatedDate = _super.updatedDate; - - public QReview(String variable) { - super(Review.class, forVariable(variable)); - } - - public QReview(Path path) { - super(path.getType(), path.getMetadata()); - } - - public QReview(PathMetadata metadata) { - super(Review.class, metadata); ->>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) } } -<<<<<<< HEAD -======= ->>>>>>> 326d0a2 (#65 feat(OfferEmploymentService): 서비스 코드 작성) -======= ->>>>>>> b4d1a08 (#65 test(OfferEmploymentServiceTest): 테스트 코드 작성) diff --git a/src/main/generated/com/example/api/domain/QReviewReport.java b/src/main/generated/com/example/api/domain/QReviewReport.java index 826198cd..68d48ced 100644 --- a/src/main/generated/com/example/api/domain/QReviewReport.java +++ b/src/main/generated/com/example/api/domain/QReviewReport.java @@ -46,7 +46,7 @@ public QReviewReport(PathMetadata metadata, PathInits inits) { public QReviewReport(Class type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); - this.review = inits.isInitialized("review") ? new QReview(forProperty("review")) : null; + this.review = inits.isInitialized("review") ? new QReview(forProperty("review"), inits.get("review")) : null; } } diff --git a/src/main/java/com/example/api/account/controller/AccountController.java b/src/main/java/com/example/api/account/controller/AccountController.java index 2478fefc..5a48a335 100644 --- a/src/main/java/com/example/api/account/controller/AccountController.java +++ b/src/main/java/com/example/api/account/controller/AccountController.java @@ -61,10 +61,4 @@ public ResponseEntity verifyBusinessNumber(@Valid @RequestBody final Bus String successMessage = signUpService.verifyBusinessNumber(request); return ResponseEntity.ok(successMessage); } - - @PostMapping("/sign-up/employer") - public ResponseEntity signUpEmployer(@Valid @RequestBody final SignUpEmployerRequest request) { - String successMessage = signUpService.signUpEmployer(request); - return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); - } } \ No newline at end of file diff --git a/src/main/java/com/example/api/account/service/AccountService.java b/src/main/java/com/example/api/account/service/AccountService.java index d92d4ce3..d0386ba4 100644 --- a/src/main/java/com/example/api/account/service/AccountService.java +++ b/src/main/java/com/example/api/account/service/AccountService.java @@ -14,14 +14,12 @@ import com.example.api.exception.BusinessException; import com.example.api.exception.ErrorCode; import com.example.api.global.properties.VendorProperties; -import jakarta.transaction.Transactional; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -29,9 +27,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.client.RestTemplate; -import java.io.UnsupportedEncodingException; import java.net.URI; -import java.net.URISyntaxException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; @@ -44,7 +40,6 @@ public class AccountService { private final CodeRepository codeRepository; private final PasswordEncoder passwordEncoder; private final MailSender mailSender; - private final AccountRepository accountRepository; private final BusinessRepository businessRepository; private final RestTemplate restTemplate; private final VendorProperties vendorProperties; @@ -97,7 +92,6 @@ public String signUpEmployer(@Valid final SignUpEmployerRequest request) { return "회원가입이 완료되었습니다"; } - private void saveEmployeeAccount(final SignUpEmployeeRequest request) { @Transactional(readOnly = true) public Account loadAccount(final Long requestMemberId) { return accountRepository.findById(requestMemberId) @@ -110,8 +104,7 @@ public void deleteAccount(final Long requestMemberId) { .orElseThrow(() -> new BusinessException(ErrorCode.ACCOUNT_NOT_FOUND_EXCEPTION)); account.setDeleted(true); } - - private void saveAccount(final SignUpRequest request) { + private Account saveEmployeeAccount(final SignUpEmployeeRequest request) { Collection roles = List.of(request.role()); Account account = new Account( request.loginId(), @@ -124,7 +117,7 @@ private void saveAccount(final SignUpRequest request) { roles, request.emailReceivable() ); - accountRepository.save(account); + return accountRepository.save(account); } private void saveEmployerAccount(final SignUpEmployerRequest request) { @@ -164,11 +157,6 @@ private void validateDuplicateEmail(final EmailRequest emailRequest) { } } - public Account loadAccount(final Long requestMemberId) { - return accountRepository.findById(requestMemberId) - .orElseThrow(() -> new BusinessException(ErrorCode.ACCOUNT_NOT_FOUND_EXCEPTION)); - } - @Transactional public String verifyBusinessNumber(@Validated final BusinessNumberRequest request){ URI uri = createUrl(); diff --git a/src/main/java/com/example/api/board/controller/BoardController.java b/src/main/java/com/example/api/board/controller/BoardController.java index 69acca3c..c859c87d 100644 --- a/src/main/java/com/example/api/board/controller/BoardController.java +++ b/src/main/java/com/example/api/board/controller/BoardController.java @@ -47,13 +47,9 @@ public ResponseEntity changeOpenStatus(@PathVariable("employeeId") Long employee @PostMapping("/api/v1/possible-board/submit/{employeeId}") public ResponseEntity submitBoard(@PathVariable("employeeId") Long employeeId, @RequestBody MyInfoDTO myInfo) { EmployeeIdRequest employeeIdRequest = new EmployeeIdRequest(employeeId); - boolean updated = employeeService.updateUserInfo(employeeIdRequest, myInfo); - if (updated) { - MyInfoDTO myInfoById = boardService.findMyInfoById(employeeIdRequest); - List categoryList = categoryService.getAllCategories(); - return ResponseEntity.ok(new Board(myInfoById, categoryList)); - } else { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body("사용자를 찾을 수 없습니다."); - } + employeeService.updateUserInfo(employeeIdRequest, myInfo); + MyInfoDTO myInfoById = boardService.findMyInfoById(employeeIdRequest); + List categoryList = categoryService.getAllCategories(); + return ResponseEntity.ok(new Board(myInfoById, categoryList)); } } diff --git a/src/main/java/com/example/api/board/service/BoardService.java b/src/main/java/com/example/api/board/service/BoardService.java index 5084cde4..54c1b5eb 100644 --- a/src/main/java/com/example/api/board/service/BoardService.java +++ b/src/main/java/com/example/api/board/service/BoardService.java @@ -6,6 +6,7 @@ import com.example.api.domain.repository.FlavoredRepository; import com.example.api.domain.repository.MyInfoRepository; import com.example.api.domain.repository.OfferEmploymentRepository; +import com.example.api.possbileboard.PossibleBoardRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/example/api/board/service/EmployeeService.java b/src/main/java/com/example/api/board/service/EmployeeService.java index d1149429..08fbeda4 100644 --- a/src/main/java/com/example/api/board/service/EmployeeService.java +++ b/src/main/java/com/example/api/board/service/EmployeeService.java @@ -5,6 +5,8 @@ import com.example.api.board.dto.response.ExternalCareerDTO; import com.example.api.board.dto.response.MyInfoDTO; import com.example.api.board.dto.response.PossibleBoardDTO; +import com.example.api.board.dto.update.UpdateUserInfoRequest; +import com.example.api.board.entitiy.update.UpdateAccountConditionManager; import com.example.api.domain.Account; import com.example.api.domain.Category; import com.example.api.domain.ExternalCareer; @@ -13,6 +15,8 @@ import com.example.api.domain.repository.EmployeeRepository; import com.example.api.domain.repository.ExternalCareerRepository; import com.example.api.domain.repository.FlavoredRepository; +import com.example.api.exception.BusinessException; +import com.example.api.exception.ErrorCode; import com.example.api.possbileboard.PossibleBoardRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -31,6 +35,7 @@ public class EmployeeService { private final ExternalCareerRepository externalCareerRepository; private final FlavoredRepository flavoredRepository; private final PossibleBoardRepository possibleBoardRepository; + private final UpdateAccountConditionManager updateAccountConditionManager; @Transactional public Boolean changeOpenStatus(final EmployeeIdRequest employeeIdRequest, boolean openStatus) { @@ -42,24 +47,27 @@ public Boolean changeOpenStatus(final EmployeeIdRequest employeeIdRequest, boole } @Transactional - public boolean updateUserInfo(final EmployeeIdRequest employeeIdRequest, MyInfoDTO myInfo) { - return employeeRepository.findByAccountId(employeeIdRequest.employeeId()).map(employee -> { - setUserInfo(employee, myInfo); + public void updateUserInfo(final EmployeeIdRequest employeeIdRequest, MyInfoDTO myInfo) { + try { + Account employee = employeeRepository.findByAccountId(employeeIdRequest.employeeId()).orElseThrow(); + updateAccountConditionManager.updateAccount(employee, getUpdateUserInfoRequest(myInfo)); employeeRepository.save(employee); - updateExternalCareer(employee, myInfo.getExternalCareerList()); updateFlavored(employee, myInfo.getFlavoredCategoryList()); updatePossibleBoard(employee, myInfo.getPossibleBoardList()); - return true; - }).orElse(false); + }catch (Exception e) { + throw new BusinessException(ErrorCode.NULL_USER); + } } - void setUserInfo(Account employee, MyInfoDTO myInfo) { - employee.setName(myInfo.getName()); - employee.setSex(myInfo.getSex()); - employee.setAge(myInfo.getAge()); - employee.setPhoneNumber(myInfo.getPhone()); - employee.setEmail(myInfo.getEmail()); - employee.setNickname(myInfo.getNickname()); + private UpdateUserInfoRequest getUpdateUserInfoRequest(MyInfoDTO myInfo) { + return new UpdateUserInfoRequest( + myInfo.getName(), + myInfo.getSex(), + myInfo.getAge(), + myInfo.getPhone(), + myInfo.getEmail(), + myInfo.getNickname() + ); } public void updateExternalCareer(Account employee, List newExternalCareerList) { List existList = externalCareerRepository.findAllByEmployeeAccountId(employee.getAccountId()); diff --git a/src/main/java/com/example/api/business/controller/BusinessController.java b/src/main/java/com/example/api/business/controller/BusinessController.java index d08ec3c2..55d9eb7a 100644 --- a/src/main/java/com/example/api/business/controller/BusinessController.java +++ b/src/main/java/com/example/api/business/controller/BusinessController.java @@ -1,5 +1,6 @@ package com.example.api.business.controller; +import com.example.api.account.entity.Location; import com.example.api.business.BusinessQueryService; import com.example.api.business.BusinessService; import com.example.api.business.dto.AddBusinessCommand; @@ -52,7 +53,7 @@ public ResponseEntity addBusiness( record AddBusinessRequest( Long requestMemberId, String businessName, - String location, + Location location, List categoryIds, String representationName ) { @@ -65,7 +66,7 @@ record ModifyBusinessRequest( @NotNull Long businessId, String businessName, - String location, + Location location, String representationName, List categoryId ) { diff --git a/src/main/java/com/example/api/business/domain/BusinessLocation.java b/src/main/java/com/example/api/business/domain/BusinessLocation.java index 38236a0f..51990e53 100644 --- a/src/main/java/com/example/api/business/domain/BusinessLocation.java +++ b/src/main/java/com/example/api/business/domain/BusinessLocation.java @@ -1,12 +1,13 @@ package com.example.api.business.domain; +import com.example.api.account.entity.Location; import lombok.Getter; @Getter public class BusinessLocation { - private final String location; + private final Location location; - public BusinessLocation(String location) { + public BusinessLocation(Location location) { this.location = location; } } diff --git a/src/main/java/com/example/api/business/dto/AddBusinessCommand.java b/src/main/java/com/example/api/business/dto/AddBusinessCommand.java index 0c7cc344..565ae71a 100644 --- a/src/main/java/com/example/api/business/dto/AddBusinessCommand.java +++ b/src/main/java/com/example/api/business/dto/AddBusinessCommand.java @@ -1,5 +1,6 @@ package com.example.api.business.dto; +import com.example.api.account.entity.Location; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -7,7 +8,7 @@ public record AddBusinessCommand( @NotNull Long requestMemberId, String businessName, - String location, + Location location, List categoryIds, String representationName diff --git a/src/main/java/com/example/api/business/dto/BusinessDetailsResponse.java b/src/main/java/com/example/api/business/dto/BusinessDetailsResponse.java index 1aaaa8c9..f036b2b4 100644 --- a/src/main/java/com/example/api/business/dto/BusinessDetailsResponse.java +++ b/src/main/java/com/example/api/business/dto/BusinessDetailsResponse.java @@ -1,11 +1,13 @@ package com.example.api.business.dto; +import com.example.api.account.entity.Location; + import java.util.List; public record BusinessDetailsResponse( String businessName, Long businessId, BusinessOwner owner, - String location, + Location location, List categoryInfos) { } diff --git a/src/main/java/com/example/api/business/dto/ModifyBusinessCommand.java b/src/main/java/com/example/api/business/dto/ModifyBusinessCommand.java index 87b4efc4..840694f7 100644 --- a/src/main/java/com/example/api/business/dto/ModifyBusinessCommand.java +++ b/src/main/java/com/example/api/business/dto/ModifyBusinessCommand.java @@ -1,5 +1,6 @@ package com.example.api.business.dto; +import com.example.api.account.entity.Location; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -7,7 +8,7 @@ public record ModifyBusinessCommand( @NotNull Long businessId, String businessName, - String location, + Location location, String representationName, List categoryIds ) { diff --git a/src/main/java/com/example/api/contracts/ReviewService.java b/src/main/java/com/example/api/contracts/ContractReviewService.java similarity index 94% rename from src/main/java/com/example/api/contracts/ReviewService.java rename to src/main/java/com/example/api/contracts/ContractReviewService.java index db019fc3..efd3a941 100644 --- a/src/main/java/com/example/api/contracts/ReviewService.java +++ b/src/main/java/com/example/api/contracts/ContractReviewService.java @@ -4,9 +4,9 @@ import com.example.api.domain.Business; import com.example.api.domain.Contract; import com.example.api.domain.Review; -import com.example.api.domain.repository.ReviewRepository; import com.example.api.exception.BusinessException; import com.example.api.exception.ErrorCode; +import com.example.api.review.ReviewRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -14,7 +14,7 @@ @Service @RequiredArgsConstructor -public class ReviewService { +public class ContractReviewService { private final ContractRepository contractRepository; private final ReviewRepository reviewRepository; @@ -32,4 +32,4 @@ private void validateContractOwner(final Long requestMemberId, final Business bu throw new BusinessException("본인의 계약에만 리뷰가 가능합니다", ErrorCode.CONTRACT_EXCEPTION); } } -} +} \ No newline at end of file diff --git a/src/main/java/com/example/api/contracts/ReviewQueryService.java b/src/main/java/com/example/api/contracts/ReviewQueryService.java index 18721029..ca35d9b3 100644 --- a/src/main/java/com/example/api/contracts/ReviewQueryService.java +++ b/src/main/java/com/example/api/contracts/ReviewQueryService.java @@ -3,8 +3,9 @@ import com.example.api.contracts.dto.QueryEmployersReviewCommand; import com.example.api.contracts.dto.ReviewResponse; import com.example.api.domain.Review; -import com.example.api.domain.repository.ReviewRepository; import java.util.List; + +import com.example.api.review.ReviewRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/example/api/contracts/controller/ReviewController.java b/src/main/java/com/example/api/contracts/controller/ContractReviewController.java similarity index 91% rename from src/main/java/com/example/api/contracts/controller/ReviewController.java rename to src/main/java/com/example/api/contracts/controller/ContractReviewController.java index e897da32..13a20031 100644 --- a/src/main/java/com/example/api/contracts/controller/ReviewController.java +++ b/src/main/java/com/example/api/contracts/controller/ContractReviewController.java @@ -1,7 +1,7 @@ package com.example.api.contracts.controller; import com.example.api.contracts.ReviewQueryService; -import com.example.api.contracts.ReviewService; +import com.example.api.contracts.ContractReviewService; import com.example.api.contracts.dto.AddReviewCommand; import com.example.api.contracts.dto.QueryEmployersReviewCommand; import com.example.api.contracts.dto.ReviewResponse; @@ -21,8 +21,8 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api/v1/contracts") -public class ReviewController { - private final ReviewService reviewService; +public class ContractReviewController { + private final ContractReviewService contractReviewService; private final ReviewQueryService reviewQueryService; @@ -44,7 +44,7 @@ public ResponseEntity addReview( @AuthenticationPrincipal final Long memberId ) { final AddReviewCommand command = request.toCommand(memberId); - reviewService.saveReview(command); + contractReviewService.saveReview(command); return ResponseEntity.ok(null); } diff --git a/src/main/java/com/example/api/domain/Account.java b/src/main/java/com/example/api/domain/Account.java index bd9b7bd7..276424df 100644 --- a/src/main/java/com/example/api/domain/Account.java +++ b/src/main/java/com/example/api/domain/Account.java @@ -115,4 +115,8 @@ public void updateUserInfo(UpdateUserInfoRequest request){ public void setDeleted(boolean deleted){ this.deleted = deleted; } + + public void setOpenStatus(boolean openStatus) { + this.openStatus = openStatus; + } } \ No newline at end of file diff --git a/src/main/java/com/example/api/domain/Business.java b/src/main/java/com/example/api/domain/Business.java index f816a60b..7a1a460c 100644 --- a/src/main/java/com/example/api/domain/Business.java +++ b/src/main/java/com/example/api/domain/Business.java @@ -48,32 +48,30 @@ public void setBusinessName(String businessName) { this.businessName = businessName; } - public void setLocation(String location) { + public void setLocation(Location location) { this.location = location; } - public Business() { - } - public Business(Account user, String businessRegistrationNumber, String businessName, String representationName, String businessOpenDate, Location location) { - this.employer = user; - this.registrationNumber = businessRegistrationNumber; - this.businessName = businessName; + public void setRepresentationName(String representationName) { this.representationName = representationName; - this.openDate = LocalDate.parse(businessOpenDate); - this.location = location; } -} - public Business(String businessName, String location, String representationName) { + public Business(String businessName, Location location, String representationName) { this.businessName = businessName; this.location = location; this.representationName = representationName; } - public void setRepresentationName(String representationName) { + public Business(Account user, String businessRegistrationNumber, String businessName, String representationName, String businessOpenDate, Location location) { + this.employer = user; + this.registrationNumber = businessRegistrationNumber; + this.businessName = businessName; this.representationName = representationName; + this.openDate = LocalDate.parse(businessOpenDate); + this.location = location; } - public Business(String businessName, String location, String representationName, Account employer, LocalDate openDate, String registrationNumber) { + + public Business(String businessName, Location location, String representationName, Account employer, LocalDate openDate, String registrationNumber) { this.businessName = businessName; this.location = location; this.representationName = representationName; diff --git a/src/main/java/com/example/api/domain/OfferEmployment.java b/src/main/java/com/example/api/domain/OfferEmployment.java index 72cf5368..b46b4c66 100644 --- a/src/main/java/com/example/api/domain/OfferEmployment.java +++ b/src/main/java/com/example/api/domain/OfferEmployment.java @@ -2,9 +2,7 @@ import com.example.api.offeremployment.dto.OfferEmploymentCommand; import jakarta.persistence.*; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; +import lombok.*; import java.time.LocalDateTime; @@ -14,6 +12,7 @@ @Getter @EqualsAndHashCode @Table(name = "OFFER_EMPLOYMENT") +@NoArgsConstructor public class OfferEmployment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -48,6 +47,24 @@ public class OfferEmployment { @Column(name = "SUGGEST_REGISTER_TIME") private LocalDateTime suggestRegisterTime; + public static OfferEmployment fromCommand(OfferEmploymentCommand offerEmploymentCommand, Account employee, Business business) { + return new OfferEmployment( + business, + employee, + offerEmploymentCommand.suggestStartTime(), + offerEmploymentCommand.suggestEndTime(), + offerEmploymentCommand.suggestHourlyPay() + ); + } + + public OfferEmployment(Business business, Account employee, LocalDateTime suggestStartTime, LocalDateTime suggestEndTime, int suggestHourlyPay) { + this.business = business; + this.employee = employee; + this.suggestStartTime = suggestStartTime; + this.suggestEndTime = suggestEndTime; + this.suggestHourlyPay = suggestHourlyPay; + } + @PrePersist protected void onCreate() { this.suggestRegisterTime = LocalDateTime.now(); diff --git a/src/main/java/com/example/api/offeremployment/OfferEmploymentRepository.java b/src/main/java/com/example/api/offeremployment/OfferEmploymentRepository.java deleted file mode 100644 index 60940ad5..00000000 --- a/src/main/java/com/example/api/offeremployment/OfferEmploymentRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.offeremployment; - -import com.example.api.domain.OfferEmployment; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface OfferEmploymentRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/api/offeremployment/OfferEmploymentService.java b/src/main/java/com/example/api/offeremployment/OfferEmploymentService.java index 0d22a0b0..37f3853a 100644 --- a/src/main/java/com/example/api/offeremployment/OfferEmploymentService.java +++ b/src/main/java/com/example/api/offeremployment/OfferEmploymentService.java @@ -5,6 +5,7 @@ import com.example.api.domain.Account; import com.example.api.domain.Business; import com.example.api.domain.OfferEmployment; +import com.example.api.domain.repository.OfferEmploymentRepository; import com.example.api.offeremployment.dto.OfferEmploymentCommand; import com.example.api.offeremployment.dto.OfferEmploymentRequest; import com.example.api.offeremployment.dto.OfferEmploymentResponse; diff --git a/src/main/java/com/example/api/possbileboard/PossibleBoardRepository.java b/src/main/java/com/example/api/possbileboard/PossibleBoardRepository.java index 5c325a45..18a05d2d 100644 --- a/src/main/java/com/example/api/possbileboard/PossibleBoardRepository.java +++ b/src/main/java/com/example/api/possbileboard/PossibleBoardRepository.java @@ -21,7 +21,7 @@ public interface PossibleBoardRepository extends JpaRepository findAllByEmployeeAccountId(Long employeeId); - @Query("select new com.example.api.board.controller.domain.response.PossibleBoardDTO(p.possibleId, p.startTime, p.endTime) " + - "from PossibleBoard p where p.employee.accountId = :employeeId") - List findAllDTOByEmployeeAccountId(@Param("employeeId")Long employeeId); - -} - @Query("select new com.example.api.board.dto.response.PossibleBoardDTO(p.possibleId, p.startTime, p.endTime) " + "from PossibleBoard p where p.employee.accountId = :employeeId") List findAllDTOByEmployeeAccountId(@Param("employeeId")Long employeeId); diff --git a/src/main/java/com/example/api/review/controller/ReviewController.java b/src/main/java/com/example/api/review/controller/ReviewController.java index f3f65911..db5bf242 100644 --- a/src/main/java/com/example/api/review/controller/ReviewController.java +++ b/src/main/java/com/example/api/review/controller/ReviewController.java @@ -1,8 +1,7 @@ -<<<<<<< HEAD -<<<<<<< HEAD package com.example.api.review.controller; import com.example.api.review.ReviewService; +import com.example.api.review.dto.ReviewCommand; import com.example.api.review.dto.ReviewResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -29,31 +28,6 @@ public ResponseEntity> getReviewsByEmployee( final List reviews = reviewService.getReviewsByEmployee(reivewId); return ResponseEntity.ok(reviews); } -} -======= -package com.example.api.review.controller;public class ReviewController { -======= -package com.example.api.review.controller; - -import com.example.api.review.ReviewService; -import com.example.api.review.dto.ReviewCommand; -import com.example.api.review.dto.ReviewResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/api/v1/info") -@RequiredArgsConstructor -public class ReviewController { -<<<<<<< HEAD ->>>>>>> 0ff3ba1 (#53 feat(ReviewService): 서비스 코드 구현) -} ->>>>>>> 2f6b5cc (#53 feat(ReviewCommand): DTO 작성) -======= - private final ReviewService reviewService; @GetMapping("/my/reviews") public ResponseEntity> getMyReviews( @@ -64,4 +38,3 @@ public ResponseEntity> getMyReviews( return ResponseEntity.ok(reviews); } } ->>>>>>> 27670a3 (#53 feat(ReviewController): 컨트롤러 코드 구현) diff --git a/src/test/java/com/example/api/global/BaseIntegrationTest.java b/src/test/java/com/example/api/global/BaseIntegrationTest.java deleted file mode 100644 index 36adccaa..00000000 --- a/src/test/java/com/example/api/global/BaseIntegrationTest.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.example.api.global; - -import com.example.api.board.dto.response.InnerCareerDTO; -import com.example.api.board.dto.response.PossibleBoardDTO; -import com.example.api.account.entity.Location; -import com.example.api.board.controller.domain.response.CategoryDTO; -import com.example.api.board.controller.domain.response.ExternalCareerDTO; -import com.example.api.board.controller.domain.response.InnerCareerDTO; -import com.example.api.board.controller.domain.response.PossibleBoardDTO; -import com.example.api.business.BusinessRepository; -import com.example.api.contracts.ContractRepository; -import com.example.api.domain.Account; -import com.example.api.domain.Business; -import com.example.api.domain.BusinessCategory; -import com.example.api.domain.Category; -import com.example.api.domain.Contract; -import com.example.api.domain.ExternalCareer; -import com.example.api.domain.OfferEmployment; -import com.example.api.domain.PossibleBoard; -import com.example.api.domain.Review; -import com.example.api.domain.repository.CategoryRepository; -import com.example.api.domain.repository.EmployeeRepository; -import com.example.api.domain.repository.EmployerRepository; -import com.example.api.domain.repository.ExternalCareerRepository; -import com.example.api.domain.repository.FlavoredRepository; -import com.example.api.domain.repository.MyInfoRepository; -import com.example.api.domain.repository.OfferEmploymentRepository; -import com.example.api.possbileboard.PossibleBoardRepository; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import com.example.api.domain.*; -import com.example.api.domain.repository.*; -import com.example.api.possbileboard.PossibleBoardRepository; -import org.junit.jupiter.api.BeforeEach; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Rollback; -import org.springframework.test.context.ActiveProfiles; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@SpringBootTest -@ActiveProfiles("test") -@Rollback(false) -public class BaseIntegrationTest { - - @Autowired - private BusinessRepository businessRepository; - @Autowired - private CategoryRepository categoryRepository; - @Autowired - private FlavoredRepository flavoredRepository; - @Autowired - private ContractRepository contractRepository; - @Autowired - private EmployeeRepository employeeRepository; - @Autowired - private EmployerRepository employerRepository; - @Autowired - private MyInfoRepository myInfoRepository; - @Autowired - private OfferEmploymentRepository offerEmploymentRepository; - @Autowired - private PossibleBoardRepository possibleBoardRepository; - @Autowired - private ReviewRepository reviewRepository; - @Autowired - private ExternalCareerRepository externalCareerRepository; - - protected List externalCareerList; - protected List possibleBoardList; - protected List innerCareerList; - protected List flavoredCategoryList; - - protected Category category1, category2; - - - @BeforeEach - void setUpData() { - Account employee = new Account(); - employee.setAge(30); - employee.setEmail("johndoe@example.com"); - employee.setName("John Doe"); - employee.setSex("Male"); - employee.setPhoneNumber("123-456-7890"); - employee.setNickname("Johnny"); - employee.setStarPoint(3.5f); - employee.setWorkCount(3); - employeeRepository.save(employee); - - Account employer = new Account(); - employer.setNickname("EmployerOne"); - employerRepository.save(employer); - - category1 = new Category(); - category1.setCategoryName("IT Services"); - categoryRepository.save(category1); - - category2 = new Category(); - category2.setCategoryName("Consulting"); - categoryRepository.save(category2); - - Business business = new Business(); - business.setBusinessName("Tech Solutions Inc."); - business.setLocation(new Location("우편번호", "주소", "상세주소")); - business.setRepresentationName("James"); - business.setOpenDate(LocalDate.now()); - business.setRegistrationNumber("123-456-789"); - business.setEmployer(employer); // 다대일 관계 설정 - - BusinessCategory businessCategory1 = new BusinessCategory(); - businessCategory1.setBusiness(business); - businessCategory1.setCategory(category1); - - BusinessCategory businessCategory2 = new BusinessCategory(); - businessCategory2.setBusiness(business); - businessCategory2.setCategory(category2); - - business.setBusinessCategories(List.of(businessCategory1, businessCategory2)); - businessRepository.save(business); - - OfferEmployment offerEmployment = new OfferEmployment(); - offerEmployment.setBusiness(business); - offerEmployment.setEmployee(employee); - offerEmployment.setSuggestStartTime(LocalDateTime.of(2024, 11, 5, 9, 0)); - offerEmployment.setSuggestEndTime(LocalDateTime.of(2024, 11, 5, 17, 0)); - offerEmployment.setSuggestHourlyPay(20000); - offerEmployment.setSuggestSucceeded(false); - offerEmploymentRepository.save(offerEmployment); - - Contract contract = new Contract(offerEmployment, - LocalDateTime.of(2024, 11, 10, 9, 0), - LocalDateTime.of(2024, 11, 10, 18, 0), - 22000, - true); - - contractRepository.save(contract); - - ExternalCareer externalCareer1 = new ExternalCareer(employee, "Consultant", "24-10-01"); - ExternalCareer externalCareer2 = new ExternalCareer(employee, "Architect", "24-10-08"); - externalCareerRepository.save(externalCareer1); - externalCareerRepository.save(externalCareer2); - - externalCareerList = new ArrayList<>(); - externalCareerList.add(new ExternalCareerDTO(employee.getAccountId(), externalCareer1.getName(), externalCareer1.getPeriod())); - externalCareerList.add(new ExternalCareerDTO(employee.getAccountId(), externalCareer2.getName(), externalCareer2.getPeriod())); - - Review review1 = new Review(1L, 4, "Good work experience"); - reviewRepository.save(review1); - - innerCareerList = new ArrayList<>(); - innerCareerList.add(new InnerCareerDTO(business.getBusinessName(), contract.getContractStartTime(), business.getRepresentationName(), review1)); - - PossibleBoard possibleBoard1 = new PossibleBoard(employee, LocalDateTime.of(2024, 11, 5, 12, 0), LocalDateTime.of(2024, 11, 5, 18, 0)); - PossibleBoard possibleBoard2 = new PossibleBoard(employee, LocalDateTime.of(2024, 11, 6, 12, 0), LocalDateTime.of(2024, 11, 6, 18, 0)); - possibleBoardRepository.save(possibleBoard1); - possibleBoardRepository.save(possibleBoard2); - - possibleBoardList = new ArrayList<>(); - possibleBoardList.add(new PossibleBoardDTO(employee.getAccountId(), possibleBoard1.getStartTime(), possibleBoard1.getEndTime())); - possibleBoardList.add(new PossibleBoardDTO(employee.getAccountId(), possibleBoard2.getStartTime(), possibleBoard2.getEndTime())); - -// Flavored flavored = new Flavored(); -// flavored.setCategory(categoryRepository.findById(1L).get()); -// flavored.setEmployee(employeeRepository.findById(1L).get()); -// flavoredRepository.save(flavored); - - flavoredCategoryList = new ArrayList<>(); - flavoredCategoryList.addAll(flavoredRepository.findAllCategoryDTOByEmployeeId(1L)); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/api/review/ReviewServiceTest.java b/src/test/java/com/example/api/review/ContractReviewServiceTest.java similarity index 99% rename from src/test/java/com/example/api/review/ReviewServiceTest.java rename to src/test/java/com/example/api/review/ContractReviewServiceTest.java index bb3061fa..82303cf3 100644 --- a/src/test/java/com/example/api/review/ReviewServiceTest.java +++ b/src/test/java/com/example/api/review/ContractReviewServiceTest.java @@ -17,7 +17,7 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @SpringBootTest -class ReviewServiceTest { +class ContractReviewServiceTest { @Autowired private ReviewService reviewService; diff --git a/src/test/java/com/example/api/review/controller/ReviewControllerTest.java b/src/test/java/com/example/api/review/controller/ContractReviewControllerTest.java similarity index 98% rename from src/test/java/com/example/api/review/controller/ReviewControllerTest.java rename to src/test/java/com/example/api/review/controller/ContractReviewControllerTest.java index 595e2ee6..f35e2aed 100644 --- a/src/test/java/com/example/api/review/controller/ReviewControllerTest.java +++ b/src/test/java/com/example/api/review/controller/ContractReviewControllerTest.java @@ -20,7 +20,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @WebMvcTest(ReviewController.class) -public class ReviewControllerTest { +public class ContractReviewControllerTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/com/example/api/review/service/ReviewServiceTest.java b/src/test/java/com/example/api/review/service/ContractReviewServiceTest.java similarity index 91% rename from src/test/java/com/example/api/review/service/ReviewServiceTest.java rename to src/test/java/com/example/api/review/service/ContractReviewServiceTest.java index bd8a6e44..2a8aa908 100644 --- a/src/test/java/com/example/api/review/service/ReviewServiceTest.java +++ b/src/test/java/com/example/api/review/service/ContractReviewServiceTest.java @@ -2,7 +2,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import com.example.api.global.BaseIntegrationTest; import com.example.api.review.ReviewService; import com.example.api.review.dto.ReviewCommand; import com.example.api.review.dto.ReviewResponse; @@ -14,7 +13,7 @@ import java.util.List; @SpringBootTest -public class ReviewServiceTest extends BaseIntegrationTest { +public class ContractReviewServiceTest extends BaseIntegrationTest { @Autowired private ReviewService reviewService; diff --git a/src/test/java/com/example/api/search/SearchIntegrationTest.java b/src/test/java/com/example/api/search/SearchIntegrationTest.java index c03c7bd4..14de0a1a 100644 --- a/src/test/java/com/example/api/search/SearchIntegrationTest.java +++ b/src/test/java/com/example/api/search/SearchIntegrationTest.java @@ -1,6 +1,5 @@ package com.example.api.search; -import com.example.api.global.BaseIntegrationTest; import com.example.api.search.dto.SearchCommand; import com.example.api.search.dto.SearchResponse; import org.junit.jupiter.api.Test;