feat(mobile): 新增移动端订单V2接口

- 添加 AppOrderV2Controller 控制器,实现移动端价格计算和下单功能
- 新增 MobilePriceCalculationRequest DTO 类,用于移动端价格计算请求- 集成 Redis 缓存机制,提升价格查询性能- 实现人脸权限验证和价格缓存验证逻辑
- 优化日志记录和异常处理
This commit is contained in:
2025-08-28 18:13:59 +08:00
parent 798ff3b9b5
commit 5c2629237e
2 changed files with 238 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
package com.ycwl.basic.pricing.dto;
import lombok.Data;
import java.util.List;
/**
* 移动端价格计算请求DTO
*/
@Data
public class MobilePriceCalculationRequest {
/**
* 商品列表
*/
private List<ProductItem> products;
/**
* 人脸ID(必填,用于权限验证)
*/
private Long faceId;
/**
* 是否自动使用优惠券
*/
private Boolean autoUseCoupon = true;
/**
* 用户输入的券码
*/
private String voucherCode;
/**
* 是否自动使用券码优惠
*/
private Boolean autoUseVoucher = true;
/**
* 是否仅预览优惠(不实际使用)
*/
private Boolean previewOnly = false;
/**
* 转换为标准价格计算请求
*
* @param userId 用户ID
* @param scenicId 景区ID
* @return 标准价格计算请求
*/
public PriceCalculationRequest toStandardRequest(Long userId, Long scenicId) {
PriceCalculationRequest request = new PriceCalculationRequest();
request.setProducts(this.products);
request.setUserId(userId);
request.setScenicId(scenicId);
request.setFaceId(this.faceId);
request.setAutoUseCoupon(this.autoUseCoupon);
request.setVoucherCode(this.voucherCode);
request.setAutoUseVoucher(this.autoUseVoucher);
request.setPreviewOnly(this.previewOnly);
return request;
}
}