From 959aae945779b5e46d5d362e371a0c3b746e2b9f Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 21 一月 2025 19:51:10 +0800
Subject: [PATCH] 1

---
 ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java |   71 ++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 26 deletions(-)

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 d0f82e2..7570b9a 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
@@ -1,23 +1,13 @@
 package com.ruoyi.auth.service;
 
-import com.ruoyi.common.core.exception.CaptchaException;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.ruoyi.company.api.RemoteCompanyService;
-import com.ruoyi.company.api.RemoteCompanyUserService;
-import com.ruoyi.company.api.domain.Company;
-import com.ruoyi.company.api.domain.User;
-import com.ruoyi.company.api.model.RegisterUser;
-import lombok.RequiredArgsConstructor;
-import org.jacoco.agent.rt.internal_43f5073.core.internal.flow.IFrame;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
+import com.ruoyi.auth.form.MgtPasswordDTO;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.UserStatus;
+import com.ruoyi.common.core.exception.CaptchaException;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.text.Convert;
 import com.ruoyi.common.core.utils.DateUtils;
@@ -25,13 +15,22 @@
 import com.ruoyi.common.core.utils.ip.IpUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.company.api.RemoteCompanyService;
+import com.ruoyi.company.api.RemoteCompanyUserService;
+import com.ruoyi.company.api.domain.Company;
+import com.ruoyi.company.api.domain.User;
+import com.ruoyi.company.api.domain.dto.MgtCompanyDTO;
+import com.ruoyi.company.api.model.RegisterUser;
 import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 登录校验方法
@@ -150,7 +149,7 @@
         recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功");
     }
 
-    public void companyRegister(RegisterUser registerUser) {
+    public void companyRegister(MgtCompanyDTO registerUser) {
         String accountName = registerUser.getAccountName();
         String password = registerUser.getPassword();
         // 用户名或密码为空 错误
@@ -206,10 +205,21 @@
 
 
     public void resetPwd(RegisterUser registerUser) {
+        R<User> userR = resetPwdCheck(registerUser);
+        User user = userR.getData();
+        String password = SecurityUtils.encryptPassword(registerUser.getPassword());
+        user.setPassword(password);
+        R<Void> r = remoteCompanyUserService.updateUser(user);
+        if (R.isError(r)) {
+            throw new ServiceException(userR.getMsg());
+        }
+    }
+
+    public R<User> resetPwdCheck(RegisterUser registerUser) {
         String accountName = registerUser.getAccountName();
         R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER);
         if (R.isError(userByPhoneR)) {
-            throw new ServiceException(userByPhoneR.getMsg());
+            throw new RuntimeException(userByPhoneR.getMsg());
         }
         boolean check = false;
         R<User> userR = new R<>();
@@ -219,24 +229,17 @@
         if (!check){
             userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER);
             if (R.isError(userR)) {
-                throw new ServiceException(userR.getMsg());
+                throw new RuntimeException(userR.getMsg());
             }
             if (userR.getData() == null) {
-                throw new ServiceException("账号不存在");
+                throw new RuntimeException("账号不存在");
             }
             check = check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber());
         }
-
         if (!check) {
-            throw new ServiceException("账号不存在");
+            throw new RuntimeException("账号不存在");
         }
-        String password = SecurityUtils.encryptPassword(registerUser.getPassword());
-        User user = userR.getData();
-        user.setPassword(password);
-        R<Void> r = remoteCompanyUserService.updateUser(user);
-        if (R.isError(r)) {
-            throw new ServiceException(userR.getMsg());
-        }
+        return userR;
     }
 
     public boolean check(User user, String companyName, String idCardNumber) {
@@ -256,4 +259,20 @@
         return false;
     }
 
+    /**
+     * 管理端-修改密码
+     * @param dto
+     */
+    public void modifyPwd(MgtPasswordDTO dto) {
+        Long userId = SecurityUtils.getUserId();
+        SysUser sysUser = remoteUserService.getUserById(userId, SecurityConstants.INNER).getData();
+        if (Objects.isNull(sysUser)){
+            throw new ServiceException("用户不存在");
+        }
+        if (!SecurityUtils.matchesPassword(dto.getOldPassword(), sysUser.getPassword())){
+            throw new ServiceException("原密码错误");
+        }
+        sysUser.setPassword(SecurityUtils.encryptPassword(dto.getNewPassword()));
+        remoteUserService.updateUser(sysUser,SecurityConstants.INNER);
+    }
 }

--
Gitblit v1.7.1