diff --git a/src/main/java/com/example/catchTheLetters/controller/AuthController.java b/src/main/java/com/example/catchTheLetters/controller/AuthController.java index c512a3a..b4187bc 100644 --- a/src/main/java/com/example/catchTheLetters/controller/AuthController.java +++ b/src/main/java/com/example/catchTheLetters/controller/AuthController.java @@ -1,5 +1,6 @@ package com.example.catchTheLetters.controller; +import com.example.catchTheLetters.entity.Forget; import com.example.catchTheLetters.model.dto.LoginDto; import com.example.catchTheLetters.model.dto.RegisterDto; import com.example.catchTheLetters.entity.User; @@ -92,4 +93,10 @@ public class AuthController { public R uploadAvatar(@RequestHeader("token") String token, @RequestParam("file") MultipartFile file) { return authService.uploadAvatar(token, file); } + + @ApiOperation(value = "忘记密码") + @PostMapping("/forget-password") + public R forgetPassword(@RequestBody Forget forget){ + return authService.forgetPassword(forget.getEmail(),forget.getPassword()); + } } diff --git a/src/main/java/com/example/catchTheLetters/entity/Forget.java b/src/main/java/com/example/catchTheLetters/entity/Forget.java new file mode 100644 index 0000000..e05ea1d --- /dev/null +++ b/src/main/java/com/example/catchTheLetters/entity/Forget.java @@ -0,0 +1,13 @@ +package com.example.catchTheLetters.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Forget { + String email; + String password; +} diff --git a/src/main/java/com/example/catchTheLetters/service/AuthService.java b/src/main/java/com/example/catchTheLetters/service/AuthService.java index 0a48d2f..10843d4 100644 --- a/src/main/java/com/example/catchTheLetters/service/AuthService.java +++ b/src/main/java/com/example/catchTheLetters/service/AuthService.java @@ -78,4 +78,6 @@ public interface AuthService { * @return 头像地址 */ R uploadAvatar(String token, MultipartFile file); + + R forgetPassword(String email,String newPassword); } diff --git a/src/main/java/com/example/catchTheLetters/service/impl/AuthServiceImpl.java b/src/main/java/com/example/catchTheLetters/service/impl/AuthServiceImpl.java index 6ea74d7..5ecf9e4 100644 --- a/src/main/java/com/example/catchTheLetters/service/impl/AuthServiceImpl.java +++ b/src/main/java/com/example/catchTheLetters/service/impl/AuthServiceImpl.java @@ -12,10 +12,12 @@ import com.example.catchTheLetters.utils.DESUtil; import com.example.catchTheLetters.utils.JwtUtil; import com.example.catchTheLetters.utils.MinioUtil; import com.example.catchTheLetters.utils.R; +import com.mongodb.client.result.UpdateResult; import jakarta.annotation.Resource; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -230,4 +232,16 @@ public class AuthServiceImpl implements AuthService { return success ? R.ok("http://1.14.105.160:9001/catchtheletters/avatar/" + fileName) : R.fail("上传失败"); } + + @Override + public R forgetPassword(String email, String newPassword) { + String password = desUtil.SHA512(newPassword); + Query query = new Query(Criteria.where("email").is(email)); + Update update = new Update().set("password", password); + UpdateResult updateResult = mongoTemplate.updateFirst(query, update, User.class); + if (updateResult.getMatchedCount() == 0) { + return R.fail("no user found"); + } + return R.ok("修改成功"); + } }