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

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})
}
}