feat(order): 添加订单创建时间和过期时间设置功能
- 引入 LocalDateTime 用于时间操作 - 在订单创建时自动设置 createTime 和 updateTime - 设置订单默认10分钟过期时间用于支付校验 - 确保时间戳只在为空时进行初始化避免覆盖 - 统一在服务层和控制层实现时间设置逻辑
This commit is contained in:
@@ -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()));
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user