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); } 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()); } }; } } 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") 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(); 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))); } } 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();