Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
御承扬
Campus
提交
ed9898ce
C
Campus
项目概览
御承扬
/
Campus
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Campus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ed9898ce
编写于
6月 14, 2020
作者:
7
7wc98#14
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update
上级
ebc75995
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
407 addition
and
11 deletion
+407
-11
src/main/java/com/pyc/campus/controller/WebController.java
src/main/java/com/pyc/campus/controller/WebController.java
+57
-8
src/main/java/com/pyc/campus/dao/QuestionRepository.java
src/main/java/com/pyc/campus/dao/QuestionRepository.java
+19
-0
src/main/java/com/pyc/campus/domain/Question.java
src/main/java/com/pyc/campus/domain/Question.java
+73
-0
src/main/resources/templates/page/BrowserQuestion.html
src/main/resources/templates/page/BrowserQuestion.html
+250
-0
src/main/resources/templates/page/PublishQuestion.html
src/main/resources/templates/page/PublishQuestion.html
+7
-3
src/main/resources/templates/page/UserCenter.html
src/main/resources/templates/page/UserCenter.html
+1
-0
未找到文件。
src/main/java/com/pyc/campus/controller/WebController.java
浏览文件 @
ed9898ce
...
...
@@ -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"
;
}
}
src/main/java/com/pyc/campus/dao/QuestionRepository.java
0 → 100644
浏览文件 @
ed9898ce
//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
);
}
src/main/java/com/pyc/campus/domain/Question.java
浏览文件 @
ed9898ce
...
...
@@ -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
;
}
}
src/main/resources/templates/page/BrowserQuestion.html
0 → 100644
浏览文件 @
ed9898ce
<!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
©
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
src/main/resources/templates/page/PublishQuestion.html
浏览文件 @
ed9898ce
...
...
@@ -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=
"
n
ame"
id=
"inputName"
placeholder=
"Your Name"
>
<input
type=
"text"
class=
"form-control"
name=
"
PublisherN
ame"
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=
"
titl
e"
id=
"inputTitle"
placeholder=
"Title Of Your Question"
>
<input
type=
"text"
class=
"form-control"
name=
"
QuestionTyp
e"
id=
"inputTitle"
placeholder=
"Title Of Your Question"
>
</div>
</div>
<div
class=
"form-group"
>
...
...
src/main/resources/templates/page/UserCenter.html
浏览文件 @
ed9898ce
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录