基于javaweb+SpringBoot+MyBatis在线教学考试作业系统(后台、前台)
开发工具:eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
* 跳到前台自我练习-历史列表页面
* @return
*/
@RequestMapping("historyPage")
public String historyPage(HttpSession session){
if(session.getAttribute("user")==null){
return "/home/login";
}
return "/home/exercise/history";
}
/**
* 跳到前台自我练习准备页面
* @return
*/
@RequestMapping("preparePage")
public String preparePage(HttpSession session){
layer.confirm('确认要'+title + '用户吗?', function (index) {
//捉到所有被选中的,发异步进行删除
$.post("/user/updateState", requestData, function (res) {
if (res.success) {
layer.msg(title+'成功', {
icon: 1, time: 1500
},function () {
table.reload('test-table-reload', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: $('#search-form').parseForm()
});
* @param date 减数
* @param date1 被减数
* @param scale 小数后保留位数
* @return double 返回小时小于一小时返回小数
*/
public static double diffDateReHourDouble(Date date, Date date1, int scale) {
return div((getTimeMillis(date) - getTimeMillis(date1)), (3600 * 1000), scale);
}
/**
*
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return double 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* 获得当月第一天
* @return String
*/
public static String getFirstDayOfMonth() {
String str = "";
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
str = format(lastDate.getTime(),yyyy_MM_dd);
return str;
}
/**
,where: $('#search-form').parseForm()
,initSort:{field:'id', type:'desc'}
,even: true //开启隔行背景
,defaultToolbar: ['filter', 'print', 'exports']
,toolbar: '#toolbarHead'
,smartReloadModel:true //处理不闪动的关键代码
,cols: [
[
{checkbox: true}
,{field:'id', title: 'ID', sort: true, align:'center'}
,{field:'question', title: '题目',width:350, align:'center',templet:function (val) {
var contentVal=val.question;
if(contentVal&&contentVal.length>15){
return '<a title="点击查看详情" onclick="showContent(\''+contentVal+'\')" href="javascript:void(0);">'+contentVal+'</a>'
}else{
return contentVal==null?"":contentVal;;
}
}}
,{field:'type', title: '题目类型', align:'center',templet:function(val){
model.addAttribute("paperDetailList",paperDetailList);
List<PaperDetail> type1List=new ArrayList<>();//单选题
List<PaperDetail> type2List=new ArrayList<>();//多选题
List<PaperDetail> type3List=new ArrayList<>();//翻译题
List<PaperDetail> type4List=new ArrayList<>();//小作文选题
for(PaperDetail paperDetail:paperDetailList){
switch (paperDetail.getType()){
case 1:type1List.add(paperDetail);break;
case 2:type2List.add(paperDetail);break;
case 3:type3List.add(paperDetail);break;
case 4:type4List.add(paperDetail);break;
}
}
for(int i=0;i<type1List.size();i++){
type1List.get(i).setField0((i+1)+"");
}
for(int i=0;i<type2List.size();i++){
int j = type1List.size() + i + 1;
if (headMap != null && headMap.size() > 0) {
Set<String> keySet = headMap.keySet();
Iterator var4 = keySet.iterator();
while(var4.hasNext()) {
String key = (String)var4.next();
httpGet.addHeader(key, (String)headMap.get(key));
}
}
}
private static String getRespString(HttpEntity entity) throws Exception {
if (entity == null) {
return null;
} else {
InputStream is = entity.getContent();
StringBuffer strBuf = new StringBuffer();
byte[] buffer = new byte[4096];
boolean var4 = false;
userPaperDetail.setField6(ToolsUtils.getLoginUserName(session));
userPaperDetail.setField1(value);
userPaperDetailService.updateById(userPaperDetail);
}
//更新tb_user_paper
QueryWrapper<UserPaper> userPaperQueryWrapper=new QueryWrapper<>();
userPaperQueryWrapper.eq("user_id",userId);
userPaperQueryWrapper.eq("paper_id",paperId);
UserPaper userPaper = userPaperService.getOne(userPaperQueryWrapper);
//处理翻译、小作文得分
checkViewScore(userPaper,userId,paperId);
userPaper.setState(2);//状态变为已批阅
userPaper.setField5(ToolsUtils.getLoginUserId(session).toString());
userPaper.setField6(ToolsUtils.getLoginUserName(session));
@Controller
@RequestMapping({"/user","/home/user"})
public class UserController {
private static final Logger logger= LoggerFactory.getLogger(UserController.class);
@Value("${com.jane.security.md5.key}")
private String md5Key;
@Autowired
SysFileService fileService;
@Autowired
SysUserService userService;
int length;
while(bis.read(b) != -1) {
++os;
if (b[0] == 13) {
if (bis.read(b) == -1) {
break;
}
++os;
if (b[0] == 10) {
length = buffer.position();
if (length == 0) {
break;
}
byte[] r = new byte[length];
buffer.flip();
buffer.get(r);
list_info.add(new String(r));
buffer.clear();
continue;
}
}
/**
* 跳转到试卷作业修改页面
* @param id
* @param model
* @return
*/
@RequestMapping("/editPage/{id}")
public String editPage(@PathVariable Long id, Model model) {
model.addAttribute("paper", paperService.getById(id));
return prefix+"edit";
}
/**
* 试卷作业修改
* @param paper
* @return
*/
@RequestMapping("/edit")
@ResponseBody
public ResponseBean updateById( SysPaper paper) {
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
技术框架
JSP JavaScript layui SpringBoot SpringMVC MyBatis
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员:用户管理、班级、题库、考试、作业等模块管理
学生:考试、写作业
前台
后台