1
luodangjia
2025-01-22 759e0540a7ca20f33ab265d00e7944e4f18a562b
1
18个文件已修改
153 ■■■■ 已修改文件
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/bootstrap.yml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -209,6 +209,7 @@
            if (l1 - l > 2 * 60 * 1000) {
                throw new CaptchaException("验证码已失效");
            }
            captcha = split[0];
            if (!smsCode.equalsIgnoreCase(captcha)) {
                throw new CaptchaException("验证码错误");
            }
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -23,12 +23,14 @@
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.AppUser;
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.util.Collection;
import java.util.List;
import java.util.Objects;
@@ -170,6 +172,7 @@
            if (l1 - l > 2 * 60 * 1000) {
                throw new CaptchaException("验证码已失效");
            }
            captcha = split[0];
            if (!smsCode.equalsIgnoreCase(captcha)) {
                throw new CaptchaException("验证码错误");
            }
@@ -220,6 +223,20 @@
        if (R.isError(r)) {
            throw new ServiceException(r.getMsg());
        }
        forceLogout(user.getUserId());
    }
    public void forceLogout(Long userId) {
        Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
        for (String key : keys) {
            Object user = redisService.getCacheObject(key);
            if (user instanceof AppUser) {
                AppUser appUser = (AppUser) user;
                if (appUser.getUserId().equals(userId)) {
                    redisService.deleteObject(key);
                }
            }
        }
    }
ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java
@@ -1,12 +1,15 @@
package com.ruoyi.auth.utils;
import com.alibaba.fastjson2.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class SmsUtils {
    public static String sendSms(String phoneNumber, String code) {
        // 设置AccessKeyId、AccessKeySecret等信息
@@ -27,6 +30,7 @@
        try {
            // 发送短信并打印结果
            SendSmsResponse response = client.getAcsResponse(request);
            log.info("发送短信结果:{}", JSONObject.toJSONString(response));
            return response.getCode();
        } catch (ClientException e) {
            e.printStackTrace();
ruoyi-auth/src/main/resources/bootstrap.yml
@@ -14,11 +14,11 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        ip: 192.168.110.111
        server-addr: 127.0.0.1:8848
#        ip: 192.168.110.111
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
@@ -1,5 +1,6 @@
package com.ruoyi.common.core.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -534,6 +535,10 @@
        return false;
    }
    public static void main(String[] args) {
        List<String> strs = new ArrayList<>();
    }
    /**
     * 判断url是否与规则配置: 
     * ? 表示单个字符; 
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -54,6 +54,7 @@
        String token = getToken(request);
        if (StringUtils.isEmpty(token))
        {
            System.out.println(ignoreWhite.getWhites());
            return unauthorizedResponse(exchange, "令牌不能为空");
        }
        Claims claims = JwtUtils.parseToken(token);
ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -14,11 +14,11 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        ip: 192.168.110.111
        server-addr: 127.0.0.1:8848
#        ip: 192.168.110.111
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
@@ -29,12 +29,12 @@
      eager: true
      transport:
        # 控制台地址
        dashboard: 192.168.110.111:8718
        dashboard: 127.0.0.1:8718
      # nacos配置持久化
      datasource:
        ds1:
          nacos:
            server-addr: 192.168.110.111:8848
            server-addr: 127.0.0.1:8848
            dataId: sentinel-ruoyi-gateway
            groupId: DEFAULT_GROUP
            data-type: json
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java
@@ -70,4 +70,5 @@
        companyService.updateById(companyDb);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java
@@ -106,15 +106,18 @@
        String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(updatePhone.getNewPhone(), "");
        String captcha = redisService.getCacheObject(verifyKey);
        String[] split = captcha.split(":");
        if (captcha == null) {
            throw new CaptchaException("验证码错误");
        }
        long l = Long.parseLong(split[1]);
        long l1 = System.currentTimeMillis();
        // 判断是否大于两分钟
        if (l1 - l > 2 * 60 * 1000) {
            throw new CaptchaException("验证码已失效");
        }
        if (captcha == null) {
            throw new CaptchaException("验证码错误");
        }
        captcha = split[0];
        if (!updatePhone.getCode().equalsIgnoreCase(captcha)) {
            throw new CaptchaException("验证码错误");
        }
@@ -145,4 +148,16 @@
        userService.updateById(user);
        return R.ok();
    }
    /**
     * 通过公司名称和法人身份证号码查询用户信息
     */
    @GetMapping("/getUserByCompanyNameAndLegalId")
    public R<User> getUserByCompanyNameAndLegalId(String companyName, String cardId) {
        Company company = companyService.getOne(new LambdaQueryWrapper<Company>()
                .eq(Company::getCompanyName, companyName)
                .eq(Company::getIdCardNumber, cardId));
        User user = userService.getById(company.getUserId());
        return R.ok(user);
    }
}
ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
@@ -3,10 +3,12 @@
import cn.idev.excel.FastExcel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.page.BeanUtils;
import com.ruoyi.common.core.page.PageDTO;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.company.api.domain.Company;
import com.ruoyi.company.api.domain.User;
@@ -19,6 +21,7 @@
import com.ruoyi.company.service.CompanyService;
import com.ruoyi.company.service.UserService;
import com.ruoyi.company.utils.AliyunCloudAuthUtil;
import com.ruoyi.system.api.model.AppUser;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -27,6 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@@ -37,6 +41,8 @@
    private final HttpServletResponse response;
    private final AliyunCloudAuthUtil aliyunCloudAuthUtil;
    private final RedisService redisService;
    /**
     * 获取企业列表
     *
@@ -205,6 +211,22 @@
        //删除企业信息
        this.removeById(id);
        //强退用户
        forceLogout(company.getUserId());
    }
    public void forceLogout(Long userId) {
        Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
        for (String key : keys) {
            Object user = redisService.getCacheObject(key);
            if (user instanceof AppUser) {
                AppUser appUser = (AppUser) user;
                if (appUser.getUserId().equals(userId)) {
                    redisService.deleteObject(key);
                }
            }
        }
    }
    @Override
ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml
@@ -14,11 +14,11 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        ip: 192.168.110.111
        server-addr: 127.0.0.1:8848
#        ip: 192.168.110.111
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
@@ -14,10 +14,10 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
@@ -14,10 +14,10 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
@@ -14,10 +14,10 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java
@@ -34,7 +34,7 @@
            inputStream = UrlDownloader.downloadAsStream(url);
            String jsonStr = OcrUtils.idCard(inputStream,"IdCard");
            if (StringUtils.isEmpty(jsonStr)){
                return R.fail();
                return R.fail("身份证识别失败");
            }
            JSONObject jsonObject = JSONObject.parseObject(jsonStr);
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java
@@ -46,22 +46,25 @@
        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
        for (String key : keys)
        {
            LoginUser user = redisService.getCacheObject(key);
            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
            {
                userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
            }
            else if (StringUtils.isNotEmpty(ipaddr))
            {
                userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
            }
            else if (StringUtils.isNotEmpty(userName))
            {
                userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
            }
            else
            {
                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
            Object user = redisService.getCacheObject(key);
            if (user instanceof LoginUser){
                LoginUser loginUser = (LoginUser) user;
                if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
                {
                    userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, loginUser));
                }
                else if (StringUtils.isNotEmpty(ipaddr))
                {
                    userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, loginUser));
                }
                else if (StringUtils.isNotEmpty(userName))
                {
                    userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, loginUser));
                }
                else
                {
                    userOnlineList.add(userOnlineService.loginUserToUserOnline(loginUser));
                }
            }
        }
        Collections.reverse(userOnlineList);
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -14,11 +14,11 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        ip: 192.168.110.111
        server-addr: 127.0.0.1:8848
#        ip: 192.168.110.111
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
@@ -14,10 +14,10 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 192.168.110.111:8848
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置