diff --git a/src/main/java/com/assu/server/domain/map/dto/MapResponseDTO.java b/src/main/java/com/assu/server/domain/map/dto/MapResponseDTO.java index 1277b40..23d63f4 100644 --- a/src/main/java/com/assu/server/domain/map/dto/MapResponseDTO.java +++ b/src/main/java/com/assu/server/domain/map/dto/MapResponseDTO.java @@ -61,6 +61,7 @@ public static class StoreMapResponseDTO { private Integer people; private Long cost; private String category; + private String note; private Long discountRate; private boolean hasPartner; private Double latitude; diff --git a/src/main/java/com/assu/server/domain/map/service/MapServiceImpl.java b/src/main/java/com/assu/server/domain/map/service/MapServiceImpl.java index 9d2c66b..2e93605 100644 --- a/src/main/java/com/assu/server/domain/map/service/MapServiceImpl.java +++ b/src/main/java/com/assu/server/domain/map/service/MapServiceImpl.java @@ -223,6 +223,7 @@ else if (content.getOptionType() == OptionType.SERVICE) { .adminName(admin != null ? admin.getName() : null) .adminId(adminId) .name(s.getName()) + .note(content.getNote()) .address(s.getAddress() != null ? s.getAddress() : s.getDetailAddress()) .rate(s.getRate()) .criterionType(content != null ? content.getCriterionType() : null) diff --git a/src/main/java/com/assu/server/domain/partnership/converter/PartnershipConverter.java b/src/main/java/com/assu/server/domain/partnership/converter/PartnershipConverter.java index 4adbe94..e62f263 100644 --- a/src/main/java/com/assu/server/domain/partnership/converter/PartnershipConverter.java +++ b/src/main/java/com/assu/server/domain/partnership/converter/PartnershipConverter.java @@ -56,6 +56,7 @@ public static List toPaperContents( } return partnershipRequestDTO.getOptions().stream() .map(optionDto -> PaperContent.builder() + .note(optionDto.getNote()) // 일단 노트까지 받아서 변환 .paper(paper) // 어떤 Paper에 속하는지 연결 .optionType(optionDto.getOptionType()) .criterionType(optionDto.getCriterionType()) @@ -102,7 +103,14 @@ public static List toContentR public static PaperContentResponseDTO.storePaperContentResponse toContentResponse(PaperContent content) { List goodsList = extractGoods(content); Integer peopleValue = extractPeople(content); - String paperContentText = buildPaperContentText(content, goodsList, peopleValue); + + String paperContentText; + if(content.getNote()!= null){ + paperContentText = content.getNote(); + }else{ + paperContentText = buildPaperContentText(content, goodsList, peopleValue); + } + return PaperContentResponseDTO.storePaperContentResponse.builder() .adminId(content.getPaper().getAdmin().getId()) @@ -204,6 +212,7 @@ public static List toPaperContentsForManual( .paper(paper) .optionType(o.getOptionType()) .criterionType(o.getCriterionType()) + .note(o.getNote()) .people(o.getPeople()) .cost(o.getCost()) .category(o.getCategory()) @@ -238,6 +247,11 @@ public static PartnershipResponseDTO.WritePartnershipResponseDTO writePartnershi if (contents != null) { for (int i = 0; i < contents.size(); i++) { PaperContent pc = contents.get(i); + + String note = null; + if(pc.getNote()!= null){ + note = pc.getNote(); + } List goods = (goodsBatches != null && goodsBatches.size() > i) ? goodsBatches.get(i) : List.of(); optionDTOS.add( @@ -245,6 +259,7 @@ public static PartnershipResponseDTO.WritePartnershipResponseDTO writePartnershi .optionType(pc.getOptionType()) .criterionType(pc.getCriterionType()) .people(pc.getPeople()) + .note(note) .cost(pc.getCost()) .category(pc.getCategory()) .discountRate(pc.getDiscount()) @@ -253,6 +268,8 @@ public static PartnershipResponseDTO.WritePartnershipResponseDTO writePartnershi ); } } + + return PartnershipResponseDTO.WritePartnershipResponseDTO.builder() .partnershipId(paper.getId()) .partnershipPeriodStart(paper.getPartnershipPeriodStart()) @@ -319,6 +336,10 @@ public static PartnershipResponseDTO.GetPartnershipDetailResponseDTO getPartners if (contents != null) { for (int i = 0; i < contents.size(); i++) { PaperContent pc = contents.get(i); + String note = null; + if(pc.getNote()!= null){ + note = pc.getNote(); + } List goods = (goodsBatches != null && goodsBatches.size() > i) ? goodsBatches.get(i) : List.of(); optionDTOS.add( @@ -327,6 +348,7 @@ public static PartnershipResponseDTO.GetPartnershipDetailResponseDTO getPartners .criterionType(pc.getCriterionType()) .people(pc.getPeople()) .cost(pc.getCost()) + .note(note) .category(pc.getCategory()) .discountRate(pc.getDiscount()) .goods(goodsResultDTO(goods)) diff --git a/src/main/java/com/assu/server/domain/partnership/dto/PartnershipRequestDTO.java b/src/main/java/com/assu/server/domain/partnership/dto/PartnershipRequestDTO.java index 79a795b..65dea83 100644 --- a/src/main/java/com/assu/server/domain/partnership/dto/PartnershipRequestDTO.java +++ b/src/main/java/com/assu/server/domain/partnership/dto/PartnershipRequestDTO.java @@ -40,6 +40,7 @@ public static class PartnershipOptionRequestDTO { private Long cost; private String category; private Long discountRate; + private String note; private List goods; // 서비스 제공 항목 } diff --git a/src/main/java/com/assu/server/domain/partnership/dto/PartnershipResponseDTO.java b/src/main/java/com/assu/server/domain/partnership/dto/PartnershipResponseDTO.java index 35ac7ae..712273c 100644 --- a/src/main/java/com/assu/server/domain/partnership/dto/PartnershipResponseDTO.java +++ b/src/main/java/com/assu/server/domain/partnership/dto/PartnershipResponseDTO.java @@ -40,6 +40,7 @@ public static class PartnershipOptionResponseDTO { private CriterionType criterionType; private Integer people; private Long cost; + private String note; private String category; private Long discountRate; diff --git a/src/main/java/com/assu/server/domain/partnership/entity/PaperContent.java b/src/main/java/com/assu/server/domain/partnership/entity/PaperContent.java index 8af76bf..94cd973 100644 --- a/src/main/java/com/assu/server/domain/partnership/entity/PaperContent.java +++ b/src/main/java/com/assu/server/domain/partnership/entity/PaperContent.java @@ -33,6 +33,8 @@ public class PaperContent extends BaseEntity { @Enumerated(EnumType.STRING) private OptionType optionType; + private String note; + private Integer people; private Long cost; diff --git a/src/main/java/com/assu/server/domain/partnership/service/PaperQueryServiceImpl.java b/src/main/java/com/assu/server/domain/partnership/service/PaperQueryServiceImpl.java index 8cef7ca..8d32e65 100644 --- a/src/main/java/com/assu/server/domain/partnership/service/PaperQueryServiceImpl.java +++ b/src/main/java/com/assu/server/domain/partnership/service/PaperQueryServiceImpl.java @@ -50,17 +50,6 @@ public PaperResponseDTO.partnershipContent getStorePaperContent(Long storeId, Me student.getDepartment(), student.getMajor()); - // // 한번 더 거르기 위해서 - // List filteredAdmin = adminList.stream() - // .filter(admin -> { - // String name = admin.getName(); - // Major major = admin.getMajor(); - // return name.contains(student.getUniversity()) - // || name.contains(student.getDepartment()) - // || major.equals(student.getMajor()); - // }).toList(); - - // 추출한 admin, store와 일치하는 paperId 를 추출합니다. List paperList = adminList.stream() .flatMap(admin -> diff --git a/src/main/java/com/assu/server/domain/partnership/service/PartnershipServiceImpl.java b/src/main/java/com/assu/server/domain/partnership/service/PartnershipServiceImpl.java index 89955e4..76679a2 100644 --- a/src/main/java/com/assu/server/domain/partnership/service/PartnershipServiceImpl.java +++ b/src/main/java/com/assu/server/domain/partnership/service/PartnershipServiceImpl.java @@ -101,48 +101,7 @@ public void recordPartnershipUsage(PartnershipRequestDTO.finalRequest dto, Membe // @Transactional 환경에서는 studentsToUpdate의 변경 사항(스탬프)이 자동으로 DB에 반영됩니다. } - // public void recordPartnershipUsage(PartnershipRequestDTO.finalRequest dto, Member member){ - // - // Student requestStudent = studentRepository.findById(member.getId()).orElseThrow( - // () -> new GeneralException(ErrorStatus.NO_SUCH_STUDENT) // 혹은 적절한 예외 처리 - // ); - // - // List usages = new ArrayList<>(); - // - // PaperContent content = contentRepository.findById(dto.getContentId()).orElseThrow( - // () -> new GeneralException(ErrorStatus.NO_SUCH_CONTENT) - // ); - // Long paperId = content.getPaper().getId(); - // // 1) 요청한 member 본인 - // usages.add(PartnershipConverter.toPartnershipUsage(dto, requestStudent, paperId)); - // requestStudent.setStamp(); - // System.out.println("update 된 stamp : "+requestStudent.getStamp()); - // - // List userIds = Optional.ofNullable(dto.getUserIds()).orElse(Collections.emptyList()); - // // 2) dto의 userIds에 있는 다른 사용자들 - // for (Long userId : userIds) { - // if(userId != member.getId()){ - // Student student = studentRepository.getReferenceById(userId); - // usages.add(PartnershipConverter.toPartnershipUsage(dto, student, paperId)); - // student.setStamp(); - // } - // - // } - // partnershipUsageRepository.saveAll(usages); - // - // // Store store = storeRepository.findById(dto.getStoreId()).orElseThrow( - // // () -> new GeneralException(ErrorStatus.NO_SUCH_STORE) - // // ); - // // Partner partner = store.getPartner(); - // // if (partner != null) { - // // Long partnerId = partner.getId(); - // // System.out.println("알림 요청이 들어갑니다."); - // // notificationService.sendOrder(partnerId, 0L, dto.getTableNumber(), dto.getPartnershipContent()); - // // - // // } else { - // // throw new GeneralException(ErrorStatus.NO_SUCH_PARTNER); - // // } - // } + diff --git a/src/main/java/com/assu/server/domain/user/dto/StudentResponseDTO.java b/src/main/java/com/assu/server/domain/user/dto/StudentResponseDTO.java index 38cf04b..f06c74c 100644 --- a/src/main/java/com/assu/server/domain/user/dto/StudentResponseDTO.java +++ b/src/main/java/com/assu/server/domain/user/dto/StudentResponseDTO.java @@ -80,6 +80,7 @@ public static class UsablePartnershipDTO { private OptionType optionType; private Integer people; private Long cost; + private String note; private String category; private Long discountRate; } diff --git a/src/main/java/com/assu/server/domain/user/service/StudentServiceImpl.java b/src/main/java/com/assu/server/domain/user/service/StudentServiceImpl.java index d41dedc..afda921 100644 --- a/src/main/java/com/assu/server/domain/user/service/StudentServiceImpl.java +++ b/src/main/java/com/assu/server/domain/user/service/StudentServiceImpl.java @@ -144,7 +144,11 @@ public List getUsablePartnership(Long m // 카테고리 결정 로직 그대로 String finalCategory = null; + String note = null; if (content != null) { + if(content.getNote() != null){ + note = content.getNote(); + } if (content.getCategory() != null) { finalCategory = content.getCategory(); } else if (content.getOptionType() == OptionType.SERVICE) { @@ -159,6 +163,7 @@ public List getUsablePartnership(Long m .partnershipId(paper.getId()) .adminName(adminName) .partnerName(partnerName) + .note(note) .criterionType(content != null ? content.getCriterionType() : null) .optionType(content != null ? content.getOptionType() : null) .people(content != null ? content.getPeople() : null)