Pu Zhibing
2025-08-01 926e065fb0b4424d0d51023c234a92433bac61c8
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/vo/TripOrderVo.java
New file
@@ -0,0 +1,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;
    }
}