Commit 26e06e9a by Leo Zheng

给中间部分的API增加注释

parent 2e1b7cd1
......@@ -14,7 +14,7 @@ export class sightVisitorFlowByDayStrategy extends abstractDataStrategyLeft {
/**
* 执行按天计算的游客流量策略。
* @param params - 请求参数,包含日期信息。
* @returns 每小时的游客流量映射
* @returns 每小时的游客流量。
*/
execute(params?: any): any {
if (!params || !params.query || !params.query.date) {
......
......@@ -15,7 +15,7 @@ export class sightVisitorFlowByHourStrategy extends abstractDataStrategyLeft {
/**
* 执行每小时计算的游客流量策略。
* @param params - 请求参数,包含景点和日期信息。
* @returns 指定景点指定日期的每小时的游客流量映射
* @returns 指定景点指定日期的每小时的游客流量。
*/
execute(params?: any): any {
if (!params || !params.query || !params.query.date || !params.query.sight) {
......
/**
* abstractDataStrategyMid.ts
* 该文件定义了一个抽象类,用于中间层数据策略的基础实现。
*/
import {dataStrategy} from "../dataStrategy";
import {DataExtractor} from "../../../util/dataExtractor";
/**
* 抽象数据策略中间层类,所有具体策略类都需要继承该抽象类。
*/
export abstract class abstractDataStrategyMid implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '寿州古城.xlsx';
static readonly sheetName = '指挥调度系统';
/**
* 执行策略的方法,具体实现由子类提供。
* @param params - 可选参数。
*/
execute(params?: any): any {
}
......
/**
* currentEventStrategy.ts
* 该文件定义了当前事件策略的具体实现,获取当前日期事件的计数映射
*/
import {abstractDataStrategyMid} from "./abstractDataStrategyMid";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
import mapToObj from "../../../util/mapToObj";
/**
* 当前事件策略类,继承自 abstractDataStrategyMid。
*/
export class currentEventStrategy extends abstractDataStrategyMid {
/**
* 执行事件数据策略。
* @param params - 请求参数。
* @returns 指定日期事件已处置和带处置事件计数
*/
execute(params?: any): any {
if (!params || !params.query || !params.query.date) {
throw new Error("Date parameter is required.")
......@@ -11,15 +25,20 @@ export class currentEventStrategy extends abstractDataStrategyMid {
return mapToObj(this.getCurrentDayEventDate(dayData, params.query.date));
}
/**
* 获取当前日期事件的计数映射
* @param data - 从数据源提取的数据。
* @param date - 指定日期。
* @return 指定日期事件已处置和带处置事件计数的映射
*/
private getCurrentDayEventDate(data: any, date: string) {
const eventCount: Map<string, number> = new Map();
eventCount.set('pendingEvents', 0);
eventCount.set('processedEvents', 0);
data.forEach(row => {
const rowDate = excelSerialToJSDate(row['数据更新时间']);
let rowDateString = '';
let rowDateString;
try {
rowDateString = rowDate.toISOString().split('T')[0];
}
......
/**
* allEventDataStrategy.ts
* 该文件定义了所有事件数据策略的具体实现,获取所有事件并提取相关信息。
*/
import {abstractDataStrategyMid} from "./abstractDataStrategyMid";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
/**
* 事件数据策略类,继承自 abstractDataStrategyMid。
*/
export class allEventDataStrategy extends abstractDataStrategyMid {
static readonly RELEVANTINFO = ['事件标题', '处置状态', '数据更新时间', '事件类型', '事件子类型', '事件来源'];
/**
* 执行所有事件数据策略。
* @returns 事件的数据。
*/
execute(): any {
let eventData = this.extractor.getData(allEventDataStrategy.fileName, allEventDataStrategy.sheetName);
this.removeUnusedColumns(eventData);
return eventData;
}
/**
* 移除数据中前端不使用的列
* @param data - 从数据源提取的数据
*/
private removeUnusedColumns(data: any) {
data.forEach(row => {
Object.keys(row).forEach(key => {
......
/**
* totalEventCountStrategy.ts
* 该文件定义了总事件计数策略的具体实现。
*/
import {abstractDataStrategyMid} from "./abstractDataStrategyMid";
import mapToObj from "../../../util/mapToObj";
/**
* 总事件计数策略类,继承自 abstractDataStrategyMid。
*/
export class totalEventCountStrategy extends abstractDataStrategyMid {
/**
* 执行总事件计数策略。
* @returns 所有事件的计数。
*/
execute(): any {
let eventData = this.extractor.getData(totalEventCountStrategy.fileName, totalEventCountStrategy.sheetName);
return mapToObj(this.getEventCount(eventData));
}
/**
* 获取所有事件计数的映射
* @param data - 从数据源提取的数据
* @returns 所有事件计数的映射
*/
private getEventCount(data: any) {
const eventCount : Map<string, number> = new Map();
eventCount.set('全部事件', 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment