Skip to content

Commit

Permalink
refac: createOrGetConsulting 메서드 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
minahYu committed Nov 24, 2024
1 parent 546c289 commit aca3657
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

public interface CompanyService {

ConsultingResponse saveCompanyInfo(
ConsultingResponse createOrGetConsulting(
Long memberId,
CompanyInfoRequest companyInfoRequest,
boolean summary
Long chatRoomId
);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.swOnCampus.AIPlatform.domain.consulting.service;

import com.swOnCampus.AIPlatform.domain.consulting.entity.Company;
import com.swOnCampus.AIPlatform.domain.consulting.entity.Consulting;
import com.swOnCampus.AIPlatform.domain.consulting.exception.ConsultingErrorCode;
import com.swOnCampus.AIPlatform.domain.consulting.repository.CompanyRepository;
import com.swOnCampus.AIPlatform.domain.consulting.repository.ConsultingRepository;
import com.swOnCampus.AIPlatform.domain.consulting.web.dto.ConsultingSave;
import com.swOnCampus.AIPlatform.domain.consulting.web.dto.request.CompanyInfoRequest;
import com.swOnCampus.AIPlatform.domain.consulting.web.dto.request.ConsultingRequest;
import com.swOnCampus.AIPlatform.domain.consulting.web.dto.response.ConsultingResponse;
Expand All @@ -23,14 +26,24 @@ public class CompanyServiceImpl implements CompanyService {
private final ConsultingService consultingService;

@Override
public ConsultingResponse saveCompanyInfo(
public ConsultingResponse createOrGetConsulting(
Long memberId,
CompanyInfoRequest companyInfoRequest,
boolean summary
Long companyId // 채팅방 id
) {
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new GlobalException(CommonErrorCode.NOT_EXIST_MEMBER));

if (companyId == null) {
companyId = createCompanyWithConsulting(member, companyInfoRequest);
}
Consulting consulting = consultingRepository.findByCompanyId(companyId)
.orElseThrow(() -> new GlobalException(ConsultingErrorCode.NOT_EXIST_CONSULTING));

return new ConsultingResponse(consulting.getSummary());
}

private Long createCompanyWithConsulting(Member member, CompanyInfoRequest companyInfoRequest) {
Company company = Company.builder()
.member(member)
.name(companyInfoRequest.name())
Expand All @@ -41,11 +54,20 @@ public ConsultingResponse saveCompanyInfo(
companyRepository.save(company);

ConsultingRequest consultingRequest = new ConsultingRequest(
companyInfoRequest.companySize(),
companyInfoRequest.industry(),
companyInfoRequest.companySize(),
companyInfoRequest.painPoint()
);

return consultingService.sendToAi(consultingRequest, summary);
ConsultingSave result = consultingService.getConsultingResult(consultingRequest);

Consulting consulting = Consulting.builder()
.company(company)
.result(result.result())
.summary(result.summary())
.build();
consultingRepository.save(consulting);

return consulting.getCompany().getId();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ public class ConsultingController {
public ResponseEntity<ApiResponse<?>> createConsulting(
@LoginMember Member member,
@RequestBody CompanyInfoRequest companyInfoRequest,
@RequestParam(defaultValue = "false") boolean summary
@RequestParam(required = false) Long companyId // 채팅방 id
) {
ConsultingResponse result = companyService.saveCompanyInfo(member.getMemberId(),
companyInfoRequest, summary);
ConsultingResponse result = companyService.createOrGetConsulting(
member.getMemberId(), companyInfoRequest, companyId);

ApiResponse<ConsultingResponse> response = ApiResponse.createSuccess(HttpStatus.OK.value(),
result, "컨설팅 결과가 생성되었습니다.");
Expand Down

0 comments on commit aca3657

Please sign in to comment.