1
luodangjia
2025-01-21 a42b76216efd31c3f322432e01232b4e0b7c8128
1
11个文件已修改
4个文件已添加
409 ■■■■ 已修改文件
pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyUserService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyUserServiceFallbackFactory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/UserServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/RemoteCompanyService.java
New file
@@ -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);
}
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);
}
ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/factory/RemoteCompanyFallbackFactory.java
New file
@@ -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();
            }
        };
    }
}
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();
            }
        };
    }
}
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();
    }
}
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;
    }
}
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;
    }
}
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>
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java
New file
@@ -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);
    }
}
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/Sample.java
New file
@@ -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);
        }
    }
}
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();
    }
}
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;
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;
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;