From 77dc961a078fe9cdcb7fa803280eaa6d9b2cc7b1 Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Thu, 6 Apr 2023 18:30:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B4=A6=E5=8F=B7=E9=A1=B5=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E5=8A=A0=E8=BD=BD=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/api/chat/vectorGpt.ts | 6 +- src/pages/number/components/BillTable.tsx | 61 ++++++++ .../number/components/PayRecordTable.tsx | 112 ++++++++++++++ src/pages/number/setting.tsx | 145 ++---------------- 4 files changed, 187 insertions(+), 137 deletions(-) create mode 100644 src/pages/number/components/BillTable.tsx create mode 100644 src/pages/number/components/PayRecordTable.tsx diff --git a/src/pages/api/chat/vectorGpt.ts b/src/pages/api/chat/vectorGpt.ts index 3e3786646..5c019ca2d 100644 --- a/src/pages/api/chat/vectorGpt.ts +++ b/src/pages/api/chat/vectorGpt.ts @@ -71,7 +71,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) `idx:${VecModelDataPrefix}:hash`, `@modelId:{${String( chat.modelId._id - )}} @vector:[VECTOR_RANGE 0.22 $blob]=>{$YIELD_DISTANCE_AS: score}`, + )}} @vector:[VECTOR_RANGE 0.24 $blob]=>{$YIELD_DISTANCE_AS: score}`, // `@modelId:{${String(chat.modelId._id)}}=>[KNN 10 @vector $blob AS score]`, 'RETURN', '1', @@ -105,8 +105,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) throw new Error('对不起,我没有找到你的问题'); } - // textArr 筛选,最多 3200 tokens - const systemPrompt = systemPromptFilter(formatRedisPrompt, 3200); + // textArr 筛选,最多 3000 tokens + const systemPrompt = systemPromptFilter(formatRedisPrompt, 3000); prompts.unshift({ obj: 'SYSTEM', diff --git a/src/pages/number/components/BillTable.tsx b/src/pages/number/components/BillTable.tsx new file mode 100644 index 000000000..38d3ed584 --- /dev/null +++ b/src/pages/number/components/BillTable.tsx @@ -0,0 +1,61 @@ +import React from 'react'; +import { Card, Box, Table, Thead, Tbody, Tr, Th, Td, TableContainer } from '@chakra-ui/react'; +import ScrollData from '@/components/ScrollData'; +import { BillTypeMap } from '@/constants/user'; +import { getUserBills } from '@/api/user'; +import { usePaging } from '@/hooks/usePaging'; +import type { UserBillType } from '@/types/user'; + +const BillTable = () => { + const { + nextPage, + isLoadAll, + requesting, + data: bills + } = usePaging({ + api: getUserBills, + pageSize: 30 + }); + + return ( + + + 使用记录 + + + + + + + + + + + + + + + {bills.map((item) => ( + + + + + + + + ))} + +
时间类型内容长度Tokens 长度消费
{item.time}{BillTypeMap[item.type]}{item.textLen}{item.tokenLen}{item.price}元
+
+
+
+ ); +}; + +export default BillTable; diff --git a/src/pages/number/components/PayRecordTable.tsx b/src/pages/number/components/PayRecordTable.tsx new file mode 100644 index 000000000..306c586bc --- /dev/null +++ b/src/pages/number/components/PayRecordTable.tsx @@ -0,0 +1,112 @@ +import React, { useState, useCallback } from 'react'; +import { + Card, + Box, + Flex, + Button, + Table, + Thead, + Tbody, + Tr, + Th, + Td, + TableContainer, + useDisclosure +} from '@chakra-ui/react'; +import { getPayOrders, checkPayResult } from '@/api/user'; +import { PaySchema } from '@/types/mongoSchema'; +import dayjs from 'dayjs'; +import { useQuery } from '@tanstack/react-query'; +import { formatPrice } from '@/utils/user'; +import WxConcat from '@/components/WxConcat'; +import { useGlobalStore } from '@/store/global'; +import { useToast } from '@/hooks/useToast'; + +const PayRecordTable = () => { + const { isOpen: isOpenWx, onOpen: onOpenWx, onClose: onCloseWx } = useDisclosure(); + const [payOrders, setPayOrders] = useState([]); + const { setLoading } = useGlobalStore(); + const { toast } = useToast(); + + const handleRefreshPayOrder = useCallback( + async (payId: string) => { + setLoading(true); + + try { + const data = await checkPayResult(payId); + toast({ + title: data, + status: 'info' + }); + const res = await getPayOrders(); + setPayOrders(res); + } catch (error: any) { + toast({ + title: error?.message, + status: 'warning' + }); + console.log(error); + } + + setLoading(false); + }, + [setLoading, toast] + ); + + useQuery(['initPayOrder'], getPayOrders, { + onSuccess(res) { + setPayOrders(res); + } + }); + + return ( + <> + + + + 充值记录 + + + + + + + + + + + + + + + + {payOrders.map((item) => ( + + + + + + + + ))} + +
订单号时间金额消费
{item.orderId} + {item.createTime ? dayjs(item.createTime).format('YYYY/MM/DD HH:mm:ss') : '-'} + {formatPrice(item.price)}元{item.status} + {item.status === 'NOTPAY' && ( + + )} +
+
+
+ {/* wx 联系 */} + {isOpenWx && } + + ); +}; + +export default PayRecordTable; diff --git a/src/pages/number/setting.tsx b/src/pages/number/setting.tsx index ec6128118..ccf4000b4 100644 --- a/src/pages/number/setting.tsx +++ b/src/pages/number/setting.tsx @@ -13,28 +13,22 @@ import { TableContainer, Select, Input, - IconButton, - useDisclosure + IconButton } from '@chakra-ui/react'; import { DeleteIcon } from '@chakra-ui/icons'; import { useForm, useFieldArray } from 'react-hook-form'; import { UserUpdateParams } from '@/types/user'; -import { putUserInfo, getUserBills, getPayOrders, checkPayResult } from '@/api/user'; +import { putUserInfo } from '@/api/user'; import { useToast } from '@/hooks/useToast'; import { useGlobalStore } from '@/store/global'; import { useUserStore } from '@/store/user'; import { UserType } from '@/types/user'; -import { usePaging } from '@/hooks/usePaging'; -import type { UserBillType } from '@/types/user'; + import { useQuery } from '@tanstack/react-query'; import dynamic from 'next/dynamic'; -import { PaySchema } from '@/types/mongoSchema'; -import dayjs from 'dayjs'; -import { formatPrice } from '@/utils/user'; -import WxConcat from '@/components/WxConcat'; -import ScrollData from '@/components/ScrollData'; -import { BillTypeMap } from '@/constants/user'; +const PayRecordTable = dynamic(() => import('./components/PayRecordTable')); +const BilTable = dynamic(() => import('./components/BillTable')); const PayModal = dynamic(() => import('./components/PayModal')); const NumberSetting = () => { @@ -44,7 +38,6 @@ const NumberSetting = () => { defaultValues: userInfo as UserType }); const [showPay, setShowPay] = useState(false); - const { isOpen: isOpenWx, onOpen: onOpenWx, onClose: onCloseWx } = useDisclosure(); const { toast } = useToast(); const { fields: accounts, @@ -54,16 +47,6 @@ const NumberSetting = () => { control, name: 'accounts' }); - const { - nextPage, - isLoadAll, - requesting, - data: bills - } = usePaging({ - api: getUserBills, - pageSize: 30 - }); - const [payOrders, setPayOrders] = useState([]); const onclickSave = useCallback( async (data: UserUpdateParams) => { @@ -83,39 +66,9 @@ const NumberSetting = () => { useQuery(['init'], initUserInfo); - useQuery(['initPayOrder'], getPayOrders, { - onSuccess(res) { - setPayOrders(res); - } - }); - - const handleRefreshPayOrder = useCallback( - async (payId: string) => { - setLoading(true); - - try { - const data = await checkPayResult(payId); - toast({ - title: data, - status: 'info' - }); - const res = await getPayOrders(); - setPayOrders(res); - } catch (error: any) { - toast({ - title: error?.message, - status: 'warning' - }); - console.log(error); - } - - setLoading(false); - }, - [setLoading, toast] - ); - return ( <> + {/* 核心信息 */} 账号信息 @@ -141,6 +94,7 @@ const NumberSetting = () => { + {/* 账号信息 */} @@ -209,88 +163,11 @@ const NumberSetting = () => { - - - - 充值记录 - - - - - - - - - - - - - - - - {payOrders.map((item) => ( - - - - - - - - ))} - -
订单号时间金额消费
{item.orderId} - {item.createTime ? dayjs(item.createTime).format('YYYY/MM/DD HH:mm:ss') : '-'} - {formatPrice(item.price)}元{item.status} - {item.status === 'NOTPAY' && ( - - )} -
-
-
- - - 使用记录 - - - - - - - - - - - - - - - {bills.map((item) => ( - - - - - - - - ))} - -
时间类型内容长度Tokens 长度消费
{item.time}{BillTypeMap[item.type]}{item.textLen}{item.tokenLen}{item.price}元
-
-
-
+ {/* 充值记录 */} + + {/* 账单表 */} + {showPay && setShowPay(false)} />} - {/* wx 联系 */} - {isOpenWx && } ); };