package com.tourguide.modules.order.dto;
|
|
import com.tourguide.modules.order.entity.TourOrder;
|
import com.tourguide.modules.operation.entity.OperationScenicSpot;
|
import com.tourguide.modules.operation.entity.ScenicMeetingPoint;
|
import com.tourguide.modules.operation.entity.ScenicPricing;
|
import com.tourguide.modules.review.entity.OrderReview;
|
import com.tourguide.modules.user.entity.GuideUser;
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
|
public class TourOrderResponse {
|
private Long id;
|
private String orderNo;
|
private Long visitorId;
|
private String visitorNickname;
|
private String visitorMobile;
|
private String scenicName;
|
private String meetingPointName;
|
private String packageName;
|
private String familyNo;
|
private String orderType;
|
private Integer peopleCount;
|
private BigDecimal unitPrice;
|
private BigDecimal originalPrice;
|
private BigDecimal discountPrice;
|
private BigDecimal subtotalAmount;
|
private String discountType;
|
private BigDecimal discountAmount;
|
private BigDecimal amount;
|
private String paymentMethod;
|
private String paymentOrderNo;
|
private BigDecimal paymentAmount;
|
private LocalDateTime paymentTime;
|
private LocalDateTime placedAt;
|
private Integer meetingPointCount;
|
private Long guideId;
|
private String guideName;
|
private String guideMobile;
|
private LocalDateTime acceptedAt;
|
private LocalDateTime arrivedAt;
|
private LocalDateTime serviceStartedAt;
|
private LocalDateTime completedAt;
|
private String status;
|
private String refundStatus;
|
private BigDecimal refundAmount;
|
private LocalDateTime refundTime;
|
private String refundOrderNo;
|
private String refundMethod;
|
private Long reviewId;
|
private LocalDateTime reviewedAt;
|
private LocalDateTime createdAt;
|
private LocalDateTime updatedAt;
|
private Long scenicSpotId;
|
private Long meetingPointId;
|
private Long servicePackageId;
|
private Integer durationMinutes;
|
private BigDecimal meetingPointLongitude;
|
private BigDecimal meetingPointLatitude;
|
private BigDecimal guideRating;
|
private String guideAvatar;
|
private Integer unacceptedAutoRefundMinutes;
|
|
public static TourOrderResponse from(TourOrder order) {
|
TourOrderResponse response = new TourOrderResponse();
|
response.id = order.getId();
|
response.orderNo = order.getOrderNo();
|
response.visitorId = order.getVisitorId();
|
response.visitorNickname = order.getVisitorNickname();
|
response.visitorMobile = order.getVisitorMobile();
|
response.scenicName = order.getScenicName();
|
response.meetingPointName = order.getMeetingPointName();
|
response.packageName = order.getPackageName();
|
response.familyNo = order.getFamilyNo();
|
response.orderType = order.getOrderType();
|
response.peopleCount = order.getPeopleCount();
|
response.unitPrice = order.getUnitPrice();
|
response.originalPrice = order.getOriginalPrice();
|
response.discountPrice = order.getDiscountPrice();
|
response.subtotalAmount = order.getSubtotalAmount();
|
response.discountType = order.getDiscountType();
|
response.discountAmount = order.getDiscountAmount();
|
response.amount = order.getAmount();
|
response.paymentMethod = order.getPaymentMethod();
|
response.paymentOrderNo = order.getPaymentOrderNo();
|
response.paymentAmount = order.getPaymentAmount();
|
response.paymentTime = order.getPaymentTime();
|
response.placedAt = order.getPlacedAt();
|
response.meetingPointCount = order.getMeetingPointCount();
|
response.guideId = order.getGuideId();
|
response.guideName = order.getGuideName();
|
response.guideMobile = order.getGuideMobile();
|
response.acceptedAt = order.getAcceptedAt();
|
response.arrivedAt = order.getArrivedAt();
|
response.serviceStartedAt = order.getServiceStartedAt();
|
response.completedAt = order.getCompletedAt();
|
response.status = order.getStatus();
|
response.refundStatus = order.getRefundStatus();
|
response.refundAmount = order.getRefundAmount();
|
response.refundTime = order.getRefundTime();
|
response.refundOrderNo = order.getRefundOrderNo();
|
response.refundMethod = order.getRefundMethod();
|
response.createdAt = order.getCreatedAt();
|
response.updatedAt = order.getUpdatedAt();
|
return response;
|
}
|
|
public static TourOrderResponse from(TourOrder order, OrderReview review) {
|
TourOrderResponse response = from(order);
|
if (review != null) {
|
response.reviewId = review.getId();
|
response.reviewedAt = review.getReviewedAt();
|
}
|
return response;
|
}
|
|
public TourOrderResponse enrich(OperationScenicSpot scenicSpot, ScenicMeetingPoint meetingPoint,
|
ScenicPricing pricing, GuideUser guide) {
|
if (scenicSpot != null) this.scenicSpotId = scenicSpot.getId();
|
if (meetingPoint != null) {
|
this.meetingPointId = meetingPoint.getId();
|
this.meetingPointLongitude = meetingPoint.getLongitude();
|
this.meetingPointLatitude = meetingPoint.getLatitude();
|
}
|
if (pricing != null) {
|
this.servicePackageId = pricing.getId();
|
this.durationMinutes = pricing.getDurationMinutes();
|
}
|
if (guide != null) {
|
this.guideRating = guide.getRating();
|
this.guideAvatar = guide.getAvatar();
|
}
|
return this;
|
}
|
|
public TourOrderResponse withUnacceptedAutoRefundMinutes(Integer minutes) {
|
this.unacceptedAutoRefundMinutes = minutes;
|
return this;
|
}
|
|
public Long getId() { return id; }
|
public String getOrderNo() { return orderNo; }
|
public Long getVisitorId() { return visitorId; }
|
public String getVisitorNickname() { return visitorNickname; }
|
public String getVisitorMobile() { return visitorMobile; }
|
public String getScenicName() { return scenicName; }
|
public String getMeetingPointName() { return meetingPointName; }
|
public String getPackageName() { return packageName; }
|
public String getFamilyNo() { return familyNo; }
|
public String getOrderType() { return orderType; }
|
public Integer getPeopleCount() { return peopleCount; }
|
public BigDecimal getUnitPrice() { return unitPrice; }
|
public BigDecimal getOriginalPrice() { return originalPrice; }
|
public BigDecimal getDiscountPrice() { return discountPrice; }
|
public BigDecimal getSubtotalAmount() { return subtotalAmount; }
|
public String getDiscountType() { return discountType; }
|
public BigDecimal getDiscountAmount() { return discountAmount; }
|
public BigDecimal getAmount() { return amount; }
|
public String getPaymentMethod() { return paymentMethod; }
|
public String getPaymentOrderNo() { return paymentOrderNo; }
|
public BigDecimal getPaymentAmount() { return paymentAmount; }
|
public LocalDateTime getPaymentTime() { return paymentTime; }
|
public LocalDateTime getPlacedAt() { return placedAt; }
|
public Integer getMeetingPointCount() { return meetingPointCount; }
|
public Long getGuideId() { return guideId; }
|
public String getGuideName() { return guideName; }
|
public String getGuideMobile() { return guideMobile; }
|
public LocalDateTime getAcceptedAt() { return acceptedAt; }
|
public LocalDateTime getArrivedAt() { return arrivedAt; }
|
public LocalDateTime getServiceStartedAt() { return serviceStartedAt; }
|
public LocalDateTime getCompletedAt() { return completedAt; }
|
public String getStatus() { return status; }
|
public String getRefundStatus() { return refundStatus; }
|
public BigDecimal getRefundAmount() { return refundAmount; }
|
public LocalDateTime getRefundTime() { return refundTime; }
|
public String getRefundOrderNo() { return refundOrderNo; }
|
public String getRefundMethod() { return refundMethod; }
|
public Long getReviewId() { return reviewId; }
|
public LocalDateTime getReviewedAt() { return reviewedAt; }
|
public LocalDateTime getCreatedAt() { return createdAt; }
|
public LocalDateTime getUpdatedAt() { return updatedAt; }
|
public Long getScenicSpotId() { return scenicSpotId; }
|
public Long getMeetingPointId() { return meetingPointId; }
|
public Long getServicePackageId() { return servicePackageId; }
|
public Integer getDurationMinutes() { return durationMinutes; }
|
public BigDecimal getMeetingPointLongitude() { return meetingPointLongitude; }
|
public BigDecimal getMeetingPointLatitude() { return meetingPointLatitude; }
|
public BigDecimal getGuideRating() { return guideRating; }
|
public String getGuideAvatar() { return guideAvatar; }
|
public Integer getUnacceptedAutoRefundMinutes() { return unacceptedAutoRefundMinutes; }
|
}
|