Initial commit: backend code

This commit is contained in:
Agent
2026-03-20 04:59:00 +00:00
commit e7c7f3b174
42 changed files with 2855 additions and 0 deletions

View File

@@ -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;
}
}

View 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;
}