更新配套教程
This commit is contained in:
parent
71a4b24cfe
commit
c0ae1c766b
12
README.md
12
README.md
@ -76,8 +76,7 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
- [Echo 的发送私信是怎么做的](https://mp.weixin.qq.com/s/gLn5VXegsip5Od5gx52iUA)
|
||||
- [Echo 的点赞模块是怎么做的](https://mp.weixin.qq.com/s/lzPp5XeATTlHOCc8p5MF_w)
|
||||
- [Echo 的关注模块是怎么做的](https://mp.weixin.qq.com/s/dx2jBqlUnhep7O6oknR5cg)
|
||||
- Echo 的发送系统通知是怎么做的
|
||||
- Echo 的系统通知是如何显示的
|
||||
- [Echo 的系统通知模块是怎么做的](https://mp.weixin.qq.com/s/SqATRA8Wt2a4GYWv0HqQAA)
|
||||
- Echo 的置顶、加精、删除帖子是怎么做的
|
||||
- Echo 是如何统计网站数据的
|
||||
- Echo 的搜索模块是怎么做的
|
||||
@ -136,6 +135,10 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210211205558.png)
|
||||
|
||||
密码重置页:
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210709003428.png)
|
||||
|
||||
帖子发布页(支持 MarkDown):
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210512101041.png)
|
||||
@ -274,9 +277,9 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
以下是我觉得本项目还可以添加的功能,同样欢迎各位小伙伴提 issue 指出还可以增加哪些功能,或者直接提 PR 实现该功能:
|
||||
|
||||
- [x] 发帖支持 Markdown 格式
|
||||
- [ ] 忘记密码(发送邮件找回密码)
|
||||
- [x] 忘记密码(发送邮件找回密码)(Implemented by [逆光影者 (cpfree) ](https://gitee.com/cpfree))
|
||||
- [ ] 查询我的点赞
|
||||
- [x] 管理员对帖子的二次点击取消置顶功能
|
||||
- [x] 管理员对帖子的二次点击取消置顶功能(Partially Implement by [Max (Lyingfromyou)](https://gitee.com/Lyingfromyou))
|
||||
- [ ] 管理员对已删除帖子的恢复功能(本项目中的删除帖子并未将其从数据库中删除,只是将其状态设置为了拉黑)
|
||||
|
||||
## 🌱 本地运行
|
||||
@ -516,6 +519,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)
|
||||
- [逆光影者 (cpfree) ](https://gitee.com/cpfree)
|
||||
|
||||
> 🔗 友情链接(若您想要出现在这里,可以上方扫描微信二维码联系我):
|
||||
>
|
||||
|
@ -49,8 +49,7 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
- [Echo 的发送私信是怎么做的](https://mp.weixin.qq.com/s/gLn5VXegsip5Od5gx52iUA)
|
||||
- [Echo 的点赞模块是怎么做的](https://mp.weixin.qq.com/s/lzPp5XeATTlHOCc8p5MF_w)
|
||||
- [Echo 的关注模块是怎么做的](https://mp.weixin.qq.com/s/dx2jBqlUnhep7O6oknR5cg)
|
||||
- Echo 的发送系统通知是怎么做的
|
||||
- Echo 的系统通知是如何显示的
|
||||
- [Echo 的系统通知模块是怎么做的](https://mp.weixin.qq.com/s/SqATRA8Wt2a4GYWv0HqQAA)
|
||||
- Echo 的置顶、加精、删除帖子是怎么做的
|
||||
- Echo 是如何统计网站数据的
|
||||
- Echo 的搜索模块是怎么做的
|
||||
@ -108,6 +107,12 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210211205558.png)
|
||||
|
||||
密码重置页:
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210709003428.png)
|
||||
|
||||
|
||||
|
||||
帖子发布页(支持 MarkDown):
|
||||
|
||||
![](https://gitee.com/veal98/images/raw/master/img/20210512101041.png)
|
||||
@ -244,9 +249,9 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java
|
||||
以下是我觉得本项目还可以添加的功能,同样欢迎各位小伙伴提 issue 指出还可以增加哪些功能,或者直接提 PR 实现该功能:
|
||||
|
||||
- [x] 发帖支持 Markdown 格式
|
||||
- [ ] 忘记密码(发送邮件找回密码)
|
||||
- [x] 忘记密码(发送邮件找回密码)(Implemented by [逆光影者 (cpfree) ](https://gitee.com/cpfree))
|
||||
- [ ] 查询我的点赞
|
||||
- [x] 管理员对帖子的二次点击取消置顶功能
|
||||
- [x] 管理员对帖子的二次点击取消置顶功能(Partially Implement by [Max (Lyingfromyou)](https://gitee.com/Lyingfromyou))
|
||||
- [ ] 管理员对已删除帖子的恢复功能(本项目中的删除帖子并未将其从数据库中删除,只是将其状态设置为了拉黑)
|
||||
|
||||
## 🌱 本地运行
|
||||
@ -486,6 +491,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)
|
||||
- [逆光影者 (cpfree) ](https://gitee.com/cpfree)
|
||||
|
||||
> 🔗 友情链接(若您想要出现在这里,可以上方扫描微信二维码联系我):
|
||||
>
|
||||
|
@ -20,10 +20,8 @@ import javax.imageio.ImageIO;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
@ -36,12 +36,6 @@ public class EventConsumer implements CommunityConstant {
|
||||
@Autowired
|
||||
private ElasticsearchService elasticsearchService;
|
||||
|
||||
@Value("${qiniu.key.access}")
|
||||
private String accessKey;
|
||||
|
||||
@Value("${qiniu.key.secret}")
|
||||
private String secretKey;
|
||||
|
||||
/**
|
||||
* 消费评论、点赞、关注事件
|
||||
* @param record
|
||||
|
@ -44,8 +44,6 @@ public interface CommunityConstant {
|
||||
// Kafka 主题:删帖
|
||||
String TOPIC_DELETE = "delete";
|
||||
|
||||
// Kafka 主题:分享
|
||||
String TOPIC_SHARE = "share";
|
||||
|
||||
// 系统用户的 id
|
||||
int SYSTEM_USER_ID = 1;
|
||||
|
106
src/main/resources/templates/site/forget.html
Normal file
106
src/main/resources/templates/site/forget.html
Normal file
@ -0,0 +1,106 @@
|
||||
<!doctype html>
|
||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="icon" type="shortcut icon" th:href="@{/img/favicon.ico}"/>
|
||||
<link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap.min.css}"/>
|
||||
<link rel="stylesheet" type="text/css" th:href="@{/css/global.css}"/>
|
||||
<link rel="stylesheet" type="text/css" th:href="@{/css/login.css}"/>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css">
|
||||
<title>Echo - 重置密码</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nk-container">
|
||||
<!-- 头部 -->
|
||||
<header class="bg-dark sticky-top" th:replace="index::header"></header>
|
||||
|
||||
<!-- 内容 -->
|
||||
<div class="main">
|
||||
<div class="container pl-5 pr-5 pt-3 pb-3 mt-3 mb-3">
|
||||
<h3 class="text-center text-info border-bottom pb-3">重置 密码</h3>
|
||||
<form class="mt-5" id="resetPwdForm">
|
||||
<div class="form-group row">
|
||||
<label for="username" class="col-sm-2 col-form-label text-right">账号或邮箱:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="username"
|
||||
th:class="|form-control ${usernameMsg!=null ? 'is-invalid' : ''}|"
|
||||
th:value="${user!=null ? user.username : ''}"
|
||||
name="username" placeholder="请输入您的账号或绑定的邮箱!" required>
|
||||
<!--错误提示消息, 当 上面的 input class = is-invalid 时显示-->
|
||||
<div class="invalid-feedback">
|
||||
请输入请输入您的账号或绑定的邮箱
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mt-4">
|
||||
<label for="password" class="col-sm-2 col-form-label text-right">新密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" id="password"
|
||||
th:class="|form-control ${passwordMsg!=null ? 'is-invalid' : ''}|"
|
||||
th:value="${user!=null ? user.password : ''}"
|
||||
name="password" placeholder="请输入新密码!" required>
|
||||
<!--错误提示消息-->
|
||||
<div class="invalid-feedback">
|
||||
请输入新密码
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mt-4">
|
||||
<label for="confirm-password" class="col-sm-2 col-form-label text-right">确认新密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" id="confirm-password"
|
||||
th:value="${user!=null ? user.password : ''}"
|
||||
placeholder="请再次输入新密码!" required>
|
||||
<div class="invalid-feedback">
|
||||
请确任两次密码是否匹配
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mt-4">
|
||||
<label for="kaptchaCode" class="col-sm-2 col-form-label text-right">验证码:</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" th:class="|form-control ${codeMsg != null ? 'is-invalid' : ''}|"
|
||||
id="kaptchaCode" name="kaptchaCode" placeholder="请输入验证码!">
|
||||
<div class="invalid-feedback">
|
||||
请输入图片验证码
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<a href="javascript:refresh_kaptcha();" class="font-size-12 align-bottom">
|
||||
<img th:src="@{/kaptcha}" id = "kaptcha" style="width:100px;height:40px;" class="mr-2"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mt-4">
|
||||
<label for="emailVerifyCode" class="col-sm-2 col-form-label text-right">邮箱验证码:</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="emailVerifyCode" name="emailVerifyCode" placeholder="请输入邮箱验证码!">
|
||||
<div class="invalid-feedback">
|
||||
请输入邮箱验证码
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<a id="hideDiv" href="javascript:sendEmailCodeForResetPwd();" class="btn btn-info form-control">获取邮箱验证码</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mt-4">
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-10 text-center">
|
||||
<button type="button" id="resetPwd" class="btn btn-info text-white form-control">重置密码</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 尾部 -->
|
||||
<footer class="bg-dark" th:replace="index::footer"></footer>
|
||||
</div>
|
||||
|
||||
<script th:src="@{/js/jquery-3.1.0.min.js}"></script>
|
||||
<script th:src="@{/js/popper.min.js}"></script>
|
||||
<script th:src="@{/js/bootstrap.min.js}"></script>
|
||||
<script th:src="@{/js/forget.js}"></script>
|
||||
</body>
|
||||
</html>
|
@ -18,7 +18,7 @@
|
||||
<!-- 内容 -->
|
||||
<div class="main">
|
||||
<div class="container pl-5 pr-5 pt-3 pb-3 mt-3 mb-3">
|
||||
<h3 class="text-center text-info border-bottom pb-3">重置 密码</h3>
|
||||
<h3 class="text-center text-info border-bottom pb-3">重置密码</h3>
|
||||
<form class="mt-5" id="resetPwdForm">
|
||||
<div class="form-group row">
|
||||
<label for="username" class="col-sm-2 col-form-label text-right">账号或邮箱:</label>
|
||||
@ -101,6 +101,6 @@
|
||||
<script th:src="@{/js/jquery-3.1.0.min.js}"></script>
|
||||
<script th:src="@{/js/popper.min.js}"></script>
|
||||
<script th:src="@{/js/bootstrap.min.js}"></script>
|
||||
<script th:src="@{/js/forget.js}"></script>
|
||||
<script th:src="@{/static/js/reset-pwd.js}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user