From f4b06b0fdd76dc78ee0bedce896fa0d9af2f0b05 Mon Sep 17 00:00:00 2001 From: panqihua <1029559041@qq.com> Date: Sun, 19 Apr 2020 22:05:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E7=9A=84?= =?UTF-8?q?=E6=96=B0=E5=AF=86=E7=A0=81=E4=B8=8D=E8=83=BD=E4=B8=8E=E5=8E=9F?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E7=9B=B8=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pocket/api/android/UserController.java | 13 ++++--- .../entity/vo/android/ResetPwdResponse.java | 3 +- .../pocket/repository/android/UserDao.java | 35 +++++++++++++------ 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/community/pocket/api/android/UserController.java b/src/main/java/com/community/pocket/api/android/UserController.java index 40d71d1..cafa8c9 100644 --- a/src/main/java/com/community/pocket/api/android/UserController.java +++ b/src/main/java/com/community/pocket/api/android/UserController.java @@ -99,11 +99,16 @@ public class UserController { */ @PostMapping("/resetpwd/resetPwd") public ResetPwdResponse resetPwd(UserResetPwd userResetPwd) { - if(userDao.resetPwd(userResetPwd.getUsername(),userResetPwd.getPassword())){ - return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step3_ok); - }else{ - return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_fail); + if (userDao.isNotDiffPwd(userResetPwd)) { + return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_diff_password); + } else { + if (userDao.resetPwd(userResetPwd)) { + return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step3_ok); + } else { + return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_fail); + } } + } /** diff --git a/src/main/java/com/community/pocket/entity/vo/android/ResetPwdResponse.java b/src/main/java/com/community/pocket/entity/vo/android/ResetPwdResponse.java index 35f323f..81f50e0 100644 --- a/src/main/java/com/community/pocket/entity/vo/android/ResetPwdResponse.java +++ b/src/main/java/com/community/pocket/entity/vo/android/ResetPwdResponse.java @@ -20,6 +20,7 @@ public class ResetPwdResponse extends Response { step2_valid_ok, step2_valid_fail, step3_ok, - step3_fail + step3_fail, + step3_diff_password } } diff --git a/src/main/java/com/community/pocket/repository/android/UserDao.java b/src/main/java/com/community/pocket/repository/android/UserDao.java index de83f79..8e7b294 100644 --- a/src/main/java/com/community/pocket/repository/android/UserDao.java +++ b/src/main/java/com/community/pocket/repository/android/UserDao.java @@ -7,6 +7,7 @@ import com.community.pocket.entity.vo.android.*; import com.community.pocket.entity.vo.web.EditScore; import com.community.pocket.repository.BaseDao; import com.community.pocket.repository.CreditScoreDao; +import com.community.pocket.repository.EmailDao; import com.community.pocket.util.LookupOperationUtil; import com.mongodb.client.result.UpdateResult; import org.slf4j.Logger; @@ -35,6 +36,9 @@ public class UserDao extends BaseDao { @Autowired private CreditScoreDao creditScoreDao; + @Autowired + private EmailDao emailDao; + @Value("${register.credit-score}") private int creditScore; @@ -122,22 +126,33 @@ public class UserDao extends BaseDao { } //检查用户和邮箱是否对应 - public boolean hasUseWithEmail(String username, String email){ - if(!StringUtils.isEmpty(username)&&!StringUtils.isEmpty(email)){ - return mongoTemplate.exists(new Query().addCriteria(Criteria.where("username").is(username).and("email").is(email)),entityClass()); - }else{ + public boolean hasUseWithEmail(String username, String email) { + if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(email)) { + return mongoTemplate.exists(new Query().addCriteria(Criteria.where("username").is(username).and("email").is(email)), entityClass()); + } else { return false; } } - + + + //检查新密码是否和原密码重复 + public boolean isNotDiffPwd(UserResetPwd userResetPwd) { + String md5Password = DigestUtils.md5DigestAsHex(userResetPwd.getPassword().getBytes()); + MyInfo myInfo = mongoTemplate.findById(userResetPwd.getUsername(), entityClass()); + return myInfo != null && myInfo.getPassword().equals(md5Password) && emailDao.clearEmail(myInfo.getEmail()); + } //重置密码 - public boolean resetPwd(String username,String password){ - if(!StringUtils.isEmpty(username)&&!StringUtils.isEmpty(password)){ - String md5Password= DigestUtils.md5DigestAsHex(password.getBytes()); - UpdateResult result=mongoTemplate.updateFirst(new Query().addCriteria(Criteria.where("username").is(username)), Update.update("password",md5Password),entityClass()); + public boolean resetPwd(UserResetPwd userResetPwd) { + String username = userResetPwd.getUsername(); + String password = userResetPwd.getPassword(); + String md5Password = DigestUtils.md5DigestAsHex(password.getBytes()); + if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(md5Password)) { + UpdateResult result = mongoTemplate.updateFirst(new Query().addCriteria( + Criteria.where("username").is(username)), + Update.update("password", md5Password), entityClass()); return result.wasAcknowledged(); - }else{ + } else { return false; } }