提交 77006a27 编写于 作者: 7 7wc98#14

Update

上级 3e461fc3
......@@ -13,13 +13,13 @@ import com.pyc.campus.domain.Msg;
import com.pyc.campus.domain.Student;
import com.pyc.campus.domain.SysRole;
import com.pyc.campus.domain.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.query.Param;
import org.springframework.security.core.context.SecurityContextImpl;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
......@@ -28,30 +28,89 @@ import java.util.List;
@Controller
public class WebController {
@Autowired
final
StudentRepository studentRepository;
@Autowired
final
SysUserRepository sysUserRepository;
public WebController(StudentRepository studentRepository, SysUserRepository sysUserRepository) {
this.studentRepository = studentRepository;
this.sysUserRepository = sysUserRepository;
}
@RequestMapping("/home")
public String home(Model model, HttpSession session){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
Msg msg = new Msg(
"欢迎",
currentStudentId+",同学,欢迎使用 Campus!",
s.getName()+",同学,欢迎使用 Campus!",
""
);
model.addAttribute("msg", msg);
model.addAttribute("curUse",s);
return "page/Home";
}
@RequestMapping("/userCenter")
public String userCenter(Model model, HttpSession session){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
Msg msg = new Msg("","","");
model.addAttribute("msg",msg);
model.addAttribute("curUse",s);
return "page/UserCenter";
}
@RequestMapping("/updateUserInfo")
public String updateUserInfo(Model model, HttpSession session){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
model.addAttribute("curUse",s);
Msg msg = new Msg(
"提示!",
"学号作为用户标识ID,不允许更改",
""
);
model.addAttribute("msg", msg);
return "page/UpdateUserInfo";
}
@RequestMapping("/updateUInfo")
public String updateUInfo(Model model,HttpSession session,
@Param("username") String username,
@Param("weChat") String weChat,
@RequestParam(value = "TencentQQ", required = false) String qq){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
System.out.println("QQ:"+qq);
int result = studentRepository.update(username,weChat,qq,currentStudentId);
if(result==0){
Msg msg = new Msg(
"提示",
"对不起,是我们的错,信息没有成功更新,请再试几次,或者连续网站管理员",
""
);
model.addAttribute("msg",msg);
return "page/UpdateUserInfo";
}
Msg msg = new Msg(
"提示",
"信息更新成功!",
""
);
Student s = studentRepository.findNameByStudentID(currentStudentId);
model.addAttribute("curUse",s);
model.addAttribute("msg",msg);
return "page/UserCenter";
}
@RequestMapping("/signUP")
public String signUP(Model model,
@Param("studentID") String studentID,
@Param("password") String password,
@Param("username") String username,
@Param("weChat") String weChat,
@Param("QQ") String qq) {
@RequestParam(value = "QQ", required = false) String qq) {
Student student = studentRepository.findPasswordByStudentID(studentID);
if (student != null) {
return "page/SignError";
......
......@@ -9,8 +9,16 @@ package com.pyc.campus.dao;
import com.pyc.campus.domain.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
public interface StudentRepository extends JpaRepository<Student,Long> {
Student findByNameAndStudentID(String name,String studentID);
Student findPasswordByStudentID(String studentID);
Student findNameByStudentID(String studentID);
@Modifying
@Transactional
@Query("update Student s set s.name=?1,s.weChat=?2, s.QQ=?3 where s.studentID=?4")
int update(String name, String WeChat, String QQ, String studentID);
}
......@@ -67,8 +67,6 @@
<div class="tel">150-1436-6986</div>
</div>
<ul class="right">
<li><a href="/login">登录</a></li>
<li><a href="/sign">注册</a></li>
<li>
<form th:action="@{/logout}" method="post">
<input type="submit" class="btn btn-link" th:value="安全退出">
......@@ -87,8 +85,9 @@
<li><a href="#">Home</a></li>
<li><a href="#">学习资源</a></li>
<li><a href="#">校内新闻</a></li>
<li sec:authorize="hasRole('ROLE_USER')"><a href="#">用户中心</a></li>
<li sec:authorize="hasRole('ROLE_USER')"><a href="/userCenter" style="color: red" th:text="${curUse.getName()}"></a></li>
<li sec:authorize="hasRole('ROLE_ADMIN')"><a href="#">网站管理</a></li>
<li sec:authorize="hasRole('ROLE_ADMIN')"><a href="/userCenter" style="color: red" th:text="${curUse.getName()}"></a></li>
</ul>
</div>
</div>
......
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>用户信息更新</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style type="text/css">
.starter-template {
padding: 40px 15px;
text-align: center;
}
</style>
</head>
<body>
<div style="margin: 20% 25%">
<p th:if="${param.error}" class="bg-danger">有错误,请重试!</p>
<div class="starter-template">
<h1 th:text="${msg.title}"></h1>
<p class="bg-primary" th:text="${msg.content}"></p>
</div>
<form class="form-horizontal" name="form" method="post" th:action="@{/updateUInfo}" onsubmit="return check(form.studentID,form.username,form.weChat,form.TencentQQ)">
<div class="input-group input-group-lg">
<span class="input-group-addon" id="sizing-addon1">ID</span>
<input type="text" name="studentID" class="form-control" th:value="${curUse.getStudentID()}"
readonly="readonly" aria-describedby="sizing-addon1">
</div>
<div class="input-group input-group-lg">
<span class="input-group-addon" id="sizing-addon4">U</span>
<input type="text" name="username" class="form-control" th:value="${curUse.getName()}" aria-describedby="sizing-addon4">
</div>
<div class="input-group input-group-lg">
<span class="input-group-addon" id="sizing-addon5">W</span>
<input type="text" name="weChat" class="form-control" th:value="${curUse.getWeChat()}" aria-describedby="sizing-addon5">
</div>
<div class="input-group input-group-lg">
<span class="input-group-addon" id="sizing-addon">Q</span>
<input type="text" name="TencentQQ" class="form-control" th:value="${curUse.getQQ()}" aria-describedby="sizing-addon">
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="更新" class="btn btn-lg btn-primary"/>
</div>
</div>
</form>
<script type="text/javascript">
function check(ID,Name,W,Q) {
if(ID.value !=="" && Name.value !== "" && W.value !== "" && Q.value !== ""){
return true;
}
else {
alert("请将每个信息项的信息填写完整");
return false;
}
}
</script>
</div>
</body>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
lang="en">
<head>
<meta charset="UTF-8">
<title>用户中心</title>
<link rel="stylesheet" type="text/css" href="../../static/css/swiper.css">
<link rel="stylesheet" type="text/css" href="../../static/css/animate.min.css">
<link rel="stylesheet" type="text/css" href="../../static/css/oppo.css">
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css"
integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
<style>
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
caption {
font-size: 26px;
}
td {
font-size: 28px;
}
table {
font-family: verdana, arial, sans-serif;
font-size: 11px;
color: #333333;
border-width: 2px;
border-color: black;
border-style: solid;
border-collapse: collapse;
}
table th {
background-color: #c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
tr:hover {
background-color: #d4e3e5;
}
td:hover {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
.starter-template {
padding: 40px 15px;
text-align: center;
}
</style>
</head>
<body>
<!--页面顶部-->
<div id="top">
<div class="container"></div>
</div>
<!-- 页面的头部 -->
<div id="header">
<div class="container">
<div class="header_left left">
<div class="xlwb"></div>
<div class="txwb"></div>
<div class="tel">150-1436-6986</div>
</div>
<ul class="right">
<li>
<form th:action="@{/logout}" method="post">
<input type="submit" class="btn btn-link" th:value="安全退出">
</form>
</li>
</ul>
</div>
</div>
<!-- 页面的导航 -->
<div id="nav">
<div class="container">
<div class="logo left">
<h1>Campus</h1>
</div>
<ul class="right">
<li><a href="/home">Home</a></li>
<li><a href="#">学习资源</a></li>
<li><a href="#">校内新闻</a></li>
<li sec:authorize="hasRole('ROLE_USER')"><a href="#" style="color: red" th:text="${curUse.getName()}"></a>
</li>
<li sec:authorize="hasRole('ROLE_ADMIN')"><a href="#">网站管理</a></li>
<li sec:authorize="hasRole('ROLE_ADMIN')"><a href="#" style="color: red" th:text="${curUse.getName()}"></a>
</li>
</ul>
</div>
</div>
<div style="margin: 20%">
<div class="starter-template">
<h1 th:text="${msg.title}"></h1>
<p class="bg-primary" th:text="${msg.content}"></p>
</div>
<table style="margin: 10% 40%; width: 200px;">
<caption>用户信息</caption>
<tbody>
<tr>
<td>Name:</td>
<td th:text="${curUse.getName()}"></td>
</tr>
<tr>
<td>StudentID:</td>
<td th:text="${curUse.getStudentID()}"></td>
</tr>
<tr>
<td>QQ:</td>
<td th:text="${curUse.getQQ()}"></td>
</tr>
<tr>
<td>WeChat:</td>
<td th:text="${curUse.getWeChat()}"></td>
</tr>
</tbody>
</table>
<div style="margin: 0 auto">
<input type="button" class="btn btn-lg btn-primary" onclick="window.location.href='/updateUserInfo'"
value="更新信息">
</div>
</div>
<div id="serve">
<div class="container">
<ul>
<li>
<dl>
<dt></dt>
<dd class="dd1">正规网站</dd>
<dd class="dd2">所有的服务都是合法的</dd>
</dl>
</li>
<li>
<dl>
<dt></dt>
<dd class="dd1">正规网站</dd>
<dd class="dd2">所有的服务都是合法的</dd>
</dl>
</li>
<li>
<dl>
<dt></dt>
<dd class="dd1">正规网站</dd>
<dd class="dd2">所有的服务都是合法的</dd>
</dl>
</li>
<li>
<dl>
<dt></dt>
<dd class="dd1">正规网站</dd>
<dd class="dd2">所有的服务都是合法的</dd>
</dl>
</li>
<li>
<dl>
<dt></dt>
<dd class="dd1">正规网站</dd>
<dd class="dd2">所有的服务都是合法的</dd>
</dl>
</li>
</ul>
</div>
</div>
<div id="after_sale">
<div class="container">
<ul>
<li>
<ol>
<li><a href="#">联系方式</a></li>
<li><a href="#">15014366986</a></li>
<li><a href="#">2923616405</a></li>
<li><a href="#">pyc852164</a></li>
</ol>
</li>
<li>
<ol>
<li><a href="#">关于我</a></li>
<li><a href="https://blog.csdn.net/qq_42896653">CSDN</a></li>
<li><a href="https://github.com/pyc-ycy">Github</a></li>
<li><a href="https://gitee.com/pengyoucongcode">Gitee</a></li>
</ol>
</li>
<li>
<ol>
<li>关于我</li>
<li>我的博客文章,</li>
<li>我的代码托管平台,</li>
<li>也是代码托管平台,</li>
</ol>
</li>
<li>
<ol>
<li>关于我</li>
<li>可以了解我的所学</li>
<li>可以看到我的开源代码</li>
<li>为避免Github访问不了</li>
</ol>
</li>
</ul>
</div>
</div>
<div id="footer">
<div class="container">
<p>
<span>Campus logo</span>
<span>@2020 御承扬Copyright&copy;2020-05-04</span>
</p>
</div>
</div>
<a id="btn" href="javascript:;" style='position:fixed;right: 0px; bottom: 25%;font-size: 24px;'>
<img src="../../static/images/toTop1.png" alt="pic">
</a>
<script type="text/javascript" src="../../static/js/swiper.js"></script>
<script type="text/javascript" src="../../static/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="../../static/js/oppo.js"></script>
<script type="text/javascript">
let swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
paginationClickable: true,
loop: true,
autoplay: 3000,
speed: 1000,
prevButton: '.swiper-button-prev',
nextButton: '.swiper-button-next',
effect: 'fade',// effect: 'flip',effect: 'coverFlow',slide', 'fade',cube
grabCursor: true,
cube: {
shadow: false,
slideShadows: false,
shadowOffset: 20,
shadowScale: 0.94
}
});
</script>
<script>
window.onload = function () {
let tp = document.getElementById("btn");
tp.style.display = "none";
let timer = null;
tp.onclick = function () {
timer = setInterval(function () {
let backTop = document.documentElement.scrollTop || document.body.scrollTop;
// 越滚月慢
let speedTop = backTop / 5;
document.documentElement.scrollTop -= backTop - speedTop;
if (backTop === 0) {
clearInterval(timer);
}
}, 30);
}
let pageHeight = 700;
let nav = document.getElementById("nav");
let navTop = nav.offsetTop;
window.onscroll = function () {
let backTop = document.documentElement.scrollTop || document.body.scrollTop;
if (backTop > pageHeight) {
tp.style.display = "block";
} else {
tp.style.display = "none";
}
if (backTop >= navTop) {
nav.style.position = "fixed";
nav.style.top = "0";
nav.style.left = "0";
nav.style.zIndex = "100";
} else {
nav.style.position = "";
}
}
}
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册