diff --git a/src/main/java/com/dsideal/FengHuang/Exam/Controller/ExamController.java b/src/main/java/com/dsideal/FengHuang/Exam/Controller/ExamController.java index 98216de..b41f897 100644 --- a/src/main/java/com/dsideal/FengHuang/Exam/Controller/ExamController.java +++ b/src/main/java/com/dsideal/FengHuang/Exam/Controller/ExamController.java @@ -1,10 +1,15 @@ package com.dsideal.FengHuang.Exam.Controller; import com.dsideal.FengHuang.Exam.Model.ExamModel; +import com.dsideal.FengHuang.Util.CookieUtil; import com.jfinal.aop.Before; import com.jfinal.core.Controller; +import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; import com.jfinal.kit.Kv; +import com.jfinal.plugin.activerecord.Record; + +import java.util.List; public class ExamController extends Controller { //实例化model @@ -12,21 +17,78 @@ public class ExamController extends Controller { /** * 功能:增加考试人员 + * * @param person_name * @param ks * @param tel */ @Before({POST.class}) public void addPerson(String person_name, String ks, String tel) { - boolean success = em.addPerson(person_name, ks, tel); - Kv kv; - if(success) { - kv = Kv.by("success", true); - kv.put("message", "创建数据成功!"); - } else { - kv = Kv.by("success", false); - kv.put("message", "创建数据失败,当前人员已经进行过测试,不能重复进行!"); + Kv kv = em.addPerson(person_name, ks, tel); + if (kv.getBoolean("success")) { + CookieUtil.set(getResponse(), "person_id", kv.get("person_id").toString(), false, true); } renderJson(kv); } + + /** + * 功能:获取整体信息,比如有几种题型,都是啥,每种题型有几道题 + */ + @Before({GET.class}) + public void getExamInfo() { + List list = em.getExamInfo(); + renderJson(list); + } + + /** + * 功能:获取指定题目的信息 + * @param order_id + */ + @Before({GET.class}) + public void getQuestion(int order_id) { + String person_id = getCookie("person_id"); + Record record = em.getQuestion(person_id, order_id); + renderJson(record); + } + + + /** + * 功能:保存答题结果 + * + * @param order_id + * @param reply + */ + @Before({POST.class}) + public void save(int order_id, String reply) { + String person_id = getCookie("person_id"); + em.save(person_id, order_id, reply); + Kv kv = Kv.by("success", true); + kv.put("message", "保存成功!"); + renderJson(kv); + } + + /** + * 功能:交卷 + */ + @Before({POST.class}) + public void jiaoJuan() { + String person_id = getCookie("person_id"); + em.jiaoJuan(person_id); + Kv kv = Kv.by("success", true); + kv.put("message", "保存成功!"); + renderJson(kv); + } + + /** + * 功能:删除考试人员 + * + * @param person_id + */ + @Before({POST.class}) + public void delPerson(String person_id) { + em.delPerson(person_id); + Kv kv = Kv.by("success", true); + kv.put("message", "删除成功!"); + renderJson(kv); + } } \ No newline at end of file diff --git a/src/main/java/com/dsideal/FengHuang/Exam/Model/ExamModel.java b/src/main/java/com/dsideal/FengHuang/Exam/Model/ExamModel.java index bc9201c..be1edef 100644 --- a/src/main/java/com/dsideal/FengHuang/Exam/Model/ExamModel.java +++ b/src/main/java/com/dsideal/FengHuang/Exam/Model/ExamModel.java @@ -1,6 +1,10 @@ package com.dsideal.FengHuang.Exam.Model; import cn.hutool.core.date.DateTime; +import com.jfinal.aop.Before; +import com.jfinal.ext.interceptor.GET; +import com.jfinal.ext.interceptor.POST; +import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; @@ -16,12 +20,15 @@ public class ExamModel { * @param ks * @param tel */ - public boolean addPerson(String person_name, String ks, String tel) { + public Kv addPerson(String person_name, String ks, String tel) { + Kv kv = Kv.create(); //1、检查此人员是不是已经存在过 String sql = "select count(1) as count from t_exam_person where person_name=? and tel=? and b_use=1"; int cnt = Db.findFirst(sql, person_name, tel).getInt("count"); if (cnt > 0) { - return false; + kv.set("success", false); + kv.set("message", "当前人员已经进行过测试,不能重复进行!"); + return kv; } //2、增加人员信息 Record record = new Record(); @@ -60,6 +67,60 @@ public class ExamModel { } Db.batchSave("t_exam_record", writeList, 100); } - return true; + kv.set("success", true); + kv.set("message", "创建成功!"); + kv.set("person_id", person_id); + return kv; + } + + /** + * 功能:删除人员 + * + * @param person_id + */ + public void delPerson(String person_id) { + String sql = "update t_exam_person set b_use=0 where person_id=?"; + Db.update(sql, person_id); + + sql = "update t_exam_record set b_use=0 where person_id=?"; + Db.update(sql, person_id); + } + + /** + * 功能:保存答题结果 + * + * @param order_id + * @param reply + */ + public void save(String person_id, int order_id, String reply) { + 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); + } + + /** + * 功能:交卷 + */ + public void jiaoJuan(String person_id) { + String sql = "update t_exam_person set end_time=now() where person_id=?"; + Db.update(sql, person_id); + } + + /** + * 功能:获取整体信息,比如有几种题型,都是啥,每种题型有几道题 + */ + public List getExamInfo() { + String sql = "select t1.type_id,t2.type_name,count(1) as count from t_exam_question as t1 inner join t_exam_question_type as t2 on t1.type_id=t2.type_id group by t1.type_id,t2.type_name"; + List list = Db.find(sql); + return list; + } + + /** + * 功能:获取指定题目的信息 + * + * @param order_id + */ + public Record getQuestion(String person_id, int order_id) { + String sql = "select * from t_exam_record where person_id=? and order_id=?"; + return Db.findFirst(sql, person_id, order_id); } }