Initial commit: backend code
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package com.example.building.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 创建订单请求DTO
|
||||
* 核心业务逻辑:
|
||||
* 1. 计算订单原价(total_amount) = Σ(item.price × item.quantity)
|
||||
* 2. 计算优惠金额(discount_amount) = total_amount × (100 - discount_rate) / 100
|
||||
* 3. 计算实付金额(actual_amount) = total_amount - discount_amount
|
||||
*/
|
||||
@Data
|
||||
public class CreateOrderRequest {
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private String customerId;
|
||||
|
||||
/**
|
||||
* 订单明细
|
||||
*/
|
||||
@NotEmpty(message = "订单明细不能为空")
|
||||
private List<OrderItemDTO> items;
|
||||
|
||||
/**
|
||||
* 折扣率(百分比), 默认100
|
||||
*/
|
||||
private BigDecimal discountRate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
private String paymentMethod;
|
||||
|
||||
/**
|
||||
* 订单明细项DTO
|
||||
*/
|
||||
@Data
|
||||
public static class OrderItemDTO {
|
||||
/**
|
||||
* 商品ID
|
||||
*/
|
||||
@NotBlank(message = "商品ID不能为空")
|
||||
private String productId;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@NotNull(message = "数量不能为空")
|
||||
private Integer quantity;
|
||||
|
||||
/**
|
||||
* 销售单价(用户可自定义)
|
||||
*/
|
||||
private BigDecimal price;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user