From 03f1f3372a10a08f96f3308bfa099e86a55046d0 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 30 一月 2024 09:32:38 +0800 Subject: [PATCH] 修改数据权限bug --- ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 91 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 76 insertions(+), 15 deletions(-) diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 760b528..16895bd 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,14 +1,5 @@ package com.ruoyi.auth.service; -import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; -import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; -import com.ruoyi.system.api.service.RemoteMemberService; -import com.ruoyi.system.api.service.RemoteShopService; -import com.ruoyi.system.api.domain.vo.ShopRelUserVo; -import com.ruoyi.system.api.model.*; -import org.springframework.beans.BeanUtils; -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.Constants; import com.ruoyi.common.core.constant.SecurityConstants; @@ -21,8 +12,18 @@ import com.ruoyi.common.core.utils.ip.IpUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.service.RemoteUserService; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.poji.sys.SysUser; +import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; +import com.ruoyi.system.api.domain.vo.ShopRelUserVo; +import com.ruoyi.system.api.model.*; +import com.ruoyi.system.api.service.RemoteConfigService; +import com.ruoyi.system.api.service.RemoteMemberService; +import com.ruoyi.system.api.service.RemoteShopService; +import com.ruoyi.system.api.service.RemoteUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 登录校验方法 @@ -50,6 +51,8 @@ @Autowired private RedisService redisService; + @Autowired + private RemoteConfigService remoteConfigService; /** * 登录 */ @@ -135,15 +138,16 @@ recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单",Constants.FROM_MINI_APP); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } + String servicePhone = remoteConfigService.getServicePhone().getData(); if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除",Constants.FROM_MINI_APP); - throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + throw new ServiceException(servicePhone,501); } if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员",Constants.FROM_MINI_APP); - throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + throw new ServiceException(servicePhone,501); } recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_MINI_APP); } @@ -177,12 +181,12 @@ if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除",Constants.FROM_MINI_APP); - throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + throw new ServiceException("对不起,您的账号: 已被删除"); } if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员",Constants.FROM_MINI_APP); - throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + throw new ServiceException("对不起,您的账号: 已停用"); } recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_MINI_APP); } @@ -196,9 +200,16 @@ { // 查询用户信息 R<QwH5LoginVo> userResult = remoteShopService.qwH5Login(qwUserDetail); + if(userResult==null){ + throw new ServiceException(AppErrorConstant.USER_NO_SHOP); + } if (R.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); + } + if (401 == userResult.getCode()) + { + throw new ServiceException("商户已被冻结,请联系管理员",401); } QwH5LoginVo userInfo = userResult.getData(); SysUser user = userInfo.getSysUser(); @@ -230,9 +241,59 @@ throw new ServiceException("未查询到商户信息"); } userInfo.setShopId(shopInfo.getShopId()); - recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_SHOP); + return userInfo; + } + /** + * 企业微信H5登录 + */ + public QwH5LoginVo qwH5StaffLogin(QwUserDetailDto qwUserDetail) + { + // 查询用户信息 + R<QwH5LoginVo> userResult = remoteUserService.qwH5StaffLogin(qwUserDetail); + if(userResult==null){ + throw new ServiceException(AppErrorConstant.USER_NO_SHOP); + } + if (R.FAIL == userResult.getCode()) + { + throw new ServiceException(userResult.getMsg()); + } + QwH5LoginVo userInfo = userResult.getData(); + SysUser user = userInfo.getSysUser(); + String username = user.getUserName(); + // IP黑名单校验 + String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单",Constants.FROM_SHOP); + throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); + } + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除",Constants.FROM_SHOP); + throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + } + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员",Constants.FROM_SHOP); + throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + } + // 查询用户商户 + R<ShopRelUserVo> shopResult = remoteShopService.getShopByBelongUserId(user.getUserId()); + if (R.FAIL == userResult.getCode()) { + throw new ServiceException(userResult.getMsg()); + } +// ShopRelUserVo shopInfo = shopResult.getData(); +// if(null == shopInfo){ +// throw new ServiceException("未查询到商户信息"); +// } +// userInfo.setShopId(shopInfo.getShopId()); + ShopRelUserVo shopInfo = shopResult.getData(); + if(null != shopInfo){ + userInfo.setShopId(shopInfo.getShopId()); + } + recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_SHOP); return userInfo; } -- Gitblit v1.7.1