package com.xiaopeng.api.model.operation; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.xiaopeng.common.core.web.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; /** *

* 交易策略配置 *

* * @author mitao * @since 2026-02-03 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("xp_trading_strategy") @ApiModel(value="XpTradingStrategy对象", description="交易策略配置") public class XpTradingStrategy extends BaseModel { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; //----------------发单策略-------------------- @ApiModelProperty(value = "用户每日取消订单数") private Integer cancleCount; @ApiModelProperty(value = "单个订单可修改目的地次数") private Integer amendCountPerOrder; @ApiModelProperty(value = "乘客端首页安全中心是否开启") private Boolean showSecurityCenter; //----------------发单策略-------------------- //---------------发单拦截策略------------------------------------ @ApiModelProperty(value = "豁免金额") private BigDecimal exemptionAmount; @ApiModelProperty(value = "是否长期有效 1=是 0=否") private Boolean isLongValid; @ApiModelProperty(value = "豁免城市") private String cityCode; @ApiModelProperty(value = "豁免开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime exemptionStartTime; @ApiModelProperty(value = "豁免结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime exemptionEndTime; @ApiModelProperty(value = "豁免角色 逗号分割 0=全部 1=新客 2=老客 3=流失召回 4=媒体") private String exemptionRole; @ApiModelProperty(value = "免密授权金额") private BigDecimal passwordFreeAmount; @ApiModelProperty(value = "预付额度 订单大于金额需预付") private BigDecimal prepaidLimit; //---------------发单拦截策略------------------------------------ //---------------播单策略------------------------------------ @ApiModelProperty(value = "一轮推单距离") @Min(0) private Double onePushDistance; @ApiModelProperty(value = "一轮推单时间") @Min(0) private Integer onePushTime; @ApiModelProperty(value = "二轮推单距离") @Min(0) private Double twoPushDistance; @ApiModelProperty(value = "二轮推单时间") @Min(0) private Integer twoPushTime; @ApiModelProperty(value = "三轮推单距离") @Min(0) private Double threePushDistance; @ApiModelProperty(value = "三轮推单时间") @Min(0) private Integer threePushTime; @ApiModelProperty(value = "四轮推单距离") @Min(0) private Double fourPushDistance; @ApiModelProperty(value = "四轮推单时间") @Min(0) private Integer fourPushTime; @ApiModelProperty(value = "五轮推单距离") private Double fivePushDistance; @ApiModelProperty(value = "五轮推单时间") private Integer fivePushTime; @ApiModelProperty(value = "排队是时,每X秒轮询接口查询排序") private Integer queuePollingTime; @ApiModelProperty(value = "乘客据上车点大于X米展示步行导航按钮") private Integer walkingNavigationDistance; @ApiModelProperty(value = "用户在页面超过X秒未下单,系统静默判断价格是否有波动") private Integer notAddOrderTime; @ApiModelProperty(value = "波动大于X%,则弹框提示") private Integer priceFluctuationRatio; @ApiModelProperty(value = "播单—乘客上车后x分钟内未点击出车,订单自动取消") private Integer bdNotBoardedTime; //---------------播单策略------------------------------------ //---------------分单策略------------------------------------ @ApiModelProperty(value = "规则类型 1=单手举手 2=多手举手") private Integer ruleType; @ApiModelProperty(value = "同时抢单人数") private Integer simultaneouslyOrderCount; @ApiModelProperty(value = "倾向订单价值") private Integer tendencyOrderValue; @ApiModelProperty(value = "倾向距离") private Integer tendencyDistance; @ApiModelProperty(value = "倾向时间") private Integer tendencyTime; @ApiModelProperty(value = "倾向电量") private Integer tendencyElectricity; @ApiModelProperty(value = "时间差权重") private Integer weightTimeDifference; @ApiModelProperty(value = "距离差权重") private Integer weightDistanceDifference; @ApiModelProperty(value = "距离权重") private Integer weightDistance; @ApiModelProperty(value = "时间权重") private Integer weightTime; @ApiModelProperty(value = "电量权重") private Integer weightElectricity; @ApiModelProperty(value = "路线时效,过了需要重新获取,单位:秒") private Integer MaxStandingTiming; @ApiModelProperty(value = "触发步行导航的最小距离") private Integer walkingGuideDistance; //---------------分单策略------------------------------------ //-------------------连环派单策略---------------------- @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池路程阈值, unit : km") @Min(value = 0, message = "连环派单策略>当前订单剩余里程不能小于0") @NotNull(message = "连环派单策略>当前订单剩余里程不能为空") private Integer distanceRegardAsEnding; @ApiModelProperty(value = "连环派单车辆侧 允许车辆进入连环派单候选池时间阈值 unit : min") @Min(value = 0, message = "连环派单策略>当前订单剩余时间不能小于0") @NotNull(message = "连环派单策略>当前订单剩余时间不能为空") private Integer timeRegardAsEnding; @ApiModelProperty(value = "连环派单车辆侧 保障可完成连环订单的电量 unit : km") @Min(value = 0, message = "车辆电量/续航不能小于0") @NotNull(message = "车辆电量/续航不能为空") private Integer backupPower; @ApiModelProperty(value = "连环派单订单侧 终点距离起点的距离阈值 unit : km") @Min(0) private Integer destToPassenger; @ApiModelProperty(value = "连环派单订单侧 结束时间到用车时间阈值unit : min") @Min(0) private Integer endingTimeToUseTime; //-------------------连环派单策略---------------------- }