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) 확인
2. postman에서 계약 구현
3. db 확인
3-1. 선수 정보 수정 확인
3-2. scout 목록에 member 정보 수정, 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 |