liujie
1 天以前 16ee4f20dc68b9e6a19490c935aa17bb325f8f0d
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
package com.stylefeng.guns.modular.system.model.vo;
 
import com.stylefeng.guns.modular.system.warpper.OrderWarpper;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
 
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TripOrderVo  implements Comparable{
 
    @ApiModelProperty("订单id")
    private Integer orderId;
    @ApiModelProperty("订单日期")
    private String orderTime;
    @ApiModelProperty("出行时间/(小件物流的取货时间)")
    private String time;
    @ApiModelProperty("起点名称")
    private String startAddress;
    @ApiModelProperty("终点名称")
    private String endAddress;
    @ApiModelProperty("公司id(服务商)")
    private Integer companyId;
    @ApiModelProperty("司机id")
    private Integer driverId;
    @ApiModelProperty("车辆id")
    private Integer carId;
    @ApiModelProperty("行程人电话")
    private String passengersPhone;
    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)<br/>" +
            "小件物流订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=已支付差价")
    private Integer state;
    @ApiModelProperty("用车时长")
    private Integer carTime;
    @ApiModelProperty("车型id")
    private Integer serverCarModelId;
    @ApiModelProperty("车型")
    private String serverCarModel;
//    @ApiModelProperty("订单金额")
//    private Double orderMoney;
    @ApiModelProperty("支付金额")
    private Double payMoney;
//    @ApiModelProperty("差价金额")
//    private Double differenceMoney;
    @ApiModelProperty("感谢费")
    private Double thankYouFee;
//    @ApiModelProperty("开票状态(1=未开票,2=已开票)")
//    private Integer invoice;
    @ApiModelProperty("订单名称")
    private String orderName;
    @ApiModelProperty("订单类型(1=专车,2=出租车,3=跨城出行,4=小件物流,5=包车)")
    private Integer orderType;
    @ApiModelProperty("下单时间")
    private Long insertTime;
    @ApiModelProperty("服务结束事件")
    private String endServiceTime;
    @ApiModelProperty("乘车类型(1=独享,2=一口价,3=拼车)")
    private Integer rideType;
    @ApiModelProperty("上车经度")
    private Double boardingLon;
    @ApiModelProperty("上车纬度")
    private Double boardingLat;
    @ApiModelProperty("上车时间")
    private Date boardingTime;  // 从LocalDateTime改为Date
 
    @ApiModelProperty("到达时间")
    private Date arriveTime;    // 从LocalDateTime改为Date
    @ApiModelProperty("城市")
    private String city;
    @ApiModelProperty("服务商")
    private String companyName;
 
    public static List<TripOrderVo> getTripOrderVo(List<Map<String, Object>> maps) {
        List<TripOrderVo> list = new ArrayList<>();
        if (null != maps) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
            for (Map<String, Object> map : maps) {
                TripOrderVo tripOrderVo = new TripOrderVo();
 
                tripOrderVo.setRideType(null != map.get("rideType") ? Integer.valueOf(String.valueOf(map.get("rideType"))) : 1);
                tripOrderVo.setOrderId(null != map.get("orderId") ? Integer.valueOf(String.valueOf(map.get("orderId"))) : 0);
                tripOrderVo.setOrderTime(null != map.get("orderTime") ? String.valueOf(map.get("orderTime")) : "");
                tripOrderVo.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
                tripOrderVo.setStartAddress(null != map.get("startAddress") ? String.valueOf(map.get("startAddress")) : "");
                tripOrderVo.setEndAddress(null != map.get("endAddress") ? String.valueOf(map.get("endAddress")) : "");
                tripOrderVo.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
//                tripOrderVo.setOrderMoney(null != map.get("orderMoney") ? Double.valueOf(String.valueOf(map.get("orderMoney"))) : 0);
                tripOrderVo.setPayMoney(null != map.get("payMoney") ? Double.valueOf(String.valueOf(map.get("payMoney"))) : 0);
//                tripOrderVo.setInvoice(null != map.get("invoice") ? Integer.valueOf(String.valueOf(map.get("invoice"))) : 0);
                tripOrderVo.setOrderName(null != map.get("orderName") ? String.valueOf(map.get("orderName")) : "");
                tripOrderVo.setInsertTime(null != map.get("insertTime") ? Long.valueOf(String.valueOf(map.get("insertTime"))) : 0);
                tripOrderVo.setOrderType(null != map.get("orderType") ? Integer.valueOf(String.valueOf(map.get("orderType"))) : 0);
                tripOrderVo.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
                tripOrderVo.setCarTime(null != map.get("carTime") ? Integer.valueOf(String.valueOf(map.get("carTime"))) : 0);
                tripOrderVo.setServerCarModel(null != map.get("serverCarModel") ? String.valueOf(map.get("serverCarModel")) : "");
//                tripOrderVo.setDifferenceMoney(null != map.get("differenceMoney") ? Double.valueOf(map.get("differenceMoney").toString()) : 0D);
                tripOrderVo.setThankYouFee(null != map.get("thankYouFee") ? Double.valueOf(map.get("thankYouFee").toString()) : 0D);
                tripOrderVo.setEndServiceTime(null != map.get("endServiceTime") ? String.valueOf(map.get("endServiceTime")) : "");
                tripOrderVo.setCompanyId(null != map.get("companyId") ? Integer.valueOf(String.valueOf(map.get("companyId"))) : 0);
                tripOrderVo.setPassengersPhone(null != map.get("passengersPhone") ? String.valueOf(map.get("passengersPhone")) : "");
                tripOrderVo.setBoardingLon(null != map.get("boardingLon") ? Double.valueOf(String.valueOf(map.get("boardingLon"))) : 0D);
                tripOrderVo.setBoardingLat(null != map.get("boardingLat") ? Double.valueOf(String.valueOf(map.get("boardingLat"))) : 0D);
                tripOrderVo.setCity(null != map.get("city") ? String.valueOf(map.get("city")) : "");
                try {
                    tripOrderVo.setBoardingTime(null != map.get("boardingTime") ?
                            sdf.parse(String.valueOf(map.get("boardingTime"))) : null);
                } catch (ParseException e) {
                    // 处理解析异常
                    tripOrderVo.setBoardingTime(null);
                }
                try {
                    tripOrderVo.setArriveTime(null != map.get("arriveTime") ?
                            sdf.parse(String.valueOf(map.get("arriveTime"))) : null);
                } catch (ParseException e) {
                    // 处理解析异常
                    tripOrderVo.setArriveTime(null);
                }
                tripOrderVo.setCompanyName(null != map.get("companyName") ? String.valueOf(map.get("companyName")) : "");
                tripOrderVo.setCarId(null != map.get("carId") ? Integer.valueOf(String.valueOf(map.get("carId"))) : 0);
                tripOrderVo.setServerCarModelId(null != map.get("serverCarModelId") ? Integer.valueOf(String.valueOf(map.get("serverCarModelId"))) : 0);
                list.add(tripOrderVo);
            }
 
        }
        Collections.sort(list);
        return list;
    }
 
    @Override
    public int compareTo(Object o) {
        if (o instanceof OrderWarpper) {
            OrderWarpper s = (OrderWarpper) o;
            if(this.insertTime == null || s.getInsertTime() == null){
                return -1;
            }
            if (this.insertTime > s.getInsertTime()) {
                return -1;
            } else if (this.insertTime == s.getInsertTime()) {
                return 0;
            } else {
                return 1;
            }
        }
        return 0;
    }
}