From 2b79f2033d7606eb9fb449af39ae3c41145edecd Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 20 一月 2025 19:49:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 4 +- ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java | 19 +++++---- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java | 15 +++++-- ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java | 5 ++ ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 20 +++++++++- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java | 2 + 6 files changed, 48 insertions(+), 17 deletions(-) diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java index f8b68e0..9bd8052 100644 --- a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java @@ -1,13 +1,13 @@ package com.ruoyi.company.api; -import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.constant.ServiceNameConstants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.company.api.domain.User; -import com.ruoyi.company.api.factory.RemoteCompanyUserServiceFallbackFactory; -import com.ruoyi.company.api.model.RegisterUser; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.*; + import com.ruoyi.common.core.constant.SecurityConstants; + import com.ruoyi.common.core.constant.ServiceNameConstants; + import com.ruoyi.common.core.domain.R; + import com.ruoyi.company.api.domain.User; + import com.ruoyi.company.api.factory.RemoteCompanyUserServiceFallbackFactory; + import com.ruoyi.company.api.model.RegisterUser; + import org.springframework.cloud.openfeign.FeignClient; + import org.springframework.web.bind.annotation.*; @FeignClient(contextId = "remoteCompanyUserService", value = ServiceNameConstants.COMPANY_SERVICE, fallbackFactory = RemoteCompanyUserServiceFallbackFactory.class) public interface RemoteCompanyUserService { @@ -16,4 +16,7 @@ @GetMapping("/user/getUserByAccountName") public R<User> getUserByAccountName(@RequestParam("accountName") String accountName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @GetMapping("/user/getUserByPhone") + public R<User> getUserByPhone(@RequestParam("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java index f8cb83d..23a2414 100644 --- a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java @@ -27,6 +27,11 @@ public R<User> getUserByAccountName(String accountName, String source) { return R.fail("获取用户信息失败:"+cause.getMessage()); } + + @Override + public R<User> getUserByPhone(String phone, String source) { + return R.fail("获取用户信息失败:"+cause.getMessage()); + } }; } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 149e560..95579e8 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -111,7 +111,7 @@ // 验证码生成 String code = String.valueOf(Math.random()).substring(2, 6); // 缓存验证码 - String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + registerUser.getPhone(); + String verifyKey = CacheConstants.PHONE_CODE_KEY + registerUser.getPhone(); redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); // 发送验证码 TODO String result = SmsUtils.sendSms(registerUser.getPhone(), code); @@ -119,7 +119,7 @@ { return R.fail("验证码发送失败"); } - return R.ok(code); + return R.ok(); } @PostMapping("companyLogin") diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index b237eba..2d6ab96 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -183,7 +183,10 @@ throw new CaptchaException("验证码错误"); } } - remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER); + R<Boolean> booleanR = remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER); + if (R.isError(booleanR)){ + throw new ServiceException("注册失败"); + } } @@ -192,6 +195,19 @@ String accountName = registerUser.getAccountName(); String password = registerUser.getPassword(); + R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); + if (R.isError(userByPhoneR)){ + throw new ServiceException(userByPhoneR.getMsg()); + } + if (userByPhoneR.getData() == null){ + throw new ServiceException("账号不存在"); + } + + if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())){ + return userByPhoneR.getData(); + } + + R<User> r = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); if (R.isError(r)){ throw new ServiceException(r.getMsg()); @@ -199,7 +215,7 @@ if (r.getData() == null){ throw new ServiceException("账号不存在"); } - if (!SecurityUtils.matchesPassword(r.getData().getPassword(), password)){ + if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())){ throw new ServiceException("密码错误"); } return r.getData(); diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java index 283a7dd..ce70eb6 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java @@ -8,10 +8,8 @@ import com.ruoyi.company.api.model.UserDetail; import com.ruoyi.company.service.UserService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import lombok.experimental.StandardException; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/front/user") @@ -20,7 +18,7 @@ private final UserService userService; @PostMapping("/register") - public R register(RegisterUser registerUser) { + public R register(@RequestBody RegisterUser registerUser) { userService.register(registerUser); return R.ok(); } @@ -36,4 +34,11 @@ return R.ok(userService.getOne(new LambdaQueryWrapper<User>() .eq(User::getAccountName,accountName))); } + + @GetMapping("/getUserByPhone") + @InnerAuth + public R<User> getUserByPhone(String phone){ + return R.ok(userService.getOne(new LambdaQueryWrapper<User>() + .eq(User::getPhone,phone))); + } } diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java index 947cf87..e945271 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.company.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; @@ -19,6 +20,7 @@ private final CompanyService companyService; @Override + @Transactional(rollbackFor = Exception.class) public void register(RegisterUser registerUser) { String accountName = registerUser.getAccountName(); String password = registerUser.getPassword(); -- Gitblit v1.7.1