|
@@ -1,11 +1,13 @@
|
|
//云端数据同步导本地
|
|
//云端数据同步导本地
|
|
import EventEmitter from "events";
|
|
import EventEmitter from "events";
|
|
|
|
+// const EventEmitter = require("events");
|
|
import db from "./db";
|
|
import db from "./db";
|
|
-import env from "./env";
|
|
|
|
|
|
+// import env from "./env";
|
|
import api from "./api";
|
|
import api from "./api";
|
|
|
|
|
|
import _logger from "./logger";
|
|
import _logger from "./logger";
|
|
const logger = _logger("sync.js");
|
|
const logger = _logger("sync.js");
|
|
|
|
+import { send } from "./channel";
|
|
|
|
|
|
export async function queryStudentCount(store) {
|
|
export async function queryStudentCount(store) {
|
|
db.init();
|
|
db.init();
|
|
@@ -17,17 +19,22 @@ export async function queryStudentCount(store) {
|
|
}
|
|
}
|
|
|
|
|
|
class executor extends EventEmitter {
|
|
class executor extends EventEmitter {
|
|
- async start() {
|
|
|
|
|
|
+ async start(env) {
|
|
try {
|
|
try {
|
|
|
|
+ console.log(env);
|
|
|
|
+ send("db on");
|
|
db.init();
|
|
db.init();
|
|
|
|
+ send("db oned");
|
|
|
|
|
|
const totalCount = await api.countStudents(env.examId);
|
|
const totalCount = await api.countStudents(env.examId);
|
|
- logger.info("student count: " + totalCount);
|
|
|
|
|
|
+ // logger.info("student count: " + totalCount);
|
|
|
|
+ send({ totalCount });
|
|
this.emit("total", totalCount);
|
|
this.emit("total", totalCount);
|
|
|
|
|
|
const promises = [];
|
|
const promises = [];
|
|
let count = 0;
|
|
let count = 0;
|
|
let pageNumber = 0;
|
|
let pageNumber = 0;
|
|
|
|
+ send({ student: 0 });
|
|
this.emit("student", 0);
|
|
this.emit("student", 0);
|
|
while (true) {
|
|
while (true) {
|
|
pageNumber++;
|
|
pageNumber++;
|
|
@@ -93,17 +100,19 @@ class executor extends EventEmitter {
|
|
promises.push(
|
|
promises.push(
|
|
new Promise((resolve, reject) => {
|
|
new Promise((resolve, reject) => {
|
|
db.batchQuery(
|
|
db.batchQuery(
|
|
- "replace into eb_exam_student(id, exam_id, school_id\
|
|
|
|
- , exam_number, secret_number, name, student_code, subject_code, subject_name, campus_name\
|
|
|
|
- , package_code, batch_code, sheet_count, slice_count, answers, is_upload\
|
|
|
|
- , is_absent, is_manual_absent, is_breach, is_exception\
|
|
|
|
- , objective_score, subjective_score, objective_score_list, subjective_score_list, subjective_status\
|
|
|
|
- , exam_site, exam_room, remark, college, class_name, teacher, paper_type) \
|
|
|
|
- values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?,?,?,?,?,?,?,?,?)",
|
|
|
|
- datas
|
|
|
|
|
|
+ "select 1 from eb_exam_student"
|
|
|
|
+ // "replace into eb_exam_student(id, exam_id, school_id\
|
|
|
|
+ // , exam_number, secret_number, name, student_code, subject_code, subject_name, campus_name\
|
|
|
|
+ // , package_code, batch_code, sheet_count, slice_count, answers, is_upload\
|
|
|
|
+ // , is_absent, is_manual_absent, is_breach, is_exception\
|
|
|
|
+ // , objective_score, subjective_score, objective_score_list, subjective_score_list, subjective_status\
|
|
|
|
+ // , exam_site, exam_room, remark, college, class_name, teacher, paper_type) \
|
|
|
|
+ // values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?,?,?,?,?,?,?,?,?)",
|
|
|
|
+ // datas
|
|
)
|
|
)
|
|
.then(() => {
|
|
.then(() => {
|
|
count += datas.length;
|
|
count += datas.length;
|
|
|
|
+ send({ student: count });
|
|
this.emit("student", count);
|
|
this.emit("student", count);
|
|
resolve();
|
|
resolve();
|
|
})
|
|
})
|
|
@@ -115,6 +124,7 @@ class executor extends EventEmitter {
|
|
}
|
|
}
|
|
|
|
|
|
//get and save package
|
|
//get and save package
|
|
|
|
+ send({ package: 0 });
|
|
this.emit("package", 0);
|
|
this.emit("package", 0);
|
|
const packages = await api.getPackages(env.examId);
|
|
const packages = await api.getPackages(env.examId);
|
|
const packageData = [];
|
|
const packageData = [];
|
|
@@ -130,6 +140,7 @@ class executor extends EventEmitter {
|
|
packageData
|
|
packageData
|
|
)
|
|
)
|
|
.then(() => {
|
|
.then(() => {
|
|
|
|
+ send({ package: packageData.length });
|
|
this.emit("package", packageData.length);
|
|
this.emit("package", packageData.length);
|
|
resolve();
|
|
resolve();
|
|
})
|
|
})
|
|
@@ -140,6 +151,7 @@ class executor extends EventEmitter {
|
|
);
|
|
);
|
|
|
|
|
|
await Promise.all(promises);
|
|
await Promise.all(promises);
|
|
|
|
+ send({ finish: true });
|
|
this.emit("finish");
|
|
this.emit("finish");
|
|
} catch (err) {
|
|
} catch (err) {
|
|
this.emit("error", err);
|
|
this.emit("error", err);
|
|
@@ -150,6 +162,9 @@ class executor extends EventEmitter {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-export default function () {
|
|
|
|
- return new executor();
|
|
|
|
|
|
+// export const syncer = new executor();
|
|
|
|
+
|
|
|
|
+export default function (store) {
|
|
|
|
+ console.log("objechat");
|
|
|
|
+ return new executor().start(store.env);
|
|
}
|
|
}
|