Skip to content

Commit

Permalink
Merge pull request #1 from DONGA-ST-B/seungyeon
Browse files Browse the repository at this point in the history
Seungyeon
  • Loading branch information
seungueonn authored Sep 15, 2023
2 parents 5a3c48b + b527683 commit fbfbb00
Show file tree
Hide file tree
Showing 11 changed files with 102 additions and 12 deletions.
5 changes: 4 additions & 1 deletion src/main/java/gip/sever/ResponseMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ public enum ResponseMessage {
CREATE_CART_SUCCESS("장바구니 담기를 완료 했습니다."),
TRUE_HEART("좋아요 버튼이 활성화 되었습니다."),
FALSE_HEART("좋아요 버튼이 비활성화 되었습니다."),
MAIL_SUCCESS("데모 신청이 완료되었습니다");
MAIL_SUCCESS("데모 신청이 완료되었습니다"),
ADDITIONAL_INFO_NEED("추가정보 기입이 필요합니다"),
LOGIN_SUCCESS("로그인 성공"),
ADDITIONAL_INFO_SUCCESS("추가 정보 기입이 완료되었습니다");
private final String message;


Expand Down
19 changes: 17 additions & 2 deletions src/main/java/gip/sever/controller/OauthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,21 @@

import com.fasterxml.jackson.core.JsonProcessingException;
import gip.sever.domain.SessionUser;
import gip.sever.dto.request.AdditionalRequest;
import gip.sever.global.response.SuccessResponse;
import gip.sever.service.OauthService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;

import static gip.sever.ResponseMessage.*;

@Slf4j
@RestController
@RequiredArgsConstructor
Expand All @@ -28,10 +33,15 @@ public void socialLoginType(@PathVariable(name = "socialLoginType") String socia
}

@GetMapping(value = "/{socialLoginType}/callback")
public void callback(
public ResponseEntity<SuccessResponse<String>> callback(
@PathVariable(name = "socialLoginType") String socialLoginType,
@RequestParam(name = "code") String code) throws JsonProcessingException {
oauthService.oauthLogin(httpSession,socialLoginType, code);
if(oauthService.oauthLogin(socialLoginType, code)==1){
return ResponseEntity.ok(SuccessResponse.create(ADDITIONAL_INFO_NEED.getMessage()));
}else{
return ResponseEntity.ok(SuccessResponse.create(LOGIN_SUCCESS.getMessage()));
}


}

Expand All @@ -41,4 +51,9 @@ public String check(HttpServletRequest request) {
// SessionUser user = (SessionUser) httpSession.getAttribute("user");
return user1.getName();
}
@PostMapping("/additional")
public ResponseEntity<SuccessResponse<String>> additionalInfo(AdditionalRequest additionalRequest) {
oauthService.additional(additionalRequest);
return ResponseEntity.ok(SuccessResponse.create(ADDITIONAL_INFO_SUCCESS.getMessage()));
}
}
5 changes: 5 additions & 0 deletions src/main/java/gip/sever/controller/SearchController.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,9 @@ public class SearchController {
public List<SearchResponse> search(@RequestBody SearchRequest searchRequest) {
return searchService.searchKeyword(searchRequest.getKeyword());
}

@PostMapping("/{searchType}")
public List<SearchResponse> search(@PathVariable("searchType") String type ,@RequestBody SearchRequest searchRequest) {
return searchService.searchKeywordByType(searchRequest.getKeyword(),type);
}
}
2 changes: 1 addition & 1 deletion src/main/java/gip/sever/domain/Article.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ public class Article {
private String photoUrl; // 사진 URL(버킷)
private String articleLink; // 기사 링크


}

13 changes: 13 additions & 0 deletions src/main/java/gip/sever/domain/Member.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package gip.sever.domain;

import gip.sever.dto.request.AdditionalRequest;
import lombok.Getter;
import lombok.NoArgsConstructor;

Expand All @@ -18,6 +19,11 @@ public class Member {

private String email;

private String presidentName;
private String businessName;
private String businessNumber;
private String type;

@OneToOne
private GoogleUser googleUser;

Expand All @@ -28,4 +34,11 @@ public Member(GoogleUser googleUser) {
this.googleUser = googleUser;
this.email = googleUser.getEmail();
}

public void updateInfo(AdditionalRequest additionalRequest) {
this.presidentName = additionalRequest.getPresident();
this.businessName = additionalRequest.getBusinessName();
this.businessNumber = additionalRequest.getBusinessNumber();
this.type = additionalRequest.getType();
}
}
11 changes: 11 additions & 0 deletions src/main/java/gip/sever/dto/request/AdditionalRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package gip.sever.dto.request;

import lombok.Getter;

@Getter
public class AdditionalRequest {
String president;
String businessName;
String businessNumber;
String type;
}
14 changes: 14 additions & 0 deletions src/main/java/gip/sever/dto/response/SearchResponse.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package gip.sever.dto.response;

import gip.sever.domain.Article;
import gip.sever.domain.Product;
import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -15,11 +16,24 @@ public class SearchResponse {
private String title;
private String imageURL;
private String content;
private String type;

public SearchResponse(Product product) {
this.id = product.getId();
this.title = product.getProductName();
this.imageURL = product.getPhotoUrl();
this.content = product.getProductName();
this.type = "Product";
}

public SearchResponse(Article product) {
this.id = product.getId();
this.title = product.getArticleTitle();
this.imageURL = product.getPhotoUrl();
this.content = product.getArticleContent();
this.type = "Article";

}


}
6 changes: 4 additions & 2 deletions src/main/java/gip/sever/repository/ArticleRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import java.util.Optional;

public interface ArticleRepository extends JpaRepository<Article, Long> {

@Query("select a from Article as a where a.articleTitle like %:keyword% ")
Optional<List<Article>> findByKeyword(String keyword);

List<Article> findAll();
// @Query("select p from Product p where p.productName like :keyword")
// Optional<List<Article>> findByKeyword(String keyword);
}
5 changes: 4 additions & 1 deletion src/main/java/gip/sever/repository/MemberRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@

import gip.sever.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.Optional;

@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByEmail(String email);
@Query("select m from Member m where m.email =:email")
Optional<Member> findByEmail(@Param(value = "email")String email);
}
13 changes: 11 additions & 2 deletions src/main/java/gip/sever/service/OauthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import gip.sever.domain.GoogleUser;
import gip.sever.domain.Member;
import gip.sever.domain.SessionUser;
import gip.sever.dto.request.AdditionalRequest;
import gip.sever.dto.request.GoogleOauthToken;
import gip.sever.repository.GoogleUserRepository;
import gip.sever.repository.MemberRepository;
Expand Down Expand Up @@ -32,7 +33,7 @@ public String request(String socialLoginType) throws IOException {
return redirectURL;
}

public void oauthLogin(HttpSession httpSession,String socialLoginType, String code) throws JsonProcessingException {
public int oauthLogin(String socialLoginType, String code) throws JsonProcessingException {

ResponseEntity<String> accessTokenResponse = googleOauth.requestAccessToken(code);
GoogleOauthToken OAuthToken = googleOauth.getAccessToken(accessTokenResponse);
Expand All @@ -42,11 +43,19 @@ public void oauthLogin(HttpSession httpSession,String socialLoginType, String co
httpSession.setAttribute("user", new SessionUser(googleUser));


if (memberRepository.findByEmail(googleUser.getEmail()).isEmpty()) {
if (memberRepository.findByEmail(googleUser.getEmail()).isEmpty()) { // 회원가입
memberRepository.save(new Member(googleUser));
return 1;
}
return 0;

}

public void additional(AdditionalRequest additionalRequest) {
Member member = memberRepository.findByEmail("[email protected]").orElseThrow();
member.updateInfo(additionalRequest);
memberRepository.save(member);
}


}
21 changes: 18 additions & 3 deletions src/main/java/gip/sever/service/SearchService.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package gip.sever.service;

import gip.sever.domain.Article;
import gip.sever.domain.Product;
import gip.sever.dto.response.SearchResponse;
import gip.sever.repository.ArticleRepository;
Expand All @@ -24,13 +25,27 @@ public List<SearchResponse> searchKeyword(String keyword) {
List<SearchResponse> searchResponses =new ArrayList<>();
productRepository.findByKeyword(keyword).orElseThrow().stream().forEach(product -> searchResponses.add(new SearchResponse(product)));

System.out.println(productRepository.findByKeyword(keyword).toString());
articleRepository.findByKeyword(keyword).orElseThrow().stream().forEach(article -> searchResponses.add(new SearchResponse(article)));

// List<Article> articles = articleRepository.findByKeyword(keyword).orElseThrow();

return searchResponses;


return searchResponses;
}

public List<SearchResponse> searchKeywordByType(String keyword,String type) {

List<SearchResponse> searchResponses =new ArrayList<>();

if (type.equals("Product")) {
productRepository.findByKeyword(keyword).orElseThrow().stream().forEach(product -> searchResponses.add(new SearchResponse(product)));
return searchResponses;

}
else{
articleRepository.findByKeyword(keyword).orElseThrow().stream().forEach(article -> searchResponses.add(new SearchResponse(article)));
return searchResponses;
}


}
Expand Down

0 comments on commit fbfbb00

Please sign in to comment.