liujie
2026-08-21 77649c76ec1c3afcb93e9963243d637665b3a307
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
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 String commissionSource;
    private BigDecimal commissionRate;
    private Long commissionTeamId;
    private BigDecimal guideEarningAmount;
    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.scenicSpotId = order.getScenicSpotId();
        response.scenicName = order.getScenicName();
        response.meetingPointId = order.getMeetingPointId();
        response.meetingPointName = order.getMeetingPointName();
        response.packageName = order.getPackageName();
        response.servicePackageId = order.getServicePackageId();
        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.commissionSource = order.getCommissionSource();
        response.commissionRate = order.getCommissionRate();
        response.commissionTeamId = order.getCommissionTeamId();
        response.guideEarningAmount = order.getGuideEarningAmount();
        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 String getCommissionSource() { return commissionSource; }
    public BigDecimal getCommissionRate() { return commissionRate; }
    public Long getCommissionTeamId() { return commissionTeamId; }
    public BigDecimal getGuideEarningAmount() { return guideEarningAmount; }
    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; }
}