diff --git a/controllers/manageRobot/index.ts b/controllers/manageRobot/index.ts index 6812564..373f9e7 100644 --- a/controllers/manageRobot/index.ts +++ b/controllers/manageRobot/index.ts @@ -31,6 +31,7 @@ const getStatisticsInfo = async () => { const prevWeekInfo = await db.view.getFullStatisticsByWeek( getPrevWeekWithYear() ); + if (!curWeekInfo || !prevWeekInfo) return {}; return { total_count: String(curWeekInfo?.total_count ?? 0), weekly_count_rate: calculateWeeklyRate( @@ -51,12 +52,10 @@ const getStatisticsInfo = async () => { }; const getProjDiffInfo = async () => { - const curWeekInfo = await db.view.getProjStatisticsByWeek( - getWeekTimeWithYear() - ) || []; - const prevWeekInfo = await db.view.getProjStatisticsByWeek( - getPrevWeekWithYear() - ) || []; + const curWeekInfo = + (await db.view.getProjStatisticsByWeek(getWeekTimeWithYear())) || []; + const prevWeekInfo = + (await db.view.getProjStatisticsByWeek(getPrevWeekWithYear())) || []; const group: { project_name: string; diff --git a/db/pipeline/index.ts b/db/pipeline/index.ts index d062c16..ff969ac 100644 --- a/db/pipeline/index.ts +++ b/db/pipeline/index.ts @@ -18,23 +18,23 @@ export interface PipelineRecordModel extends RecordModel { } const getOne = (id: string) => - managePb404( + managePb404<PipelineRecordModel>( async () => await pbClient.collection("pipeline").getOne(id) - ) as Promise<PipelineRecordModel>; + ); /** * 获取项目最新一次构建 * @param project_id 项目id */ const getLatestOne = (project_id: string) => { - return managePb404( + return managePb404<PipelineRecordModel>( async () => await pbClient .collection("pipeline") .getFirstListItem(`project_id="${project_id}"`, { sort: "-created_at", }) - ) as Promise<PipelineRecordModel>; + ); }; const create = async (data: Partial<PipelineRecordModel>) => diff --git a/db/project/index.ts b/db/project/index.ts index 59db272..bafd737 100644 --- a/db/project/index.ts +++ b/db/project/index.ts @@ -13,9 +13,9 @@ export interface ProjectRecordModel extends RecordModel { } const getOne = (id: string) => - managePb404( + managePb404<ProjectRecordModel>( async () => await pbClient.collection("project").getOne(id) - ) as Promise<ProjectRecordModel>; + ); const getFullList = async () => await pbClient.collection("project").getFullList<ProjectRecordModel>(); diff --git a/db/user/index.ts b/db/user/index.ts index 41f30ce..389a9ec 100644 --- a/db/user/index.ts +++ b/db/user/index.ts @@ -11,19 +11,19 @@ export interface UserRecordModel extends RecordModel { } const getOne = (id: string) => - managePb404( + managePb404<UserRecordModel>( async () => await pbClient.collection("user").getOne(id) - ) as Promise<UserRecordModel>; + ); const getOneByUserId = (user_id: number) => { - return managePb404( + return managePb404<UserRecordModel>( async () => await pbClient .collection("user") .getFirstListItem(`user_id="${user_id}"`, { sort: "-created", }) - ) as Promise<UserRecordModel>; + ); }; const create = async (data: Partial<UserRecordModel>) => diff --git a/db/view/index.ts b/db/view/index.ts index 060667f..7a48a75 100644 --- a/db/view/index.ts +++ b/db/view/index.ts @@ -19,21 +19,21 @@ export interface StatisticsPerProjRecordModel extends RecordModel { } const getFullStatisticsByWeek = (week: string) => { - return managePb404( + return managePb404<StatisticsPerWeekRecordModel>( async () => await pbClient .collection("statisticsPerWeek") .getFirstListItem(`week="${week}"`) - ) as Promise<StatisticsPerWeekRecordModel>; + ); }; const getProjStatisticsByWeek = (week: string) => { - return managePb404( + return managePb404<StatisticsPerProjRecordModel[]>( async () => await pbClient .collection("statisticsPerProj") .getFullList({ filter: `week="${week}"` }) - ) as Promise<StatisticsPerProjRecordModel[]>; + ); }; const view = { diff --git a/utils/pbTools.ts b/utils/pbTools.ts index 01d3186..3d8a903 100644 --- a/utils/pbTools.ts +++ b/utils/pbTools.ts @@ -1,8 +1,7 @@ -export const managePb404 = async (dbFunc: Function) => { +export const managePb404 = async <T>(dbFunc: Function): Promise<T | null> => { try { return await dbFunc(); } catch (err: any) { - // 没有这个提醒就返回空 if (err?.message === "The requested resource wasn't found.") { return null; } else throw err;