From 759e0540a7ca20f33ab265d00e7944e4f18a562b Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 22 一月 2025 23:12:15 +0800 Subject: [PATCH] 1 --- ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml | 4 ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java | 35 ++++++----- ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 17 +++++ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/CompanyController.java | 1 ruoyi-gateway/src/main/resources/bootstrap.yml | 10 +- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java | 5 + ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java | 4 + ruoyi-auth/src/main/resources/bootstrap.yml | 6 +- ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java | 22 +++++++ ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 1 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/front/UserController.java | 21 ++++++- ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml | 6 +- ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 1 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java | 2 ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml | 6 +- ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml | 4 ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml | 4 18 files changed, 111 insertions(+), 42 deletions(-) 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 91495f4..3461cd8 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 @@ -209,6 +209,7 @@ if (l1 - l > 2 * 60 * 1000) { throw new CaptchaException("验证码已失效"); } + captcha = split[0]; if (!smsCode.equalsIgnoreCase(captcha)) { throw new CaptchaException("验证码错误"); } 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 934c52b..6d1e19f 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 @@ -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); + } + } + } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java index 7689e11..77a2a00 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/utils/SmsUtils.java +++ b/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(); diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml index 1346af2..1a1e912 100644 --- a/ruoyi-auth/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java index 7a1270e..29dad5b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java +++ b/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是否与规则配置: * ? 表示单个字符; diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 51d39ef..fbfa31f 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/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); diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml index 9bb360b..00b0a02 100644 --- a/ruoyi-gateway/src/main/resources/bootstrap.yml +++ b/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 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 index c969b2c..65223a9 100644 --- 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 @@ -70,4 +70,5 @@ companyService.updateById(companyDb); return R.ok(); } + } 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 0d66acd..6532405 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 @@ -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); + } } 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 694fa64..6b4da84 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 @@ -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 diff --git a/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml index 4fc70e1..c5f2cb9 100644 --- a/ruoyi-modules/ruoyi-company/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml index c11657c..c73fb0e 100644 --- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml index 8ca1ad7..64b9d91 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml index 2cc4b44..817a429 100644 --- a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java index 335d461..cf8ec47 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java +++ b/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); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java index e9ed9bb..e9aeb10 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java +++ b/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); diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index 59ba4cc..8daad25 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 diff --git a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml b/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml index 3c90887..5bef22c 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml +++ b/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 # 共享配置 -- Gitblit v1.7.1