From 4d47205fa6a961e93beaf0994a56c73c765658ef Mon Sep 17 00:00:00 2001 From: "gao.zhiyuan" Date: Tue, 6 Sep 2022 09:18:14 +0800 Subject: [PATCH] reinit --- api/app/lib/models/application.js | 88 --- api/app/lib/models/ax_project.js | 35 -- api/app/lib/schedule/index.js | 36 ++ api/app/lib/service/mqttVideoServer.js | 19 +- script/.vscode/settings.json | 3 - script/0.0.1/0_init_db.sql | 543 ------------------ script/1.0.0/1.init_tables.sql | 0 script/1.1.0/1.camera_remark.sql | 14 - .../.vscode/launch.json | 17 - .../data/1_update_status_code_data/index.js | 69 --- .../1_update_status_code_data/package.json | 16 - .../云录制错误码.xlsx | Bin 12866 -> 0 bytes script/1.1.1/data/2.insert_camera_status.sql | 141 ----- .../schema/1.create_camera_status_table.sql | 140 ----- .../schema/1.update_camera_status_config.sql | 21 - script/1.1.2/schema/2.update_push_log.sql | 5 - .../schema/3.update_camera_channel_no.sql | 4 - .../4.create_camera_status_offline_log.sql | 13 - script/1.2.1/schema/1.create_application.sql | 19 - script/1.3.0/schema/1.alert_gbcamera_did.sql | 4 - script/1.3.0/schema/2.create_mirror_table.sql | 90 --- .../1_sync_camera_data/.vscode/launch.json | 17 - .../1.3.1/data/1_sync_camera_data/Dockerfile | 8 - script/1.3.1/data/1_sync_camera_data/index.js | 156 ----- .../data/1_sync_camera_data/package.json | 18 - 25 files changed, 37 insertions(+), 1439 deletions(-) delete mode 100644 api/app/lib/models/application.js delete mode 100644 api/app/lib/models/ax_project.js create mode 100644 api/app/lib/schedule/index.js delete mode 100644 script/.vscode/settings.json delete mode 100644 script/0.0.1/0_init_db.sql create mode 100644 script/1.0.0/1.init_tables.sql delete mode 100644 script/1.1.0/1.camera_remark.sql delete mode 100644 script/1.1.1/data/1_update_status_code_data/.vscode/launch.json delete mode 100644 script/1.1.1/data/1_update_status_code_data/index.js delete mode 100644 script/1.1.1/data/1_update_status_code_data/package.json delete mode 100644 script/1.1.1/data/1_update_status_code_data/云录制错误码.xlsx delete mode 100644 script/1.1.1/data/2.insert_camera_status.sql delete mode 100644 script/1.1.1/schema/1.create_camera_status_table.sql delete mode 100644 script/1.1.2/schema/1.update_camera_status_config.sql delete mode 100644 script/1.1.2/schema/2.update_push_log.sql delete mode 100644 script/1.1.2/schema/3.update_camera_channel_no.sql delete mode 100644 script/1.1.2/schema/4.create_camera_status_offline_log.sql delete mode 100644 script/1.2.1/schema/1.create_application.sql delete mode 100644 script/1.3.0/schema/1.alert_gbcamera_did.sql delete mode 100644 script/1.3.0/schema/2.create_mirror_table.sql delete mode 100644 script/1.3.1/data/1_sync_camera_data/.vscode/launch.json delete mode 100644 script/1.3.1/data/1_sync_camera_data/Dockerfile delete mode 100644 script/1.3.1/data/1_sync_camera_data/index.js delete mode 100644 script/1.3.1/data/1_sync_camera_data/package.json diff --git a/api/app/lib/models/application.js b/api/app/lib/models/application.js deleted file mode 100644 index e51fd54..0000000 --- a/api/app/lib/models/application.js +++ /dev/null @@ -1,88 +0,0 @@ -/* eslint-disable*/ -'use strict'; - -module.exports = dc => { - const DataTypes = dc.ORM; - const sequelize = dc.orm; - const Application = sequelize.define("application", { - id: { - type: DataTypes.INTEGER, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: true, - field: "id", - autoIncrement: true, - unique: "application_id_uindex" - }, - name: { - type: DataTypes.STRING, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "name", - autoIncrement: false - }, - type: { - type: DataTypes.ARRAY(DataTypes.STRING), - allowNull: true, - defaultValue: null, - comment: "web / app / wxapp / other", - primaryKey: false, - field: "type", - autoIncrement: false - }, - appKey: { - type: DataTypes.STRING, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "app_key", - autoIncrement: false - }, - appSecret: { - type: DataTypes.STRING, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "app_secret", - autoIncrement: false - }, - createUserId: { - type: DataTypes.INTEGER, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "create_user_id", - autoIncrement: false - }, - createTime: { - type: DataTypes.DATE, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "create_time", - autoIncrement: false - }, - forbidden: { - type: DataTypes.BOOLEAN, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "forbidden", - autoIncrement: false - } - }, { - tableName: "application", - comment: "", - indexes: [] - }); - dc.models.Application = Application; - return Application; -}; \ No newline at end of file diff --git a/api/app/lib/models/ax_project.js b/api/app/lib/models/ax_project.js deleted file mode 100644 index b060ff5..0000000 --- a/api/app/lib/models/ax_project.js +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable*/ -'use strict'; - -module.exports = dc => { - const DataTypes = dc.ORM; - const sequelize = dc.orm; - const AxProject = sequelize.define("axProject", { - id: { - type: DataTypes.INTEGER, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: true, - field: "id", - autoIncrement: false, - unique: "ax_project_id_uindex" - }, - name: { - type: DataTypes.STRING, - allowNull: false, - defaultValue: null, - comment: null, - primaryKey: false, - field: "name", - autoIncrement: false - } - }, { - tableName: "ax_project", - comment: "", - indexes: [] - }); - - dc.models.AxProject = AxProject; - return AxProject; -}; \ No newline at end of file diff --git a/api/app/lib/schedule/index.js b/api/app/lib/schedule/index.js new file mode 100644 index 0000000..121b8a9 --- /dev/null +++ b/api/app/lib/schedule/index.js @@ -0,0 +1,36 @@ +'use strict'; + +const fs = require('fs'); +const nodeSchedule = require('node-schedule'); + +// 将定时任务汇集未来可根据需要选取操作 +module.exports = async function (app, opts) { + + const scheduleInit = ({ + interval, immediate, proRun, + }, callback) => { + if (proRun && opts.dev) { + return; + } + const j = nodeSchedule.scheduleJob(interval, callback); + if (immediate && (!proRun || (proRun && !opts.dev))) { + setTimeout(callback, 0) + } + return j; + } + + app.fs.scheduleInit = scheduleInit + + fs.readdirSync(__dirname).forEach((filename) => { + if (!['index.js'].some(f => filename == f)) { + const scheduleList = require(`./${filename}`)(app, opts) + for (let k of Object.keys(scheduleList)) { + console.info(`定时任务 ${k} 启动`); + } + app.fs.schedule = { + ...app.fs.schedule, + ...scheduleList, + } + } + }); +}; diff --git a/api/app/lib/service/mqttVideoServer.js b/api/app/lib/service/mqttVideoServer.js index 69b4046..7b85386 100644 --- a/api/app/lib/service/mqttVideoServer.js +++ b/api/app/lib/service/mqttVideoServer.js @@ -16,24 +16,7 @@ module.exports = async function factory (app, opts) { }) client.on('message', async (top, message) => { - let msgStr = message.toString(); - let msg = JSON.parse(msgStr.replace(/\\/g, '')); - if (msg.id && msg.online) { - const { cameraStatePush } = app.fs.utils - const { models } = app.fs.dc - const gbCameraRes = await models.GbCamera.findOne({ - where: { - id: msg.id - } - }) - if (gbCameraRes) { - cameraStatePush({ - gbId: msg.id, - online: msg.online, - ipctype: gbCameraRes.ipctype, - }) - } - } + }); app.mqttVideoServer = client diff --git a/script/.vscode/settings.json b/script/.vscode/settings.json deleted file mode 100644 index ab3b243..0000000 --- a/script/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "editor.wordWrap": "on" -} \ No newline at end of file diff --git a/script/0.0.1/0_init_db.sql b/script/0.0.1/0_init_db.sql deleted file mode 100644 index bc4c4c9..0000000 --- a/script/0.0.1/0_init_db.sql +++ /dev/null @@ -1,543 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : 10.8.30.32 - Source Server Type : PostgreSQL - Source Server Version : 90515 - Source Host : 10.8.30.32:5432 - Source Catalog : video_access - Source Schema : public - - Target Server Type : PostgreSQL - Target Server Version : 90515 - File Encoding : 65001 - - Date: 06/07/2022 11:45:25 -*/ - - --- ---------------------------- --- Sequence structure for camera_ability_bind_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."camera_ability_bind_id_seq"; -CREATE SEQUENCE "public"."camera_ability_bind_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for camera_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."camera_id_seq"; -CREATE SEQUENCE "public"."camera_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for camera_remark_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."camera_remark_id_seq"; -CREATE SEQUENCE "public"."camera_remark_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for gbCamera_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."gbCamera_id_seq"; -CREATE SEQUENCE "public"."gbCamera_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for gb_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."gb_id_seq"; -CREATE SEQUENCE "public"."gb_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for nvr_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."nvr_id_seq"; -CREATE SEQUENCE "public"."nvr_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for secret_yingshi_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."secret_yingshi_id_seq"; -CREATE SEQUENCE "public"."secret_yingshi_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for t_upload_comm_http_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."t_upload_comm_http_id_seq"; -CREATE SEQUENCE "public"."t_upload_comm_http_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Sequence structure for vender_id_seq --- ---------------------------- -DROP SEQUENCE IF EXISTS "public"."vender_id_seq"; -CREATE SEQUENCE "public"."vender_id_seq" -INCREMENT 1 -MINVALUE 1 -MAXVALUE 9223372036854775807 -START 1 -CACHE 1; - --- ---------------------------- --- Table structure for ax_project --- ---------------------------- -DROP TABLE IF EXISTS "public"."ax_project"; -CREATE TABLE "public"."ax_project" ( - "id" int4 NOT NULL, - "name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL -) -; -COMMENT ON TABLE "public"."ax_project" IS '安心云项目副表,主要用于和camera等进行联合查询 -在安心云进行摄像头绑定的时候进行同步'; - --- ---------------------------- --- Records of ax_project --- ---------------------------- -INSERT INTO "public"."ax_project" VALUES (1, '安心云项目'); - --- ---------------------------- --- Table structure for camera --- ---------------------------- -DROP TABLE IF EXISTS "public"."camera"; -CREATE TABLE "public"."camera" ( - "id" int4 NOT NULL DEFAULT nextval('camera_id_seq'::regclass), - "type" varchar(16) COLLATE "pg_catalog"."default" NOT NULL, - "name" varchar(128) COLLATE "pg_catalog"."default", - "channel_name" varchar(64) COLLATE "pg_catalog"."default", - "external_domain" varchar(64) COLLATE "pg_catalog"."default", - "rtmp" varchar(1024) COLLATE "pg_catalog"."default", - "serial_no" varchar(128) COLLATE "pg_catalog"."default", - "cloud_control" bool, - "high_definition" bool, - "voice" bool, - "memory_card" varchar(32) COLLATE "pg_catalog"."default", - "vender_id" int4, - "cascade_type" varchar(32) COLLATE "pg_catalog"."default", - "sip" varchar(1024) COLLATE "pg_catalog"."default", - "longitude" numeric(16,12), - "latitude" numeric(16,12), - "forbidden" bool NOT NULL DEFAULT false, - "create_time" timestamptz(6) NOT NULL, - "recycle_time" timestamptz(6), - "delete" bool NOT NULL DEFAULT false, - "create_user_id" int4 NOT NULL, - "nvr_id" int4, - "model" varchar(128) COLLATE "pg_catalog"."default", - "kind_id" int4, - "yingshi_secret_id" int4, - "gb_id" int4, - "top_serial_no" varchar(128) COLLATE "pg_catalog"."default" -) -; -COMMENT ON COLUMN "public"."camera"."type" IS '设备类型:yingshi - 萤石;nvr - NVR摄像头;ipc - IPC 网络摄像头;cascade - 级联摄像头'; -COMMENT ON COLUMN "public"."camera"."name" IS '设备名称/安装位置'; -COMMENT ON COLUMN "public"."camera"."channel_name" IS '通道名称'; -COMMENT ON COLUMN "public"."camera"."external_domain" IS '外域名称'; -COMMENT ON COLUMN "public"."camera"."serial_no" IS '设备编号'; -COMMENT ON COLUMN "public"."camera"."cloud_control" IS '云台控制'; -COMMENT ON COLUMN "public"."camera"."high_definition" IS '高清支持'; -COMMENT ON COLUMN "public"."camera"."voice" IS '语音对讲支持'; -COMMENT ON COLUMN "public"."camera"."memory_card" IS '内存卡容量'; -COMMENT ON COLUMN "public"."camera"."vender_id" IS '设备厂商id'; -COMMENT ON COLUMN "public"."camera"."cascade_type" IS '级联方式:up - 上级联;down - 下级联'; -COMMENT ON COLUMN "public"."camera"."longitude" IS '经度'; -COMMENT ON COLUMN "public"."camera"."latitude" IS '维度'; -COMMENT ON COLUMN "public"."camera"."forbidden" IS '是否禁用'; -COMMENT ON COLUMN "public"."camera"."recycle_time" IS '放入回收站时间'; -COMMENT ON COLUMN "public"."camera"."delete" IS '是否彻底删除'; -COMMENT ON COLUMN "public"."camera"."model" IS '型号'; -COMMENT ON COLUMN "public"."camera"."top_serial_no" IS 'gb设备 level=0 的 steamid '; - --- ---------------------------- --- Table structure for camera_ability --- ---------------------------- -DROP TABLE IF EXISTS "public"."camera_ability"; -CREATE TABLE "public"."camera_ability" ( - "id" int4 NOT NULL, - "ability" varchar(64) COLLATE "pg_catalog"."default" NOT NULL -) -; -COMMENT ON TABLE "public"."camera_ability" IS '摄像机能力'; - --- ---------------------------- --- Records of camera_ability --- ---------------------------- -INSERT INTO "public"."camera_ability" VALUES (1, '普通摄像头'); -INSERT INTO "public"."camera_ability" VALUES (2, '人流量计数'); -INSERT INTO "public"."camera_ability" VALUES (3, '热成像'); -INSERT INTO "public"."camera_ability" VALUES (4, 'AI摄像头'); -INSERT INTO "public"."camera_ability" VALUES (1314, '其他'); - --- ---------------------------- --- Table structure for camera_ability_bind --- ---------------------------- -DROP TABLE IF EXISTS "public"."camera_ability_bind"; -CREATE TABLE "public"."camera_ability_bind" ( - "id" int4 NOT NULL DEFAULT nextval('camera_ability_bind_id_seq'::regclass), - "camera_id" int4 NOT NULL, - "ability_id" int4 NOT NULL -) -; - --- ---------------------------- --- Table structure for camera_kind --- ---------------------------- -DROP TABLE IF EXISTS "public"."camera_kind"; -CREATE TABLE "public"."camera_kind" ( - "id" int4 NOT NULL, - "kind" varchar(64) COLLATE "pg_catalog"."default" NOT NULL -) -; -COMMENT ON TABLE "public"."camera_kind" IS '摄像机类型'; - --- ---------------------------- --- Records of camera_kind --- ---------------------------- -INSERT INTO "public"."camera_kind" VALUES (1, '枪机'); -INSERT INTO "public"."camera_kind" VALUES (2, '球机'); -INSERT INTO "public"."camera_kind" VALUES (1314, '其他'); - --- ---------------------------- --- Table structure for camera_remark --- ---------------------------- -DROP TABLE IF EXISTS "public"."camera_remark"; -CREATE TABLE "public"."camera_remark" ( - "id" int4 NOT NULL DEFAULT nextval('camera_remark_id_seq'::regclass), - "camera_id" int4 NOT NULL, - "remark" varchar(256) COLLATE "pg_catalog"."default" NOT NULL -) -; - --- ---------------------------- --- Table structure for gbCamera --- ---------------------------- -DROP TABLE IF EXISTS "public"."gbCamera"; -CREATE TABLE "public"."gbCamera" ( - "id" int4 NOT NULL DEFAULT nextval('gb_id_seq'::regclass), - "level" int4, - "parent" varchar(32) COLLATE "pg_catalog"."default", - "streamid" varchar(255) COLLATE "pg_catalog"."default", - "online" varchar(255) COLLATE "pg_catalog"."default", - "manufactuer" varchar(255) COLLATE "pg_catalog"."default", - "model" varchar(255) COLLATE "pg_catalog"."default", - "civilCode" varchar(255) COLLATE "pg_catalog"."default", - "adddress" varchar(255) COLLATE "pg_catalog"."default", - "name" varchar(255) COLLATE "pg_catalog"."default", - "Addr" varchar(255) COLLATE "pg_catalog"."default", - "Sipip" varchar(255) COLLATE "pg_catalog"."default", - "ipctype" varchar(255) COLLATE "pg_catalog"."default", - "registerTime" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, - "updateTime" varchar(255) COLLATE "pg_catalog"."default", - "playUrl" jsonb -) -; -COMMENT ON COLUMN "public"."gbCamera"."playUrl" IS '播放地址集合'; - --- ---------------------------- --- Table structure for nvr --- ---------------------------- -DROP TABLE IF EXISTS "public"."nvr"; -CREATE TABLE "public"."nvr" ( - "id" int4 NOT NULL DEFAULT nextval('nvr_id_seq'::regclass), - "name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "vender_id" int4, - "serial_no" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, - "region_code" varchar(64) COLLATE "pg_catalog"."default", - "longitude" numeric(16,12) NOT NULL, - "latitude" numeric(16,12) NOT NULL, - "create_time" timestamptz(6) NOT NULL DEFAULT now(), - "channel_count" int4, - "port" varchar(32) COLLATE "pg_catalog"."default", - "delete" bool NOT NULL DEFAULT false, - "create_user_id" int4 NOT NULL -) -; -COMMENT ON COLUMN "public"."nvr"."vender_id" IS '设备厂家id'; -COMMENT ON COLUMN "public"."nvr"."serial_no" IS '设备编号'; -COMMENT ON COLUMN "public"."nvr"."region_code" IS '行政区码'; -COMMENT ON COLUMN "public"."nvr"."create_time" IS '创建时间'; -COMMENT ON COLUMN "public"."nvr"."channel_count" IS '通道数'; -COMMENT ON COLUMN "public"."nvr"."port" IS '端口'; - --- ---------------------------- --- Table structure for secret_yingshi --- ---------------------------- -DROP TABLE IF EXISTS "public"."secret_yingshi"; -CREATE TABLE "public"."secret_yingshi" ( - "id" int4 NOT NULL DEFAULT nextval('secret_yingshi_id_seq'::regclass), - "key" varchar(512) COLLATE "pg_catalog"."default" NOT NULL, - "secret" varchar(512) COLLATE "pg_catalog"."default" NOT NULL, - "token" varchar(512) COLLATE "pg_catalog"."default", - "expire" varchar(512) COLLATE "pg_catalog"."default" -) -; - --- ---------------------------- --- Records of secret_yingshi --- ---------------------------- -INSERT INTO "public"."secret_yingshi" VALUES (2, '3ea2b502f6804d64b43e4cb3d135665c', '331c85c5b7ce76179f6eb7dccb8aeb27', 'at.culo424j9drz8atx9uikeq5e2mzkhnhx-490csubqrh-1o3hcaz-szuvfax6f', '1657681218109'); -INSERT INTO "public"."secret_yingshi" VALUES (3, 'd0704fb9d5d14a6682c1c1d592c12512', '93d023269495b86be62cdfdcf34a6cd1', 'at.1y2mk5fh2myswbkp017pmvdi0v1zbdrw-5j39z78wsp-0x4vi2j-a3mxjlt32', '1657683606281'); -INSERT INTO "public"."secret_yingshi" VALUES (1, '5d16a667e1c2423d9d0d634f781810b4', '0cc4e1ec4e6a53ea3dabeb09cd5f468b', 'at.9gq3xwwbazkk33y177ucqtk936bmd0sz-41x4xf24sh-1cn7x82-4lf7davve', '1657681803201'); - --- ---------------------------- --- Table structure for t_upload_comm_http --- ---------------------------- -DROP TABLE IF EXISTS "public"."t_upload_comm_http"; -CREATE TABLE "public"."t_upload_comm_http" ( - "id" int4 NOT NULL DEFAULT nextval('t_upload_comm_http_id_seq'::regclass), - "content" json NOT NULL, - "enable" bool NOT NULL DEFAULT true, - "description" varchar(255) COLLATE "pg_catalog"."default" -) -; - --- ---------------------------- --- Table structure for vender --- ---------------------------- -DROP TABLE IF EXISTS "public"."vender"; -CREATE TABLE "public"."vender" ( - "id" int4 NOT NULL DEFAULT nextval('vender_id_seq'::regclass), - "name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL -) -; -COMMENT ON TABLE "public"."vender" IS '设备厂商'; - --- ---------------------------- --- Records of vender --- ---------------------------- -INSERT INTO "public"."vender" VALUES (2, '海康威视'); -INSERT INTO "public"."vender" VALUES (3, '大华'); -INSERT INTO "public"."vender" VALUES (1, '飞尚科技'); -INSERT INTO "public"."vender" VALUES (1314, '其他'); - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."camera_ability_bind_id_seq" -OWNED BY "public"."camera_ability_bind"."id"; - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."camera_id_seq" -OWNED BY "public"."camera"."id"; - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."camera_remark_id_seq" -OWNED BY "public"."camera_remark"."id"; - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -SELECT setval('"public"."gbCamera_id_seq"', 2, false); - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."nvr_id_seq" -OWNED BY "public"."nvr"."id"; - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."secret_yingshi_id_seq" -OWNED BY "public"."secret_yingshi"."id"; -SELECT setval('"public"."secret_yingshi_id_seq"', 4, true); - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -SELECT setval('"public"."t_upload_comm_http_id_seq"', 2, false); - --- ---------------------------- --- Alter sequences owned by --- ---------------------------- -ALTER SEQUENCE "public"."vender_id_seq" -OWNED BY "public"."vender"."id"; -SELECT setval('"public"."vender_id_seq"', 4, true); - --- ---------------------------- --- Indexes structure for table ax_project --- ---------------------------- -CREATE UNIQUE INDEX "ax_project_id_uindex" ON "public"."ax_project" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table ax_project --- ---------------------------- -ALTER TABLE "public"."ax_project" ADD CONSTRAINT "ax_project_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table camera --- ---------------------------- -CREATE UNIQUE INDEX "camera_id_uindex" ON "public"."camera" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table camera --- ---------------------------- -ALTER TABLE "public"."camera" ADD CONSTRAINT "camera_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table camera_ability --- ---------------------------- -CREATE UNIQUE INDEX "camera_ability_id_uindex" ON "public"."camera_ability" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table camera_ability --- ---------------------------- -ALTER TABLE "public"."camera_ability" ADD CONSTRAINT "camera_ability_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table camera_ability_bind --- ---------------------------- -CREATE UNIQUE INDEX "camera_ability_bind_id_uindex" ON "public"."camera_ability_bind" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table camera_ability_bind --- ---------------------------- -ALTER TABLE "public"."camera_ability_bind" ADD CONSTRAINT "camera_ability_bind_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table camera_kind --- ---------------------------- -CREATE UNIQUE INDEX "camera_kind_id_uindex" ON "public"."camera_kind" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table camera_kind --- ---------------------------- -ALTER TABLE "public"."camera_kind" ADD CONSTRAINT "camera_kind_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table camera_remark --- ---------------------------- -CREATE UNIQUE INDEX "camera_remark_id_uindex" ON "public"."camera_remark" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table camera_remark --- ---------------------------- -ALTER TABLE "public"."camera_remark" ADD CONSTRAINT "camera_remark_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Primary Key structure for table gbCamera --- ---------------------------- -ALTER TABLE "public"."gbCamera" ADD CONSTRAINT "gbCamera1_copy1_pkey" PRIMARY KEY ("id"); - - --- ---------------------------- --- Indexes structure for table nvr --- ---------------------------- -CREATE UNIQUE INDEX "nvr_id_uindex" ON "public"."nvr" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table nvr --- ---------------------------- -ALTER TABLE "public"."nvr" ADD CONSTRAINT "nvr_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table secret_yingshi --- ---------------------------- -CREATE UNIQUE INDEX "secret_yingshi_id_uindex" ON "public"."secret_yingshi" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table secret_yingshi --- ---------------------------- -ALTER TABLE "public"."secret_yingshi" ADD CONSTRAINT "secret_yingshi_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Primary Key structure for table t_upload_comm_http --- ---------------------------- -ALTER TABLE "public"."t_upload_comm_http" ADD CONSTRAINT "t_upload_comm_http_pkey" PRIMARY KEY ("id"); - --- ---------------------------- --- Indexes structure for table vender --- ---------------------------- -CREATE UNIQUE INDEX "vender_id_uindex" ON "public"."vender" USING btree ( - "id" "pg_catalog"."int4_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table vender --- ---------------------------- -ALTER TABLE "public"."vender" ADD CONSTRAINT "vender_pk" PRIMARY KEY ("id"); - --- ---------------------------- --- Foreign Keys structure for table camera --- ---------------------------- -ALTER TABLE "public"."camera" ADD CONSTRAINT "camera_camera_kind_id_fk" FOREIGN KEY ("kind_id") REFERENCES "public"."camera_kind" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE "public"."camera" ADD CONSTRAINT "camera_nvr_id_fk" FOREIGN KEY ("nvr_id") REFERENCES "public"."nvr" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE "public"."camera" ADD CONSTRAINT "camera_secret_yingshi_id_fk" FOREIGN KEY ("yingshi_secret_id") REFERENCES "public"."secret_yingshi" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE "public"."camera" ADD CONSTRAINT "camera_vender_id_fk" FOREIGN KEY ("vender_id") REFERENCES "public"."vender" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; - --- ---------------------------- --- Foreign Keys structure for table camera_ability_bind --- ---------------------------- -ALTER TABLE "public"."camera_ability_bind" ADD CONSTRAINT "camera_ability_bind_camera_ability_id_fk" FOREIGN KEY ("ability_id") REFERENCES "public"."camera_ability" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; -ALTER TABLE "public"."camera_ability_bind" ADD CONSTRAINT "camera_ability_bind_camera_id_fk" FOREIGN KEY ("camera_id") REFERENCES "public"."camera" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; - --- ---------------------------- --- Foreign Keys structure for table camera_remark --- ---------------------------- -ALTER TABLE "public"."camera_remark" ADD CONSTRAINT "camera_remark_camera_id_fk" FOREIGN KEY ("camera_id") REFERENCES "public"."camera" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; - --- ---------------------------- --- Foreign Keys structure for table nvr --- ---------------------------- -ALTER TABLE "public"."nvr" ADD CONSTRAINT "nvr_vender_id_fk" FOREIGN KEY ("vender_id") REFERENCES "public"."vender" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; diff --git a/script/1.0.0/1.init_tables.sql b/script/1.0.0/1.init_tables.sql new file mode 100644 index 0000000..e69de29 diff --git a/script/1.1.0/1.camera_remark.sql b/script/1.1.0/1.camera_remark.sql deleted file mode 100644 index 0145cda..0000000 --- a/script/1.1.0/1.camera_remark.sql +++ /dev/null @@ -1,14 +0,0 @@ -create table if not exists camera_remark -( - id serial not null, - camera_id integer not null, - remark varchar(256) not null, - constraint camera_remark_pk - primary key (id), - constraint camera_remark_camera_id_fk - foreign key (camera_id) references camera -); - -create unique index if not exists camera_remark_id_uindex - on camera_remark (id); - diff --git a/script/1.1.1/data/1_update_status_code_data/.vscode/launch.json b/script/1.1.1/data/1_update_status_code_data/.vscode/launch.json deleted file mode 100644 index 3a3fcba..0000000 --- a/script/1.1.1/data/1_update_status_code_data/.vscode/launch.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - // 使用 IntelliSense 了解相关属性。 - // 悬停以查看现有属性的描述。 - // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "启动程序", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}\\index.js" - } - ] -} \ No newline at end of file diff --git a/script/1.1.1/data/1_update_status_code_data/index.js b/script/1.1.1/data/1_update_status_code_data/index.js deleted file mode 100644 index 32214fe..0000000 --- a/script/1.1.1/data/1_update_status_code_data/index.js +++ /dev/null @@ -1,69 +0,0 @@ -try { - const { Pool, Client } = require('pg') - const XLSX = require('xlsx') - const path = require('path') - - // 连接数据库 - const pool = new Pool({ - user: 'postgres', - host: '10.8.30.32', - database: 'video_access', - password: '123', - port: 5432, - }) - - const fun = async () => { - // note: we don't try/catch this because if connecting throws an exception - // we don't need to dispose of the client (it will be undefined) - const client = await pool.connect() - try { - await client.query('BEGIN') - - // 读取数据文件 - let workbook = XLSX.readFile(path.join(__dirname, '云录制错误码.xlsx')) - let firstSheetName = workbook.SheetNames[0]; - let worksheet = workbook.Sheets[firstSheetName]; - let res = XLSX.utils.sheet_to_json(worksheet); - - // console.log(res); - - for (let d of res) { - let statusRes = await client.query(`SELECT * FROM camera_status WHERE status=$1`, [d['错误码']]); - let statusRows = statusRes.rows - - if (statusRows.length) { - - } else { - console.log(`增加${d['错误码']}`); - const statusInQuery = `INSERT INTO "camera_status" (platform, status, describe, paraphrase) VALUES($1, $2, $3, $4) RETURNING id;` - const statusRows = (await client.query(statusInQuery, ['yingshi', d['错误码'], d['错误描述'], d['释义']])).rows - // console.log(statusRows); - if (d['解决方案']) { - let resolveArr = d['解决方案'].split(';'); - // await client.query(`DELETE FROM "camera_status_solution" WHERE status_id=$1`, [statusRows[0].id]); - for (let r of resolveArr) { - await client.query( - `INSERT INTO "camera_status_resolve" (status_id, resolve) VALUES($1, $2) RETURNING id;`, - [statusRows[0].id, r] - ) - } - } - } - } - - // await client.query('ROLLBACK') - await client.query('COMMIT') - console.log('执行完毕~') - } catch (e) { - await client.query('ROLLBACK') - console.log('执行错误~') - throw e - } finally { - client.release(); - } - } - - fun() -} catch (error) { - console.error(error) -} diff --git a/script/1.1.1/data/1_update_status_code_data/package.json b/script/1.1.1/data/1_update_status_code_data/package.json deleted file mode 100644 index 0f66f5f..0000000 --- a/script/1.1.1/data/1_update_status_code_data/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "appkey-generator", - "version": "1.0.0", - "description": "tool", - "main": "index.js", - "scripts": { - "test": "mocha", - "start": "set NODE_ENV=development&&node index" - }, - "author": "liu", - "license": "ISC", - "dependencies": { - "pg": "^7.18.2", - "xlsx": "^0.17.1" - } -} diff --git a/script/1.1.1/data/1_update_status_code_data/云录制错误码.xlsx b/script/1.1.1/data/1_update_status_code_data/云录制错误码.xlsx deleted file mode 100644 index 00c888901466968a9eae911c94f409b750103d42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12866 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 pQ2%pm|0$t/**" - ], - "program": "${workspaceFolder}\\index.js" - } - ] -} \ No newline at end of file diff --git a/script/1.3.1/data/1_sync_camera_data/Dockerfile b/script/1.3.1/data/1_sync_camera_data/Dockerfile deleted file mode 100644 index 2aa1f3c..0000000 --- a/script/1.3.1/data/1_sync_camera_data/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ - -FROM repository.anxinyun.cn/base-images/nodejs12:20.10.12.2 -COPY . /var/app -WORKDIR /var/app -RUN npm cache clean -f -RUN rm -rf package-lock.json -RUN npm install --registry http://10.8.30.22:7000 -CMD ["node", "index.js"] \ No newline at end of file diff --git a/script/1.3.1/data/1_sync_camera_data/index.js b/script/1.3.1/data/1_sync_camera_data/index.js deleted file mode 100644 index c508ff1..0000000 --- a/script/1.3.1/data/1_sync_camera_data/index.js +++ /dev/null @@ -1,156 +0,0 @@ -try { - const { Pool, Client } = require('pg') - const XLSX = require('xlsx') - const path = require('path') - const request = require('superagent') - const moment = require('moment') - - // 连接数据库 - const vcmpPool = new Pool({ - user: 'FashionAdmin', - host: '10.8.40.223', - database: 'video-access', - password: 'Fas123_', - port: 5432, - }) - const anxinPool = new Pool({ - user: 'FashionAdmin', - host: '10.8.40.223', - database: 'AnxinCloud', - password: 'Fas123_', - port: 5432, - }) - - - const fun = async () => { - // note: we don't try/catch this because if connecting throws an exception - // we don't need to dispose of the client (it will be undefined) - const vcmpClient = await vcmpPool.connect() - const anxinClient = await anxinPool.connect() - try { - await vcmpClient.query('BEGIN') - const yingshiHost = 'https://open.ys7.com/api/' - // 获取全部萤石摄像头信息 - const anxinYSRes = await anxinClient.query(`SELECT * FROM t_video_ipc WHERE type=$1`, ['yingshi']); - // console.log(anxinYSRes); - // 获取所有萤石账号信息 - const secretYSRes = await vcmpClient.query(`SELECT * FROM secret_yingshi`) - const secretRes = secretYSRes.rows - // console.log('secretRes', secretRes); - - let addSuccessCount = 0 - let addRepeatCount = 0 - let addUnlegalCount = 0 - let addNoAuthCount = 0 - for (let c of anxinYSRes.rows) { - console.log(`处理序列号:${c.serial_no}`) - if (!c.serial_no) { - addUnlegalCount += 1 - continue - } - let vcmpExistRes = await vcmpClient.query( - `SELECT * FROM "gbCamera" WHERE streamid=$1`, [c.serial_no] - ) - let vcmpExistRows = vcmpExistRes.rows - - let cameraExistRes = await vcmpClient.query(`SELECT * FROM camera WHERE serial_no=$1`, [c.serial_no]) - let cameraRes = cameraExistRes.rows || [] - - let repeatCamera = cameraRes.find(cr => { - return ( - !cr.channel_no && c.channel_no == 1 - ) || (cr.channel_no == c.channel_no) - }) - if (repeatCamera) { - console.log(`当前设备序列号 ${c.serial_no} 通道号 ${c.channel_no} 已存在`); - console.log(`已存在 id=${repeatCamera.id} 通道号 ${repeatCamera.channel_no}`); - addRepeatCount++ - continue - } - - if (vcmpExistRows.length) { - let beloneSecretId = null - let serialUnlegal = false - for (let s of secretRes) { - let start = (new Date()).getTime(); - console.log(`当前查询账号key ${s.key}`); - if (!s.newToken) { - const tokenRes = await request.post(`${yingshiHost}lapp/token/get`).query({ - appKey: s.key, - appSecret: s.secret - }) - console.log(`查询 token 结果`, tokenRes.body); - - if (tokenRes.body.code == 200 && tokenRes.body.data) { - const { accessToken, expireTime } = tokenRes.body.data - s.newToken = accessToken - - } else { - throw `未能获取萤石token ${s.key} ${tokenRes.body.code}` - } - } - - while (((new Date()).getTime() - start) < 3000) {//限制频率 - continue; - } - - // 检测设备所属 - const cameraState = await request.post(`${yingshiHost}lapp/device/info`).query({ - accessToken: s.newToken, - deviceSerial: c.serial_no - }) - console.log(`查询设备所属结果`, cameraState.body.code, cameraState.body.msg); - if (cameraState.body.code == 200) { - console.log(`所属萤石账号 ${s.key}`); - beloneSecretId = s.id - break - } else if (cameraState.body.code == 20018) { - - } else if (cameraState.body.code == 20014) { - serialUnlegal = true - break - } - } - if (serialUnlegal) { - addUnlegalCount++ - continue - } - - if (!beloneSecretId) { - console.error('没有查询到所属账号') - console.log(vcmpExistRows); - addNoAuthCount++ - continue - } - - const cameraInQuery = `INSERT INTO "camera" (type, name, serial_no, cloud_control,longitude,latitude,create_time,create_user_id,yingshi_secret_id,gb_id,channel_no) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) RETURNING id;` - await vcmpClient.query(cameraInQuery, ['yingshi', c.name, c.serial_no, c.has_ptz, c.longitude, c.latitude, moment().format(), 1, beloneSecretId, vcmpExistRows[0].id, c.channel_no]) - addSuccessCount++ - } else { - console.error('当前序列号不存在,应在 vcmp 添加相应萤石账号'); - addNoAuthCount++ - } - } - console.log(` - 共 ${anxinYSRes.rows.length} - 添加 ${addSuccessCount} - 已有 ${addRepeatCount} - 序列号不合法 ${addUnlegalCount} - 无所属 ${addNoAuthCount} - `); - // await client.query('ROLLBACK') - await vcmpClient.query('COMMIT') - console.log('执行完毕~') - } catch (e) { - await vcmpClient.query('ROLLBACK') - console.log('执行错误~') - throw e - } finally { - vcmpClient.release(); - } - } - - fun() -} catch (error) { - console.error(error) -} diff --git a/script/1.3.1/data/1_sync_camera_data/package.json b/script/1.3.1/data/1_sync_camera_data/package.json deleted file mode 100644 index 55bf7c5..0000000 --- a/script/1.3.1/data/1_sync_camera_data/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "appkey-generator", - "version": "1.0.0", - "description": "tool", - "main": "index.js", - "scripts": { - "test": "mocha", - "start": "set NODE_ENV=development&&node index" - }, - "author": "liu", - "license": "ISC", - "dependencies": { - "moment": "^2.29.4", - "pg": "^7.18.2", - "superagent": "3.5.2", - "xlsx": "^0.17.1" - } -}