merge(dev_jacy): on-site pickup COMPLETED on pay
CI / verify (push) Has been cancelled

This commit is contained in:
2026-08-02 13:42:17 +08:00
5 changed files with 24 additions and 11 deletions
@@ -252,7 +252,7 @@ export default function ProxyOrderModal({ open, onClose, onSuccess }: ProxyOrder
message={`订单 ${created.orderNo} 待支付 ¥${fmtMoney(created.payAmount)},请扫码支付`}
description={
created.deliveryType === 'ON_SITE_PICKUP'
? '支付完成后将进入现场提货闭环'
? '支付完成后订单即为已完成,并发放好客权益'
: '支付完成后将进入待发货,由总部履约发货'
}
/>
+1 -1
View File
@@ -325,7 +325,7 @@ export default function ProxyOrderPage() {
</p>
<p className="label-md text-muted" style={{ marginTop: 8 }}>
{created.deliveryType === 'ON_SITE_PICKUP'
? '支付成功后进入现场提货闭环'
? '支付成功后订单即为已完成,并发放好客权益'
: '支付成功后进入待发货,由总部履约'}
</p>
+14 -5
View File
@@ -41,6 +41,7 @@ export default function PayPage() {
const [showBindPhone, setShowBindPhone] = useState(false);
const [wxSessionKey, setWxSessionKey] = useState<string | null>(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);
+2 -1
View File
@@ -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' });
}
@@ -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({