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 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("缴费状态 true=已缴费 false=欠费")
private Boolean chargingStatus;
@ApiModelProperty(value = "当前系统时间", hidden = true)
private LocalDateTime thisTime = LocalDateTime.now();
}
@Data
@Accessors(chain = true)
public static class Pay {
@NotBlank(message = "orderId不能为空")
@ApiModelProperty("订单号")
private String orderId;
@NotEmpty(message = "deviceChargings不能为空")
@ApiModelProperty("续费信息")
private List deviceChargings;
@NotNull(message = "payType不能为空")
@ApiModelProperty(value = "支付类型 2=支付宝 3=微信 100=赠送")
private Integer payType;
@Data
@Accessors(chain = true)
public static class DeviceCharging {
@ApiModelProperty("设备id")
private Long deviceId;
@ApiModelProperty("购买年数/赠送天数")
private Integer num;
@ApiModelProperty(value = "计费标准 单位:分/年")
private Integer standard;
@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 Vo {
@ApiModelProperty(value = "设备id")
private Long deviceId;
@ApiModelProperty(value = "累计续费金额")
private Integer chargingSumMoney;
@ApiModelProperty(value = "试用剩余天")
private Integer chargingX;
@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;
}
@Data
@Accessors(chain = true)
public static class PageVo {
@ApiModelProperty(value = "计费信息")
private Vo deviceCharging;
@ApiModelProperty(value = "最新计费历史信息")
private DeviceChargingHistoryDto.Vo deviceChargingHistory;
@ApiModelProperty(value = "设备信息")
private DeviceInfoDto.Vo deviceInfo;
@ApiModelProperty(value = "计费标准金额/年")
private Integer chargingMoney;
@ApiModelProperty("缴费状态 true=已缴费 false=欠费")
private Boolean chargingStatus;
}
}