From a42b76216efd31c3f322432e01232b4e0b7c8128 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 21 一月 2025 10:01:03 +0800
Subject: [PATCH] 1

---
 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java                        |   15 +
 ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java                                                 |  144 +++++++++++++-------
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java                  |   31 ++++
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java                     |    3 
 pom.xml                                                                                                              |    9 +
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java          |    3 
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java                             |   53 +++++++
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java                                              |   58 ++++++++
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java                     |   12 +
 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java                            |   19 ++
 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java |    8 +
 ruoyi-modules/ruoyi-company/pom.xml                                                                                  |    7 +
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java                 |   18 +-
 ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java            |   26 +++
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java                        |    3 
 15 files changed, 336 insertions(+), 73 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0d1b5aa..fd52fd4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -311,6 +311,15 @@
                 <artifactId>fastexcel</artifactId>
                 <version>${fastexcel.version}</version>
             </dependency>
+
+            <dependency>
+                <groupId>com.aliyun</groupId>
+                <artifactId>ocr_api20210707</artifactId>
+                <version>3.1.2</version>
+            </dependency>
+
+
+
         </dependencies>
     </dependencyManagement>
 
diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java
new file mode 100644
index 0000000..41b7f1b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java
@@ -0,0 +1,19 @@
+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.Company;
+import com.ruoyi.company.api.factory.RemoteCompanyUserServiceFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+import java.util.List;
+
+@FeignClient(contextId = "remoteCompanyService", value = ServiceNameConstants.COMPANY_SERVICE, fallbackFactory = RemoteCompanyUserServiceFallbackFactory.class)
+public interface RemoteCompanyService {
+
+    @GetMapping("/front/company/getCompanyByUserId")
+    public R<List<Company>> getCompanyByUserId(Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+}
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 9bd8052..e65828b 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
@@ -11,12 +11,15 @@
 
 @FeignClient(contextId = "remoteCompanyUserService", value = ServiceNameConstants.COMPANY_SERVICE, fallbackFactory = RemoteCompanyUserServiceFallbackFactory.class)
 public interface RemoteCompanyUserService {
-    @PostMapping("/user/register")
-    public R<Boolean> registerUser(@RequestBody RegisterUser registerUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    @PostMapping("/front/user/register")
+    R<Boolean> registerUser(@RequestBody RegisterUser registerUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
-    @GetMapping("/user/getUserByAccountName")
-    public R<User> getUserByAccountName(@RequestParam("accountName") String accountName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    @GetMapping("/front/user/getUserByAccountName")
+    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);
+    @GetMapping("/front/user/getUserByPhone")
+    R<User> getUserByPhone(@RequestParam("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @PutMapping("/front/user/updateUser")
+    R<Void> updateUser(@RequestBody User user);
 }
diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java
new file mode 100644
index 0000000..d2df3aa
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java
@@ -0,0 +1,26 @@
+package com.ruoyi.company.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.company.api.RemoteCompanyService;
+import com.ruoyi.company.api.RemoteCompanyUserService;
+import com.ruoyi.company.api.domain.Company;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@Log4j2
+public class RemoteCompanyFallbackFactory implements FallbackFactory<RemoteCompanyService> {
+    @Override
+    public RemoteCompanyService create(Throwable cause) {
+        return new RemoteCompanyService() {
+
+            @Override
+            public R<List<Company>> getCompanyByUserId(Long userId, String source) {
+                return R.fail();
+            }
+        };
+    }
+}
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 23a2414..763d59c 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
@@ -17,7 +17,6 @@
        log.error("企业服务远程调用失败:{}", cause.getMessage());
         return new RemoteCompanyUserService() {
 
-            @PostMapping("/user/register")
             @Override
             public R<Boolean> registerUser(RegisterUser registerUser, String source) {
                 return R.fail("用户注册失败:"+cause.getMessage());
@@ -32,6 +31,13 @@
             public R<User> getUserByPhone(String phone, String source) {
                 return R.fail("获取用户信息失败:"+cause.getMessage());
             }
+
+            @Override
+            public R<Void> updateUser(User user) {
+                return R.fail();
+            }
+
+
         };
     }
 }
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 95579e8..f47c98c 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
@@ -1,17 +1,22 @@
 package com.ruoyi.auth.controller;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import com.ruoyi.auth.utils.SmsUtils;
 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.exception.CaptchaException;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.company.api.RemoteCompanyUserService;
 import com.ruoyi.company.api.domain.User;
 import com.ruoyi.company.api.model.RegisterUser;
 import com.ruoyi.system.api.model.AppUser;
 import io.swagger.v3.oas.annotations.Operation;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -52,6 +57,9 @@
 
     @Autowired
     private RedisService redisService;
+
+    @Resource
+    private RemoteCompanyUserService remoteCompanyUserService;
 
     @PostMapping("login")
     public R<?> login(@RequestBody LoginBody form)
@@ -113,7 +121,7 @@
         // 缓存验证码
         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);
         if (!"OK".equals(result))
         {
@@ -128,6 +136,12 @@
         // 用户登录
         User user = sysLoginService.companyLogin(registerUser);
 
+        Map<String, Object> rspMap = getStringObjectMap(user);
+
+        return R.ok(rspMap);
+    }
+
+    private Map<String, Object> getStringObjectMap(User user) {
         String token = IdUtils.fastUUID();
         AppUser appUser = new AppUser();
         appUser.setUserId(user.getUserId());
@@ -150,7 +164,37 @@
         Map<String, Object> rspMap = new HashMap<String, Object>();
         rspMap.put("access_token", JwtUtils.createToken(claimsMap));
         rspMap.put("expires_in", CacheConstants.EXPIRATION);
+        return rspMap;
+    }
 
+    /**
+     * 短信验证码登录
+     * @return
+     */
+    @PostMapping("smsLogin")
+    public R<Map<String, Object>> smsLogin(@RequestBody RegisterUser registerUser){
+        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<User> userR = remoteCompanyUserService.getUserByPhone(registerUser.getPhone(), SecurityConstants.INNER);
+        if (R.isError(userR)) {
+            throw new ServiceException("获取用户失败");
+        }
+        User user = userR.getData();
+        if (user == null) {
+            throw new ServiceException("用户不存在");
+        }
+        Map<String, Object> rspMap = getStringObjectMap(user);
         return R.ok(rspMap);
     }
 
@@ -160,5 +204,17 @@
         return "login_tokens:" + token;
     }
 
+    /**
+     * 重置密码
+     */
+    @PostMapping("resetPwd")
+    public R<?> resetPwd(@RequestBody RegisterUser registerUser)
+    {
+        sysLoginService.resetPwd(registerUser);
+        return R.ok();
+    }
+
+
+
 
 }
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 2d6ab96..32590e0 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
@@ -2,12 +2,15 @@
 
 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.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.Constants;
@@ -28,20 +31,22 @@
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * 登录校验方法
- * 
+ *
  * @author ruoyi
  */
 @Component
-@RequiredArgsConstructor
-public class SysLoginService
-{
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SysLoginService {
     @Resource
     private RemoteUserService remoteUserService;
     @Resource
     private RemoteCompanyUserService remoteCompanyUserService;
+    @Resource
+    private RemoteCompanyService remoteCompanyService;
     private final SysPasswordService passwordService;
     private final SysRecordLogService recordLogService;
     private final RedisService redisService;
@@ -49,52 +54,44 @@
     /**
      * 登录
      */
-    public LoginUser login(String username, String password)
-    {
+    public LoginUser login(String username, String password) {
         // 用户名或密码为空 错误
-        if (StringUtils.isAnyBlank(username, password))
-        {
+        if (StringUtils.isAnyBlank(username, password)) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
             throw new ServiceException("用户/密码必须填写");
         }
         // 密码如果不在指定范围内 错误
         if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
+                || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
             throw new ServiceException("用户密码不在指定范围");
         }
         // 用户名不在指定范围内 错误
         if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
+                || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围");
             throw new ServiceException("用户名不在指定范围");
         }
         // IP黑名单校验
         String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
-        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
-        {
+        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
             throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
         }
         // 查询用户信息
         R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
 
-        if (R.FAIL == userResult.getCode())
-        {
+        if (R.FAIL == userResult.getCode()) {
             throw new ServiceException(userResult.getMsg());
         }
 
         LoginUser userInfo = userResult.getData();
         SysUser user = userResult.getData().getSysUser();
-        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
-        {
+        if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
             throw new ServiceException("对不起,您的账号:" + username + " 已被删除");
         }
-        if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
-        {
+        if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
             throw new ServiceException("对不起,您的账号:" + username + " 已停用");
         }
@@ -109,8 +106,7 @@
      *
      * @param userId 用户ID
      */
-    public void recordLoginInfo(Long userId)
-    {
+    public void recordLoginInfo(Long userId) {
         SysUser sysUser = new SysUser();
         sysUser.setUserId(userId);
         // 更新用户登录IP
@@ -120,29 +116,24 @@
         remoteUserService.recordUserLogin(sysUser, SecurityConstants.INNER);
     }
 
-    public void logout(String loginName)
-    {
+    public void logout(String loginName) {
         recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "退出成功");
     }
 
     /**
      * 注册
      */
-    public void register(String username, String password)
-    {
+    public void register(String username, String password) {
         // 用户名或密码为空 错误
-        if (StringUtils.isAnyBlank(username, password))
-        {
+        if (StringUtils.isAnyBlank(username, password)) {
             throw new ServiceException("用户/密码必须填写");
         }
         if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
+                || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
             throw new ServiceException("账户长度必须在2到20个字符之间");
         }
         if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
+                || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
             throw new ServiceException("密码长度必须在5到20个字符之间");
         }
 
@@ -153,71 +144,118 @@
         sysUser.setPassword(SecurityUtils.encryptPassword(password));
         R<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER);
 
-        if (R.FAIL == registerResult.getCode())
-        {
+        if (R.FAIL == registerResult.getCode()) {
             throw new ServiceException(registerResult.getMsg());
         }
         recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功");
     }
 
-    public void companyRegister(RegisterUser registerUser)
-    {
+    public void companyRegister(RegisterUser registerUser) {
         String accountName = registerUser.getAccountName();
         String password = registerUser.getPassword();
         // 用户名或密码为空 错误
-        if (StringUtils.isAnyBlank(accountName, password))
-        {
+        if (StringUtils.isAnyBlank(accountName, password)) {
             throw new ServiceException("用户/密码必须填写");
         }
         String smsCode = registerUser.getSmsCode();
-        if (!"999999".equals(smsCode)){
+        if (!"999999".equals(smsCode)) {
             String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), "");
             String captcha = redisService.getCacheObject(verifyKey);
-            if (captcha == null)
-            {
+            if (captcha == null) {
                 throw new CaptchaException("验证码已失效");
             }
             redisService.deleteObject(verifyKey);
-            if (!smsCode.equalsIgnoreCase(captcha))
-            {
+            if (!smsCode.equalsIgnoreCase(captcha)) {
                 throw new CaptchaException("验证码错误");
             }
         }
         R<Boolean> booleanR = remoteCompanyUserService.registerUser(registerUser, SecurityConstants.INNER);
-        if (R.isError(booleanR)){
-            throw new ServiceException("注册失败");
+        if (R.isError(booleanR)) {
+            throw new ServiceException(booleanR.getMsg());
         }
     }
 
 
-    public User companyLogin(RegisterUser registerUser)
-    {
+    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)){
+        if (R.isError(userByPhoneR)) {
             throw new ServiceException(userByPhoneR.getMsg());
         }
-        if (userByPhoneR.getData() == null){
+        if (userByPhoneR.getData() == null) {
             throw new ServiceException("账号不存在");
         }
 
-        if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())){
+        if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())) {
             return userByPhoneR.getData();
         }
 
 
         R<User> r = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER);
-        if (R.isError(r)){
+        if (R.isError(r)) {
             throw new ServiceException(r.getMsg());
         }
-        if (r.getData() == null){
+        if (r.getData() == null) {
             throw new ServiceException("账号不存在");
         }
-        if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())){
+        if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())) {
             throw new ServiceException("密码错误");
         }
         return r.getData();
     }
+
+
+    public void resetPwd(RegisterUser registerUser) {
+        String accountName = registerUser.getAccountName();
+        R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER);
+        if (R.isError(userByPhoneR)) {
+            throw new ServiceException(userByPhoneR.getMsg());
+        }
+        boolean check = false;
+        R<User> userR = new R<>();
+        if (userByPhoneR.getData() != null) {
+            check = check(userByPhoneR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber());
+        }
+        if (!check){
+            userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER);
+            if (R.isError(userR)) {
+                throw new ServiceException(userR.getMsg());
+            }
+            if (userR.getData() == null) {
+                throw new ServiceException("账号不存在");
+            }
+            check = check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber());
+        }
+
+        if (!check) {
+            throw new ServiceException("账号不存在");
+        }
+        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());
+        }
+    }
+
+    public boolean check(User user, String companyName, String idCardNumber) {
+        Long userId = user.getUserId();
+        R<List<Company>> companyR = remoteCompanyService.getCompanyByUserId(userId, SecurityConstants.INNER);
+        if (R.isError(companyR)) {
+            throw new ServiceException(companyR.getMsg());
+        }
+        List<Company> companyList = companyR.getData();
+        if (companyList != null) {
+            long count = companyList.stream()
+                    .filter(company -> company.getCompanyName().equals(companyName) &&
+                            company.getIdCardNumber().equals(idCardNumber))
+                    .count();
+            return count > 0;
+        }
+        return false;
+    }
+
 }
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 7354a04..04e61a2 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -1,13 +1,5 @@
 package com.ruoyi.common.security.service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.utils.JwtUtils;
@@ -18,6 +10,15 @@
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * token验证处理
@@ -171,4 +172,5 @@
     {
         return ACCESS_TOKEN + token;
     }
+
 }
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-company/pom.xml b/ruoyi-modules/ruoyi-company/pom.xml
index 90543e2..d72cc3b 100644
--- a/ruoyi-modules/ruoyi-company/pom.xml
+++ b/ruoyi-modules/ruoyi-company/pom.xml
@@ -89,6 +89,13 @@
     </dependency>
 
     <dependency>
+      <groupId>com.aliyun</groupId>
+      <artifactId>ocr_api20210707</artifactId>
+    </dependency>
+
+
+
+    <dependency>
       <groupId>cn.idev.excel</groupId>
       <artifactId>fastexcel</artifactId>
     </dependency>
diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java
new file mode 100644
index 0000000..42c92ba
--- /dev/null
+++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java
@@ -0,0 +1,31 @@
+package com.ruoyi.company.controller.front;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.company.api.domain.Company;
+import com.ruoyi.company.service.CompanyService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/front/company")
+@Tag(name = "企业端-企业相关接口")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class CompanyController {
+    private final CompanyService companyService;
+
+    @InnerAuth
+    @GetMapping("/getCompanyByUserId")
+    public R<List<Company>> getCompanyByUserId(Long userId){
+        List<Company> list = companyService.list(new LambdaQueryWrapper<Company>()
+                .eq(Company::getUserId, userId));
+        return R.ok(list);
+    }
+}
diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java
new file mode 100644
index 0000000..3ec5e6d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java
@@ -0,0 +1,53 @@
+package com.ruoyi.company.controller.front;
+
+import com.aliyun.ocr_api20210707.models.RecognizeGeneralStructureRequest;
+import com.aliyun.tea.*;
+
+public class Sample {
+
+    /**
+     * <b>description</b> :
+     * <p>使用AK&amp;SK初始化账号Client</p>
+     * @return Client
+     *
+     * @throws Exception
+     */
+    public static com.aliyun.ocr_api20210707.Client createClient() throws Exception {
+        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
+        // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
+        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+                .setAccessKeyId("LTAI5tFSeci96NRF6p6UN69G")
+                .setAccessKeySecret("25t5zmWkueoQd81Zka70uPKRPgaMiV");
+        // Endpoint 请参考 https://api.aliyun.com/product/ocr-api
+        config.endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
+        return new com.aliyun.ocr_api20210707.Client(config);
+    }
+
+    public static void main(String[] args_) throws Exception {
+        java.util.List<String> args = java.util.Arrays.asList(args_);
+        com.aliyun.ocr_api20210707.Client client = Sample.createClient();
+
+        RecognizeGeneralStructureRequest recognizeGeneralStructureRequest  = new RecognizeGeneralStructureRequest()
+                .setUrl("C:\\Users\\Admin\\Desktop\\60e75436fc373755539e54ce27caf362_compress.jpg");
+        try {
+            // 复制代码运行请自行打印 API 的返回值
+            client.recognizeGeneralStructure(recognizeGeneralStructureRequest);
+        } catch (TeaException error) {
+            // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+            // 错误 message
+            System.out.println(error.getMessage());
+            // 诊断地址
+            System.out.println(error.getData().get("Recommend"));
+            com.aliyun.teautil.Common.assertAsString(error.message);
+        } catch (Exception _error) {
+            TeaException error = new TeaException(_error.getMessage(), _error);
+            // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+            // 错误 message
+            System.out.println(error.getMessage());
+            // 诊断地址
+            System.out.println(error.getData().get("Recommend"));
+            com.aliyun.teautil.Common.assertAsString(error.message);
+        }
+    }
+}
+
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 ce70eb6..a17243c 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
@@ -9,11 +9,14 @@
 import com.ruoyi.company.service.UserService;
 import lombok.RequiredArgsConstructor;
 import lombok.experimental.StandardException;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
 
 @RestController
 @RequestMapping("/front/user")
-@RequiredArgsConstructor
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class UserController {
     private final UserService userService;
 
@@ -41,4 +44,11 @@
         return R.ok(userService.getOne(new LambdaQueryWrapper<User>()
         .eq(User::getPhone,phone)));
     }
+
+    @PutMapping("/updateUser")
+    public R<Void> updateUser(@RequestBody User user){
+        user.setUpdateTime(LocalDateTime.now());
+        userService.updateById(user);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java
index 2dd08dd..0faf2cf 100644
--- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java
+++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java
@@ -10,6 +10,7 @@
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -30,7 +31,7 @@
 @RestController
 @RequestMapping("/mgt/company")
 @Tag(name = "管理端企业列表相关接口")
-@RequiredArgsConstructor
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class MgtCompanyController {
     private final CompanyService companyService;
 
diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
index 66a9f29..91ffd48 100644
--- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
+++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
@@ -18,6 +18,7 @@
 import com.ruoyi.company.service.CompanyService;
 import com.ruoyi.company.service.UserService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -28,7 +29,7 @@
 import java.util.Objects;
 
 @Service
-@RequiredArgsConstructor
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements CompanyService {
     private final UserService userService;
     private final HttpServletResponse response;
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 e945271..2b84192 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
@@ -9,13 +9,14 @@
 import com.ruoyi.company.service.CompanyService;
 import com.ruoyi.company.service.UserService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 
 @Service
-@RequiredArgsConstructor
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
     private final CompanyService companyService;
 

--
Gitblit v1.7.1