New World
[해외공구관리사이트] 배송 - 조회 & 등록 & 수정 본문
728x90
반응형
배송 등록 기능
1. 배송 등록을 통해 바로 상태값 등록도 가능
2. 프로젝트의 배송으로 잘 저장되는지 확인
controller
ㄴTrackingController
// 배송 생성
@RequestMapping("/trackingSave{orderNo}")
public String trackingSave(HttpSession httpSession, @PathVariable("orderNo") Long orderNo, Model model) {
Order order = orderService.findOne(orderNo);
model.addAttribute("order", order);
model.addAttribute("nowLoginMember", memberController.modelMember(httpSession));
return "sample/tracking/tracking-save";
}
API
ㄴ TrackingApiController
// 생성
@PostMapping("/api/tracking/save/{orderNo}")
public Long saveMember(@SessionAttribute("mSession") Long nowLoginMemberNo,
@PathVariable("orderNo") Long orderNo, @RequestBody @Valid TrackingForm request) {
Long no = trackingService.save(request, nowLoginMemberNo, orderNo);
return no;
}
Service
ㄴ TrackingService
ㄴ TrackingServiceImpl
@Override
@Transactional
public Long save(TrackingForm request, Long memberNo, Long orderNo) {
Tracking tracking = new Tracking();
Order order = orderService.findOne(orderNo);
tracking.setDate(request.getDate());
tracking.setLocal(request.getLocal());
tracking.setMemo(request.getMemo());
tracking.setOrder(order);
if (request.getStatus().equals("ORDER")) {
tracking.setStatus(TrackingStatus.ORDER);
} else if (request.getStatus().equals("RELEASE")) {
tracking.setStatus(TrackingStatus.RELEASE);
} else if (request.getStatus().equals("SHIPPINGAGENT")) {
tracking.setStatus(TrackingStatus.SHIPPINGAGENT);
} else if (request.getStatus().equals("DOMESTIC")) {
tracking.setStatus(TrackingStatus.DOMESTIC);
} else if (request.getStatus().equals("DELIVERY")) {
tracking.setStatus(TrackingStatus.DELIVERY);
}
Member member = memberService.myInfo(memberNo);
if (order.getProject().getMember() == member) {
return trackingRepository.save(tracking);
} else {
throw new IllegalStateException("프로젝트를 만든 회원이 아닙니다.");
}
}
배송 수정 기능
1. 배송 상태값 변경 없음
2. 빈값으로 저장 시, 저장 잘 되는지 확인
controller
ㄴTrackingController
// 배송 수정
@RequestMapping("/trackingUpdate{trackingNo}")
public String trackingUpdate(@PathVariable("trackingNo") Long trackingNo, Model model) {
Tracking tracking = trackingService.findOne(trackingNo);
model.addAttribute("tracking", tracking);
return "sample/tracking/tracking-update";
}
API
ㄴ TrackingApiController
@PutMapping("/api/tracking/edit/{trackingNo}")
public UpdateProjectResponse updateTracking(@SessionAttribute("mSession") Long nowLoginMemberNo,
@PathVariable("trackingNo") Long trackingNo,
@RequestBody @Valid UpdateTrackingRequest request) {
trackingService.update(trackingNo, memberService.myInfo(nowLoginMemberNo), request);
return new UpdateProjectResponse(trackingNo, request.getDate());
}
Service
ㄴ TrackingService
ㄴ TrackingServiceImpl
@Override
@Transactional
public Long update(Long no, Member member, UpdateTrackingRequest request) {
Tracking tracking = trackingRepository.findOne(no);
tracking.setDate(LocalDateTime.now());
tracking.setLocal(request.getLocal());
tracking.setMemo(request.getMemo());
if (request.getStatus().equals("ORDER")) {
tracking.setStatus(TrackingStatus.ORDER);
} else if (request.getStatus().equals("RELEASE")) {
tracking.setStatus(TrackingStatus.RELEASE);
} else if (request.getStatus().equals("SHIPPINGAGENT")) {
tracking.setStatus(TrackingStatus.SHIPPINGAGENT);
} else if (request.getStatus().equals("DOMESTIC")) {
tracking.setStatus(TrackingStatus.DOMESTIC);
} else if (request.getStatus().equals("DELIVERY")) {
tracking.setStatus(TrackingStatus.DELIVERY);
}
if (member == tracking.getOrder().getProject().getMember()) {
return trackingRepository.save(tracking);
} else {
throw new IllegalStateException("프로젝트를 만든 회원이 아닙니다.");
}
}
반응형
'Project > old' 카테고리의 다른 글
[해외공구관리사이트] 홈 (0) | 2022.09.06 |
---|---|
[해외공구관리사이트] 캐쉬 - 적립 & 내역 조회 (0) | 2022.09.06 |
[해외공구관리사이트] 주문 - 수정 (0) | 2022.09.06 |
[해외공구관리사이트] 주문 - 조회(내 주문서와 내 프로젝트의 주문서) & 삭제 (0) | 2022.09.06 |
[해외공구관리사이트] 주문 - 저장 (0) | 2022.09.06 |
Comments