diff --git a/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantServiceImpl.java index 71e13a8..3bfd9a1 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantServiceImpl.java @@ -1,6 +1,7 @@ package com.starry.admin.modules.platform.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; @@ -77,7 +78,17 @@ public class SysTenantServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(SysTenantEntity::getTenantKey, tenantKey); - return this.baseMapper.selectOne(lambdaQueryWrapper); + SysTenantEntity tenant = this.baseMapper.selectOne(lambdaQueryWrapper); + if (Objects.isNull(tenant)) { + throw new RuntimeException("租户信息异常"); + } + if (DateUtil.compare(tenant.getTenantTime(), new Date()) < 0) { + throw new RuntimeException("当前租户已过期,无法继续使用"); + } + if (tenant.getTenantStatus().equals("1")) { + throw new RuntimeException("当前租户已被禁用"); + } + return tenant; } /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/controller/LoginController.java b/play-admin/src/main/java/com/starry/admin/modules/system/controller/LoginController.java index 305436b..4087726 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/controller/LoginController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/controller/LoginController.java @@ -9,7 +9,6 @@ import com.starry.admin.modules.system.service.LoginService; import com.starry.admin.modules.system.service.SysMenuService; import com.starry.admin.modules.system.vo.LoginVo; import com.starry.admin.modules.system.vo.RouterVo; -import com.starry.admin.modules.system.vo.TenantLoginVo; import com.starry.admin.utils.SecurityUtils; import com.starry.common.redis.CaptchaService; import com.starry.common.result.R; @@ -107,25 +106,25 @@ public class LoginController { } } // 用户登录 - LoginUser userInfo = loginService.newLogin(loginVo.getUserName(), loginVo.getPassWord()); + LoginUser userInfo = loginService.newLogin(loginVo.getUserName(), loginVo.getPassWord(), loginVo.getTenantKey()); Map tokenMap = jwtToken.createToken(userInfo); return R.ok(tokenMap); } - @ApiOperation(value = "租户登录") - @PostMapping(value = "tenant/login") - public R TenantLoginVo(@RequestBody TenantLoginVo loginVo) { - // 只有开启了验证码功能才需要验证 - if (needAuthCode) { - String msg = captchaService.checkImageCode(loginVo.getNonceStr(), loginVo.getValue()); - if (StringUtils.isNotBlank(msg)) { - return R.error(msg); - } - } - // 用户登录 - LoginUser userInfo = loginService.tenantLogin(loginVo.getTenantkey(), loginVo.getUserName(), loginVo.getPassWord()); - Map tokenMap = jwtToken.createToken(userInfo); - return R.ok(tokenMap); - } + //@ApiOperation(value = "租户登录") + //@PostMapping(value = "tenant/login") + //public R TenantLoginVo(@RequestBody TenantLoginVo loginVo) { + // // 只有开启了验证码功能才需要验证 + // if (needAuthCode) { + // String msg = captchaService.checkImageCode(loginVo.getNonceStr(), loginVo.getValue()); + // if (StringUtils.isNotBlank(msg)) { + // return R.error(msg); + // } + // } + // // 用户登录 + // LoginUser userInfo = loginService.tenantLogin(loginVo.getTenantkey(), loginVo.getUserName(), loginVo.getPassWord()); + // Map tokenMap = jwtToken.createToken(userInfo); + // return R.ok(tokenMap); + //} } diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/mapper/SysUserMapper.java b/play-admin/src/main/java/com/starry/admin/modules/system/mapper/SysUserMapper.java index 2380fc1..359ae19 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/mapper/SysUserMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/mapper/SysUserMapper.java @@ -82,4 +82,7 @@ public interface SysUserMapper extends MPJBaseMapper { * @return 用户信息集合信息 */ IPage selectUnallocatedList(Page page, @Param("query") SysUserQueryVo user); + + @InterceptorIgnore(tenantLine = "1") + SysUserEntity selectUserByUserNameAndTenantId(@Param("userName") String userName, @Param("tenantId")String tenantId); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/service/LoginService.java b/play-admin/src/main/java/com/starry/admin/modules/system/service/LoginService.java index ed4cfb3..1de204f 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/service/LoginService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/service/LoginService.java @@ -50,17 +50,19 @@ public interface LoginService { /** * 登录功能 * - * @param username 用户名 - * @param password 密码 + * @param username 用户名 + * @param password 密码 + * @param tenantKey * @return 生成的JWT的token */ - LoginUser newLogin(String username, String password); + LoginUser newLogin(String username, String password, String tenantKey); /** * 新登录功能,增加租户相关 * * @param userName 用户名 + * @param tenantId * @return 获取信息 */ - LoginUser getLoginUserInfo( String userName); + LoginUser getLoginUserInfo(String userName, String tenantId); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/service/SysUserService.java b/play-admin/src/main/java/com/starry/admin/modules/system/service/SysUserService.java index 1e45f33..697465e 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/service/SysUserService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/service/SysUserService.java @@ -43,6 +43,8 @@ public interface SysUserService extends IService { */ SysUserEntity selectUserByUserName(String userName); + SysUserEntity selectUserByUserNameAndTenantId(String userName, String tenantId); + /** * 查询所有账户 @@ -50,6 +52,7 @@ public interface SysUserService extends IService { * @return 查询所有账户 */ List selectAll(); + /** * 分页查询用户 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/LoginServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/LoginServiceImpl.java index 6cd83c0..cebb910 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/LoginServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/LoginServiceImpl.java @@ -10,7 +10,6 @@ import com.starry.admin.manager.AsyncManager; import com.starry.admin.manager.factory.AsyncFactory; import com.starry.admin.modules.platform.entity.SysTenantEntity; import com.starry.admin.modules.platform.service.ISysTenantService; -import com.starry.admin.modules.play.service.IPlayUserInfoService; import com.starry.admin.modules.system.entity.SysUserEntity; import com.starry.admin.modules.system.service.LoginService; import com.starry.admin.modules.system.service.SysMenuService; @@ -57,8 +56,6 @@ public class LoginServiceImpl implements LoginService { @Resource private ISysTenantService SysTenantService; - @Resource - private IPlayUserInfoService playUserInfoService; @Override public String login(String username, String password) { @@ -108,14 +105,14 @@ public class LoginServiceImpl implements LoginService { @Override public LoginUser tenantLogin(String tenantId, String username, String password) { - LoginUser userInfo = this.getLoginUserInfo(username); + //LoginUser userInfo = this.getLoginUserInfo(username); return null; } @Override - public LoginUser newLogin(String username, String password) { + public LoginUser newLogin(String username, String password, String tenantKey) { // 用户名或密码为空 错误 - if (StringUtils.isAnyBlank(username, password)) { + if (StringUtils.isAnyBlank(username, password, tenantKey)) { // 登录记录日志 AsyncManager.me().execute(AsyncFactory.recordLoginLog(username, Constants.LOGIN_FAIL, "用户名/密码必须填写")); throw new ServiceException("用户/密码必须填写"); @@ -132,7 +129,8 @@ public class LoginServiceImpl implements LoginService { AsyncManager.me().execute(AsyncFactory.recordLoginLog(username, Constants.LOGIN_FAIL, "用户名不在指定范围")); throw new ServiceException("用户名不在指定范围"); } - LoginUser userInfo = this.getLoginUserInfo(username); + SysTenantEntity tenant = SysTenantService.selectByTenantKey(tenantKey); + LoginUser userInfo = this.getLoginUserInfo(username, tenant.getTenantId()); if (userInfo == null) { // 登录记录日志 AsyncManager.me().execute(AsyncFactory.recordLoginLog(username, Constants.LOGIN_FAIL, "用户名不存在")); @@ -167,8 +165,14 @@ public class LoginServiceImpl implements LoginService { } @Override - public LoginUser getLoginUserInfo(String userName) { - SysUserEntity sysUser = sysUserService.selectUserByUserName(userName); + public LoginUser getLoginUserInfo(String userName, String tenantId) { + SysUserEntity sysUser; + if (userName.equals("sysadmin")) { + sysUser = sysUserService.selectUserByUserNameAndTenantId(userName, tenantId); + } else { + sysUser = sysUserService.selectUserByUserNameAndTenantId(userName, tenantId); + } + if (StringUtils.isNotNull(sysUser)) { // SecurityUtils.setTenantId(sysUser.getTenantId()); // 角色集合 diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysUserServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysUserServiceImpl.java index b5ba94e..c2b137a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysUserServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysUserServiceImpl.java @@ -142,6 +142,11 @@ public class SysUserServiceImpl extends ServiceImpl listMemberPage(UserQueryVo queryVo) { Page page = new Page<>(queryVo.getPageNum(), queryVo.getPageSize()); @@ -345,7 +350,7 @@ public class SysUserServiceImpl extends ServiceImpl + +