评论优化
This commit is contained in:
@@ -28,7 +28,32 @@ spring:
|
||||
initial-size: 5
|
||||
max-active: 10
|
||||
max-wait: 5000
|
||||
validation-query: select 1
|
||||
validation-query: select 1SS
|
||||
# 状态监控
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
db-type: h2
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 2000
|
||||
# 监控过滤器
|
||||
web-stat-filter:
|
||||
enabled: true
|
||||
exclusions:
|
||||
- "*.js"
|
||||
- "*.gif"
|
||||
- "*.jpg"
|
||||
- "*.png"
|
||||
- "*.css"
|
||||
- "*.ico"
|
||||
- "/druid/*"
|
||||
# druid 监控页面
|
||||
stat-view-servlet:
|
||||
enabled: true
|
||||
url-pattern: /druid/*
|
||||
# reset-enable: false
|
||||
# login-username: root
|
||||
# login-password: root
|
||||
freemarker:
|
||||
# 设置模板后缀名
|
||||
suffix: .ftl
|
||||
|
||||
+33
-29
@@ -1,67 +1,71 @@
|
||||
|
||||
|
||||
insert into users
|
||||
values (1, 'admin', '管理员', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'男','13804250293',0,0,'2019-09-09 00:00:00',1,1);
|
||||
insert into user
|
||||
values (1, 'admin', '管理员', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'','男','13804250293',0,0,'2019-09-09 00:00:00',1,1);
|
||||
|
||||
insert into users
|
||||
values (2, 'test', '测试用户1', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'男','13804250293',0,0,'2019-09-09 00:00:00',1,0);
|
||||
insert into user
|
||||
values (2, 'test', '测试用户1', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'','男','13804250293',0,0,'2019-09-09 00:00:00',1,0);
|
||||
|
||||
|
||||
insert into discussions
|
||||
values (1, '测试主题1', '测试内容1',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
insert into discussion
|
||||
values (1, '测试主题1', '测试内容1',null,null,null,'2020-09-19 00:00:00',1,null,'2020-09-29 00:00:00',2,null,null,null,null,null,1,'2020-09-09 00:00:00');
|
||||
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (2, '测试主题2', '测试内容2',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (3, '测试主题3', '测试内容3',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (4, '测试主题4', '测试内容4',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (5, '测试主题5', '测试内容2测试内容2测试内容2测试内容2测试内容2测试内容2',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (6, '测试主题6', '测试内容3测试测试测试测试测试测试测试测试测试测试测试测试测试',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (7, '测试主题7', '测试内容7',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (8, '测试主题8', '测试内容8',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (9, '测试主题9', '测试内容9',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (10, '测试主题10', '测试内容113',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into discussions
|
||||
insert into discussion
|
||||
values (11, '测试主题11', '测试内容3测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null);
|
||||
|
||||
insert into tags
|
||||
insert into tag
|
||||
values (1, '测试标签1',null,null,null,null,null,null,null,null,null);
|
||||
|
||||
|
||||
insert into posts
|
||||
values (1, 1, 1,null,1,null,'评论内容222',null,null,null,null,null,null,null,null);
|
||||
insert into post
|
||||
values (1, 1, 1,'2020-02-09 00:00:00',1,null,'评论内容222',null,null,null,null,null,null,1,'2020-08-09 00:00:00');
|
||||
|
||||
insert into posts
|
||||
values (2, 1, 2,null,1,null,'评论内容333',null,null,1,null,null,null,null,null);
|
||||
insert into post
|
||||
values (2, 1, 2,'2020-01-09 00:00:00',2,null,'评论内容333',null,null,1,null,null,null,2,'2020-07-09 00:00:00');
|
||||
|
||||
insert into posts
|
||||
values (3, 1, 3,null,1,1,'评论内容444',null,null,1,null,null,null,null,null);
|
||||
insert into post
|
||||
values (7, 1, 7,'2020-01-09 00:00:00',1,null,'评论内容3331111',null,null,1,null,null,null,1,'2020-03-09 00:00:00');
|
||||
|
||||
insert into posts
|
||||
values (4, 1, 4,null,1,1,'评论内容555',null,null,null,null,null,null,null,null);
|
||||
|
||||
insert into posts
|
||||
values (5, 1, 5,null,1,null,'评论内容666',null,null,4,null,null,null,null,null);
|
||||
insert into post
|
||||
values (3, 1, 3,'2020-01-09 00:00:00',1,1,'评论内容444',null,null,1,null,null,null,1,'2020-02-09 00:00:00');
|
||||
|
||||
insert into posts
|
||||
values (6, 1, 6,null,1,null,'评论内容777',null,null,5,null,null,null,null,null);
|
||||
insert into post
|
||||
values (4, 1, 4,'2020-01-09 00:00:00',2,1,'评论内容555',null,null,null,null,null,null,2,'2020-03-09 00:00:00');
|
||||
|
||||
insert into post
|
||||
values (5, 1, 5,'2020-01-09 00:00:00',2,null,'评论内容666',null,null,1,null,null,null,2,'2020-09-09 00:00:00');
|
||||
|
||||
insert into post
|
||||
values (6, 1, 6,'2020-01-09 00:00:00',1,null,'评论内容777',null,null,5,null,null,null,1,'2020-09-09 00:00:00');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-- 用户表1
|
||||
drop table if exists users;
|
||||
CREATE TABLE users(
|
||||
drop table if exists user;
|
||||
CREATE TABLE user(
|
||||
id INTEGER not null primary key auto_increment,
|
||||
username varchar(20),
|
||||
realname varchar(20),
|
||||
@@ -8,6 +8,7 @@ email varchar(20),
|
||||
password varchar(20),
|
||||
join_time datetime,
|
||||
age INTEGER,
|
||||
avatar text,
|
||||
gender char(20),
|
||||
phone char(20),
|
||||
discussions_count INTEGER,
|
||||
@@ -17,8 +18,8 @@ flag INTEGER,
|
||||
level INTEGER
|
||||
);
|
||||
-- 主题表2
|
||||
drop table if exists discussions;
|
||||
CREATE TABLE discussions(
|
||||
drop table if exists discussion;
|
||||
CREATE TABLE discussion(
|
||||
id INTEGER not null primary key auto_increment,
|
||||
title varchar(200),
|
||||
content text,
|
||||
@@ -39,14 +40,14 @@ create_id INTEGER,
|
||||
create_time datetime
|
||||
);
|
||||
-- 主题标签关联表3
|
||||
drop table if exists discussionstags;
|
||||
CREATE TABLE discussionstags(
|
||||
drop table if exists discussiontag;
|
||||
CREATE TABLE discussiontag(
|
||||
discussion_id INTEGER not null ,
|
||||
tag_id INTEGER
|
||||
);
|
||||
-- 评论表4
|
||||
drop table if exists posts;
|
||||
CREATE TABLE posts(
|
||||
drop table if exists post;
|
||||
CREATE TABLE post(
|
||||
id INTEGER not null primary key auto_increment ,
|
||||
discussion_id INTEGER,
|
||||
number INTEGER,
|
||||
@@ -64,14 +65,14 @@ create_id INTEGER,
|
||||
create_time datetime
|
||||
);
|
||||
-- 设置表5
|
||||
drop table if exists settings;
|
||||
CREATE TABLE settings(
|
||||
drop table if exists setting;
|
||||
CREATE TABLE setting(
|
||||
key varchar(20) primary key,
|
||||
value text
|
||||
);
|
||||
-- 标签表6
|
||||
drop table if exists tags;
|
||||
CREATE TABLE tags(
|
||||
drop table if exists tag;
|
||||
CREATE TABLE tag(
|
||||
id INTEGER not null primary key auto_increment,
|
||||
name varchar(200),
|
||||
description varchar(200),
|
||||
|
||||
@@ -9,20 +9,22 @@ $("#addPost").click(function () {
|
||||
console.log("点击 addPost");
|
||||
console.log(username);
|
||||
console.log(discussionsId);
|
||||
|
||||
let postId = $("#postId").val();
|
||||
console.log(postId);
|
||||
if(username && username!=null){
|
||||
var token = $("meta[name='_csrf']").attr("content");
|
||||
var header = $("meta[name='_csrf_header']").attr("content");
|
||||
console.warn(header)
|
||||
console.warn(token)
|
||||
var content = $("#postcontent").val();
|
||||
var content = $("#postContent").val();
|
||||
console.log(content);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/newpost",
|
||||
data: JSON.stringify({
|
||||
content: content,
|
||||
discussion_id: discussionsId
|
||||
discussionId: discussionsId,
|
||||
parentId: postId
|
||||
}),
|
||||
contentType: 'application/json',
|
||||
beforeSend: function(request) {
|
||||
@@ -32,7 +34,7 @@ $("#addPost").click(function () {
|
||||
success: function (data) {
|
||||
console.log(data);
|
||||
if(data.flag){
|
||||
massage(title+',添加成功!','');
|
||||
massage(content+',添加成功!','');
|
||||
location.reload();
|
||||
}else{
|
||||
massage(data.msg,'');
|
||||
@@ -46,4 +48,16 @@ $("#addPost").click(function () {
|
||||
}
|
||||
});
|
||||
|
||||
// 回复
|
||||
function replyThis(username, postId) {
|
||||
console.warn(username)
|
||||
console.warn(postId)
|
||||
$("#postId").val(postId);
|
||||
var content = $("#postContent").val();
|
||||
if (content) content += '\n';
|
||||
$("#postContent").val(content + "@" + username + " ");
|
||||
$("#postContent").focus();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="ui main menu" id="menu">
|
||||
<div class="ui container">
|
||||
<div href="#" class="header borderless item">
|
||||
<div href="/" class="header borderless item">
|
||||
<img class="logo" src="static/assets/images/logo.png">
|
||||
Jiscuss
|
||||
</div>
|
||||
|
||||
@@ -35,10 +35,13 @@
|
||||
<div id="context2">
|
||||
|
||||
<h2 class="ui header">
|
||||
<i class="save outline"></i>
|
||||
<i class="settings icon"></i>
|
||||
<div class="content">
|
||||
${discussions.title}
|
||||
<div class="sub header">某某标签分类</div>
|
||||
<#list tags as tag>
|
||||
<div class="sub header">${tag.name}</div>
|
||||
</#list>
|
||||
</div>
|
||||
</h2>
|
||||
|
||||
@@ -55,9 +58,15 @@
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="summary">
|
||||
用户 <a>测试人员1</a> 发布于
|
||||
用户 <a>${discussions.realname}</a> 发布于
|
||||
<div class="date">
|
||||
${discussions.createTime}
|
||||
${discussions.startTime}
|
||||
</div>
|
||||
</div>
|
||||
<div class="summary">
|
||||
用户 <a>${discussions.realnameLast}</a> 最后回复于
|
||||
<div class="date">
|
||||
${discussions.lastTime}
|
||||
</div>
|
||||
</div>
|
||||
<div class="meta">
|
||||
@@ -70,84 +79,57 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ui minimal comments">
|
||||
<div class="ui threaded comments">
|
||||
<h3 class="ui dividing header">评论区</h3>
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">用户6</a>
|
||||
<div class="metadata">
|
||||
<span class="date">Today at 5:42PM</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
测试测试6666!
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply">回复</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">用户7</a>
|
||||
<div class="metadata">
|
||||
<span class="date">Yesterday at 12:30AM</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
<p>测试评论!</p>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply">回复</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comments">
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">用户8</a>
|
||||
<div class="metadata">
|
||||
<span class="date">Just now</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
测试平路8 :)
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply">回复</a>
|
||||
</div>
|
||||
<input type="hidden" name="postId" id="postId" value=""/>
|
||||
<#list posts as post>
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">${post.username}</a>
|
||||
<div class="metadata">
|
||||
<span class="date">${post.createTime}</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
${post.content}
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply" onclick="replyThis('${post.username}', '${post.id}')">回复</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">测试用户999n</a>
|
||||
<div class="metadata">
|
||||
<span class="date">5 days ago</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
哈哈哈哈, 测试评论
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply">回复</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ui section divider"></div>
|
||||
<#list post.child as child>
|
||||
<div class="comments">
|
||||
<div class="comment">
|
||||
<a class="avatar">
|
||||
<img src="/static/assets/images/logo.png">
|
||||
</a>
|
||||
<div class="content">
|
||||
<a class="author">${child.username}</a>
|
||||
<div class="metadata">
|
||||
<span class="date">${child.createTime}</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
${child.content}
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="reply" onclick="replyThis('${child.username}', '${child.id}')">回复</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</#list>
|
||||
</div>
|
||||
</#list>
|
||||
|
||||
<div class="ui">
|
||||
|
||||
</div>
|
||||
<form class="ui reply form">
|
||||
<div class="field">
|
||||
<textarea id="postcontent"></textarea>
|
||||
<textarea id="postContent"></textarea>
|
||||
</div>
|
||||
<div class="ui blue labeled submit icon button" id="addPost">
|
||||
<i class="icon edit"></i> 添加评论
|
||||
@@ -155,13 +137,10 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="widescreen large screen computer tablet only four wide column">
|
||||
|
||||
<div class="widescreen large screen computer tablet only four wide column">
|
||||
<div class="ui fluid action input">
|
||||
<input type="text" placeholder="搜索...">
|
||||
<div class="ui button">搜索</div>
|
||||
@@ -200,30 +179,32 @@
|
||||
|
||||
<div class="ui card">
|
||||
<div class="content">
|
||||
<div class="header">预留功能</div>
|
||||
<div class="header">作者的热门主题</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h4 class="ui sub header">Jiscuss</h4>
|
||||
<div class="ui small feed">
|
||||
<div class="event">
|
||||
<div class="ui middle aligned divided list">
|
||||
<div class="item">
|
||||
<img class="ui avatar image" src="/static/assets/images/logo.png">
|
||||
<div class="content">
|
||||
<div class="summary">
|
||||
<a>Jiscuss</a> 一直持续更新, <a>Jiscuss</a> 一直更新完善,感谢支持!
|
||||
</div>
|
||||
<a class="header">他的测试主题1</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="event">
|
||||
<div class="item">
|
||||
<img class="ui avatar image" src="/static/assets/images/logo.png">
|
||||
<div class="content">
|
||||
<div class="summary">
|
||||
<a>2019</a> 测试内容
|
||||
</div>
|
||||
<a class="header">他的测试主题2</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img class="ui avatar image" src="/static/assets/images/logo.png">
|
||||
<div class="content">
|
||||
<a class="header">他的测试主题3</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra content">
|
||||
<button class="ui button">预留按钮</button>
|
||||
<p>预留信息</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -297,6 +278,7 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
<#if username??>
|
||||
setusername('${username}');
|
||||
console.log('已经登陆:' + username);
|
||||
</#if>
|
||||
setDiscussionsId('${discussions.id}');
|
||||
|
||||
Reference in New Issue
Block a user