perf: date and warning

This commit is contained in:
archer
2023-07-20 21:15:20 +08:00
parent e0b6860706
commit f362ba2589
7 changed files with 25 additions and 34 deletions

View File

@@ -46,8 +46,8 @@ export const triggerModelCollection = (appId: string) =>
// ====================== data
export const getAppTotalUsage = (data: { appId: string }) =>
POST<{ total: number; date: Date }[]>(`/app/data/totalUsage`, {
POST<{ date: Date; total: number }[]>(`/app/data/totalUsage`, {
...data,
start: addDays(new Date(), -13).setHours(0, 0, 0, 0),
end: addDays(new Date(), 1).setHours(0, 0, 0, 0)
});
start: addDays(new Date(), -13),
end: addDays(new Date(), 1)
}).then((res) => (res.length === 0 ? [{ date: new Date(), total: 0 }] : res));

View File

@@ -3,23 +3,6 @@ import { jsonRes } from '@/service/response';
import { connectToDatabase, Bill } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import { Types } from 'mongoose';
import dayjs from 'dayjs';
import { addDays, isSameDay } from 'date-fns';
const fillMissingDates = (start: number, end: number, data: { date: Date; total: number }[]) => {
const result: { date: Date; total: number }[] = [];
const dayStart = dayjs(start);
const dayEnd = dayjs(end);
const diff = +dayEnd.diff(dayStart, 'day');
for (let i = 0; i < diff; i++) {
const date = addDays(start, i);
const dataItem = data.find((item) => isSameDay(date, item.date));
result[i] = { date, total: dataItem?.total || 0 };
}
return result;
};
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
try {
@@ -57,7 +40,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
]);
jsonRes(res, {
data: fillMissingDates(start, end, result)
data: result
});
} catch (err) {
jsonRes(res, {

View File

@@ -42,6 +42,12 @@ export async function getVector({
}: { userId?: string } & Props) {
userId && (await authBalanceByUid(userId));
for (let i = 0; i < input.length; i++) {
if (!input[i]) {
return Promise.reject('向量生成模块输入内容为空');
}
}
// 获取 chatAPI
const chatAPI = getOpenAIApi();

View File

@@ -120,7 +120,7 @@ const TokenUsage = ({ appId }: { appId: string }) => {
show: false,
left: 5,
right: 5,
top: 5,
top: 0,
bottom: 5
},
tooltip: {
@@ -173,6 +173,10 @@ const TokenUsage = ({ appId }: { appId: string }) => {
if (!Dom.current || myChart?.current?.getOption()) return;
myChart.current = echarts.init(Dom.current);
myChart.current && myChart.current.setOption(option);
setTimeout(() => {
myChart.current?.resize();
}, 500);
}, []);
// data changed, update
@@ -188,7 +192,7 @@ const TokenUsage = ({ appId }: { appId: string }) => {
}, [screenWidth]);
return (
<Box ref={Dom} w={'100%'} h={'100%'} position={'relative'}>
<Box ref={Dom} w={'100%'} flex={'1 0 0'} h={'100%'} position={'relative'}>
<Loading fixed={false} />
</Box>
);

View File

@@ -146,12 +146,12 @@ const InfoModal = ({
></Input>
</FormControl>
</Flex>
<Box mt={6} mb={1}>
<Box mt={7} mb={1}>
</Box>
<Box color={'myGray.500'} mb={2} fontSize={'sm'}>
{/* <Box color={'myGray.500'} mb={2} fontSize={'sm'}>
该介绍主要用于记忆和在应用市场展示
</Box>
</Box> */}
<Textarea
rows={4}
maxLength={500}

View File

@@ -132,14 +132,12 @@ const Settings = ({ appId }: { appId: string }) => {
</Flex>
</Box>
</Box>
<Box>
<Flex flexDirection={'column'}>
<Box mb={2} fontSize={['md', 'xl']}>
14
</Box>
<Box h={'150px'} w={'100%'}>
<TotalUsage appId={appId} />
</Box>
</Box>
<TotalUsage appId={appId} />
</Flex>
</Grid>
</Box>
<Box flex={'1 0 0'} position={'relative'}>

View File

@@ -42,8 +42,8 @@ const BillTable = () => {
api: getUserBills,
pageSize: isPc ? 20 : 10,
params: {
dateStart: new Date(dateRange.from || new Date()).setHours(0, 0, 0, 0),
dateEnd: new Date(dateRange.to || new Date()).setHours(23, 59, 59, 999)
dateStart: dateRange.from || new Date(),
dateEnd: addDays(dateRange.to || new Date(), 1)
}
});