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/service/SysLoginService.java |   88 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 10 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 ffd79e1..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
@@ -1,5 +1,12 @@
 package com.ruoyi.auth.service;
 
+import com.ruoyi.common.core.exception.CaptchaException;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.company.api.RemoteCompanyUserService;
+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.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
@@ -19,25 +26,25 @@
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
 
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
 /**
  * 登录校验方法
  * 
  * @author ruoyi
  */
 @Component
+@RequiredArgsConstructor
 public class SysLoginService
 {
-    @Autowired
+    @Resource
     private RemoteUserService remoteUserService;
-
-    @Autowired
-    private SysPasswordService passwordService;
-
-    @Autowired
-    private SysRecordLogService recordLogService;
-
-    @Autowired
-    private RedisService redisService;
+    @Resource
+    private RemoteCompanyUserService remoteCompanyUserService;
+    private final SysPasswordService passwordService;
+    private final SysRecordLogService recordLogService;
+    private final RedisService redisService;
 
     /**
      * 登录
@@ -152,4 +159,65 @@
         }
         recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功");
     }
+
+    public void companyRegister(RegisterUser registerUser)
+    {
+        String accountName = registerUser.getAccountName();
+        String password = registerUser.getPassword();
+        // 用户名或密码为空 错误
+        if (StringUtils.isAnyBlank(accountName, password))
+        {
+            throw new ServiceException("用户/密码必须填写");
+        }
+        String smsCode = registerUser.getSmsCode();
+        if (!"999999".equals(smsCode)){
+            String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), "");
+            String captcha = redisService.getCacheObject(verifyKey);
+            if (captcha == null)
+            {
+                throw new CaptchaException("验证码已失效");
+            }
+            redisService.deleteObject(verifyKey);
+            if (!smsCode.equalsIgnoreCase(captcha))
+            {
+                throw new CaptchaException("验证码错误");
+            }
+        }
+        R<Boolean> booleanR = remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER);
+        if (R.isError(booleanR)){
+            throw new ServiceException("注册失败");
+        }
+    }
+
+
+    public User companyLogin(RegisterUser registerUser)
+    {
+        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());
+        }
+        if (r.getData() == null){
+            throw new ServiceException("账号不存在");
+        }
+        if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())){
+            throw new ServiceException("密码错误");
+        }
+        return r.getData();
+    }
 }

--
Gitblit v1.7.1