feat(order): 添加订单创建时间和过期时间设置功能

- 引入 LocalDateTime 用于时间操作
- 在订单创建时自动设置 createTime 和 updateTime
- 设置订单默认10分钟过期时间用于支付校验
- 确保时间戳只在为空时进行初始化避免覆盖
- 统一在服务层和控制层实现时间设置逻辑
This commit is contained in:
2026-02-07 13:12:11 +08:00
parent fc8d49a768
commit 78a3f8ce4c
2 changed files with 22 additions and 0 deletions

View File

@@ -148,6 +148,17 @@ public class ShopOrderController extends BaseController {
shopOrder.setUserId(loginUser.getUserId());
shopOrder.setOpenid(loginUser.getOpenid());
shopOrder.setPayUserId(loginUser.getUserId());
// 下单时间 & 订单过期时间默认下单后10分钟过期用于发起支付等场景校验
LocalDateTime now = LocalDateTime.now();
if (shopOrder.getCreateTime() == null) {
shopOrder.setCreateTime(now);
}
if (shopOrder.getUpdateTime() == null) {
shopOrder.setUpdateTime(now);
}
shopOrder.setExpirationTime(shopOrder.getCreateTime().plusMinutes(10));
if (shopOrder.getOrderNo() == null) {
shopOrder.setOrderNo(Long.toString(IdUtil.getSnowflakeNextId()));
}

View File

@@ -16,6 +16,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -244,6 +245,16 @@ public class OrderBusinessService {
// 复制请求参数到订单对象
BeanUtils.copyProperties(request, shopOrder);
// 下单时间 & 订单过期时间默认下单后10分钟过期用于发起支付等场景校验
LocalDateTime now = LocalDateTime.now();
if (shopOrder.getCreateTime() == null) {
shopOrder.setCreateTime(now);
}
if (shopOrder.getUpdateTime() == null) {
shopOrder.setUpdateTime(now);
}
shopOrder.setExpirationTime(shopOrder.getCreateTime().plusMinutes(10));
// 确保租户ID正确设置关键字段影响微信支付证书路径
shopOrder.setTenantId(loginUser.getTenantId());