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

Update

上级 ebc75995
......@@ -8,22 +8,18 @@
package com.pyc.campus.controller;
import com.pyc.campus.config.MailConfig;
import com.pyc.campus.dao.GradeRepository;
import com.pyc.campus.dao.NewsRepository;
import com.pyc.campus.dao.StudentRepository;
import com.pyc.campus.dao.SysUserRepository;
import com.pyc.campus.dao.*;
import com.pyc.campus.domain.*;
import org.springframework.data.repository.query.Param;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.security.core.context.SecurityContextImpl;
import org.springframework.security.core.parameters.P;
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 com.pyc.campus.config.MailConfig;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
......@@ -37,11 +33,12 @@ public class WebController {
SysUserRepository sysUserRepository;
public WebController(StudentRepository studentRepository, SysUserRepository sysUserRepository,
NewsRepository newsRepository, GradeRepository gradeRepository) {
NewsRepository newsRepository, GradeRepository gradeRepository, QuestionRepository questionRepository) {
this.studentRepository = studentRepository;
this.sysUserRepository = sysUserRepository;
this.newsRepository = newsRepository;
this.gradeRepository = gradeRepository;
this.questionRepository = questionRepository;
}
@RequestMapping("/home")
......@@ -355,6 +352,58 @@ public class WebController {
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
model.addAttribute("curUse",s);
return "/page/PublishQuestion";
Msg msg = new Msg("", "", "");
model.addAttribute("msg", msg);
return "page/PublishQuestion";
}
@RequestMapping("/publishQuestion")
public String publishQuestion(Model model, HttpSession session,
@Param("mail")String mail,
@RequestParam(value = "PublisherName", required = false)String publisher,
@RequestParam(value = "QuestionType", required = false)String type, @Param("content")String content, @Param("reward")String reward){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
model.addAttribute("curUse",s);
try{
Question question = new Question();
question.setPublisher(publisher);
question.setMail(mail);
question.setType(type);
question.setContent(content);
question.setReward(reward);
questionRepository.save(question);
Msg msg = new Msg("提示", "发布成功!","");
model.addAttribute("msg",msg);
return "page/PublishQuestion";
}catch (Exception e){
System.out.println(e.getMessage());
Msg msg = new Msg("提示","发生了一些错误,请重新尝试!","");
model.addAttribute("msg",msg);
return "page/PublishQuestion";
}
}
final QuestionRepository questionRepository;
@RequestMapping("/toBrowserQuestion")
public String toBrowserQuestion(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);
List<Question> questions = questionRepository.findAll();
model.addAttribute("questions", questions);
return "page/BrowserQuestion";
}
@RequestMapping("/queryByQuestionType")
public String queryByQuestionType(Model model, HttpSession session,
@RequestParam(value = "TypeOfQuestion", required = false)String type){
SecurityContextImpl securityContext = (SecurityContextImpl)session.getAttribute("SPRING_SECURITY_CONTEXT");
String currentStudentId = ((UserDetails) securityContext.getAuthentication().getPrincipal()).getUsername();
Student s = studentRepository.findNameByStudentID(currentStudentId);
model.addAttribute("curUse",s);
List<Question> questions = questionRepository.findAllByType(type);
model.addAttribute("questions", questions);
return "page/BrowserQuestion";
}
}
//IntelliJ IDEA
//campus
//QuestionRepository
//2020/6/14
// Author:御承扬
//E-mail:2923616405@qq.com
package com.pyc.campus.dao;
import com.pyc.campus.domain.Question;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface QuestionRepository extends JpaRepository<Question, Long> {
List<Question> findAll();
List<Question> findAllByType(String type);
}
......@@ -7,6 +7,79 @@
package com.pyc.campus.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Question {
@Id
@GeneratedValue
private long id;
private String publisher; // 申请人
private String mail; // 邮箱
private String type; // 问题类型
private String content; // 问题内容
private String reward; // 悬赏
public Question(){
super();
}
public Question(long id, String publisher,
String mail, String type, String content, String reward){
super();
this.id=id;
this.publisher=publisher;
this.mail=mail;
this.type=type;
this.content=content;
this.reward=reward;
}
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public void setContent(String content) {
this.content = content;
}
public void setMail(String mail) {
this.mail = mail;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setReward(String reward) {
this.reward = reward;
}
public void setType(String type) {
this.type = type;
}
public String getMail() {
return mail;
}
public String getContent() {
return content;
}
public String getPublisher() {
return publisher;
}
public String getReward() {
return reward;
}
public String getType() {
return type;
}
}
<!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/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>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<style>
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
background: #eee url("../../static/images/campus/logo.jpg") center no-repeat fixed;
}
.main{
margin: 10px auto;
width: 800px;
height: 700px;
}
.questions-list{
margin: 10px auto;
width: 800px;
height: auto;
}
</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="/learn">学习资源</a></li>
<li><a href="/news">校内新闻</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="/admin">网站管理</a></li>
<li sec:authorize="hasRole('ROLE_ADMIN')"><a href="/userCenter" style="color: red" th:text="${curUse.getName()}"></a>
</li>
</ul>
</div>
</div>
<div class="main">
<h1>悬赏问题浏览</h1>
<p>如果你知道这个问题,请按发布者的邮箱联系发布者</p>
<form class="form-inline" name="form" method="post" th:action="@{/queryByQuestionType}">
<div class="form-group">
<label for="TypeOfQuestion" class="sr-only">问题类型</label>
<div class="input-group">
<input type="text" name="TypeOfQuestion" id="TypeOfQuestion" placeholder="问题类型">
</div>
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div class="table-box">
<table class="table table-striped">
<thead>
<tr>
<th>发布者</th>
<th>邮箱</th>
<th>问题类型</th>
<th>问题内容</th>
<th>悬赏</th>
</tr>
</thead>
<tbody th:if="${not #lists.isEmpty(questions)}">
<tr th:each="question:${questions}">
<td th:text="${question.getPublisher()}"></td>
<td th:text="${question.mail}"></td>
<td th:text="${question.type}"></td>
<td th:text="${question.content}"></td>
<td th:text="${question.reward}"></td>
</tr>
</tbody>
</table>
</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 style="color: white;text-align: center;">
@2020 御承扬Copyright&copy;2020-05-04
</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/jquery-1.11.3.js"></script>
<script type="text/javascript" src="../../static/js/oppo.js"></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
......@@ -86,8 +86,12 @@
</div>
<div class="main">
<h1>悬赏问题发布</h1>
<div class="starter-template">
<h1 th:text="${msg.title}"></h1>
<p class="bg-primary" th:text="${msg.content}"></p>
</div>
<div class="form-box">
<form class="form-horizontal" method="post" name="form">
<form class="form-horizontal" method="post" th:action="@{/publishQuestion}" action="/publishQuestion" name="form">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-10">
......@@ -97,13 +101,13 @@
<div class="form-group">
<label for="inputName" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="inputName" placeholder="Your Name">
<input type="text" class="form-control" name="PublisherName" id="inputName" placeholder="Your Name">
</div>
</div>
<div class="form-group">
<label for="inputTitle" class="col-sm-2 control-label">问题类型</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="title" id="inputTitle" placeholder="Title Of Your Question">
<input type="text" class="form-control" name="QuestionType" id="inputTitle" placeholder="Title Of Your Question">
</div>
</div>
<div class="form-group">
......
......@@ -86,6 +86,7 @@
<li><a href="/toChangePWD">修改密码</a></li>
<li><a href="/toQueryGrade">查看课程成绩</a> </li>
<li><a href="/toUpQuestion">申请问题悬赏</a> </li>
<li><a href="/toBrowserQuestion">浏览悬赏问题</a> </li>
</ul>
<hr class="hidden-sm hidden-md hidden-lg">
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册