프로젝트

25. 스카우트 중복 조회

uni5948 2022. 1. 7. 15:28

25. 스카우트 중복 조회

참조 21. 스카우트 목록 추가

스카우트 목록 추가 시 중복 조회가 없어서 한 명의 member가 같은 선수를 계속 스카우트 목록에 추가가 되었다.

같은 선수가 중복으로 추가되는 것을 막기 위해 scout 목록을 조회하여 이미 등록된 선수가 있으면 중복 알림을 띄우고 목록에 추가되지 않도록 한다. 만약 memberid가 다르다면 같은 선수가 등록 가능하다.

  • 스카우트 저장소에 중복 체크 쿼리문 작성
    // 스카우트 member, 선수 중복 조회
    @Query(value = "SELECT COUNT(MEMBER) FROM SCOUT WHERE MEMBER = :memberid AND PLAYER = :playerno", nativeQuery = true)
    public int queryCheckMember(String memberid, Long playerno);
 
 
  • 스카우트 서비스에 중복 체크 생성

1. ScoutService

    // 스카우트 member, 선수 중복 조회
    public int checkScout(String id, Long no);
   

2. ScoutServiceImpl

    // 스카우트 member 중복 조회
    @Override
    public int checkScout(String id, Long no) {
        return sRepository.queryCheckMember(id, no);
    }
  • 스카우트 목록 추가 수정

생성한 중복 체크를 스카우트 목록 추가에 적용한다.


    // 스카우트 목록 추가
    // 127.0.0.1:8080/REST/scoutinsert
    @RequestMapping(value = "/scoutinsert", method = {RequestMethod.POST},
    consumes = MediaType.ALL_VALUE,
    produces = MediaType.APPLICATION_JSON_VALUE)
    public Map<String, Object> scoutinsertPOST(
        @RequestBody Scout scout,
        @RequestHeader("token") String token){
        Map<String, Object> map = new HashMap<String, Object>();
        try{
            String memberid = jwtUtil.extractUsername(token); // 토큰을 통해 회원 정보 찾기
            Member member = mService.selectUserOne(memberid); // member 정보 찾기
            if(memberid.equals(member.getUserid())){
                Long pno = scout.getPlayer().getPlayerno();
                Player player = pService.getPlayerOne(pno); // player 정보 찾기
                int Count = sService.checkScout(memberid, pno); // 중복 체크(중복이 없다면 0이 출력됨)
                if(Count != 0){ //선수 중복 체크
                    map.put("status", "선수 중복");
                }
                else{
                    scout.setMember(member);
                    scout.setPlayer(player);
                    sService.insertScout(scout);
                    map.put("status", 200);
                }
            }
            else{
                map.put("status", 300);
            }
        }
        catch(Exception e){
            e.printStackTrace();
            map.put("status", e.hashCode());
        }
        return map;
    }
 
  • 중복 체크 확인

1. 저장된 스카우트 목록 확인

스카우트 목록 확인

2. 스카우트 목록 추가

 2-1. u1으로 로그인 한 뒤 77번 선수를 스카우트 목록에 추가

 

u1 로그인
중복 확인

 2-2. u1으로 로그인 한 뒤 78번 선수를 스카우트 목록에 추가

추가 성공
78번 선수 추가 확인

 

'프로젝트' 카테고리의 다른 글

27. 선수 조회(포지션)  (0) 2022.01.08
26. 선수 조회(몸값)  (0) 2022.01.08
24. 계약  (0) 2022.01.07
23. 스카우터 목록 삭제  (0) 2022.01.06
22. member 별 스카우트 목록 조회  (0) 2022.01.06