|
|
|
@ -90,6 +90,22 @@ public class ExamModel {
|
|
|
|
|
Db.update(sql, person_id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:检查用户是否已经完成了交卷
|
|
|
|
|
*
|
|
|
|
|
* @param person_id
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public int HaveJiaoJuan(String person_id) {
|
|
|
|
|
String sql = "select end_time from t_exam_person where person_id=?";
|
|
|
|
|
List<Record> list = Db.find(sql, person_id);
|
|
|
|
|
if (list.size() == 0) return -1;
|
|
|
|
|
Record record = list.get(0);
|
|
|
|
|
String end_time = record.getStr("end_time");
|
|
|
|
|
if (StrKit.isBlank(end_time)) return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:保存答题结果
|
|
|
|
|
*
|
|
|
|
@ -97,6 +113,7 @@ public class ExamModel {
|
|
|
|
|
* @param reply
|
|
|
|
|
*/
|
|
|
|
|
public void save(String person_id, int order_id, String reply) {
|
|
|
|
|
if (HaveJiaoJuan(person_id) != 0) return;
|
|
|
|
|
if (StrKit.isBlank(reply)) reply = null;
|
|
|
|
|
String sql = "update t_exam_record set reply=?,update_time=now() where person_id=? and order_id=?";
|
|
|
|
|
Db.update(sql, reply, person_id, order_id);
|
|
|
|
@ -202,10 +219,36 @@ public class ExamModel {
|
|
|
|
|
/**
|
|
|
|
|
* 功能:查看自己答卷的整体情况,哪个题目答对,哪个题目没有答,哪些答错(交卷后可见)
|
|
|
|
|
*/
|
|
|
|
|
public List<Record> getPersonAllInfoAfterJiaoJuan(String person_id) {
|
|
|
|
|
public Kv getPersonAllInfoAfterJiaoJuan(String person_id) {
|
|
|
|
|
Kv res = Kv.create();
|
|
|
|
|
Kv kv = Kv.by("person_id", person_id);
|
|
|
|
|
SqlPara sqlPara = Db.getSqlPara("Exam.getPersonAllInfoAfterJiaoJuan", kv);
|
|
|
|
|
return Db.find(sqlPara);
|
|
|
|
|
List<Record> list = Db.find(sqlPara);
|
|
|
|
|
int sum = 0;
|
|
|
|
|
for (Record record : list) {
|
|
|
|
|
String answer = record.getStr("answer");
|
|
|
|
|
String reply = record.getStr("reply");
|
|
|
|
|
if (answer.equals(reply)) sum += record.getInt("score");
|
|
|
|
|
}
|
|
|
|
|
res.set("list", list);
|
|
|
|
|
res.set("sum", sum);
|
|
|
|
|
//开始结束时间,用时
|
|
|
|
|
String sql = "select * from t_exam_person where person_id=?";
|
|
|
|
|
Record r = Db.findFirst(sql, person_id);
|
|
|
|
|
LocalDateTime start_time = r.getLocalDateTime("start_time");
|
|
|
|
|
LocalDateTime end_time = r.getLocalDateTime("end_time");
|
|
|
|
|
res.set("start_time", start_time);
|
|
|
|
|
res.set("end_time", end_time);
|
|
|
|
|
// 计算时间差
|
|
|
|
|
Duration duration = Duration.between(start_time, end_time);
|
|
|
|
|
long seconds = duration.getSeconds(); // 获取时间差秒数
|
|
|
|
|
long hour = seconds / 3600;
|
|
|
|
|
long minute = (seconds - hour * 3600) / 60;
|
|
|
|
|
long second = seconds - hour * 3600 - minute * 60;
|
|
|
|
|
res.set("hour", hour);
|
|
|
|
|
res.set("minute", minute);
|
|
|
|
|
res.set("second", second);
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|