You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
5.8 KiB
141 lines
5.8 KiB
async function panduanyuejuan(){
|
|
const sqlstd="SELECT * FROM kaoshipaper WHERE uuid=?";
|
|
const resultstd=await new Promise((resolve, reject) => {
|
|
connection.query(sqlstd,[req.query.ksh],(error, results, fields) => {
|
|
if(error)throw error;
|
|
resolve(results[0]);
|
|
})
|
|
})
|
|
if(JSON.parse(resultstd.xx).pan_jue_finsih===false) {
|
|
const sql = "SELECT * FROM kaoshiend WHERE ks=?";
|
|
const resultksdaan = await new Promise((resolve, reject) => {
|
|
connection.query(sql, [parseInt(req.query.ksh)], (error, results, fields) => {
|
|
if (error) throw error;
|
|
resolve(results);
|
|
})
|
|
})
|
|
|
|
let finish = true;
|
|
for (let i = 0; i < resultksdaan.length; i++) {
|
|
const ksdaan = JSON.parse(resultksdaan[i].ksdaan);
|
|
|
|
ksdaan.map((value, index) => {
|
|
if (value.lx === "填空题") {
|
|
console.log(resultstd)
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
if (stddaan[i].panjaun === "teacher") {
|
|
if (value.teacherid === undefined) {
|
|
finish = false
|
|
}
|
|
}
|
|
}
|
|
if (value.lx === "简答题") {
|
|
if (value.teacherid === undefined) {
|
|
finish = false
|
|
}
|
|
}
|
|
})
|
|
|
|
}
|
|
if(finish===true){
|
|
let jsonxx=JSON.parse(resultstd.xx);
|
|
jsonxx.pan_jue_finsih=true
|
|
const sqlupdate = 'UPDATE kaoshipaper SET xx=? WHERE `uuid`=?';
|
|
const up = await new Promise((resolve, reject) => {
|
|
connection.query(sqlupdate, [JSON.stringify(jsonxx, null, 4), req.query.ksh], (error, results, fields) => {
|
|
if (error) throw error;
|
|
resolve(results);
|
|
})
|
|
})
|
|
}
|
|
let infor=[]
|
|
let allprint=[]
|
|
if(finish===true){
|
|
|
|
for (let i = 0; i < resultksdaan.length; i++) {
|
|
const ksdaan = JSON.parse(resultksdaan[i].ksdaan);
|
|
let num=0;
|
|
let ksdaantemp=[...ksdaan]
|
|
ksdaan.map((value, index) => {
|
|
if (value.lx === "填空题") {
|
|
console.log(resultstd)
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
if (stddaan[index].panjaun === "teacher") {
|
|
num=num+value.teacherprint
|
|
ksdaantemp[index].way="teacher"
|
|
ksdaantemp[index].printstu=value.teacherprint
|
|
}else{
|
|
if(value.sr.trimStart()===stddaan[index].std.trimStart()){
|
|
num=num+stddaan[index].print
|
|
ksdaantemp[index].way="computer"
|
|
ksdaantemp[index].printstu=stddaan[index].print
|
|
}
|
|
}
|
|
}
|
|
else if (value.lx === "简答题") {
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
num=num+value.teacherprint
|
|
//ksdaantemp[index].way="teacher"
|
|
ksdaantemp[index].printstu=value.teacherprint
|
|
}else if(value.lx==="多选题"){
|
|
let zq=true
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
value.daan.map((item,xuaho)=>{
|
|
if(!stddaan[index].std.includes(item)){}
|
|
zq=false
|
|
})
|
|
if(value.daan.length!==stddaan[index].std.length){
|
|
zq=false
|
|
}
|
|
if(zq){
|
|
num=num+stddaan[index].print
|
|
//ksdaantemp[index].way="teacher"
|
|
ksdaantemp[index].printstu=stddaan[index].print
|
|
}else{
|
|
ksdaantemp[index].printstu=0
|
|
}
|
|
|
|
|
|
}else if(value.lx==="单选题"){
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
if(value.daan===stddaan[index].std){
|
|
num=num+stddaan[index].print
|
|
//ksdaantemp[index].way="teacher"
|
|
ksdaantemp[index].printstu=stddaan[index].print
|
|
}else{
|
|
ksdaantemp[index].printstu=0
|
|
num=num+0
|
|
}
|
|
}else if(value.lx==="判断题"){
|
|
const stddaan = JSON.parse(resultstd.std);
|
|
if(value.daan===stddaan[index].std){
|
|
num=num+stddaan[index].print
|
|
//ksdaantemp[index].way="teacher"
|
|
ksdaantemp[index].printstu=stddaan[index].print
|
|
}else{
|
|
ksdaantemp[index].printstu=0
|
|
}
|
|
}
|
|
|
|
})
|
|
const sqlupdate = 'UPDATE kaoshiend SET ksdaan=?,allprint=? WHERE id=?';
|
|
//resultksdaan[i].
|
|
await new Promise((resolve, reject) => {
|
|
connection.query(sqlupdate,[JSON.stringify(ksdaantemp,null,4),num,resultksdaan[i].id],(error, results) => {
|
|
if (error) throw error;
|
|
resolve(results);
|
|
|
|
})
|
|
})
|
|
allprint.push(num)
|
|
infor.push({infor:ksdaantemp,num:num})
|
|
}
|
|
}
|
|
|
|
res.send({finish: finishr})
|
|
}else{
|
|
res.send({finish: true})
|
|
}
|
|
|
|
}
|