Commit bae57bb5 by Leo Zheng

代码重构:

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