Commit bae57bb5 by Leo Zheng

代码重构:

- 增加抽象类abstractDataStrategy来简化具体类的代码
parent d380a3b1
/**寿州古城智慧调度事件态势感知 */
import { DataExtractor } from "../util/dataExtractor";
import { strategyFactory } from "./strategies/strategyFactory";
/**
......@@ -11,14 +10,11 @@ export function getData(req, res) {
/**填充数据格式处理 */
const strategy = strategyFactory.createStrategy(req.query.content)
let ret = strategy.execute(req);
res.send(ret);
}
export function test(req, res) {
const ret = "Success!";
res.send(ret);
res.send("Success!");
}
......
import { dataStrategy } from "../dataStrategy";
import {DataExtractor} from "../../../util/dataExtractor";
export abstract class abstractDataStrategyLeft implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '票务系统.xlsx';
static readonly sheetName = '票务系统-订单主表';
execute(params?: any): any {
}
}
\ No newline at end of file
import { dataStrategy } from "./dataStrategy";
import { randomStatusGenerator } from "../../util/randomStatusGenerator";
import { randomStatusGenerator } from "../../../util/randomStatusGenerator";
import {abstractDataStrategyLeft} from "./abstractDataStrategyLeft";
export class guchengLoadStrategy implements dataStrategy {
export class guchengLoadStrategy extends abstractDataStrategyLeft {
execute(): any {
return randomStatusGenerator.getRandomStatus();
}
......
import { dataStrategy } from "./dataStrategy";
import { DataExtractor } from "../../util/dataExtractor";
import { randomStatusGenerator } from "../../util/randomStatusGenerator";
import excelSerialToJSDate from "../../util/excelDateToJSDate";
import { randomStatusGenerator } from "../../../util/randomStatusGenerator";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
import {abstractDataStrategyLeft} from "./abstractDataStrategyLeft";
export class sightVisitorFlowByDayStrategy implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '票务系统.xlsx';
static readonly sheetName = '票务系统-订单主表';
export class sightVisitorFlowByDayStrategy extends abstractDataStrategyLeft {
execute(params?: any): any {
if (!params || !params.query || !params.query.date) {
throw new Error("Data parameter is required.")
......
import { dataStrategy } from "./dataStrategy";
import { DataExtractor } from "../../util/dataExtractor";
import excelSerialToJSDate from "../../util/excelDateToJSDate";
import mapToObj from "../../util/mapToObj";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
import mapToObj from "../../../util/mapToObj";
import {abstractDataStrategyLeft} from "./abstractDataStrategyLeft";
export class sightVisitorFlowByHourStrategy implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '票务系统.xlsx';
static readonly sheetName = '票务系统-订单主表';
export class sightVisitorFlowByHourStrategy extends abstractDataStrategyLeft {
execute(params?: any): any {
if (!params || !params.query || !params.query.date || !params.query.sight) {
......
import { dataStrategy } from "./dataStrategy";
import {DataExtractor} from "../../util/dataExtractor";
import excelSerialToJSDate from "../../util/excelDateToJSDate";
import mapToObj from "../../util/mapToObj";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
import mapToObj from "../../../util/mapToObj";
import {abstractDataStrategyLeft} from "./abstractDataStrategyLeft";
export class totalVisitorFlowByHourStrategy extends abstractDataStrategyLeft {
export class totalVisitorFlowByHourStrategy implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '票务系统.xlsx';
static readonly sheetName = '票务系统-订单主表';
execute(params?: any): any {
if (!params || !params.query || !params.query.date) {
......
import { dataStrategy } from "./dataStrategy";
import {DataExtractor} from "../../util/dataExtractor";
import excelSerialToJSDate from "../../util/excelDateToJSDate";
import mapToObj from "../../util/mapToObj";
import excelSerialToJSDate from "../../../util/excelDateToJSDate";
import mapToObj from "../../../util/mapToObj";
import { abstractDataStrategyLeft } from "./abstractDataStrategyLeft";
export class totalVisitorFlowStrategy implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '票务系统.xlsx';
static readonly sheetName = '票务系统-订单主表';
export class totalVisitorFlowStrategy extends abstractDataStrategyLeft {
execute(params?: any): any {
if (!params || !params.query || !params.query.date) {
......
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 = '指挥调度系统';
execute(params?: any): any {
}
}
\ No newline at end of file
import { dataStrategy } from "../dataStrategy";
export class currentEventStrategy implements dataStrategy {
execute(params?: any): any {
}
}
\ No newline at end of file
import { dataStrategy } from "./dataStrategy";
import { DataExtractor } from "../../util/dataExtractor";
export class allEventDataStrategy implements dataStrategy {
extractor = DataExtractor.getInstance();
static readonly fileName = '寿州古城.xlsx';
static readonly sheetName = '指挥调度系统';
import {abstractDataStrategyMid} from "./abstractDataStrategyMid";
export class allEventDataStrategy extends abstractDataStrategyMid {
execute(): any {
return this.extractor.getData(allEventDataStrategy.fileName, allEventDataStrategy.sheetName);
}
}
\ No newline at end of file
import { dataStrategy } from "./dataStrategy";
import { allEventDataStrategy } from "./eventDataStrategy";
import { sightVisitorFlowByDayStrategy } from "./sightVisitorFlowByDayStrategy";
import { gateStatusStrategy } from "./gateStatusStrategy";
import { sightVisitorFlowByHourStrategy } from "./sightVisitorFlowPerHourStrategy";
import { guchengLoadStrategy } from "./guchengLoadStrategy";
import { totalVisitorFlowStrategy } from "./totalVisitorFlowStrategy";
import { totalVisitorFlowByHourStrategy } from "./totalVisitorFlowByHourStrategy";
import { allEventDataStrategy } from "./middle/eventDataStrategy";
import { sightVisitorFlowByDayStrategy } from "./left/sightVisitorFlowByDayStrategy";
import { gateStatusStrategy } from "./left/gateStatusStrategy";
import { sightVisitorFlowByHourStrategy } from "./left/sightVisitorFlowPerHourStrategy";
import { guchengLoadStrategy } from "./left/guchengLoadStrategy";
import { totalVisitorFlowStrategy } from "./left/totalVisitorFlowStrategy";
import { totalVisitorFlowByHourStrategy } from "./left/totalVisitorFlowByHourStrategy";
export class strategyFactory {
private static strategies: { [key: string]: new () => dataStrategy } = {
......
......@@ -9,6 +9,5 @@ import * as szgcBiz from '../biz/getData';
export function setRouter(httpServer){
httpServer.get('/getdata', asyncHandler(szgcBiz.getData));
httpServer.get('/test', szgcBiz.test);
}
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