diff --git a/apps/admin-web/src/components/ProxyOrderModal.tsx b/apps/admin-web/src/components/ProxyOrderModal.tsx
index 66f5ccb..2aeccde 100644
--- a/apps/admin-web/src/components/ProxyOrderModal.tsx
+++ b/apps/admin-web/src/components/ProxyOrderModal.tsx
@@ -252,7 +252,7 @@ export default function ProxyOrderModal({ open, onClose, onSuccess }: ProxyOrder
message={`订单 ${created.orderNo} 待支付 ¥${fmtMoney(created.payAmount)},请扫码支付`}
description={
created.deliveryType === 'ON_SITE_PICKUP'
- ? '支付完成后将进入现场提货闭环'
+ ? '支付完成后订单即为已完成,并发放好客权益'
: '支付完成后将进入待发货,由总部履约发货'
}
/>
diff --git a/apps/h5-partner/src/pages/ProxyOrderPage.tsx b/apps/h5-partner/src/pages/ProxyOrderPage.tsx
index 9616fee..57a54d0 100644
--- a/apps/h5-partner/src/pages/ProxyOrderPage.tsx
+++ b/apps/h5-partner/src/pages/ProxyOrderPage.tsx
@@ -325,7 +325,7 @@ export default function ProxyOrderPage() {
{created.deliveryType === 'ON_SITE_PICKUP'
- ? '支付成功后进入现场提货闭环'
+ ? '支付成功后订单即为已完成,并发放好客权益'
: '支付成功后进入待发货,由总部履约'}
diff --git a/apps/h5-user/src/pages/PayPage.tsx b/apps/h5-user/src/pages/PayPage.tsx
index 6163eb2..e318cc0 100644
--- a/apps/h5-user/src/pages/PayPage.tsx
+++ b/apps/h5-user/src/pages/PayPage.tsx
@@ -41,6 +41,7 @@ export default function PayPage() {
const [showBindPhone, setShowBindPhone] = useState(false);
const [wxSessionKey, setWxSessionKey] = useState(null);
const [orderNo, setOrderNo] = useState('');
+ const [deliveryType, setDeliveryType] = useState('');
const refreshPayReadiness = useCallback(async () => {
try {
@@ -78,9 +79,15 @@ export default function PayPage() {
setOrderNo('');
return;
}
- request<{ orderNo?: string }>('USER_H5', `/trade/orders/${orderId}`)
- .then((order) => setOrderNo(order.orderNo || ''))
- .catch(() => setOrderNo(''));
+ request<{ orderNo?: string; deliveryType?: string }>('USER_H5', `/trade/orders/${orderId}`)
+ .then((order) => {
+ setOrderNo(order.orderNo || '');
+ setDeliveryType(order.deliveryType || '');
+ })
+ .catch(() => {
+ setOrderNo('');
+ setDeliveryType('');
+ });
}, [orderId]);
useEffect(() => {
@@ -140,11 +147,13 @@ export default function PayPage() {
if (!paid) {
alert('支付结果确认中,请稍后在订单列表查看');
}
- navigate('/orders?tab=paid');
+ navigate(
+ deliveryType === 'ON_SITE_PICKUP' ? '/orders?tab=completed' : '/orders?tab=paid',
+ );
return;
}
- navigate('/orders?tab=paid');
+ navigate(deliveryType === 'ON_SITE_PICKUP' ? '/orders?tab=completed' : '/orders?tab=paid');
} catch (e) {
if (isWechatAuthRequiredError(e)) {
setNeedsWechatAuth(true);
diff --git a/apps/mini-user/src/pages/pay/index.tsx b/apps/mini-user/src/pages/pay/index.tsx
index f07f1fe..5d388c9 100644
--- a/apps/mini-user/src/pages/pay/index.tsx
+++ b/apps/mini-user/src/pages/pay/index.tsx
@@ -144,7 +144,8 @@ export default function PayPage() {
toast('支付成功', 'success');
}
if (deliveryType === 'ON_SITE_PICKUP') {
- Taro.redirectTo({ url: `/pages/pickup-receive/index?id=${orderId}` });
+ // 现场提货支付即完成 → 订单详情(已完成)
+ Taro.redirectTo({ url: `/pages/order-detail/index?id=${orderId}` });
} else {
Taro.redirectTo({ url: '/pages/orders/index?tab=paid' });
}
diff --git a/server/dukang-api/src/modules/trade/trade.service.ts b/server/dukang-api/src/modules/trade/trade.service.ts
index 37b309b..e79e9a8 100644
--- a/server/dukang-api/src/modules/trade/trade.service.ts
+++ b/server/dukang-api/src/modules/trade/trade.service.ts
@@ -288,8 +288,9 @@ export class TradeService {
order.cityId,
order.receiverDistrict,
);
+ // 现场提货:支付即完成(PRD SC-02 / REQ-U-008)
const toStatus =
- order.deliveryType === 'ON_SITE_PICKUP' ? 'PENDING_RECEIVE' : 'PENDING_SHIP';
+ order.deliveryType === 'ON_SITE_PICKUP' ? 'COMPLETED' : 'PENDING_SHIP';
await this.prisma.$transaction(async (tx) => {
await tx.order.update({
@@ -400,8 +401,9 @@ export class TradeService {
order.cityId,
order.receiverDistrict,
);
+ // 现场提货:支付即完成(PRD SC-02 / REQ-U-008)
const toStatus =
- order.deliveryType === 'ON_SITE_PICKUP' ? 'PENDING_RECEIVE' : 'PENDING_SHIP';
+ order.deliveryType === 'ON_SITE_PICKUP' ? 'COMPLETED' : 'PENDING_SHIP';
await this.prisma.$transaction(async (tx) => {
const current = await tx.order.findUnique({ where: { id: order.id } });
if (!current || current.payStatus === 'PAID') return;
@@ -1812,8 +1814,9 @@ export class TradeService {
order.cityId,
order.receiverDistrict,
);
+ // 现场提货:支付即完成(代下单同 C 端 PRD)
const toStatus =
- order.deliveryType === 'ON_SITE_PICKUP' ? 'PENDING_RECEIVE' : 'PENDING_SHIP';
+ order.deliveryType === 'ON_SITE_PICKUP' ? 'COMPLETED' : 'PENDING_SHIP';
await this.prisma.$transaction(async (tx) => {
await tx.order.update({