Это 29-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления
Предисловие:
Оценка преподавания учителями является важной частью оценки качества преподавания.С ускорением информатизации образования, как использовать сетевые технологии для оценки качества преподавания учителей в традиционном обучении и как оценивать качество преподавания учителей в среде сетевого обучения, возникают трудности в обучении. Это также ключевой вопрос в развитии онлайн-обучения. Оценка преподавания учителями – это сложный систематический проект, требующий больших человеческих, материальных и финансовых ресурсов. С помощью системы оценки преподавания учителей можно реализовать управление сетью и реализацию оценки. Используя систему для получения большого количества статистических данных, она послужит основой для глубокого анализа и принятия решений.
Особенности дизайна:
Роль администратора:Вход в систему, управление администратором, добавление, удаление и изменение управления учителями, добавление, удаление и изменение управления курсом, добавление, удаление и изменение индикаторов обучения, добавление, удаление и изменение учащихся, просмотр оценок и другие функции.
роль учителя: Вход в систему, управление курсами, управление индексом преподавания, управление студентами, получение оценок и другие функции.
Студенческая роль:Войдите в систему, измените личную информацию, начните оценивание, выберите курсы для оценки, просмотрите оценки, оценки и другие функции.
Функциональный скриншот:
Логин пользователя:
Домашняя страница системы:
Управление администратором:
Управление учителями:
Добавить учителя:
Управление курсом:
Добавить курс:
Управление индикатором:
Студенческая администрация:
Управление оценкой:
Процесс подсчета очков:
Выйти, чтобы выйти:
Домашняя страница факультета:
Студенческая домашняя страница:
Ключевой код:
Авторизоваться:
<div class="wrapper">
<div class="froyo-frame login-body">
<div class="admin-face">
<div class="face-img">
<img src="${ctxStatic}/images/editor.png" alt="logo">
</div>
</div>
<h1 class="admin-login-tittle">课程评分管理系统</h1>
<div class="admin-login-form">
<form class="form" action="${ctx}/login" method="post" autocomplete="off">
<div class="admin-name"><input name="username" type="text" placeholder="用户名"></div>
<div class="admin-password"><input name="password" type="password" placeholder="密码"></div>
<div class="admin-button"><button type="submit" id="login-button">登录</button></div>
</form>
<div class="admin-button"><a id="login-button" href="${ctx}/index">返回首页</a></div>
</div>
<script type="text/javascript" src="${ctxStatic}/plugins/layui/layui.js"></script>
<script type="text/javascript">
layui.use('layer', function() {
var $ = layui.jquery,
layer = layui.layer;
//login-button的点击事件..
$('#login-button').click(function (event) {
event.preventDefault();
if (!$("input[name=username]").val()) {
layer.msg("用户名不能为空");
return false;
} else if (!$("input[name=password]").val()) {
layer.msg("密码不能为空");
return false;
} else {
$('form').fadeOut(500);
$('.wrapper').addClass('form-success');
$('.form').submit();
}
});
</script>
</body>
</html>
После получения запроса на вход от внешнего интерфейса внутренний контроллер выполняет проверку параметров, оценивает и проверяет имя пользователя, пароль и роль пользователя, переданные внешним интерфейсом, вызывает метод LoginController.login для выполнения проверки входа пользователя, запросы правильность текущего пароля учетной записи в базе данных и возврат кода состояния.Выполнение относительных переходов страниц и эффектов данных для внешнего интерфейса и внешнего интерфейса в соответствии с кодом состояния.
/**
* 登录验证
*
* @param user
* @param map
* @return
*/
@PostMapping("/login")
public String login(User user, ModelMap map) {
if (user != null) {
if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
return Views.LOGIN;
}
AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword(), true);
if (token == null) {
map.put("message", "用户名或密码错误");
return Views.LOGIN;
}
//记住我
((UsernamePasswordToken) token).setRememberMe(true);
try {
SecurityUtils.getSubject().login(token);
return Views.REDIRECT_ADMIN;
} catch (AuthenticationException e) {
if (e instanceof UnknownAccountException) {
map.put("message", "用户不存在");
} else if (e instanceof LockedAccountException) {
map.put("message", "账户未激活");
map.put("status", 2);
map.put("user", user);
} else if (e instanceof DisabledAccountException) {
map.put("message", "账户未启用");
}
e.printStackTrace();
map.put("message", "用户认证失败");
}
return Views.LOGIN;
} else {
map.put("message", "未知异常");
return Views.LOGIN;
}
}
}