添加二次点击取消置顶功能 + 更新配套教程

This commit is contained in:
Veal98 2021-05-14 21:43:41 +08:00
parent de5bd1adcb
commit 98c604ed53
9 changed files with 45 additions and 34 deletions

View File

@ -15,7 +15,7 @@
[![fork](https://gitee.com/veal98/Echo/badge/fork.svg?theme=dark)](https://gitee.com/veal98/Echo/members)
[![GitHub stars](https://img.shields.io/github/stars/Veal98/Echo?logo=github)](https://github.com/Veal98/Echo/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/Veal98/Echo?logo=github)](https://github.com/Veal98/Echo/network)
[![version](https://img.shields.io/badge/version-2.0-brightgreen)]()
[![version](https://img.shields.io/badge/version-2.1-brightgreen)]()
<a href="#-微信交流群"><img src="https://img.shields.io/badge/交流-微信群-orange" alt="交流群"></a>
<a href="#-配套教程"><img src="https://img.shields.io/badge/配套教程-公众号飞天小牛肉-blueviolet" alt="配套教程"></a>
@ -67,7 +67,7 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
- [Echo 的帖子列表与分页是怎么做的](https://mp.weixin.qq.com/s/R5CtsXaS9hIOOePxQZcZhg)
- [Echo 的评论是如何显示的](https://mp.weixin.qq.com/s/0avudnypPu3EewzoU3sEwA)
- [Echo 的发布评论是怎么做的](https://mp.weixin.qq.com/s/S5bNpzuZFga2u15ik2t2iQ)
- Echo 的私信列表与详情页是怎么做的
- [Echo 的私信列表与详情页是怎么做的](https://mp.weixin.qq.com/s/ymYrAsJoilO531lilwdmfg)
- Echo 的发送私信是怎么做的
- Echo 的点赞模块是怎么做的
- Echo 的关注模块是怎么做的
@ -135,10 +135,20 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
![](https://gitee.com/veal98/images/raw/master/img/20210211205558.png)
帖子发布页(支持 MarkDown
![](https://gitee.com/veal98/images/raw/master/img/20210512101041.png)
帖子详情页MarkDown 渲染):
![](https://gitee.com/veal98/images/raw/master/img/20210512101202.png)
帖子详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205741.png)
个人主页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205820.png)
@ -262,7 +272,7 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
以下是我觉得本项目还可以添加的功能,同样欢迎各位小伙伴提 issue 指出还可以增加哪些功能,或者直接提 PR 实现该功能:
- [ ] 发帖支持 Markdown 格式
- [x] 发帖支持 Markdown 格式
- [ ] 忘记密码(发送邮件找回密码)
- [ ] 查询我的点赞
- [ ] 管理员对帖子的二次点击取消置顶功能
@ -504,6 +514,7 @@ double score = Math.log10(Math.max(w, 1))
- [freedom_dh](https://gitee.com/dh_free)
- [paulisusu](https://gitee.com/paulisusu)
- [Max (Lyingfromyou)](https://gitee.com/Lyingfromyou)
> 🔗 友情链接(若您想要出现在这里,可以上方扫描微信二维码联系我):
>

View File

@ -40,7 +40,7 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
- [Echo 的帖子列表与分页是怎么做的](https://mp.weixin.qq.com/s/R5CtsXaS9hIOOePxQZcZhg)
- [Echo 的评论是如何显示的](https://mp.weixin.qq.com/s/0avudnypPu3EewzoU3sEwA)
- [Echo 的发布评论是怎么做的](https://mp.weixin.qq.com/s/S5bNpzuZFga2u15ik2t2iQ)
- Echo 的私信列表与详情页是怎么做的
- [Echo 的私信列表与详情页是怎么做的](https://mp.weixin.qq.com/s/ymYrAsJoilO531lilwdmfg)
- Echo 的发送私信是怎么做的
- Echo 的点赞模块是怎么做的
- Echo 的关注模块是怎么做的
@ -108,6 +108,14 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
![](https://gitee.com/veal98/images/raw/master/img/20210211205558.png)
帖子发布页(支持 MarkDown
![](https://gitee.com/veal98/images/raw/master/img/20210512101041.png)
帖子详情页MarkDown 渲染):
![](https://gitee.com/veal98/images/raw/master/img/20210512101202.png)
帖子详情页:
![](https://gitee.com/veal98/images/raw/master/img/20210211205741.png)
@ -477,6 +485,7 @@ double score = Math.log10(Math.max(w, 1))
- [freedom_dh](https://gitee.com/dh_free)
- [paulisusu](https://gitee.com/paulisusu)
- [Max (Lyingfromyou)](https://gitee.com/Lyingfromyou)
> 🔗 友情链接(若您想要出现在这里,可以上方扫描微信二维码联系我):
>

View File

@ -1,6 +1,6 @@
![Logo](https://gitee.com/veal98/images/raw/master/img/20210211175136.png)
# Echo <small>2.0</small>
# Echo <small>2.1</small>
> 🦄 开源社区系统

View File

@ -10,9 +10,6 @@ import com.greate.community.util.CommunityConstant;
import com.greate.community.util.CommunityUtil;
import com.greate.community.util.HostHolder;
import com.greate.community.util.RedisKeyUtil;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
@ -22,8 +19,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.util.HtmlUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.*;
@ -63,18 +58,6 @@ public class DiscussPostController implements CommunityConstant {
@Value("${server.servlet.context-path}")
private String contextPath;
@Value("${qiniu.key.access}")
private String accessKey;
@Value("${qiniu.key.secret}")
private String secretKey;
@Value("${qiniu.bucket.header.name}")
private String headerBucketName;
@Value("${qiniu.bucket.header.url}")
private String headerBucketUrl;
// editorMd 图片上传地址
@Value("${community.path.editormdUploadPath}")
private String editormdUploadPath;
@ -251,8 +234,8 @@ public class DiscussPostController implements CommunityConstant {
*/
@PostMapping("/top")
@ResponseBody
public String setTop(int id) {
discussPostService.updateType(id, 1);
public String updateTop(int id, int type) {
discussPostService.updateType(id, type);
// 触发发帖事件通过消息队列将其存入 Elasticsearch 服务器
Event event = new Event()

View File

@ -40,6 +40,8 @@ public class MessageController implements CommunityConstant {
@GetMapping("/letter/list")
public String getLetterList(Model model, Page page) {
// Integer.valueOf("abc"); // 测试统一异常处理普通请求
// 获取当前登录用户信息
User user = hostHolder.getUser();
// 分页信息
page.setLimit(5);
@ -114,7 +116,6 @@ public class MessageController implements CommunityConstant {
}
return "/site/letter-detail";
}
/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,5 +1,5 @@
$(function(){
$("#topBtn").click(setTop);
$("#topBtn").click(updateTop);
$("#wonderfulBtn").click(setWonderful);
$("#deleteBtn").click(setDelete);
});
@ -23,16 +23,20 @@ function like(btn, entityType, entityId, entityUserId, postId) {
)
}
// 置顶
function setTop() {
// 置顶 or 取消置顶
function updateTop() {
$.post(
CONTEXT_PATH + "/discuss/top",
{"id":$("#postId").val()},
{
"id": $("#postId").val(),
// $("#postType").val() 帖子当前的 type
"type": ($("#postType").val() == 1) ? 0 : 1
},
function (data) {
data = $.parseJSON(data);
if (data.code == 0) {
// 置顶成功后,将置顶按钮设置为不可用
$("#topBtn").attr("disabled", "disable")
// 偷个懒,直接刷新界面
window.location.reload();
}
else {
alert(data.msg);

View File

@ -28,8 +28,11 @@
<span th:utext="${post.title}"></span>
<div class="float-right">
<input type="hidden" id="postId" th:value="${post.id}">
<button type="button" class="btn btn-danger btn-sm" id="topBtn"
th:disabled="${post.type == 1}" sec:authorize="hasAnyAuthority('moderator')">置顶</button>
<input type="hidden" id="postType" th:value="${post.type}">
<button type="button" th:class="|btn ${post.type == 0 ? 'btn-danger' : 'btn-info'} btn-sm|" id="topBtn"
th:text="${post.type == 0 ? '置顶' : '取消置顶'}"
sec:authorize="hasAnyAuthority('moderator')">
</button>
<button type="button" class="btn btn-danger btn-sm" id="wonderfulBtn"
th:disabled="${post.status == 1}" sec:authorize="hasAnyAuthority('moderator')">加精</button>
<button type="button" class="btn btn-danger btn-sm" id="deleteBtn"

View File

@ -46,7 +46,7 @@
<span>注册于 <i class="text-muted" th:text="${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}"></i></span>
</div>
<div class="text-muted mt-3 mb-5">
<a class="text-primary" th:href="@{|/followees/${user.id}|}" style="margin-right: 6px">
<a class="text-primary" th:href="@{|/fo 11llowees/${user.id}|}" style="margin-right: 6px">
<button type="button" class="btn btn-secondary">
关注了 <span class="badge badge-info" th:text="${followeeCount}"></span>
</button>