New World

[해외공구관리사이트] 배송 - 조회 & 등록 & 수정 본문

Project/old

[해외공구관리사이트] 배송 - 조회 & 등록 & 수정

hyeovi 2022. 9. 6. 22:52
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("프로젝트를 만든 회원이 아닙니다.");
        }
    }
반응형
Comments