Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

부산대 BE_문성민 3주차 과제 (3단계) #404

Open
wants to merge 59 commits into
base: dalsungmin
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
cc9a37a
feat: step0 구현
Dalsungmin Jul 8, 2024
26ac3ec
README step1 작성
Dalsungmin Jul 10, 2024
d60bed3
Refactor: 에러 처리 수정
Dalsungmin Jul 10, 2024
4d7f511
Refactor: 카카오 예외 처리 수정
Dalsungmin Jul 10, 2024
969a539
Remove: 필요없는 .sql 파일 삭제
Dalsungmin Jul 10, 2024
51c1991
Feat: 필요한 sql 파일 생성
Dalsungmin Jul 10, 2024
78bdd1f
feat: JPA 구현을 위한 기본 추가
Dalsungmin Jul 10, 2024
f990eae
Feat: 모델 엔티티로 변환
Dalsungmin Jul 10, 2024
a24f01d
Feat: ProductRepository 인터페이스 구현
Dalsungmin Jul 10, 2024
0ea96cb
Feat: MemberRepository 인터페이스 구현
Dalsungmin Jul 10, 2024
b2e8b97
Feat: WishlistRepository 인터페이스 구현
Dalsungmin Jul 10, 2024
92369b2
Feat: Product 인터페이스와 연결
Dalsungmin Jul 10, 2024
5b1e444
Feat: Member 인터페이스와 연결
Dalsungmin Jul 10, 2024
38a3613
Feat: jwtUtil이 컨트롤러로 이동
Dalsungmin Jul 10, 2024
a223833
Feat: Wishlist 인터페이스와 연결
Dalsungmin Jul 10, 2024
d393b26
Feat: Product 서비스와 연결
Dalsungmin Jul 10, 2024
3aed5aa
Feat: Member 서비스와 연결
Dalsungmin Jul 10, 2024
d5ee080
Feat: Wishlist 서비스와 연결
Dalsungmin Jul 10, 2024
b2b6812
Refactor: 에러 받을 내용 수정
Dalsungmin Jul 10, 2024
ca5e310
Refactor: 최신 버전 수정
Dalsungmin Jul 10, 2024
9712205
Refactor: 기능 구현 동작 테스트
Dalsungmin Jul 10, 2024
4d056f5
Feat: ID로 조회 테스트 코드
Dalsungmin Jul 10, 2024
756e7c5
Feat: 상품 추가 기능 테스트
Dalsungmin Jul 10, 2024
7d01870
Feat: 상품 삭제 기능 테스트
Dalsungmin Jul 10, 2024
bda2de7
Feat: 회원가입 기능 테스트
Dalsungmin Jul 10, 2024
2dc4d0e
Feat: 로그인 기능 테스트
Dalsungmin Jul 10, 2024
e92bba9
Feat: 검증 기능 테스트
Dalsungmin Jul 10, 2024
f40c8f6
Feat: 위시리스트 상품 추가 기능 테스트
Dalsungmin Jul 10, 2024
ac4062a
Feat: ID로 조회하는 기능 테스트
Dalsungmin Jul 10, 2024
6000982
Feat: 삭제 기능 테스트
Dalsungmin Jul 10, 2024
884f5be
Remove: 필요없는 테스트 코드 삭제
Dalsungmin Jul 10, 2024
7ed98b7
Fix: 테스트 동작하게끔 수정
Dalsungmin Jul 10, 2024
1cd012a
README step2 작성
Dalsungmin Jul 11, 2024
60bb5b5
Feat: OneToMany 구현을 위해 위시리스트와 연결
Dalsungmin Jul 11, 2024
2a318ff
Feat: OneToMany 구현을 위해 멤버와 연결
Dalsungmin Jul 11, 2024
c329d6e
Refactor: findById 메서드 수정
Dalsungmin Jul 11, 2024
9486ce0
Refactor: 상품 추가 메서드 수정
Dalsungmin Jul 11, 2024
0275feb
Refactor: 상품 조회 메서드 수정
Dalsungmin Jul 11, 2024
6bef976
Refactor: 상품 추가 컨트롤러 메서드 수정
Dalsungmin Jul 11, 2024
8b6b978
Refactor: 상품 조회 컨트롤러 메서드 수정
Dalsungmin Jul 11, 2024
6bcb446
Refactor: 상품 추가 레포지토리 메서드 테스트 수정
Dalsungmin Jul 11, 2024
7d230a3
Refactor: 상품 조회 레포지토리 메서드 테스트 수정
Dalsungmin Jul 11, 2024
12f8353
Refactor: 상품 삭제 레포지토리 메서드 테스트 수정
Dalsungmin Jul 11, 2024
50e97ea
Test: 메서드 동작 테스트 위한 http 요청 파일
Dalsungmin Jul 11, 2024
3ad6e6c
Refactor: 상품관리 페이지 동작하도록 수정
Dalsungmin Jul 12, 2024
5756306
REAMME step3 작성
Dalsungmin Jul 13, 2024
3f80d10
Refactor: 매개변수 이름 수정
Dalsungmin Jul 13, 2024
20adde6
Feat: 페이지네이션 구현 위해 컨트롤러 수정
Dalsungmin Jul 13, 2024
d323266
Feat: 서비스단의 매개변수 수정
Dalsungmin Jul 13, 2024
e7aa19a
Feat: 페이지네이션 표현을 위해 페이지 버튼들 구현
Dalsungmin Jul 13, 2024
44ae99d
Feat: 페이지네이션 구현 위해 컨트롤러 수정
Dalsungmin Jul 13, 2024
c2792d5
Refactor: 삭제 기능 수정
Dalsungmin Jul 13, 2024
ba09b3e
Feat: 서비스단 매개변수 수정
Dalsungmin Jul 13, 2024
bc7768a
Feat: 레포지토리단 매개변수 수정
Dalsungmin Jul 13, 2024
ba0c21b
Feat: 위시리스트 상품 화면 구현
Dalsungmin Jul 13, 2024
e6c7606
Refactor: 매개변수 수정
Dalsungmin Jul 13, 2024
0e886e5
Test: 메서드 동작 테스트 위한 http 요청 파일
Dalsungmin Jul 13, 2024
af1ce51
Feat: 토큰이 올바른지 검증하는 과정 추가
Dalsungmin Jul 14, 2024
177c9ab
Merge branch 'dalsungmin' into step3
Dalsungmin Jul 14, 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
Prev Previous commit
Next Next commit
Feat: WishlistRepository 인터페이스 구현
인터페이스 구현을 위해 기존 위시리스트 레포지토리 클래스를 삭제하고 위시리스트 인터페이스 파일로 재생성
findByMemberId 메서드는 인터페이스의 기본 메서드에 없는 기능이므로 추가로 메서드 작성
  • Loading branch information
Dalsungmin committed Jul 10, 2024
commit b2e8b970ae14f6d83e19cb205fe208a2cc99016e
57 changes: 4 additions & 53 deletions src/main/java/gift/repository/WishlistRepository.java
Original file line number Diff line number Diff line change
@@ -1,62 +1,13 @@
package gift.repository;

import gift.model.WishList;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

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

@Repository
public class WishlistRepository {
private final JdbcTemplate jdbcTemplate;
private final SimpleJdbcInsert simpleJdbcInsert;

public WishlistRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
createWishlistTable();
this.simpleJdbcInsert = new SimpleJdbcInsert(jdbcTemplate)
.withTableName("wishlist_items")
.usingGeneratedKeyColumns("id");
}

public void createWishlistTable() {
String sql = "CREATE TABLE IF NOT EXISTS wishlist_items (" +
"id BIGINT AUTO_INCREMENT PRIMARY KEY," +
"member_id BIGINT NOT NULL," +
"product_id BIGINT NOT NULL," +
"product_name VARCHAR(255) NOT NULL," +
"product_price BIGINT NOT NULL" +
")";
jdbcTemplate.execute(sql);
}

public WishList addProduct(WishList wishlist) {
Map<String, Object> parameters = new HashMap<>();
parameters.put("member_id", wishlist.getMemberId());
parameters.put("product_id", wishlist.getProductId());
parameters.put("product_name", wishlist.getName());
parameters.put("product_price", wishlist.getPrice());
Number newId = simpleJdbcInsert.executeAndReturnKey(parameters);
wishlist.setId(newId.longValue());
return wishlist;
}

public List<WishList> getProductsByMemberId(Long memberId) {
String sql = "SELECT * FROM wishlist_items WHERE member_id = ?";
return jdbcTemplate.query(sql, (rs, rowNum) -> {
Long id = rs.getLong("id");
Long productId = rs.getLong("product_id");
String name = rs.getString("product_name");
int price = rs.getInt("product_price");
return new WishList(id, memberId, productId, name, price);
}, memberId);
}
public interface WishlistRepository extends JpaRepository<WishList, Long> {
List<WishList> findByMemberId(Long memberId);

public void deleteItem(Long id) {
String sql = "DELETE FROM wishlist_items WHERE id = ?";
jdbcTemplate.update(sql, id);
}
//void deleteById(Long productId);
}