feat: 优化统计信息获取逻辑
This commit is contained in:
parent
8f40de1682
commit
6cb7a26ad5
@ -31,6 +31,7 @@ const getStatisticsInfo = async () => {
|
|||||||
const prevWeekInfo = await db.view.getFullStatisticsByWeek(
|
const prevWeekInfo = await db.view.getFullStatisticsByWeek(
|
||||||
getPrevWeekWithYear()
|
getPrevWeekWithYear()
|
||||||
);
|
);
|
||||||
|
if (!curWeekInfo || !prevWeekInfo) return {};
|
||||||
return {
|
return {
|
||||||
total_count: String(curWeekInfo?.total_count ?? 0),
|
total_count: String(curWeekInfo?.total_count ?? 0),
|
||||||
weekly_count_rate: calculateWeeklyRate(
|
weekly_count_rate: calculateWeeklyRate(
|
||||||
@ -51,12 +52,10 @@ const getStatisticsInfo = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getProjDiffInfo = async () => {
|
const getProjDiffInfo = async () => {
|
||||||
const curWeekInfo = await db.view.getProjStatisticsByWeek(
|
const curWeekInfo =
|
||||||
getWeekTimeWithYear()
|
(await db.view.getProjStatisticsByWeek(getWeekTimeWithYear())) || [];
|
||||||
) || [];
|
const prevWeekInfo =
|
||||||
const prevWeekInfo = await db.view.getProjStatisticsByWeek(
|
(await db.view.getProjStatisticsByWeek(getPrevWeekWithYear())) || [];
|
||||||
getPrevWeekWithYear()
|
|
||||||
) || [];
|
|
||||||
|
|
||||||
const group: {
|
const group: {
|
||||||
project_name: string;
|
project_name: string;
|
||||||
|
@ -18,23 +18,23 @@ export interface PipelineRecordModel extends RecordModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getOne = (id: string) =>
|
const getOne = (id: string) =>
|
||||||
managePb404(
|
managePb404<PipelineRecordModel>(
|
||||||
async () => await pbClient.collection("pipeline").getOne(id)
|
async () => await pbClient.collection("pipeline").getOne(id)
|
||||||
) as Promise<PipelineRecordModel>;
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取项目最新一次构建
|
* 获取项目最新一次构建
|
||||||
* @param project_id 项目id
|
* @param project_id 项目id
|
||||||
*/
|
*/
|
||||||
const getLatestOne = (project_id: string) => {
|
const getLatestOne = (project_id: string) => {
|
||||||
return managePb404(
|
return managePb404<PipelineRecordModel>(
|
||||||
async () =>
|
async () =>
|
||||||
await pbClient
|
await pbClient
|
||||||
.collection("pipeline")
|
.collection("pipeline")
|
||||||
.getFirstListItem(`project_id="${project_id}"`, {
|
.getFirstListItem(`project_id="${project_id}"`, {
|
||||||
sort: "-created_at",
|
sort: "-created_at",
|
||||||
})
|
})
|
||||||
) as Promise<PipelineRecordModel>;
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const create = async (data: Partial<PipelineRecordModel>) =>
|
const create = async (data: Partial<PipelineRecordModel>) =>
|
||||||
|
@ -13,9 +13,9 @@ export interface ProjectRecordModel extends RecordModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getOne = (id: string) =>
|
const getOne = (id: string) =>
|
||||||
managePb404(
|
managePb404<ProjectRecordModel>(
|
||||||
async () => await pbClient.collection("project").getOne(id)
|
async () => await pbClient.collection("project").getOne(id)
|
||||||
) as Promise<ProjectRecordModel>;
|
);
|
||||||
|
|
||||||
const getFullList = async () =>
|
const getFullList = async () =>
|
||||||
await pbClient.collection("project").getFullList<ProjectRecordModel>();
|
await pbClient.collection("project").getFullList<ProjectRecordModel>();
|
||||||
|
@ -11,19 +11,19 @@ export interface UserRecordModel extends RecordModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getOne = (id: string) =>
|
const getOne = (id: string) =>
|
||||||
managePb404(
|
managePb404<UserRecordModel>(
|
||||||
async () => await pbClient.collection("user").getOne(id)
|
async () => await pbClient.collection("user").getOne(id)
|
||||||
) as Promise<UserRecordModel>;
|
);
|
||||||
|
|
||||||
const getOneByUserId = (user_id: number) => {
|
const getOneByUserId = (user_id: number) => {
|
||||||
return managePb404(
|
return managePb404<UserRecordModel>(
|
||||||
async () =>
|
async () =>
|
||||||
await pbClient
|
await pbClient
|
||||||
.collection("user")
|
.collection("user")
|
||||||
.getFirstListItem(`user_id="${user_id}"`, {
|
.getFirstListItem(`user_id="${user_id}"`, {
|
||||||
sort: "-created",
|
sort: "-created",
|
||||||
})
|
})
|
||||||
) as Promise<UserRecordModel>;
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const create = async (data: Partial<UserRecordModel>) =>
|
const create = async (data: Partial<UserRecordModel>) =>
|
||||||
|
@ -19,21 +19,21 @@ export interface StatisticsPerProjRecordModel extends RecordModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getFullStatisticsByWeek = (week: string) => {
|
const getFullStatisticsByWeek = (week: string) => {
|
||||||
return managePb404(
|
return managePb404<StatisticsPerWeekRecordModel>(
|
||||||
async () =>
|
async () =>
|
||||||
await pbClient
|
await pbClient
|
||||||
.collection("statisticsPerWeek")
|
.collection("statisticsPerWeek")
|
||||||
.getFirstListItem(`week="${week}"`)
|
.getFirstListItem(`week="${week}"`)
|
||||||
) as Promise<StatisticsPerWeekRecordModel>;
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getProjStatisticsByWeek = (week: string) => {
|
const getProjStatisticsByWeek = (week: string) => {
|
||||||
return managePb404(
|
return managePb404<StatisticsPerProjRecordModel[]>(
|
||||||
async () =>
|
async () =>
|
||||||
await pbClient
|
await pbClient
|
||||||
.collection("statisticsPerProj")
|
.collection("statisticsPerProj")
|
||||||
.getFullList({ filter: `week="${week}"` })
|
.getFullList({ filter: `week="${week}"` })
|
||||||
) as Promise<StatisticsPerProjRecordModel[]>;
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const view = {
|
const view = {
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
export const managePb404 = async (dbFunc: Function) => {
|
export const managePb404 = async <T>(dbFunc: Function): Promise<T | null> => {
|
||||||
try {
|
try {
|
||||||
return await dbFunc();
|
return await dbFunc();
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
// 没有这个提醒就返回空
|
|
||||||
if (err?.message === "The requested resource wasn't found.") {
|
if (err?.message === "The requested resource wasn't found.") {
|
||||||
return null;
|
return null;
|
||||||
} else throw err;
|
} else throw err;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user