Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
b90e2a1
메인 수정( 실수로 빈 등록한 부분)
developer-hajun Sep 17, 2024
14f51c2
Merge remote-tracking branch 'origin/main'
developer-hajun Sep 17, 2024
328c1ad
메인 수정( 실수로 빈 등록한 부분)
developer-hajun Sep 17, 2024
afa4567
Merge pull request #15 from developer-hajun/main
developer-hajun Sep 17, 2024
5ac0d05
사용자 조회,카테고리 조회, 아이템 조회 로직 추가
developer-hajun Sep 20, 2024
1a48ba0
로그인 로직 추가
developer-hajun Sep 20, 2024
ef89d3d
카테고리 추가로직 추가 및 카테고리별 가격 업데이트 로직
developer-hajun Sep 20, 2024
678e601
Merge pull request #18 from developer-hajun/main
developer-hajun Sep 20, 2024
efd20a9
Merge pull request #4 from PG1tHub/hajun
developer-hajun Sep 20, 2024
dd548cb
사용자 판매,구매 아이템 조회 로직 업데이트
developer-hajun Sep 21, 2024
7a1e2d5
사용자 판매완료 아이템 조회로직 추가
developer-hajun Sep 21, 2024
6a06930
아이템 판매로직 추가
developer-hajun Sep 30, 2024
c7e0326
카테고리별 아이템 조회로직 추가
developer-hajun Sep 30, 2024
fc9f2bc
전체 아이템 조회 로직 추가
developer-hajun Sep 30, 2024
07e90a2
테이블명 유지하고 클래스명 유지하게 교체
developer-hajun Sep 30, 2024
a4bba74
Merge pull request #20 from developer-hajun/main
developer-hajun Sep 30, 2024
2eef1fb
Merge branch 'main' into hajun
developer-hajun Oct 3, 2024
eafe69a
Merge pull request #21 from PG1tHub/hajun
developer-hajun Oct 3, 2024
1845538
구현완료 2,3,7,8,9,12,10,15 테스트 필요
developer-hajun Oct 3, 2024
0cab3d1
Merge branch 'hajun' into main
developer-hajun Oct 3, 2024
6c99ead
Merge pull request #22 from developer-hajun/main
developer-hajun Oct 3, 2024
44b3df2
요구사항 1,4,7 구현 완료 임의 데이터를 이용한 테스트 필요
developer-hajun Oct 11, 2024
c3ae107
Merge remote-tracking branch 'origin/main'
developer-hajun Oct 11, 2024
ffe9c66
Merge pull request #23 from developer-hajun/main
developer-hajun Oct 11, 2024
df0adde
요구사항 2,3,7,8,9 구현 완료 테스트 필요
developer-hajun Oct 11, 2024
28b0986
요구사항 2,3,7,8,9 구현 완료 테스트 필요
developer-hajun Oct 11, 2024
558f88b
요구사항 2,3,7,8,9,11,12,13 구현완료 임의데이터를 위한 테스트 필요
developer-hajun Oct 12, 2024
fdec83a
요구사항 2,3,7,8,9,11,12,13 구현완료 임의데이터를 위한 테스트 필요
developer-hajun Oct 12, 2024
d7c1588
Merge pull request #24 from developer-hajun/main
developer-hajun Oct 12, 2024
5a89daa
Merge pull request #25 from PG1tHub/hajun
developer-hajun Oct 14, 2024
43797a2
메인페이지 구현 완료
developer-hajun Oct 15, 2024
970b645
Merge pull request #28 from developer-hajun/main
developer-hajun Oct 15, 2024
0218c95
최종 업데이트
developer-hajun Oct 30, 2024
93a99d4
Merge pull request #30 from developer-hajun/main
developer-hajun Oct 30, 2024
07257fb
이미지 관련 처리 업데이트
developer-hajun Oct 30, 2024
a05a323
이미지 관련 처리 업데이트
developer-hajun Oct 30, 2024
f1ce9a6
Merge pull request #31 from developer-hajun/main
developer-hajun Oct 30, 2024
1b64640
요청관련 업데이트
developer-hajun Oct 31, 2024
74e15a1
Merge pull request #32 from developer-hajun/main
developer-hajun Oct 31, 2024
e92ce88
요청관련 업데이트
developer-hajun Oct 31, 2024
c92e70d
Merge pull request #33 from developer-hajun/main
developer-hajun Oct 31, 2024
7979cee
요청관련 업데이트
developer-hajun Oct 31, 2024
ae8c9dc
Merge pull request #34 from developer-hajun/main
developer-hajun Oct 31, 2024
f57d4ef
요청관련 업데이트
developer-hajun Oct 31, 2024
76afb7e
요청관련 업데이트
developer-hajun Oct 31, 2024
72e1b95
요청관련 업데이트
developer-hajun Oct 31, 2024
8887039
수정
developer-hajun Nov 1, 2024
0a863c9
Merge pull request #35 from developer-hajun/main
developer-hajun Nov 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ dependencies {
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.postgresql:postgresql:42.7.2'
implementation group: 'org.zeroturnaround', name: 'zt-exec', version: '1.12'
}

tasks.named('test') {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/Graduated/Task/C2C/C2CApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ public static void main(String[] args) {
SpringApplication.run(C2CApplication.class, args);
}



}
13 changes: 0 additions & 13 deletions src/main/java/Graduated/Task/C2C/Category/CategoryService.java

This file was deleted.

11 changes: 11 additions & 0 deletions src/main/java/Graduated/Task/C2C/Category/Dto/categoryDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package Graduated.Task.C2C.Category.Dto;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class categoryDto {
private Long categoryId;
private String categoryName;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package Graduated.Task.C2C.Category.Dto;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class categoryPriceDto {
private int recommendedMinPrice;
private int recommendedMaxPrice;
}
12 changes: 12 additions & 0 deletions src/main/java/Graduated/Task/C2C/Category/Dto/priceFindDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package Graduated.Task.C2C.Category.Dto;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class priceFindDto {

private String category;
private int itemState;
}
23 changes: 20 additions & 3 deletions src/main/java/Graduated/Task/C2C/Category/Entity/Category.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,36 @@
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Category extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="categoryNo")
private Long No;
private int minPrice;
private int maxPrice;

@OneToMany(mappedBy = "category")
private List<Item> item = new ArrayList<>();

private String name;

@OneToMany(mappedBy = "category")
private List<categoryPrice> categoryPrices = new ArrayList<>();

private int itemCount;


public void plusCount(){
this.itemCount++;
}

public Category(String name, int itemCount) {
this.name = name;
this.itemCount = itemCount;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package Graduated.Task.C2C.Category.Entity;

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class categoryPrice {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private int status;
private int maxPrice;
private int minPrice;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="categoryNo")
private Category category;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

import Graduated.Task.C2C.Category.Entity.Category;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;

public interface CategoryRepository extends JpaRepository<Category,Long>,CategoryRepositoryCustom {
}

@Transactional
@Modifying
@Query(value = "INSERT INTO category_price (max_price, min_price, status, category_no, id)" +
"VALUES " +
" (879097, 586064, 5, 1, 11)," +
" (814445, 542963, 4, 1, 12)," +
" (765314, 510209, 3, 1, 13)," +
" (760524, 507016, 2, 1, 14)," +
" (584241, 389494, 1, 1, 15)", nativeQuery = true)
int findAllPost();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
package Graduated.Task.C2C.Category.Repository;

import Graduated.Task.C2C.Category.Entity.Category;
import Graduated.Task.C2C.Category.Entity.categoryPrice;
import Graduated.Task.C2C.Item.Entity.Item;

import java.util.List;
import java.util.Optional;

public interface CategoryRepositoryCustom {
Optional<categoryPrice> findCategoryPrice(Long categoryNo, int state);
Optional<Category> findByCategoryName(String categoryName);
Optional<categoryPrice> findCategoryPriceByName(String name,int state);
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
package Graduated.Task.C2C.Category.Repository;

import Graduated.Task.C2C.Category.Entity.Category;
import Graduated.Task.C2C.Category.Entity.QCategory;
import Graduated.Task.C2C.Category.Entity.QcategoryPrice;
import Graduated.Task.C2C.Category.Entity.categoryPrice;
import Graduated.Task.C2C.Item.Entity.Item;
import Graduated.Task.C2C.core.Querydsl4RepositorySupport;
import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import lombok.Getter;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

import static Graduated.Task.C2C.Category.Entity.QCategory.category;
import static Graduated.Task.C2C.Item.Entity.QItem.item;

@Repository
@Getter
public class CategoryRepositoryImpl extends Querydsl4RepositorySupport implements CategoryRepositoryCustom {
Expand All @@ -15,4 +25,20 @@ public CategoryRepositoryImpl(EntityManager em) {
super(Category.class);
this.jpaQueryFactory = new JPAQueryFactory(em);
}
public Optional<categoryPrice> findCategoryPrice(Long categoryNo,int state){
return Optional.ofNullable(selectFrom(QcategoryPrice.categoryPrice)
.where(QcategoryPrice.categoryPrice.category.No.eq(categoryNo), QcategoryPrice.categoryPrice.status.eq(state))
.join(QcategoryPrice.categoryPrice.category).fetchJoin()
.fetchOne());
}
public Optional<categoryPrice> findCategoryPriceByName(String category,int state){
return Optional.ofNullable(selectFrom(QcategoryPrice.categoryPrice)
.where(QcategoryPrice.categoryPrice.category.name.eq(category), QcategoryPrice.categoryPrice.status.eq(state))
.join(QcategoryPrice.categoryPrice.category).fetchJoin()
.fetchOne());
}
public Optional<Category> findByCategoryName(String categoryName){
return Optional.ofNullable(selectFrom(category).where(category.name.eq(categoryName)).fetchOne());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package Graduated.Task.C2C.Category.Service;

import Graduated.Task.C2C.Category.Dto.categoryDto;
import Graduated.Task.C2C.Category.Dto.categoryPriceDto;
import Graduated.Task.C2C.Category.Entity.Category;
import Graduated.Task.C2C.Category.Entity.categoryPrice;
import Graduated.Task.C2C.Category.Repository.CategoryRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class CategoryService {
private final CategoryRepository categoryRepository;


public List<categoryDto> findCategory(){
return categoryRepository.findAll().stream().map(this::getCategoryDto).toList();
}

private categoryDto getCategoryDto(Category category) {
return new categoryDto(category.getNo(), category.getName());
}
public categoryPriceDto findCategoryPrice(String name, int status){
categoryPrice categoryPriceByName = categoryRepository.findCategoryPriceByName(name, status).orElseThrow(() -> new NullPointerException("존재하지 않는 카테고리입니다"));
return new categoryPriceDto(categoryPriceByName.getMinPrice(),categoryPriceByName.getMaxPrice());
}

}
32 changes: 32 additions & 0 deletions src/main/java/Graduated/Task/C2C/Category/categoryController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package Graduated.Task.C2C.Category;

import Graduated.Task.C2C.Category.Dto.categoryPriceDto;
import Graduated.Task.C2C.Category.Dto.priceFindDto;
import Graduated.Task.C2C.Category.Service.CategoryService;
import Graduated.Task.C2C.Item.Dto.ItemDto;
import Graduated.Task.C2C.Item.Service.ItemService;
import Graduated.Task.C2C.User.responseDto.TokenDto;
import Graduated.Task.C2C.core.Message;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
public class categoryController {

private final CategoryService categoryService;
@PostMapping("/recommended-price")
public ResponseEntity<?> getCategoryPrice(@RequestBody priceFindDto priceFindDto){
categoryPriceDto categoryPrice = categoryService.findCategoryPrice(priceFindDto.getCategory(), priceFindDto.getItemState());
Message<categoryPriceDto> message = Message.of(200, categoryPrice);
return new ResponseEntity<>(message, HttpStatus.OK);

}



}
Loading