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;
|
||||
}
|
||||
}
|
||||
38
src/main/java/com/example/building/dto/LoginRequest.java
Normal file
38
src/main/java/com/example/building/dto/LoginRequest.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package com.example.building.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 登录请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class LoginRequest {
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 微信授权码
|
||||
*/
|
||||
private String wechatCode;
|
||||
|
||||
/**
|
||||
* 支付宝授权码
|
||||
*/
|
||||
private String alipayCode;
|
||||
|
||||
/**
|
||||
* 登录类型: phone-手机号, wechat-微信, alipay-支付宝
|
||||
*/
|
||||
@NotBlank(message = "登录类型不能为空")
|
||||
private String loginType;
|
||||
}
|
||||
Reference in New Issue
Block a user