in edu-analytics-be/web/app/entity/studentEntity.js [138:167]
static async updateTaskStatus(id) {
const sql = `SELECT * FROM student_analytics where id=${id};`;
const analytics = Object.values(JSON.parse(JSON.stringify(await query(sql))))[0];
const notStartedCountQuery = `SELECT count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'NotStarted';`;
const notStartedCount = Object.values(JSON.parse(JSON.stringify(await query(notStartedCountQuery))))[0];
const inprogressCountQuery = `SELECT count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'Inprogress';`;
const inprogressCount = Object.values(JSON.parse(JSON.stringify(await query(inprogressCountQuery))))[0];
const completedCountQuery = `SELECT count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'Completed';`;
const completedCount = Object.values(JSON.parse(JSON.stringify(await query(completedCountQuery))))[0];
let status = 'NotStarted';
let completedDate = null;
if (notStartedCount.count === 0 && inprogressCount.count === 0 && completedCount.count > 0) {
status = 'Completed';
completedDate = new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60 * 1000).toJSON().slice(0, 19).replace('T', ' ');
const updateTaskStatusSql = `UPDATE tasks_status SET status = '${status}',completedDate='${completedDate}' WHERE classRoomTaskId = '${analytics.classRoomTaskId}' AND studentId = ${analytics.studentId};`;
console.log('updateTaskStatusSql:', updateTaskStatusSql);
await query(updateTaskStatusSql);
} else if (inprogressCount.count > 0 || completedCount.count > 0) {
status = 'Inprogress';
const updateTaskStatusSql = `UPDATE tasks_status SET status = '${status}',completedDate=${completedDate} WHERE classRoomTaskId = '${analytics.classRoomTaskId}' AND studentId = ${analytics.studentId};`;
console.log('updateTaskStatusSql:', updateTaskStatusSql);
await query(updateTaskStatusSql);
}
}