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