프로젝트

48. 계약(백엔드 수정)

uni5948 2022. 2. 9. 10:48

48. 계약(백엔드 수정)

24. 계약(백엔드) 수정

기존의 계약 코드는 계약은 이루어 지지만 선수 정보가 update 되지 않았다.

그래서 기존의 코드의 순서 및 저장(전달) 방법을 수정하였다.

1. 기존 @RequestBody Contract contract,@ModelAttribute Contract contract로 수정 

2. 선수 정보 변경을 위해 @ModelAttribute Player player 추가

3. 선수 정보 변경을 먼저 한 뒤 계약이 되도록 순서 변경 

  • 코드 수정(ContractController)
    //계약하기
    // 127.0.0.1:8080/REST/contractinsert?sno=
    @RequestMapping(value = "/contractinsert", method = {RequestMethod.POST},
    consumes = MediaType.ALL_VALUE,
    produces = MediaType.APPLICATION_JSON_VALUE)
    public Map<String, Object> contractinsertPOST(
        @ModelAttribute Player player,
        @ModelAttribute Contract contract,
        @RequestParam(name = "sno", defaultValue = "0")long scoutNo,
        @RequestHeader("token") String token){
        Map<String, Object> map = new HashMap<String, Object>();
        try{
            String memberid = jwtUtil.extractUsername(token); // 토큰을 통해 회원 정보 찾기
            Scout scout = sService.getScoutOne(scoutNo);
            String scoutId = scout.getMember().getUserid(); // scout에서 member 정보 찾기
            if(memberid.equals(scoutId)){ // 로그인 memberid와 scout에서 찾은 memberid가 일치하는지 확인
                Player player2 = scout.getPlayer(); // scout에서 선수 정보 찾기
                player2.setPlayerprice(player.getPlayerprice());    //몸값
                player2.setTeam(player.getTeam()); //소속팀
                pService.updatePlayer(player2);
                map.put("status", 1);
            }
            else{
                map.put("status", 2);
            }
            if(player.getPlayerprice() != null){ //계약이 성공하면 해당 player의 팀, 몸 값 정보를 수정한다.
                contract.setScout(scout);
                cService.insertContract(contract);
                // 계약이 성공하면 해당 scout의 player 정보를 null로 수정한다.
                scout.setMember(null);
                sService.updateScout(scout);
            }
            else{
                map.put("status", 300);
            }
        }
        catch(Exception e){
            e.printStackTrace();
            map.put("status", e.hashCode());
        }
        return map;
    }
  • 계약

player19 선수의 몸 값, 소속팀을 변경한다.

1. 현재 player19의 몸 값(1000), 소속팀(1) 확인

player19

2. postman에서 계약 구현

1계약 구현

3. db 확인

3-1. 선수 정보 수정 확인

선수 정보 수정 성공

3-2. scout 목록에 member 정보 수정, contract 저장 확인

scout 정보 수정 성공
contract 저장 확인

 

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

50. 팀 목록 조회  (0) 2022.02.24
49. 계약(연동)  (0) 2022.02.09
47. 계약(화면 구현)  (0) 2022.02.07
46. 스카우트 목록 삭제  (0) 2022.02.05
45. 스카우트 목록 1개 조회  (0) 2022.02.04