Files
FlashSaleSystem/src/main/java/com/org/flashsalesystem/dto/OrderDTO.java

138 lines
3.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.org.flashsalesystem.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 订单数据传输对象
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderDTO {
private Long id;
private Long userId;
private String username;
private Long productId;
private String productName;
private String productImageUrl;
private Integer quantity;
private BigDecimal totalPrice;
private Integer status;
private String statusDescription;
private Integer orderType;
private String orderTypeDescription;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatedAt;
/**
* 创建订单DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class CreateDTO {
@NotNull(message = "商品ID不能为空")
private Long productId;
@Min(value = 1, message = "商品数量必须大于0")
private Integer quantity;
// 收货地址信息
private String receiverName;
private String receiverPhone;
private String receiverAddress;
// 备注
private String remark;
}
/**
* 订单查询DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class QueryDTO {
private Long userId;
private Integer status;
private Integer orderType;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
private Integer page = 0;
private Integer size = 10;
private String sortBy = "createdAt";
private String sortDirection = "desc";
}
/**
* 订单状态更新DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class StatusUpdateDTO {
@NotNull(message = "订单ID不能为空")
private Long orderId;
@NotNull(message = "订单状态不能为空")
private Integer status;
private String remark;
}
/**
* 批量订单操作DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class BatchOperationDTO {
@NotNull(message = "订单ID列表不能为空")
private java.util.List<Long> orderIds;
/**
* 操作类型cancel-取消pay-支付ship-发货complete-完成
*/
@NotNull(message = "操作类型不能为空")
private String operation;
private String remark;
}
/**
* 订单统计DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class StatisticsDTO {
private Long totalOrders;
private Long pendingPaymentOrders;
private Long paidOrders;
private Long shippedOrders;
private Long completedOrders;
private Long cancelledOrders;
private BigDecimal totalAmount;
private BigDecimal todayAmount;
private Long flashSaleOrders;
private Long normalOrders;
}
}