优化:已交付订单保留复制/打开发货链接,去掉作废操作
- 已交付订单仍可复用未过期链接查看兑换结果,但不再生成/续期新链接 - 商户后台已交付订单仅显示复制/打开,已作废/已过期单独标识 - 发货中/已取消订单不展示链接操作,避免无效按钮
This commit is contained in:
@@ -617,7 +617,7 @@ func (s *DeliveryService) GetOrCreateDeliveryLink(merchantID uint, orderNo, requ
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 订单已取消后禁止获取发货链接(含复用未过期链接的路径),与 authorizeDeliveryLink 保持一致。
|
||||
// 已取消订单即使存在未过期链接也不再发放(买家侧授权同样拦截已取消订单)。
|
||||
if normalizeOrderStatus(order) == model.OrderStatusCancelled {
|
||||
return nil, newDeliveryHTTPError(http.StatusBadRequest, "订单已取消,无法获取发货链接")
|
||||
}
|
||||
@@ -625,9 +625,11 @@ func (s *DeliveryService) GetOrCreateDeliveryLink(merchantID uint, orderNo, requ
|
||||
if order.DeliveryLinkRevokedAt != nil {
|
||||
return nil, newDeliveryHTTPError(http.StatusForbidden, "发货链接已作废")
|
||||
}
|
||||
// 复用未过期链接:已交付/发货中订单也允许查看兑换结果或进度,仅停止发放新链接。
|
||||
if order.DeliveryLinkExpiresAt != nil && order.DeliveryLinkExpiresAt.After(now) {
|
||||
return s.buildDeliveryLinkResult(order.OrderNo, order.DeliveryLinkExpiresAt.UTC().Truncate(time.Second), requestBaseURL), nil
|
||||
}
|
||||
// 仅待发货(含可重试的发货失败)订单能生成或续期新链接。
|
||||
canShip, reason := CanFulfill(order)
|
||||
if !canShip {
|
||||
if reason == "" {
|
||||
|
||||
Reference in New Issue
Block a user