后台完成修复,初始化项目

This commit is contained in:
2025-07-01 17:18:04 +08:00
commit 5916f076b7
74 changed files with 17444 additions and 0 deletions

View File

@@ -0,0 +1,137 @@
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;
}
}