From 6cb7a26ad5ca66417cdec89c3366923ab1a19de1 Mon Sep 17 00:00:00 2001 From: zhaoyingbo <zhaoyingbo@xiaomi.com> Date: Tue, 21 May 2024 06:41:33 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/manageRobot/index.ts | 11 +++++------ db/pipeline/index.ts | 8 ++++---- db/project/index.ts | 4 ++-- db/user/index.ts | 8 ++++---- db/view/index.ts | 8 ++++---- utils/pbTools.ts | 3 +-- 6 files changed, 20 insertions(+), 22 deletions(-) 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;