diff --git a/apps/user/components/subscribe/purchase.tsx b/apps/user/components/subscribe/purchase.tsx index c083a8d..dad4ec0 100644 --- a/apps/user/components/subscribe/purchase.tsx +++ b/apps/user/components/subscribe/purchase.tsx @@ -3,7 +3,8 @@ import PaymentMethods from '@/components/subscribe/payment-methods'; import PlanTabs, { TabValueType } from '@/components/SubscribePlan/PlanTabs/PlanTabs'; import useGlobalStore from '@/config/use-global'; -import { preCreateOrder, purchase } from '@/services/user/order'; +import { preCreateOrder, purchase, renewal } from '@/services/user/order'; +import { queryUserSubscribe } from '@/services/user/user'; import { useQuery } from '@tanstack/react-query'; import { AiroButton } from '@workspace/airo-ui/components/AiroButton'; import { @@ -104,7 +105,23 @@ const Purchase = forwardRef((props, ref) => { const handleSubmit = useCallback(async () => { startTransition(async () => { try { - const response = await purchase(params as API.PurchaseOrderRequest); + const { data } = await queryUserSubscribe({ params: { includeExpired: 'all' } }); + const activeList = data.data?.list || []; + const existingUser = activeList.find( + (item: any) => item.subscribe_id === params.subscribe_id, + ); + let response; + // 3. 根据判断结果调用不同接口 + if (existingUser) { + // 已有记录,走续费逻辑 + response = await renewal({ + user_subscribe_id: existingUser.id, + ...params, + } as API.RenewalOrderRequest); + } else { + // 无记录,走新购逻辑 + response = await purchase(params as API.PurchaseOrderRequest); + } const orderNo = response.data.data?.order_no; if (orderNo) { await getUserInfo();