Skip to content

Commit

Permalink
Merge pull request #173 from Kusitms-28th-MeetUp-C/feature/159-global
Browse files Browse the repository at this point in the history
[fix]:Global search template 로직 수정
  • Loading branch information
RyuKwanKon committed Nov 21, 2023
2 parents 2f0cdf3 + bc08602 commit 72a6a54
Show file tree
Hide file tree
Showing 14 changed files with 73 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ private CustomTemplate createCustomTemplate(Template template, User user, Team t
saveTemplateDownload(templateDownload);
saveCustomTemplate(customTemplate);
saveCustomTemplateContent(template, templateContent);
saveSearchTemplate(user, template);
saveSearchCustomTemplate(user, customTemplate, team);
return customTemplate;
}
Expand All @@ -127,17 +126,10 @@ private void saveCustomTemplateContent(Template template, TemplateContent templa
}

private void saveSearchCustomTemplate(User user, CustomTemplate customTemplate, Team team) {
SearchUserTemplate searchCustomTemplate
= SearchUserTemplate.of(user, customTemplate.getId(), customTemplate.getTitle(), team.getTitle(), customTemplate.getTemplateType(), false);
SearchUserTemplate searchCustomTemplate = SearchUserTemplate.of(user, customTemplate, team.getTitle());
searchUserTemplateRepository.save(searchCustomTemplate);
}

private void saveSearchTemplate(User user, Template template) {
SearchUserTemplate searchTemplate
= SearchUserTemplate.of(user, template.getId(), template.getTitle(), null, template.getTemplateType(), true);
searchUserTemplateRepository.save(searchTemplate);
}

private List<CustomRoadmapTemplate> createCustomRoadmapTemplateList(List<CustomTemplate> customTemplateList, CustomRoadmapSpace customRoadmapSpace) {
return customTemplateList.stream()
.map(customTemplate -> CustomRoadmapTemplate.createCustomRoadmapTemplate(customRoadmapSpace, customTemplate))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,23 @@ public ResponseEntity<SuccessResponse<?>> saveTemplateForUser(@UserId final Long
templateManageService.saveTemplateByUserId(userId, templateId);
return SuccessResponse.ok(null);
}

@PostMapping("/update")
public ResponseEntity<SuccessResponse<?>> updateTemplate(@UserId final Long userId,@RequestBody final UpdateTemplateRequestDto updateTemplateRequestDto ){
templateManageService.updateTemplate(updateTemplateRequestDto );
public ResponseEntity<SuccessResponse<?>> updateTemplate(@UserId final Long userId, @RequestBody final UpdateTemplateRequestDto updateTemplateRequestDto) {
templateManageService.updateTemplate(updateTemplateRequestDto);
return SuccessResponse.ok(null);
}

@PostMapping("/team")
public ResponseEntity<SuccessResponse<?>> addTemplateToTeam(@UserId final Long userId,
@RequestBody final TemplateTeamRequestDto requestDto){
@RequestBody final TemplateTeamRequestDto requestDto) {
templateManageService.addTemplateToTeam(userId, requestDto);
return SuccessResponse.created(null);
}

@PostMapping
public ResponseEntity<SuccessResponse<?>> createSharingTemplate(@UserId final Long userId,
@RequestBody final TemplateSharingRequestDto requestDto){
@RequestBody final TemplateSharingRequestDto requestDto) {
CreateTemplateResponseDto createTemplateResponseDto = templateManageService.createSharingTemplate(userId, requestDto);
return SuccessResponse.created(createTemplateResponseDto);
}
Expand All @@ -60,11 +62,8 @@ public ResponseEntity<SuccessResponse<?>> getTeamTemplateDetailInfo(@UserId fina
}

@GetMapping("/{templateId}")
public ResponseEntity<SuccessResponse<?>> getTemplateDetailInfo(@PathVariable final Long templateId,
@RequestParam final boolean isOpened) {
final TemplateDownloadDetailResponseDto responseDto;
if(isOpened) responseDto = templateManageService.getPreDownloadTemplateInfo(templateId);
else responseDto = templateManageService.getDownloadCustomTemplateDetailInfo(templateId);
public ResponseEntity<SuccessResponse<?>> getTemplateDetailInfo(@PathVariable final Long templateId) {
final TemplateDownloadDetailResponseDto responseDto = templateManageService.getDownloadCustomTemplateDetailInfo(templateId);
return SuccessResponse.ok(responseDto);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ public class CustomTemplateContent {

@Field(name = "content")
private String content;
public void updateCustomTemplateContent(String content){
this.content=content;

public void updateCustomTemplateContent(String content) {
this.content = content;
}
public static CustomTemplateContent createCustomTemplateContent(Long templateId, String content){

public static CustomTemplateContent createCustomTemplateContent(Long templateId, String content) {
return CustomTemplateContent.builder()
.templateId(templateId)
.content(content)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@ public class SearchUserTemplate {
private String title;
private String relatedTeamTitle;
private TemplateType templateType;
private boolean isOpened;

public static SearchUserTemplate of(User user, Long templateId, String title,
String relatedTeamTitle, TemplateType templateType,
boolean isOpened){
public static SearchUserTemplate of(User user, CustomTemplate customTemplate, String relatedTeamTitle){
return SearchUserTemplate.builder()
.userId(user.getId().toString())
.templateId(templateId)
.title(title)
.templateId(customTemplate.getId())
.title(customTemplate.getTitle())
.relatedTeamTitle(relatedTeamTitle)
.templateType(templateType)
.isOpened(isOpened)
.templateType(customTemplate.getTemplateType())
.build();
}

public void updateTeamTitle(String title){
this.relatedTeamTitle = title;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@
import com.kusitms.mainservice.global.common.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.jdbc.core.metadata.TableMetaDataProvider;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


Expand Down Expand Up @@ -48,7 +43,7 @@ public class Template extends BaseTimeEntity {
@Builder.Default
private List<RoadmapTemplate> roadmapTemplates = new ArrayList<>();

public static Template createTemplate(TemplateSharingRequestDto templateSharingRequestDto, TemplateType templateType, User user){
public static Template createTemplate(TemplateSharingRequestDto templateSharingRequestDto, TemplateType templateType, User user) {
Template template = Template.builder()
.title(templateSharingRequestDto.getTitle())
.templateType(templateType)
Expand All @@ -60,7 +55,7 @@ public static Template createTemplate(TemplateSharingRequestDto templateSharingR
return template;
}

public void addReviewer(Reviewer reviewer){
public void addReviewer(Reviewer reviewer) {
this.reviewerList.add(reviewer);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package com.kusitms.mainservice.domain.template.domain;

import com.kusitms.mainservice.domain.template.dto.request.UpdateTemplateRequestDto;
import jakarta.persistence.Id;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
Expand All @@ -20,7 +18,7 @@ public class TemplateContent {
private Long templateId;
private String content;

public static TemplateContent createTemplateContent(Long templateId, String content){
public static TemplateContent createTemplateContent(Long templateId, String content) {
return TemplateContent.builder()
.templateId(templateId)
.content(content)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import jakarta.persistence.*;
import lombok.*;

import java.util.Optional;

@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
Expand All @@ -27,14 +25,14 @@ public class TemplateDownload {
@OneToOne
private CustomTemplate customTemplate;

public static TemplateDownload createTemplateDownload(User user, Template template){
public static TemplateDownload createTemplateDownload(User user, Template template) {
return TemplateDownload.builder()
.user(user)
.template(template)
.build();
}

public void addCustomTemplate(CustomTemplate customTemplate){
public void addCustomTemplate(CustomTemplate customTemplate) {
this.customTemplate = customTemplate;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ public class TemplateReview {
@OneToOne
private Reviewer reviewer;

public static TemplateReview createTemplateReview(String content, int rating){
public static TemplateReview createTemplateReview(String content, int rating) {
return TemplateReview.builder()
.rating(rating)
.content(content)
.build();
}

public void addReviewer(Reviewer reviewer){
public void addReviewer(Reviewer reviewer) {
this.reviewer = reviewer;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
public class TemplateTeamRequestDto {
private Long stepId;
private Long templateId;
private String teamTitle;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@
import com.kusitms.mainservice.domain.template.domain.SearchUserTemplate;
import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.Optional;

public interface SearchUserTemplateRepository extends MongoRepository<SearchUserTemplate, String> {
Optional<SearchUserTemplate> findByTemplateId(Long templateId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.kusitms.mainservice.domain.roadmap.domain.CustomRoadmapTemplate;
import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapDetailResponseDto;
import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapSpaceDetailResponseDto;
import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapStepDto;
import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapRepository;
import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapSpaceRepository;
import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapTemplateRepository;
Expand All @@ -23,6 +22,7 @@
import com.kusitms.mainservice.domain.template.dto.response.CustomTemplateDetailResponseDto;
import com.kusitms.mainservice.domain.template.dto.response.TemplateDownloadDetailResponseDto;
import com.kusitms.mainservice.domain.template.mongoRepository.CustomTemplateContentRepository;
import com.kusitms.mainservice.domain.template.mongoRepository.SearchUserTemplateRepository;
import com.kusitms.mainservice.domain.template.mongoRepository.TemplateContentRepository;
import com.kusitms.mainservice.domain.template.repository.*;
import com.kusitms.mainservice.domain.user.domain.User;
Expand All @@ -33,12 +33,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

import static com.kusitms.mainservice.domain.template.domain.CustomTemplate.createCustomTemplate;
import static com.kusitms.mainservice.domain.template.domain.TemplateContent.createTemplateContent;
import static com.kusitms.mainservice.domain.template.domain.TemplateType.getEnumTemplateTypeFromStringTemplateType;
import static com.kusitms.mainservice.global.error.ErrorCode.*;
Expand All @@ -60,14 +57,15 @@ public class TemplateManageService {
private final ReviewerRepository reviewerRepository;
private final CustomRoadmapSpaceRepository customRoadmapSpaceRepository;
private final CustomRoadmapTemplateRepository customRoadmapTemplateRepository;
private final SearchUserTemplateRepository searchUserTemplateRepository;

public void addTemplateToTeam(Long userId, TemplateTeamRequestDto templateTeamRequestDto) {
// Template template = getTemplateFromTemplateId(templateTeamRequestDto.getTemplateId());
CustomTemplate customTemplate = getCustomTemplateFromTemplateId(templateTeamRequestDto.getTemplateId());
CustomRoadmapSpace customRoadmapSpace = getCustomRoadmapSpaceFromStepId(templateTeamRequestDto.getStepId());
Team team = getTeamFromTitleAndUserId(userId, templateTeamRequestDto.getTeamTitle());
CustomRoadmapTemplate customRoadmapTemplate = CustomRoadmapTemplate.createCustomRoadmapTemplate(customRoadmapSpace, customTemplate);
saveCustomRoadmapTemplate(customRoadmapTemplate);
// saveCustomTemplateContent(template, customTemplate);
updateSearchUserTemplateTeam(team, customTemplate);
}

public CreateTemplateResponseDto createSharingTemplate(Long userId, TemplateSharingRequestDto templateSharingRequestDto) {
Expand Down Expand Up @@ -117,13 +115,16 @@ public void saveCustomTemplateContent(Template template, CustomTemplate customTe
= CustomTemplateContent.createCustomTemplateContent(customTemplate.getId(), templateContent.getContent());
saveCustomTemplateContent(customTemplateContent);
}
public void deleteTemplateByTemplateId(Long templateId){

public void deleteTemplateByTemplateId(Long templateId) {
deleteTemplate(templateId);
}
public void updateTemplate(UpdateTemplateRequestDto updateTemplateRequestDto){
CustomTemplateContent customtemplateContent = getCustomTemplateContentFromTemplateId(updateTemplateRequestDto.getTemplateId());

public void updateTemplate(UpdateTemplateRequestDto updateTemplateRequestDto) {
CustomTemplateContent customtemplateContent = getCustomTemplateContentFromTemplateId(updateTemplateRequestDto.getTemplateId());
customtemplateContent.updateCustomTemplateContent(updateTemplateRequestDto.getContent());
}
}

public void saveTemplateByUserId(Long userId, Long templateId) {
Template template = getTemplateByTemplateId(templateId);
User user = getUserFromUserId(userId);
Expand All @@ -132,16 +133,17 @@ public void saveTemplateByUserId(Long userId, Long templateId) {
CustomTemplate customTemplate = CustomTemplate.createCustomTemplate(template, templateDownload);
saveCustomTemplate(customTemplate);
saveCustomTemplateContent(template, customTemplate);
saveSearchUserTemplate(user, customTemplate);
}

private void saveTemplateDownload(TemplateDownload templateDownload){
templateDownloadRepository.save(templateDownload);
}
private Template getTemplateByTemplateId(Long templateId) {
return templateRepository.findById(templateId).orElseThrow(() -> new EntityNotFoundException(TEMPLATE_NOT_FOUND));
private void updateSearchUserTemplateTeam(Team team, CustomTemplate customTemplate) {
SearchUserTemplate searchUserTemplate = getSearchUserTemplateFromTemplateId(customTemplate.getId());
searchUserTemplate.updateTeamTitle(team.getTitle());
}
private void deleteTemplate(Long templateId){
templateRepository.deleteById(templateId);

private void saveSearchUserTemplate(User user, CustomTemplate customTemplate) {
SearchUserTemplate searchUserTemplate = SearchUserTemplate.of(user, customTemplate, null);
searchUserTemplateRepository.save(searchUserTemplate);
}

private TeamResponseDto createTeamResponseDto(Team team) {
Expand All @@ -163,21 +165,34 @@ private List<CustomRoadmapSpaceDetailResponseDto> createTeamRoadmapSpaceDetailRe
.collect(Collectors.toList());
}

private Long getProcessingNum(CustomRoadmap relatedRoadmap){
private Long getProcessingNum(CustomRoadmap relatedRoadmap) {
return relatedRoadmap.getCustomRoadmapSpaceList().stream()
.filter(CustomRoadmapSpace::isCompleted).count();
}

private CustomRoadmapSpace getCustomRoadmapSpaceFromStepId(Long stepId) {
return customRoadmapSpaceRepository.findById(stepId)
.orElseThrow(() -> new EntityNotFoundException(ROADMAP_SPACE_NOT_FOUND));
private SearchUserTemplate getSearchUserTemplateFromTemplateId(Long templateId) {
return searchUserTemplateRepository.findByTemplateId(templateId)
.orElseThrow(() -> new EntityNotFoundException(SEARCH_TEMPLATE_NOT_FOUND));
}

private TemplateDownload getTemplateDownloadFromUserIdAndTemplateId(Long userId, Long templateId) {
return templateDownloadRepository.findByUserIdAndTemplateId(userId, templateId)
private void saveTemplateDownload(TemplateDownload templateDownload) {
templateDownloadRepository.save(templateDownload);
}

private Template getTemplateByTemplateId(Long templateId) {
return templateRepository.findById(templateId)
.orElseThrow(() -> new EntityNotFoundException(TEMPLATE_NOT_FOUND));
}

private void deleteTemplate(Long templateId) {
templateRepository.deleteById(templateId);
}

private CustomRoadmapSpace getCustomRoadmapSpaceFromStepId(Long stepId) {
return customRoadmapSpaceRepository.findById(stepId)
.orElseThrow(() -> new EntityNotFoundException(ROADMAP_SPACE_NOT_FOUND));
}

private Team getTeamFromTitleAndUserId(Long userId, String title) {
return teamRepository.findByUserIdAndTitle(userId, title)
.orElseThrow(() -> new EntityNotFoundException(TEAM_NOT_FOUND));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public enum ErrorCode {
ROADMAP_DOWNLOAD_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 로드맵 다운로드 기록입니다."),
ROADMAP_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 로드맵입니다."),
ROADMAP_SPACE_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 로드맵 딘계입니다."),
SEARCH_TEMPLATE_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 검색 템플릿입니다."),

/**
* 405 Method Not Allowed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import lombok.Getter;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;

@Builder
@Getter
@Document(collection = "search_user_template")
Expand All @@ -15,5 +13,4 @@ public class SearchUserTemplate {
private String title;
private String relatedTeamTitle;
private TemplateType templateType;
private boolean isOpened;
}
Loading

0 comments on commit 72a6a54

Please sign in to comment.