优化错题,收藏,增加删除,增加报名列表
This commit is contained in:
parent
c263ef9442
commit
b92279a498
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.cms.controller;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.base.AjaxResult;
|
||||
import com.ruoyi.exam.domain.*;
|
||||
import com.ruoyi.exam.service.*;
|
||||
|
|
@ -14,6 +15,7 @@ import org.springframework.ui.ModelMap;
|
|||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -59,6 +61,47 @@ public class CmsExaminationController {
|
|||
return prefix + "list";
|
||||
}
|
||||
|
||||
/**
|
||||
* 考试列表
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/examination/list")
|
||||
@GetMapping()
|
||||
@ResponseBody
|
||||
public AjaxResult list(ExamExamination examExamination) {
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName( ShiroUtils.getLoginName() );
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put( "ination", examExamination );
|
||||
map.put( "userId", sysUser.getUserId() );
|
||||
List<ExamExamination> list = examExaminationService.selectListFromWeb( map );
|
||||
AjaxResult success = AjaxResult.success( "查询成功" );
|
||||
success.put( "data", list );
|
||||
success.put("total",new PageInfo(list).getTotal());
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* 报名列表
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/examination/signuplist")
|
||||
@GetMapping()
|
||||
@ResponseBody
|
||||
public AjaxResult signupist(ExamExamination examExamination) {
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName( ShiroUtils.getLoginName() );
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put( "ination", examExamination );
|
||||
map.put( "userId", sysUser.getUserId() );
|
||||
List<ExamExamination> list = examExaminationService.selectEnterNameListFromWeb( map );
|
||||
AjaxResult success = AjaxResult.success( "查询成功" );
|
||||
success.put("total",new PageInfo(list).getTotal());
|
||||
success.put( "data", list );
|
||||
return success;
|
||||
}
|
||||
|
||||
@RequestMapping("/examination/start/{id}")
|
||||
@GetMapping()
|
||||
public String start(@PathVariable String id, ModelMap mmap) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package com.ruoyi.cms.controller;
|
||||
|
||||
import com.ruoyi.exam.domain.ExamPractice;
|
||||
import com.ruoyi.exam.domain.ExamUserErrorQuestion;
|
||||
import com.ruoyi.exam.domain.ExamUserErrorQuestionVO;
|
||||
import com.ruoyi.common.base.AjaxResult;
|
||||
import com.ruoyi.exam.domain.*;
|
||||
import com.ruoyi.exam.service.IExamPracticeService;
|
||||
import com.ruoyi.exam.service.IExamUserCollectionQuestionService;
|
||||
import com.ruoyi.exam.service.IExamUserErrorQuestionService;
|
||||
import com.ruoyi.framework.jwt.JwtUtil;
|
||||
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||
|
|
@ -23,6 +23,7 @@ import org.springframework.ui.ModelMap;
|
|||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -44,6 +45,9 @@ public class CmsUserController {
|
|||
@Autowired
|
||||
private IExamUserErrorQuestionService examUserErrorQuestionService;
|
||||
|
||||
@Autowired
|
||||
private IExamUserCollectionQuestionService examUserCollectionQuestionService;
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/user/login.html")
|
||||
|
|
@ -93,4 +97,60 @@ public class CmsUserController {
|
|||
map.put( "user", ShiroUtils.getSysUser() );
|
||||
return prefix + "/user/errorquestion";
|
||||
}
|
||||
|
||||
@RequestMapping("/user/collectquestion.html")
|
||||
public String collectQuestion(ModelMap map) {
|
||||
ExamUserCollectionQuestionVO examUserCollectionQuestion = new ExamUserCollectionQuestionVO();
|
||||
SysUser sysUser = ShiroUtils.getSysUser();
|
||||
examUserCollectionQuestion.setVipUserId( sysUser.getUserId().intValue() );
|
||||
List<ExamUserCollectionQuestionVO> list = examUserCollectionQuestionService.selectExamUserCollectionQuestionList( examUserCollectionQuestion );
|
||||
map.put("data", list);
|
||||
map.put( "user", ShiroUtils.getSysUser() );
|
||||
return prefix + "/user/collectquestion";
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加错题
|
||||
* @param questionId
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/user/adderrorquestion")
|
||||
@ResponseBody
|
||||
public AjaxResult addErrorquestion(String questionId) {
|
||||
SysUser sysUser = ShiroUtils.getSysUser();
|
||||
examUserErrorQuestionService.insertError(questionId,sysUser);
|
||||
AjaxResult success = AjaxResult.success("插入成功");
|
||||
return success;
|
||||
}
|
||||
|
||||
@RequestMapping("/user/addcollectquestion")
|
||||
@ResponseBody
|
||||
public AjaxResult addCollectionquestion(String questionId) {
|
||||
SysUser sysUser = ShiroUtils.getSysUser();
|
||||
examUserCollectionQuestionService.insertSelectiveBySelf(Integer.parseInt(questionId),sysUser);
|
||||
AjaxResult success = AjaxResult.success("插入成功");
|
||||
return success;
|
||||
}
|
||||
|
||||
@RequestMapping("/user/delerrorquestion")
|
||||
@ResponseBody
|
||||
public AjaxResult delErrorquestion(Integer questionId) {
|
||||
ExamUserErrorQuestion question = new ExamUserErrorQuestion();
|
||||
question.setVipUserId(ShiroUtils.getUserId().intValue());
|
||||
question.setExamQuestionId(questionId);
|
||||
examUserErrorQuestionService.delete(question);
|
||||
AjaxResult success = AjaxResult.success("删除成功");
|
||||
return success;
|
||||
}
|
||||
|
||||
@RequestMapping("/user/delcollectquestion")
|
||||
@ResponseBody
|
||||
public AjaxResult delCollectionquestion(Integer questionId) {
|
||||
ExamUserCollectionQuestion examUserCollectionQuestion = new ExamUserCollectionQuestion();
|
||||
examUserCollectionQuestion.setVipUserId(ShiroUtils.getUserId().intValue());
|
||||
examUserCollectionQuestion.setExamQuestionId(questionId);
|
||||
examUserCollectionQuestionService.delete(examUserCollectionQuestion);
|
||||
AjaxResult success = AjaxResult.success("删除成功");
|
||||
return success;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,110 +8,130 @@
|
|||
</div>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="fly-panel">
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="fly-panel">
|
||||
|
||||
<div class="layui-tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">考试列表</li>
|
||||
<li>报名列表</li>
|
||||
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
<div class="layui-tab-item"><table class="layui-hide" id="signupList" lay-filter="signupList"></table></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="start">开始考试
|
||||
</a>
|
||||
<!--<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>-->
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="start">开始考试
|
||||
</a>
|
||||
</script>
|
||||
|
||||
</div>
|
||||
<script type="text/html" id="signup">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="signup">报名
|
||||
</a>
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/web/res/layui/layui.js"></script>
|
||||
<script src="/js/jquery.min.js"></script>
|
||||
|
||||
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D30088308' type='text/javascript'%3E%3C/script%3E"));</script>
|
||||
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");
|
||||
document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D30088308' type='text/javascript'%3E%3C/script%3E"));</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
var layer;
|
||||
$(function(){
|
||||
layui.use('layer', function(){
|
||||
$(function () {
|
||||
layui.use('layer', function () {
|
||||
layer = layui.layer;
|
||||
});
|
||||
|
||||
var errormsg = '[[${error}]]';
|
||||
if(errormsg){
|
||||
if (errormsg) {
|
||||
layer.msg(errormsg, {icon: 2});
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
layui.use('table', function(){
|
||||
layui.use('table', function () {
|
||||
var table = layui.table;
|
||||
|
||||
table.render({
|
||||
elem: '#test'
|
||||
,url:'/api/v1/examination/list'
|
||||
,title: '用户数据表'
|
||||
,cols: [ [
|
||||
{checkbox: true}
|
||||
,{field: 'name', title: '考试名称'}
|
||||
,{field: 'trainCourseName', title: '课程名称'}
|
||||
,{field: 'timeLength', title: '考试时长'}
|
||||
,{field: 'passMark', title: '及格分数'}
|
||||
,{title: '操作',toolbar: '#barDemo'}
|
||||
, url: '/web/examination/list'
|
||||
, title: '用户数据表'
|
||||
, cols: [ [
|
||||
{checkbox: true}
|
||||
, {field: 'name', title: '考试名称'}
|
||||
, {field: 'trainCourseName', title: '课程名称'}
|
||||
, {field: 'timeLength', title: '考试时长'}
|
||||
, {field: 'passMark', title: '及格分数'}
|
||||
, {title: '操作', toolbar: '#barDemo'}
|
||||
] ]
|
||||
,request: {
|
||||
, request: {
|
||||
pageName: 'pageNumber' //页码的参数名称,默认:page
|
||||
,limitName: 'pageSize' //每页数据量的参数名,默认:limit
|
||||
, limitName: 'pageSize' //每页数据量的参数名,默认:limit
|
||||
}
|
||||
,response: {
|
||||
, response: {
|
||||
statusCode: 200,
|
||||
countName: 'total'//规定成功的状态码,默认:0
|
||||
}
|
||||
,page: true
|
||||
, page: true
|
||||
});
|
||||
|
||||
//头工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
table.on('toolbar(test)', function (obj) {
|
||||
var checkStatus = table.checkStatus(obj.config.id);
|
||||
switch(obj.event){
|
||||
switch (obj.event) {
|
||||
case 'getCheckData':
|
||||
var data = checkStatus.data;
|
||||
layer.alert(JSON.stringify(data));
|
||||
break;
|
||||
case 'getCheckLength':
|
||||
var data = checkStatus.data;
|
||||
layer.msg('选中了:'+ data.length + ' 个');
|
||||
layer.msg('选中了:' + data.length + ' 个');
|
||||
break;
|
||||
case 'isAll':
|
||||
layer.msg(checkStatus.isAll ? '全选': '未全选');
|
||||
layer.msg(checkStatus.isAll ? '全选' : '未全选');
|
||||
break;
|
||||
};
|
||||
}
|
||||
;
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
table.on('tool(test)', function (obj) {
|
||||
var data = obj.data;
|
||||
//console.log(obj)
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('真的删除行么', function(index){
|
||||
if (obj.event === 'del') {
|
||||
layer.confirm('真的删除行么', function (index) {
|
||||
obj.del();
|
||||
layer.close(index);
|
||||
});
|
||||
} else if(obj.event === 'edit'){
|
||||
} else if (obj.event === 'edit') {
|
||||
layer.prompt({
|
||||
formType: 2
|
||||
,value: data.email
|
||||
}, function(value, index){
|
||||
, value: data.email
|
||||
}, function (value, index) {
|
||||
obj.update({
|
||||
email: value
|
||||
});
|
||||
|
|
@ -120,17 +140,52 @@
|
|||
}
|
||||
});
|
||||
|
||||
table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
|
||||
table.on('tool(test)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
|
||||
var data = obj.data //获得当前行数据
|
||||
,layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if(layEvent === 'start'){
|
||||
window.location.href = "/web/examination/start/"+data.id;
|
||||
, layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if (layEvent === 'start') {
|
||||
window.location.href = "/web/examination/start/" + data.id;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
layui.use('table', function () {
|
||||
var table = layui.table;
|
||||
|
||||
table.render({
|
||||
elem: '#signupList'
|
||||
, url: '/web/examination/signuplist'
|
||||
, title: '用户数据表'
|
||||
, cols: [ [
|
||||
{checkbox: true}
|
||||
, {field: 'name', title: '考试名称'}
|
||||
, {field: 'trainCourseName', title: '课程名称'}
|
||||
, {field: 'timeLength', title: '考试时长'}
|
||||
, {field: 'passMark', title: '及格分数'}
|
||||
, {title: '操作', toolbar: '#signup'}
|
||||
] ]
|
||||
, request: {
|
||||
pageName: 'pageNumber' //页码的参数名称,默认:page
|
||||
, limitName: 'pageSize' //每页数据量的参数名,默认:limit
|
||||
}
|
||||
, response: {
|
||||
statusCode: 200,
|
||||
countName: 'total'//规定成功的状态码,默认:0
|
||||
}
|
||||
, page: true
|
||||
});
|
||||
|
||||
table.on('tool(signup)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
|
||||
var data = obj.data //获得当前行数据
|
||||
, layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if (layEvent === 'start') {
|
||||
window.location.href = "/web/examination/start/" + data.id;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -186,11 +186,12 @@
|
|||
<img src="https://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg">
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
|
||||
<!--<dd><a th:href="@{/web/user/message.html}"><i class="iconfont icon-tongzhi" style="top: 4px;"></i>我的消息</a></dd>-->
|
||||
<!--<dd><a th:href="@{/web/user/home.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的主页</a></dd>-->
|
||||
<dd><a th:href="@{/web/user/set.html}"><i class="layui-icon"></i>基本设置</a></dd>
|
||||
<dd><a th:href="@{/web/user/message.html}"><i class="iconfont icon-tongzhi" style="top: 4px;"></i>我的消息</a></dd>
|
||||
<dd><a th:href="@{/web/user/home.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的主页</a></dd>
|
||||
<dd><a th:href="@{/web/user/errorquestion.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的错题本</a></dd>
|
||||
<dd><a th:href="@{/web/user/collect.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的收藏</a></dd>
|
||||
<dd><a th:href="@{/web/user/set.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>更多...</a></dd>
|
||||
<!--<dd><a th:href="@{/web/user/collectquestion.html}"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的收藏</a></dd>-->
|
||||
<dd><a href="" style="text-align: center;">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -81,12 +81,11 @@ document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Csc
|
|||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/api/v1/practice/answer",
|
||||
contentType: "application/json",
|
||||
data: "[" + id + "]",
|
||||
url: "/web/user/adderrorquestion",
|
||||
data: {questionId:id},
|
||||
success: function (result) {
|
||||
if (result.code != web_status.SUCCESS) {
|
||||
layer.msg('result.msg', {icon: 2});
|
||||
layer.msg(result.msg, {icon: 2});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -98,6 +97,19 @@ document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Csc
|
|||
$("#" + id + "answer").show()
|
||||
}
|
||||
|
||||
function shoucang(id){
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/web/user/addcollectquestion",
|
||||
data: {questionId:id},
|
||||
success: function (result) {
|
||||
if (result.code != web_status.SUCCESS) {
|
||||
layer.msg(result.msg, {icon: 2});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function checkbox(value) {
|
||||
$(value).prev().prop("checked", !$(value).prev().prop("checked"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="web/index::cmsHeader">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="fly-header layui-bg-black" th:replace="web/index::top">
|
||||
</div>
|
||||
|
||||
<div class="layui-container fly-marginTop fly-user-main">
|
||||
<div th:replace="web/user/set::userinfo">
|
||||
</div>
|
||||
|
||||
<div class="fly-panel fly-panel-user" pad20>
|
||||
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
|
||||
<legend>我的收藏</legend>
|
||||
</fieldset>
|
||||
<div class="layui-collapse" lay-filter="test">
|
||||
<div class="layui-colla-item" th:each="item:${data}">
|
||||
<h2 class="layui-colla-title">[[${itemStat.index+1}]]:[[${item.question.title}]]
|
||||
<span th:if="${item.question.type=='1'}">(单选)</span>
|
||||
<span th:if="${item.question.type=='2'}">(多选)</span>
|
||||
<span th:if="${item.question.type=='3'}">(判断)</span>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm" th:onclick="'del('+${item.question.id}+')'">删除</button></h2>
|
||||
<div class="layui-colla-content">
|
||||
<p th:each="qItem:${item.question.questionItem}">[[${qItem.number}]]:[[${qItem.content}]]</p>
|
||||
<p>解析:正确答案[[${item.question.answer}]]</p>
|
||||
<p>[[${item.question.label}]]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
</div>
|
||||
|
||||
<script src="/web/res/layui/layui.js"></script>
|
||||
<script src="/js/jquery.min.js"></script>
|
||||
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");
|
||||
document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D30088308' type='text/javascript'%3E%3C/script%3E"));</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$("#collectquestion").addClass("layui-this")
|
||||
})
|
||||
|
||||
function del(id) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/web/user/delcollectquestion",
|
||||
data: {questionId:id},
|
||||
success: function (result) {
|
||||
if (result.code != web_status.SUCCESS) {
|
||||
layer.msg(result.msg, {icon: 2});
|
||||
}else{
|
||||
window.location="/web/user/collectquestion.html"
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -6,51 +6,37 @@
|
|||
<body>
|
||||
|
||||
<div class="fly-header layui-bg-black" th:replace="web/index::top">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md15">
|
||||
<div class="fly-panel">
|
||||
|
||||
<div class="layui-col-md15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card" th:each="item:${data}">
|
||||
<div class="layui-card-header">[[${itemStat.index+1}]]:<span
|
||||
th:text="${item.question.title}"></span>
|
||||
<span th:if="${item.question.type=='1'}">(单选)</span>
|
||||
<span th:if="${item.question.type=='2'}">(多选)</span>
|
||||
<span th:if="${item.question.type=='3'}">(判断)</span>
|
||||
</div>
|
||||
<div class="layui-card-body" th:each="qItem:${item.question.questionItem}">
|
||||
[[${qItem.number}]]:
|
||||
<span th:text="${qItem.content}" ></span>
|
||||
</div>
|
||||
<div class="layui-card-body" th:id="${item.question.id}+'answer'">
|
||||
解析:正确答案[[${item.question.answer}]]<br>
|
||||
[[${item.question.label}]]
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-container fly-marginTop fly-user-main">
|
||||
<div th:replace="web/user/set::userinfo">
|
||||
</div>
|
||||
|
||||
<div class="fly-panel fly-panel-user" pad20>
|
||||
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
|
||||
<legend>我的错题</legend>
|
||||
</fieldset>
|
||||
<div class="layui-collapse" lay-filter="test">
|
||||
<div class="layui-colla-item" th:each="item:${data}">
|
||||
<h2 class="layui-colla-title">[[${itemStat.index+1}]]:[[${item.question.title}]]
|
||||
<span th:if="${item.question.type=='1'}">(单选)</span>
|
||||
<span th:if="${item.question.type=='2'}">(多选)</span>
|
||||
<span th:if="${item.question.type=='3'}">(判断)</span>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm" th:onclick="'del('+${item.question.id}+')'">删除</button>
|
||||
</h2>
|
||||
|
||||
<div class="layui-colla-content">
|
||||
<p th:each="qItem:${item.question.questionItem}">[[${qItem.number}]]:[[${qItem.content}]]</p>
|
||||
<p>解析:正确答案[[${item.question.answer}]]</p>
|
||||
<p>[[${item.question.label}]]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
|
||||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
</div>
|
||||
|
||||
<script src="/web/res/layui/layui.js"></script>
|
||||
|
|
@ -59,35 +45,25 @@
|
|||
document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D30088308' type='text/javascript'%3E%3C/script%3E"));</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var layer;
|
||||
$(function () {
|
||||
layui.use('layer', function () {
|
||||
layer = layui.layer;
|
||||
});
|
||||
$("#errorquestion").addClass("layui-this")
|
||||
})
|
||||
|
||||
function del(id) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/web/user/delerrorquestion",
|
||||
data: {questionId:id},
|
||||
success: function (result) {
|
||||
if (result.code != web_status.SUCCESS) {
|
||||
layer.msg(result.msg, {icon: 2});
|
||||
}else{
|
||||
window.location="/web/user/errorquestion.html"
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// function endPaper() {
|
||||
// var userAnswer = $("." + id + "useranswer:checked").val();
|
||||
// if (userAnswer != answer) {
|
||||
// layer.msg('回答错误', {icon: 2});
|
||||
//
|
||||
// $.ajax({
|
||||
// type: 'post',
|
||||
// url: "/api/v1/practice/answer",
|
||||
// contentType: "application/json",
|
||||
// data: "[" + id + "]",
|
||||
// success: function (result) {
|
||||
// if (result.code != web_status.SUCCESS) {
|
||||
// $.modal.msgError(result.msg);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
//
|
||||
//
|
||||
// }
|
||||
// $("#" + id + "answer").show()
|
||||
// }
|
||||
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,42 +4,7 @@
|
|||
<head th:include="web/index::cmsHeader">
|
||||
</head>
|
||||
<body style="margin-top: 65px;">
|
||||
<div class="fly-header layui-bg-black">
|
||||
<div class="layui-container">
|
||||
<a class="fly-logo" href="/">
|
||||
<img src="../../res/images/logo.png" alt="layui">
|
||||
</a>
|
||||
<ul class="layui-nav fly-nav layui-hide-xs">
|
||||
<li class="layui-nav-item layui-this">
|
||||
<a href="/"><i class="iconfont icon-jiaoliu"></i>交流</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="../case/case.html"><i class="iconfont icon-iconmingxinganli"></i>案例</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="http://www.layui.com/" target="_blank"><i class="iconfont icon-ui"></i>框架</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="layui-nav fly-nav-user">
|
||||
<!-- 登入后的状态 -->
|
||||
<li class="layui-nav-item">
|
||||
<a class="fly-nav-avatar" href="javascript:;">
|
||||
<cite class="layui-hide-xs">贤心</cite>
|
||||
<i class="iconfont icon-renzheng layui-hide-xs" title="认证信息:layui 作者"></i>
|
||||
<i class="layui-badge fly-badge-vip layui-hide-xs">VIP3</i>
|
||||
<img src="https://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg">
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="../user/set.html"><i class="layui-icon"></i>基本设置</a></dd>
|
||||
<dd><a href="../user/message.html"><i class="iconfont icon-tongzhi" style="top: 4px;"></i>我的消息</a></dd>
|
||||
<dd><a href="../user/home.html"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的主页</a></dd>
|
||||
<hr style="margin: 5px 0;">
|
||||
<dd><a href="" style="text-align: center;">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="fly-header layui-bg-black" th:replace="web/index::top">
|
||||
</div>
|
||||
|
||||
<div class="fly-home fly-panel" style="background-image: url();">
|
||||
|
|
|
|||
|
|
@ -5,134 +5,66 @@
|
|||
</head>
|
||||
<body>
|
||||
|
||||
<div class="fly-header layui-bg-black">
|
||||
<div class="layui-container">
|
||||
<a class="fly-logo" href="/">
|
||||
<img src="../../res/images/logo.png" alt="layui">
|
||||
</a>
|
||||
<ul class="layui-nav fly-nav layui-hide-xs">
|
||||
<li class="layui-nav-item layui-this">
|
||||
<a href="/"><i class="iconfont icon-jiaoliu"></i>交流</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="../case/case.html"><i class="iconfont icon-iconmingxinganli"></i>案例</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="http://www.layui.com/" target="_blank"><i class="iconfont icon-ui"></i>框架</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="layui-nav fly-nav-user">
|
||||
<!-- 登入后的状态 -->
|
||||
<li class="layui-nav-item">
|
||||
<a class="fly-nav-avatar" href="javascript:;">
|
||||
<cite class="layui-hide-xs">贤心</cite>
|
||||
<i class="iconfont icon-renzheng layui-hide-xs" title="认证信息:layui 作者"></i>
|
||||
<i class="layui-badge fly-badge-vip layui-hide-xs">VIP3</i>
|
||||
<img src="https://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg">
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="../user/set.html"><i class="layui-icon"></i>基本设置</a></dd>
|
||||
<dd><a href="../user/message.html"><i class="iconfont icon-tongzhi" style="top: 4px;"></i>我的消息</a></dd>
|
||||
<dd><a href="../user/home.html"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的主页</a></dd>
|
||||
<hr style="margin: 5px 0;">
|
||||
<dd><a href="" style="text-align: center;">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="fly-header layui-bg-black" th:replace="web/index::top">
|
||||
</div>
|
||||
|
||||
<div class="layui-container fly-marginTop fly-user-main">
|
||||
<ul class="layui-nav layui-nav-tree layui-inline" lay-filter="user">
|
||||
<li class="layui-nav-item">
|
||||
<a href="home.html">
|
||||
<i class="layui-icon"></i>
|
||||
我的主页
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="index.html">
|
||||
<i class="layui-icon"></i>
|
||||
用户中心
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="set.html">
|
||||
<i class="layui-icon"></i>
|
||||
基本设置
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-this">
|
||||
<a href="message.html">
|
||||
<i class="layui-icon"></i>
|
||||
我的消息
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div th:replace="web/user/set::userinfo">
|
||||
</div>
|
||||
|
||||
<div class="site-tree-mobile layui-hide">
|
||||
<i class="layui-icon"></i>
|
||||
</div>
|
||||
<div class="site-mobile-shade"></div>
|
||||
|
||||
<div class="site-tree-mobile layui-hide">
|
||||
<i class="layui-icon"></i>
|
||||
</div>
|
||||
<div class="site-mobile-shade"></div>
|
||||
|
||||
|
||||
<div class="fly-panel fly-panel-user" pad20>
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="user" id="LAY_msg" style="margin-top: 15px;">
|
||||
<button class="layui-btn layui-btn-danger" id="LAY_delallmsg">清空全部消息</button>
|
||||
<div id="LAY_minemsg" style="margin-top: 10px;">
|
||||
<!--<div class="fly-none">您暂时没有最新消息</div>-->
|
||||
<ul class="mine-msg">
|
||||
<li data-id="123">
|
||||
<blockquote class="layui-elem-quote">
|
||||
<a href="/jump?username=Absolutely" target="_blank"><cite>Absolutely</cite></a>回答了您的求解<a target="_blank" href="/jie/8153.html/page/0/#item-1489505778669"><cite>layui后台框架</cite></a>
|
||||
</blockquote>
|
||||
<p><span>1小时前</span><a href="javascript:;" class="layui-btn layui-btn-small layui-btn-danger fly-delete">删除</a></p>
|
||||
</li>
|
||||
<li data-id="123">
|
||||
<blockquote class="layui-elem-quote">
|
||||
系统消息:欢迎使用 layui
|
||||
</blockquote>
|
||||
<p><span>1小时前</span><a href="javascript:;" class="layui-btn layui-btn-small layui-btn-danger fly-delete">删除</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fly-panel fly-panel-user" pad20>
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="user" id="LAY_msg" style="margin-top: 15px;">
|
||||
<div class="layui-container">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md15">
|
||||
<div class="fly-panel">
|
||||
|
||||
<div class="layui-col-md15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card" th:each="item:${data}">
|
||||
<div class="layui-card-header">[[${itemStat.index+1}]]:<span
|
||||
th:text="${item.question.title}"></span>
|
||||
<span th:if="${item.question.type=='1'}">(单选)</span>
|
||||
<span th:if="${item.question.type=='2'}">(多选)</span>
|
||||
<span th:if="${item.question.type=='3'}">(判断)</span>
|
||||
</div>
|
||||
<div class="layui-card-body" th:each="qItem:${item.question.questionItem}">
|
||||
[[${qItem.number}]]:
|
||||
<span th:text="${qItem.content}"></span>
|
||||
</div>
|
||||
<div class="layui-card-body" th:id="${item.question.id}+'answer'">
|
||||
解析:正确答案[[${item.question.answer}]]<br>
|
||||
[[${item.question.label}]]
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="fly-footer">
|
||||
<p><a href="http://fly.layui.com/" target="_blank">Fly社区</a> 2017 © <a href="http://www.layui.com/" target="_blank">layui.com 出品</a></p>
|
||||
<p>
|
||||
<a href="http://fly.layui.com/jie/3147/" target="_blank">付费计划</a>
|
||||
<a href="http://www.layui.com/template/fly/" target="_blank">获取Fly社区模版</a>
|
||||
<a href="http://fly.layui.com/jie/2461/" target="_blank">微信公众号</a>
|
||||
</p>
|
||||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
</div>
|
||||
|
||||
<script src="../../res/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.cache.page = 'user';
|
||||
layui.cache.user = {
|
||||
username: '游客'
|
||||
,uid: -1
|
||||
,avatar: '../../res/images/avatar/00.jpg'
|
||||
,experience: 83
|
||||
,sex: '男'
|
||||
};
|
||||
layui.config({
|
||||
version: "3.0.0"
|
||||
,base: '../../res/mods/'
|
||||
}).extend({
|
||||
fly: 'index'
|
||||
}).use('fly');
|
||||
$(function () {
|
||||
$("#message").addClass("layui-this")
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -5,68 +5,45 @@
|
|||
</head>
|
||||
<body>
|
||||
|
||||
<div class="fly-header layui-bg-black">
|
||||
<div class="layui-container">
|
||||
<a class="fly-logo" href="/">
|
||||
<img src="../../res/images/logo.png" alt="layui">
|
||||
</a>
|
||||
<ul class="layui-nav fly-nav layui-hide-xs">
|
||||
<li class="layui-nav-item layui-this">
|
||||
<a href="/"><i class="iconfont icon-jiaoliu"></i>交流</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="../case/case.html"><i class="iconfont icon-iconmingxinganli"></i>案例</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="http://www.layui.com/" target="_blank"><i class="iconfont icon-ui"></i>框架</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="layui-nav fly-nav-user">
|
||||
<!-- 登入后的状态 -->
|
||||
<li class="layui-nav-item">
|
||||
<a class="fly-nav-avatar" href="javascript:;">
|
||||
<cite class="layui-hide-xs">贤心</cite>
|
||||
<i class="iconfont icon-renzheng layui-hide-xs" title="认证信息:layui 作者"></i>
|
||||
<i class="layui-badge fly-badge-vip layui-hide-xs">VIP3</i>
|
||||
<img src="https://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg">
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="../user/set.html"><i class="layui-icon"></i>基本设置</a></dd>
|
||||
<dd><a href="../user/message.html"><i class="iconfont icon-tongzhi" style="top: 4px;"></i>我的消息</a></dd>
|
||||
<dd><a href="../user/home.html"><i class="layui-icon" style="margin-left: 2px; font-size: 22px;"></i>我的主页</a></dd>
|
||||
<hr style="margin: 5px 0;">
|
||||
<dd><a href="" style="text-align: center;">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="fly-header layui-bg-black" th:replace="web/index::top">
|
||||
</div>
|
||||
|
||||
<div class="layui-container fly-marginTop fly-user-main">
|
||||
<ul class="layui-nav layui-nav-tree layui-inline" lay-filter="user">
|
||||
<li class="layui-nav-item">
|
||||
<div class="layui-container fly-marginTop fly-user-main" >
|
||||
<ul class="layui-nav layui-nav-tree layui-inline" lay-filter="user" th:fragment="userinfo">
|
||||
<!-- <li class="layui-nav-item" id="home">
|
||||
<a href="home.html">
|
||||
<i class="layui-icon"></i>
|
||||
我的主页
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="index.html">
|
||||
<i class="layui-icon"></i>
|
||||
用户中心
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-this">
|
||||
</li>-->
|
||||
<!--<li class="layui-nav-item" id="index">-->
|
||||
<!--<a href="index.html">-->
|
||||
<!--<i class="layui-icon"></i>-->
|
||||
<!--用户中心-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<li class="layui-nav-item" id="set">
|
||||
<a href="set.html">
|
||||
<i class="layui-icon"></i>
|
||||
基本设置
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="message.html">
|
||||
<i class="layui-icon"></i>
|
||||
我的消息
|
||||
<!--<li class="layui-nav-item" id="message">-->
|
||||
<!--<a href="message.html">-->
|
||||
<!--<i class="layui-icon"></i>-->
|
||||
<!--我的消息-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<li class="layui-nav-item" id="errorquestion">
|
||||
<a th:href="@{/web/user/errorquestion.html}">
|
||||
<i class="layui-icon"></i>
|
||||
我的错题本
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item" id="collectquestion">
|
||||
<a th:href="@{/web/user/collectquestion.html}">
|
||||
<i class="layui-icon"></i>
|
||||
我的收藏
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -200,20 +177,9 @@
|
|||
<div class="fly-footer" th:replace="web/index::cmsBottom">
|
||||
</div>
|
||||
<script>
|
||||
layui.cache.page = 'user';
|
||||
layui.cache.user = {
|
||||
username: '游客'
|
||||
,uid: -1
|
||||
,avatar: '../../res/images/avatar/00.jpg'
|
||||
,experience: 83
|
||||
,sex: '男'
|
||||
};
|
||||
layui.config({
|
||||
version: "2.0.0"
|
||||
,base: '../../res/mods/'
|
||||
}).extend({
|
||||
fly: 'index'
|
||||
}).use('fly');
|
||||
$(function(){
|
||||
$("#set").addClass("layui-this")
|
||||
})
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class ApiExaminationController extends BaseController {
|
|||
@GetMapping("/v1/examination/list")
|
||||
public AjaxResult list(ExamExamination examExamination) {
|
||||
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName( ShiroUtils.getLoginName() );
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() );
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put( "ination", examExamination );
|
||||
map.put( "userId", sysUser.getUserId() );
|
||||
|
|
|
|||
|
|
@ -38,16 +38,10 @@ public class ApiUserCollectionQuestionController extends BaseController {
|
|||
*/
|
||||
@PostMapping("/v1/question/collection/{id}")
|
||||
public AjaxResult answer(@PathVariable("id") Integer id) {
|
||||
ExamUserCollectionQuestion examUserCollectionQuestion = new ExamUserCollectionQuestion();
|
||||
examUserCollectionQuestion.setExamQuestionId( id );
|
||||
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() );
|
||||
examUserCollectionQuestion.setVipUserId( sysUser.getUserId().intValue() );
|
||||
examUserCollectionQuestion.setCreateBy( sysUser.getLoginName() );
|
||||
examUserCollectionQuestion.setCreateDate( new Date() );
|
||||
examUserCollectionQuestion.setDelFlag( "0" );
|
||||
examUserCollectionQuestion.setUpdateBy( sysUser.getLoginName() );
|
||||
examUserCollectionQuestion.setUpdateDate( new Date() );
|
||||
int insert = examUserCollectionQuestionService.insertSelectiveBySelf( examUserCollectionQuestion );
|
||||
|
||||
int insert = examUserCollectionQuestionService.insertSelectiveBySelf(id,sysUser);
|
||||
AjaxResult success = success( "插入我的收藏记录成功" );
|
||||
return success;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,20 +54,9 @@ public class ApiUserErrorQuestionController extends BaseController {
|
|||
@PostMapping("/v1/practice/answer")
|
||||
public AjaxResult answer(@RequestBody List<String> questionIds) {
|
||||
for (String questionId : questionIds) {
|
||||
ExamUserErrorQuestion examUserErrorQuestion = new ExamUserErrorQuestion();
|
||||
examUserErrorQuestion.setExamQuestionId(Integer.parseInt(questionId));
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName(ShiroUtils.getLoginName());
|
||||
examUserErrorQuestion.setVipUserId(sysUser.getUserId().intValue());
|
||||
List<ExamUserErrorQuestion> db = examUserErrorQuestionService.selectList(examUserErrorQuestion);
|
||||
if(db.size()>0){
|
||||
return success("错题已存在");
|
||||
}
|
||||
examUserErrorQuestion.setCreateBy(sysUser.getLoginName());
|
||||
examUserErrorQuestion.setCreateDate(new Date());
|
||||
examUserErrorQuestion.setDelFlag("0");
|
||||
examUserErrorQuestion.setUpdateBy(sysUser.getLoginName());
|
||||
examUserErrorQuestion.setUpdateDate(new Date());
|
||||
int insert = examUserErrorQuestionService.insertError( examUserErrorQuestion );
|
||||
SysUser sysUser = sysUserService.selectUserByLoginName(JwtUtil.getLoginName());
|
||||
|
||||
int insert = examUserErrorQuestionService.insertError(questionId,sysUser );
|
||||
}
|
||||
AjaxResult success = success("插入错题本成功");
|
||||
return success;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import java.util.List;
|
|||
|
||||
import com.ruoyi.exam.domain.ExamUserCollectionQuestionVO;
|
||||
import com.ruoyi.framework.web.base.AbstractBaseService;
|
||||
import com.ruoyi.system.domain.SysUser;
|
||||
|
||||
/**
|
||||
* 我的收藏 服务层
|
||||
*
|
||||
|
|
@ -30,8 +32,9 @@ public interface IExamUserCollectionQuestionService extends AbstractBaseService<
|
|||
|
||||
/**
|
||||
* 插入收藏题库
|
||||
* @param examUserCollectionQuestion
|
||||
* @param questionId
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
int insertSelectiveBySelf(ExamUserCollectionQuestion examUserCollectionQuestion);
|
||||
int insertSelectiveBySelf(Integer questionId, SysUser sysUser);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import java.util.List;
|
|||
|
||||
import com.ruoyi.exam.domain.ExamUserErrorQuestionVO;
|
||||
import com.ruoyi.framework.web.base.AbstractBaseService;
|
||||
import com.ruoyi.system.domain.SysUser;
|
||||
|
||||
/**
|
||||
* 我的错题 服务层
|
||||
*
|
||||
|
|
@ -44,5 +46,5 @@ public interface IExamUserErrorQuestionService extends AbstractBaseService<ExamU
|
|||
List<ExamUserErrorQuestionVO> selectExamUserErrorQuestionDetailList(ExamUserErrorQuestion examUserErrorQuestion);
|
||||
|
||||
|
||||
int insertError(ExamUserErrorQuestion examUserErrorQuestion);
|
||||
int insertError(String questionId, SysUser sysUser);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
package com.ruoyi.exam.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.exam.domain.ExamUserCollectionQuestionVO;
|
||||
import com.ruoyi.system.domain.SysUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.exam.mapper.ExamUserCollectionQuestionMapper;
|
||||
import com.ruoyi.exam.domain.ExamUserCollectionQuestion;
|
||||
import com.ruoyi.exam.service.IExamUserCollectionQuestionService;
|
||||
import com.ruoyi.common.support.Convert;
|
||||
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
|
||||
/**
|
||||
* 我的收藏 服务层实现
|
||||
|
|
@ -47,7 +48,15 @@ public class ExamUserCollectionQuestionServiceImpl extends AbstractBaseServiceIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public int insertSelectiveBySelf(ExamUserCollectionQuestion examUserCollectionQuestion) {
|
||||
public int insertSelectiveBySelf(Integer questionId, SysUser sysUser) {
|
||||
ExamUserCollectionQuestion examUserCollectionQuestion = new ExamUserCollectionQuestion();
|
||||
examUserCollectionQuestion.setExamQuestionId( questionId );
|
||||
examUserCollectionQuestion.setVipUserId( sysUser.getUserId().intValue() );
|
||||
examUserCollectionQuestion.setCreateBy( sysUser.getLoginName() );
|
||||
examUserCollectionQuestion.setCreateDate( new Date() );
|
||||
examUserCollectionQuestion.setDelFlag( "0" );
|
||||
examUserCollectionQuestion.setUpdateBy( sysUser.getLoginName() );
|
||||
examUserCollectionQuestion.setUpdateDate( new Date() );
|
||||
return examUserCollectionQuestionMapper.insertSelective(examUserCollectionQuestion);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package com.ruoyi.exam.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.exam.domain.ExamUserErrorQuestionVO;
|
||||
import com.ruoyi.system.domain.SysUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.exam.mapper.ExamUserErrorQuestionMapper;
|
||||
|
|
@ -20,6 +22,8 @@ public class ExamUserErrorQuestionServiceImpl extends AbstractBaseServiceImpl<Ex
|
|||
{
|
||||
@Autowired
|
||||
private ExamUserErrorQuestionMapper examUserErrorQuestionMapper;
|
||||
@Autowired
|
||||
private IExamUserErrorQuestionService examUserErrorQuestionService;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -44,8 +48,20 @@ public class ExamUserErrorQuestionServiceImpl extends AbstractBaseServiceImpl<Ex
|
|||
return examUserErrorQuestionMapper.selectExamUserErrorQuestionDetailList(examUserErrorQuestion);
|
||||
}
|
||||
@Override
|
||||
public int insertError(ExamUserErrorQuestion examUserErrorQuestion) {
|
||||
public int insertError(String questionId, SysUser sysUser) {
|
||||
|
||||
ExamUserErrorQuestion examUserErrorQuestion = new ExamUserErrorQuestion();
|
||||
examUserErrorQuestion.setExamQuestionId(Integer.parseInt(questionId));
|
||||
examUserErrorQuestion.setVipUserId(sysUser.getUserId().intValue());
|
||||
List<ExamUserErrorQuestion> db = examUserErrorQuestionService.selectList(examUserErrorQuestion);
|
||||
if(db.size()>0){
|
||||
return 0;
|
||||
}
|
||||
examUserErrorQuestion.setCreateBy(sysUser.getLoginName());
|
||||
examUserErrorQuestion.setCreateDate(new Date());
|
||||
examUserErrorQuestion.setDelFlag("0");
|
||||
examUserErrorQuestion.setUpdateBy(sysUser.getLoginName());
|
||||
examUserErrorQuestion.setUpdateDate(new Date());
|
||||
|
||||
return examUserErrorQuestionMapper.insert( examUserErrorQuestion );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
LEFT JOIN exam_examination_user eeu ON eeu.exam_examination_id = exam_examination.id
|
||||
|
||||
<where>
|
||||
(exam_examination.type = '1' or eeu.vip_user_id = #{userId})
|
||||
(exam_examination.type = '1' or eeu.vip_user_id = #{userId} or exam_examination.examination_user_limit = '1')
|
||||
and
|
||||
<![CDATA[((enable_control_time = '1' and end_time > NOW() and start_time < NOW())
|
||||
or enable_control_time = '0') ]]>
|
||||
|
|
@ -130,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<where>
|
||||
exam_examination.type = '2' and exam_examination.id not in (select exam_examination_id from exam_examination_user where vip_user_id = #{userId})
|
||||
and
|
||||
and exam_examination.examination_user_limit = '2' and
|
||||
<![CDATA[((enable_control_time = '1' and end_time > NOW() and start_time < NOW())
|
||||
or enable_control_time = '0') ]]>
|
||||
<if test="id != null "> and exam_examination.id = #{ination.id}</if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue