Skip to content

Commit 9ddddb1

Browse files
committed
找回密码
1 parent 3e317b7 commit 9ddddb1

File tree

13 files changed

+233
-25
lines changed

13 files changed

+233
-25
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM openjdk:8-jre-alpine
22
LABEL maintainer="[email protected]"
33

4+
RUN echo "Asia/Shanghai" > /etc/timezone
45
ADD dbys.jar /bin/app/dbys.jar
56
ADD /lib /bin/app/lib
67
CMD exec java -Dloader.path="/bin/app/lib" -jar /bin/app/dbys.jar

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111
<groupId>com.danbai</groupId>
1212
<artifactId>ys</artifactId>
13-
<version>1.1.1</version>
13+
<version>1.1.2</version>
1414
<name>ys</name>
1515
<description>Demo project for Spring Boot</description>
1616
<properties>

src/main/java/com/danbai/ys/controller/MainController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ String reg() {
113113
return "reg";
114114
}
115115

116+
@RequestMapping(value = "/forgetpass", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
117+
@ApiOperation(value = "注册视图")
118+
String forgetPass() {
119+
return "forgetPass";
120+
}
121+
116122
@RequestMapping(value = "/reg", produces = "text/plain;charset=UTF-8", method = RequestMethod.POST)
117123
@ApiOperation(value = "注册api")
118124
String regApi(User user, Model model, String yzm) {

src/main/java/com/danbai/ys/controller/restful/v1/User.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,16 @@ public BaseResult thisUserGkls(HttpServletRequest request,Token token,Boolean so
6969
public BaseResult token(com.danbai.ys.entity.User user){
7070
return ResultUtil.success(userService.login(user));
7171
}
72+
7273
@DeleteMapping("/token")
7374
@ApiOperation(value ="退出登录删除token")
7475
public BaseResult exit(Token token){
7576
userService.deleteToken(token.getUsername());
7677
return ResultUtil.successOk();
7778
}
79+
@PostMapping("/forgetPass")
80+
@ApiOperation(value ="忘记密码通过邮箱修改")
81+
public BaseResult forgetPass(com.danbai.ys.entity.User user,String yzm){
82+
return ResultUtil.success(userService.forgetPass(user, yzm));
83+
}
7884
}

src/main/java/com/danbai/ys/service/UserService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,12 @@ public interface UserService {
105105
* @return
106106
*/
107107
Token login(User user);
108+
109+
/**
110+
* 忘记密码通过邮箱修改
111+
* @param user
112+
* @param yzm
113+
* @return
114+
*/
115+
String forgetPass(User user,String yzm);
108116
}

src/main/java/com/danbai/ys/service/impl/RegisterValidateServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ public void senValidate(String email) {
3838
for (int i = 0; i < MAXINT; i++) {
3939
yzm += String.valueOf(r.nextInt(10));
4040
}
41-
String content = "欢迎注册淡白影视,您的验证码是:" + yzm + ",有效时间4分钟";
42-
emailUtil.sendEmail("淡白影视注册邮件", content, email);
41+
String content = "欢迎使用淡白影视,您的验证码是:" + yzm + ",有效时间4分钟";
42+
emailUtil.sendEmail("淡白影视验证码邮件", content, email);
4343
redisTemplate.opsForValue().set(email, yzm, 4, TimeUnit.MINUTES);
4444
logger.info("向邮箱"+email+"发送验证邮件");
4545
}

src/main/java/com/danbai/ys/service/impl/UserServiceImpl.java

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.stereotype.Service;
1313
import org.springframework.ui.Model;
1414
import org.springframework.util.DigestUtils;
15+
import org.springframework.util.StringUtils;
1516
import tk.mybatis.mapper.entity.Example;
1617

1718
import javax.servlet.http.Cookie;
@@ -37,6 +38,7 @@ public class UserServiceImpl implements UserService {
3738
RegisterValidateServiceImpl registerValidateService;
3839
@Autowired
3940
RedisTemplate redisTemplate;
41+
4042
@Override
4143
public User getUser(User user) {
4244
return userMapper.selectOne(user);
@@ -45,7 +47,7 @@ public User getUser(User user) {
4547
@Override
4648
public boolean addUser(User user) {
4749
if (userMapper.insert(user) > 0) {
48-
logger.info("有新的用户啦!--"+user.getUsername());
50+
logger.info("有新的用户啦!--" + user.getUsername());
4951
return true;
5052
}
5153
return false;
@@ -83,13 +85,13 @@ public boolean yzUser(User user, HttpServletRequest request, HttpServletResponse
8385
user1.setUsername(user.getUsername());
8486
User user2 = getUser(user1);
8587
if (user2 != null) {
86-
if (DigestUtils.md5DigestAsHex((user.getUsername()+user.getPassword()).getBytes()).equals(user2.getPassword())) {
88+
if (DigestUtils.md5DigestAsHex((user.getUsername() + user.getPassword()).getBytes()).equals(user2.getPassword())) {
8789
HttpSession sessoin = request.getSession();
8890
sessoin.setMaxInactiveInterval(60 * 60 * 24);
8991
user2.setPassword("password");
9092
sessoin.setAttribute("user", user2);
9193
Cookie cookie = new Cookie("JSESSIONID", sessoin.getId());
92-
cookie.setMaxAge(60 * 60 * 24*7);
94+
cookie.setMaxAge(60 * 60 * 24 * 7);
9395
response.addCookie(cookie);
9496
return true;
9597
}
@@ -106,7 +108,7 @@ public void reg(User user, Model model, String yzm) {
106108
return;
107109
}
108110

109-
if(!Pattern.matches("^[\u4e00-\u9fa5_a-zA-Z0-9]+$",user.getUsername())){
111+
if (!Pattern.matches("^[\u4e00-\u9fa5_a-zA-Z0-9]+$", user.getUsername())) {
110112
model.addAttribute("message", "用户名不能有符号");
111113
return;
112114
}
@@ -122,7 +124,7 @@ public void reg(User user, Model model, String yzm) {
122124
return;
123125
}
124126
if (user1 == null) {
125-
user.setPassword(DigestUtils.md5DigestAsHex((user.getUsername()+user.getPassword()).getBytes()));
127+
user.setPassword(DigestUtils.md5DigestAsHex((user.getUsername() + user.getPassword()).getBytes()));
126128
user.setUserType(1);
127129
user.setHeadurl("http://gravatar.com/avatar/" + user.getUsername() + "?s=256&d=identicon");
128130
if (addUser(user)) {
@@ -159,7 +161,7 @@ public String regapp(User user, String yzm) {
159161
return JSON.toJSONString(map);
160162
}
161163
if (user1 == null) {
162-
user.setPassword(DigestUtils.md5DigestAsHex((user.getUsername()+user.getPassword()).getBytes()));
164+
user.setPassword(DigestUtils.md5DigestAsHex((user.getUsername() + user.getPassword()).getBytes()));
163165
user.setUserType(1);
164166
user.setHeadurl("http://gravatar.com/avatar/" + user.getUsername() + "?s=256&d=identicon");
165167
if (addUser(user)) {
@@ -179,29 +181,29 @@ public String regapp(User user, String yzm) {
179181

180182
@Override
181183
public Token createToken(String username) {
182-
String tokenid= UUID.randomUUID().toString().replace ("-", "");
183-
Token token=new Token(username,tokenid);
184-
redisTemplate.opsForValue().set(Token.TOKEN+username,token,7,TimeUnit.DAYS);
184+
String tokenid = UUID.randomUUID().toString().replace("-", "");
185+
Token token = new Token(username, tokenid);
186+
redisTemplate.opsForValue().set(Token.TOKEN + username, token, 7, TimeUnit.DAYS);
185187
return token;
186188
}
187189

188190
@Override
189191
public boolean checkToken(Token token) {
190-
if (token == null||token.getUsername()==null||token.getToken()==null||token.getUsername().length()<1|token.getToken().length()<1) {
192+
if (token == null || token.getUsername() == null || token.getToken() == null || token.getUsername().length() < 1 | token.getToken().length() < 1) {
191193
return false;
192194
}
193-
Token rtoken = (Token) redisTemplate.opsForValue().get(Token.TOKEN+token.getUsername());
194-
if(rtoken!=null&&rtoken.getToken().equals(token.getToken())){
195+
Token rtoken = (Token) redisTemplate.opsForValue().get(Token.TOKEN + token.getUsername());
196+
if (rtoken != null && rtoken.getToken().equals(token.getToken())) {
195197
// 如果验证成功,说明此用户进行了一次有效操作,延长 token 的过期时间
196-
redisTemplate.expire(Token.TOKEN+token.getUsername (),7, TimeUnit.DAYS);
198+
redisTemplate.expire(Token.TOKEN + token.getUsername(), 7, TimeUnit.DAYS);
197199
return true;
198200
}
199201
return false;
200202
}
201203

202204
@Override
203205
public void deleteToken(String username) {
204-
redisTemplate.delete(Token.TOKEN+username);
206+
redisTemplate.delete(Token.TOKEN + username);
205207
}
206208

207209
@Override
@@ -211,10 +213,40 @@ public Token login(User user) {
211213
user1.setUsername(user.getUsername());
212214
User user2 = getUser(user1);
213215
if (user2 != null) {
214-
if (DigestUtils.md5DigestAsHex((user.getUsername()+user.getPassword()).getBytes()).equals(user2.getPassword())) {
215-
return createToken(user.getUsername()); }
216+
if (DigestUtils.md5DigestAsHex((user.getUsername() + user.getPassword()).getBytes()).equals(user2.getPassword())) {
217+
return createToken(user.getUsername());
218+
}
216219
}
217220
}
218221
return null;
219222
}
223+
224+
@Override
225+
public String forgetPass(User user, String yzm) {
226+
if (StringUtils.isEmpty(yzm)) {
227+
return "验证码不能为空";
228+
}
229+
if (user != null) {
230+
String str = registerValidateService.getVerificationCode(user.getEmail());
231+
if (str != null && str.equals(yzm)) {
232+
registerValidateService.deleteVerificationCode(user.getEmail());
233+
User user2 = new User();
234+
user2.setUsername(user.getUsername());
235+
User user1 = getUser(user2);
236+
if (!user1.getEmail().equals(user.getEmail())) {
237+
return "用户名和邮箱不匹配";
238+
}
239+
user1.setPassword(DigestUtils.md5DigestAsHex((user.getUsername() + user.getPassword()).getBytes()));
240+
if (userMapper.updateByPrimaryKey(user1) == 1) {
241+
//退出登录
242+
deleteToken(user1.getUsername());
243+
return "修改成功";
244+
}
245+
246+
} else {
247+
return "验证码有误";
248+
}
249+
}
250+
return "请求数据有误,请检查";
251+
}
220252
}

src/main/java/com/danbai/ys/utils/ResultUtil.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ public static <T> BaseResult<T> error(String errorMsg) {
2222
public static <T> BaseResult<T> error(Integer code, String errorMsg) {
2323
return commonResult(0, code, errorMsg, null);
2424
}
25-
25+
public static <T> BaseResult<T> success(String msg) {
26+
return commonResult(1, 200, msg, null);
27+
}
2628
private static <T> BaseResult<T> commonResult(Integer status, Integer code, String errMsg, T data) {
2729
BaseResult<T> result = new BaseResult<>();
2830
result.setStatus(status);

src/main/java/com/danbai/ys/websocket/CinemaSocketManagement.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,13 @@ public static void roomInfo(String socketId) {
168168
JSONObject roomJson = new JSONObject();
169169
roomJson.put("type", "roomInfo");
170170
CinemaSocket cinemaSocket = CinemaSocket.POOL.get(socketId);
171+
if(cinemaSocket==null){
172+
return;
173+
}
171174
CinemaRoom room = CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId());
175+
if(room==null){
176+
return;
177+
}
172178
roomJson.put("id", room.getId());
173179
roomJson.put("name", room.getName());
174180
roomJson.put("online", room.getSockets().size());
@@ -189,7 +195,13 @@ public static void roomInfo(String socketId) {
189195

190196
public static void sendChat(String socketId, String msg) {
191197
CinemaSocket cinemaSocket = CinemaSocket.POOL.get(socketId);
198+
if(cinemaSocket==null){
199+
return;
200+
}
192201
CinemaRoom room = CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId());
202+
if(room==null){
203+
return;
204+
}
193205
JSONObject sendMsg = new JSONObject();
194206
sendMsg.put("type", "sendChat");
195207
sendMsg.put("id", Integer.parseInt(socketId, 16));
@@ -201,7 +213,13 @@ public static void sendChat(String socketId, String msg) {
201213

202214
public static void sendUrl(String socketId, String url) {
203215
CinemaSocket cinemaSocket = CinemaSocket.POOL.get(socketId);
216+
if(cinemaSocket==null){
217+
return;
218+
}
204219
CinemaRoom room = CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId());
220+
if(room==null){
221+
return;
222+
}
205223
if (room.getAuthorId().equals(socketId)) {
206224
CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId()).setUrl(url);
207225
JSONObject sendMsg = new JSONObject();
@@ -213,7 +231,13 @@ public static void sendUrl(String socketId, String url) {
213231

214232
public static void sendTime(String socketId, double time) {
215233
CinemaSocket cinemaSocket = CinemaSocket.POOL.get(socketId);
234+
if(cinemaSocket==null){
235+
return;
236+
}
216237
CinemaRoom room = CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId());
238+
if(room==null){
239+
return;
240+
}
217241
if (room.getAuthorId().equals(socketId)) {
218242
CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId()).setTime(time);
219243
JSONObject sendMsg = new JSONObject();
@@ -225,14 +249,19 @@ public static void sendTime(String socketId, double time) {
225249

226250
public static void transfer(String socketId, String transferId) {
227251
CinemaSocket cinemaSocket = CinemaSocket.POOL.get(socketId);
252+
if(cinemaSocket==null){
253+
return;
254+
}
228255
CinemaRoom room = CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId());
256+
if(room==null){
257+
return;
258+
}
229259
if (room.getAuthorId().equals(socketId)) {
230260
CinemaSocket.ROOM_POOL.get(cinemaSocket.getRoomId()).setAuthorId(Integer.toHexString(Integer.valueOf(transferId)));
231261
}
232262
}
233263

234264
public static void postTime(VideoTime videoTime, Token token){
235-
236265
//与一起看无关 观看历史同步
237266
if(SpringUtil.getBean(UserServiceImpl.class).checkToken(token)){
238267
SpringUtil.getBean(YsServiceImpl.class).addYsTime(videoTime);

0 commit comments

Comments
 (0)