package com.xy.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xy.utils.PageBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
/**
*
* 设备计费表
*
*
* @author lijin
* @since 2023-04-14
*/
public class DeviceChargingDto {
@Data
@Accessors(chain = true)
public static class Del {
@NotEmpty(message = "设备id不能为空")
@ApiModelProperty(value = "设备id")
private List deviceId;
}
@Data
@Accessors(chain = true)
public static class Check {
@NotEmpty(message = "设备id不能为空")
@ApiModelProperty(value = "设备id")
private Long deviceId;
}
@Data
@Accessors(chain = true)
public static class Charging {
@NotEmpty(message = "设备id不能为空")
@ApiModelProperty(value = "设备id集合")
private List deviceIds;
}
@Data
@Accessors(chain = true)
public static class Page {
@ApiModelProperty("分页对象")
private PageBean page;
@ApiModelProperty("商户id")
private Long mercId;
@ApiModelProperty("设备id")
private Long deviceId;
@ApiModelProperty("状态类型 字典=device_charging_query_type")
private Integer chargingStatus;
@ApiModelProperty(hidden = true)
private LocalDateTime thisTime;
@ApiModelProperty(hidden = true)
private LocalDateTime theTime;
}
@Data
@Accessors(chain = true)
public static class Pay {
@NotBlank(message = "orderId不能为空")
@ApiModelProperty("订单号")
private String orderId;
@NotNull(message = "mercId不能为空")
@ApiModelProperty(value = "商户id")
private Long mercId;
@NotEmpty(message = "deviceChargings不能为空")
@ApiModelProperty("续费信息")
private List deviceChargings;
@NotNull(message = "payType不能为空")
@ApiModelProperty(value = "支付类型 2=支付宝 3=微信 100=赠送")
private Integer payType;
@ApiModelProperty(value = "备注")
private String note;
@Data
@Accessors(chain = true)
public static class DeviceCharging {
@ApiModelProperty("设备id")
private Long deviceId;
@ApiModelProperty("购买年数/赠送天数")
private Integer num;
@ApiModelProperty("续费金额")
private Integer chargingMoney;
}
}
@Data
@Accessors(chain = true)
public static class PayNotice {
@NotBlank(message = "orderId不能为空")
private String orderId;
}
@Data
@Accessors(chain = true)
public static class PayCheck {
@NotEmpty(message = "deviceId不能为空")
@ApiModelProperty("设备id")
private List deviceId;
}
@Data
@Accessors(chain = true)
public static class PayCheckVo {
@ApiModelProperty(value = "设备信息")
private DeviceInfo deviceInfo;
@ApiModelProperty(value = "算法包月信息")
private DeviceAlgorithmCharging moonDeviceAlgorithmCharging;
@ApiModelProperty(value = "算法购买信息")
private DeviceAlgorithmCharging infDeviceAlgorithmCharging;
@Data
@Accessors(chain = true)
public static class DeviceInfo {
@ApiModelProperty("设备id")
private Long deviceId;
@ApiModelProperty("设备名称")
private String deviceName;
@ApiModelProperty("设备类型")
private Integer deviceType;
@ApiModelProperty("设备类型名称")
private String deviceTypeName;
@ApiModelProperty("计费标准说明")
private String standard;
@ApiModelProperty("激活状态")
private Integer activeState;
@ApiModelProperty("运营状态")
private Integer busyState;
@ApiModelProperty("冻结状态")
private Integer freezeStatus;
@ApiModelProperty("价格")
private Integer money;
}
@Data
@Accessors(chain = true)
public static class DeviceAlgorithmCharging {
@ApiModelProperty("算法id")
private Long algorithmId;
@ApiModelProperty("算法名称")
private String algorithmName;
@ApiModelProperty("设备id")
private Long deviceId;
@ApiModelProperty("设备名称")
private String deviceName;
@ApiModelProperty("设备类型")
private Integer deviceType;
@ApiModelProperty("设备类型名称")
private String deviceTypeName;
@ApiModelProperty("计费标准说明")
private String standard;
@ApiModelProperty("价格")
private Integer money;
}
}
@Data
@Accessors(chain = true)
public static class Vo {
@ApiModelProperty(value = "设备id")
private Long deviceId;
@ApiModelProperty(value = "累计续费金额")
private Integer chargingSumMoney;
@ApiModelProperty(value = "过期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timeout;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "最后续费时间")
private LocalDateTime lastChargingTime;
@ApiModelProperty(value = "最后续费金额")
private Integer lastChargingMoney;
@ApiModelProperty(value = "最后续费方式")
private Integer lastChargingPayType;
@ApiModelProperty(value = "过期状态说明")
private String timeoutStatus;
}
@Data
@Accessors(chain = true)
public static class PageVo {
@ApiModelProperty(value = "计费信息")
private Vo deviceCharging;
@ApiModelProperty(value = "设备信息")
private DeviceInfoDto.Vo deviceInfo;
@ApiModelProperty(value = "计费标准金额/年")
private Integer chargingMoney;
}
}