mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
update 简化 授权相关代码
This commit is contained in:
parent
cb77876786
commit
4185aafbb9
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
import me.zhyd.oauth.model.AuthResponse;
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
import me.zhyd.oauth.model.AuthUser;
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
@ -14,21 +15,23 @@ import org.dromara.common.core.domain.R;
|
|||||||
import org.dromara.common.core.domain.model.LoginBody;
|
import org.dromara.common.core.domain.model.LoginBody;
|
||||||
import org.dromara.common.core.domain.model.RegisterBody;
|
import org.dromara.common.core.domain.model.RegisterBody;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
import org.dromara.common.core.utils.StreamUtils;
|
import org.dromara.common.core.utils.StreamUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
|
import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
|
||||||
import org.dromara.common.social.config.properties.SocialProperties;
|
import org.dromara.common.social.config.properties.SocialProperties;
|
||||||
import org.dromara.common.social.utils.SocialUtils;
|
import org.dromara.common.social.utils.SocialUtils;
|
||||||
import org.dromara.common.tenant.helper.TenantHelper;
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.SysClient;
|
||||||
import org.dromara.system.domain.bo.SysTenantBo;
|
import org.dromara.system.domain.bo.SysTenantBo;
|
||||||
import org.dromara.system.domain.vo.SysTenantVo;
|
import org.dromara.system.domain.vo.SysTenantVo;
|
||||||
import org.dromara.system.service.ISysSocialService;
|
import org.dromara.system.service.ISysClientService;
|
||||||
import org.dromara.system.service.ISysConfigService;
|
import org.dromara.system.service.ISysConfigService;
|
||||||
|
import org.dromara.system.service.ISysSocialService;
|
||||||
import org.dromara.system.service.ISysTenantService;
|
import org.dromara.system.service.ISysTenantService;
|
||||||
import org.dromara.web.domain.vo.LoginTenantVo;
|
import org.dromara.web.domain.vo.LoginTenantVo;
|
||||||
import org.dromara.web.domain.vo.LoginVo;
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
import org.dromara.web.domain.vo.TenantListVo;
|
import org.dromara.web.domain.vo.TenantListVo;
|
||||||
import org.dromara.web.factory.AuthFactory;
|
|
||||||
import org.dromara.web.service.IAuthStrategy;
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
import org.dromara.web.service.SysLoginService;
|
import org.dromara.web.service.SysLoginService;
|
||||||
import org.dromara.web.service.SysRegisterService;
|
import org.dromara.web.service.SysRegisterService;
|
||||||
@ -43,6 +46,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author Lion Li
|
* @author Lion Li
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -56,6 +60,7 @@ public class AuthController {
|
|||||||
private final ISysConfigService configService;
|
private final ISysConfigService configService;
|
||||||
private final ISysTenantService tenantService;
|
private final ISysTenantService tenantService;
|
||||||
private final ISysSocialService socialUserService;
|
private final ISysSocialService socialUserService;
|
||||||
|
private final ISysClientService clientService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,15 +74,16 @@ public class AuthController {
|
|||||||
// 授权类型和客户端id
|
// 授权类型和客户端id
|
||||||
String clientId = loginBody.getClientId();
|
String clientId = loginBody.getClientId();
|
||||||
String grantType = loginBody.getGrantType();
|
String grantType = loginBody.getGrantType();
|
||||||
IAuthStrategy authStrategy = AuthFactory.instance(grantType);
|
SysClient client = clientService.queryByClientId(clientId);
|
||||||
// 校验请求参数
|
// 查询不到 client 或 client 内不包含 grantType
|
||||||
authStrategy.validate(loginBody);
|
if (ObjectUtil.isNull(client) || !StringUtils.contains(client.getGrantType(), grantType)) {
|
||||||
// 校验授权类型和客户端id
|
log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType);
|
||||||
loginService.checkClientType(clientId, grantType);
|
return R.fail(MessageUtils.message("auth.grant.type.error"));
|
||||||
|
}
|
||||||
// 校验租户
|
// 校验租户
|
||||||
loginService.checkTenant(loginBody.getTenantId());
|
loginService.checkTenant(loginBody.getTenantId());
|
||||||
// 登录
|
// 登录
|
||||||
return R.ok(authStrategy.login(clientId, loginBody));
|
return R.ok(IAuthStrategy.login(loginBody));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,53 +0,0 @@
|
|||||||
package org.dromara.web.enumd;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
|
||||||
import org.dromara.web.service.impl.EmailAuthStrategy;
|
|
||||||
import org.dromara.web.service.impl.PasswordAuthStrategy;
|
|
||||||
import org.dromara.web.service.impl.SmsAuthStrategy;
|
|
||||||
import org.dromara.web.service.impl.XcxAuthStrategy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 授权类型枚举
|
|
||||||
*
|
|
||||||
* @author Michelle.Chung
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@AllArgsConstructor
|
|
||||||
public enum AuthTypeEnumd {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 密码认证
|
|
||||||
*/
|
|
||||||
PASSWORD("password", PasswordAuthStrategy.class),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 短信认证
|
|
||||||
*/
|
|
||||||
SMS("sms", SmsAuthStrategy.class),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 邮件认证
|
|
||||||
*/
|
|
||||||
EMAIL("email", EmailAuthStrategy.class),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 小程序认证
|
|
||||||
*/
|
|
||||||
XCX("xcx", XcxAuthStrategy.class)
|
|
||||||
;
|
|
||||||
|
|
||||||
private final String type;
|
|
||||||
|
|
||||||
private final Class<?> strategyClass;
|
|
||||||
|
|
||||||
public static Class<?> getStrategyClass(String type) {
|
|
||||||
for (AuthTypeEnumd clazz : values()) {
|
|
||||||
if (clazz.getType().equals(type)) {
|
|
||||||
return clazz.getStrategyClass();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
package org.dromara.web.factory;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.dromara.common.core.utils.SpringUtils;
|
|
||||||
import org.dromara.web.enumd.AuthTypeEnumd;
|
|
||||||
import org.dromara.web.service.IAuthStrategy;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 授权 Factory
|
|
||||||
*
|
|
||||||
* @author Michelle.Chung
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
public class AuthFactory {
|
|
||||||
|
|
||||||
private static final Map<String, IAuthStrategy> AUTH_STRATEGY_MAP = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实例化
|
|
||||||
*
|
|
||||||
* @param authType 认证类型
|
|
||||||
*/
|
|
||||||
public static IAuthStrategy instance(String authType) {
|
|
||||||
IAuthStrategy authStrategy = AUTH_STRATEGY_MAP.get(authType);
|
|
||||||
if (ObjectUtil.isNull(authStrategy)) {
|
|
||||||
authStrategy = (IAuthStrategy) SpringUtils.getBean(AuthTypeEnumd.getStrategyClass(authType));
|
|
||||||
AUTH_STRATEGY_MAP.put(authType, authStrategy);
|
|
||||||
}
|
|
||||||
return authStrategy;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -2,6 +2,8 @@ package org.dromara.web.service;
|
|||||||
|
|
||||||
|
|
||||||
import org.dromara.common.core.domain.model.LoginBody;
|
import org.dromara.common.core.domain.model.LoginBody;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
import org.dromara.web.domain.vo.LoginVo;
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -11,13 +13,31 @@ import org.dromara.web.domain.vo.LoginVo;
|
|||||||
*/
|
*/
|
||||||
public interface IAuthStrategy {
|
public interface IAuthStrategy {
|
||||||
|
|
||||||
|
String BASE_NAME = "AuthStrategy";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录
|
||||||
|
*/
|
||||||
|
static LoginVo login(LoginBody loginBody) {
|
||||||
|
// 授权类型和客户端id
|
||||||
|
String clientId = loginBody.getClientId();
|
||||||
|
String grantType = loginBody.getGrantType();
|
||||||
|
String beanName = grantType + BASE_NAME;
|
||||||
|
if (!SpringUtils.containsBean(beanName)) {
|
||||||
|
throw new ServiceException("授权类型不正确!");
|
||||||
|
}
|
||||||
|
IAuthStrategy instance = SpringUtils.getBean(beanName);
|
||||||
|
instance.validate(loginBody);
|
||||||
|
return instance.login(clientId, loginBody);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 参数校验
|
* 参数校验
|
||||||
*/
|
*/
|
||||||
void validate(LoginBody loginBody);
|
void validate(LoginBody loginBody);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录
|
* 参数校验
|
||||||
*/
|
*/
|
||||||
LoginVo login(String clientId, LoginBody loginBody);
|
LoginVo login(String clientId, LoginBody loginBody);
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,6 @@ import org.dromara.common.core.enums.DeviceType;
|
|||||||
import org.dromara.common.core.enums.LoginType;
|
import org.dromara.common.core.enums.LoginType;
|
||||||
import org.dromara.common.core.enums.TenantStatus;
|
import org.dromara.common.core.enums.TenantStatus;
|
||||||
import org.dromara.common.core.enums.UserStatus;
|
import org.dromara.common.core.enums.UserStatus;
|
||||||
import org.dromara.common.core.exception.user.AuthTypeErrorException;
|
|
||||||
import org.dromara.common.core.exception.user.CaptchaException;
|
import org.dromara.common.core.exception.user.CaptchaException;
|
||||||
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||||
import org.dromara.common.core.exception.user.UserException;
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
@ -29,7 +28,6 @@ import org.dromara.common.redis.utils.RedisUtils;
|
|||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.tenant.exception.TenantException;
|
import org.dromara.common.tenant.exception.TenantException;
|
||||||
import org.dromara.common.tenant.helper.TenantHelper;
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
import org.dromara.system.domain.SysClient;
|
|
||||||
import org.dromara.system.domain.SysUser;
|
import org.dromara.system.domain.SysUser;
|
||||||
import org.dromara.system.domain.bo.SysSocialBo;
|
import org.dromara.system.domain.bo.SysSocialBo;
|
||||||
import org.dromara.system.domain.vo.SysSocialVo;
|
import org.dromara.system.domain.vo.SysSocialVo;
|
||||||
@ -37,8 +35,8 @@ import org.dromara.system.domain.vo.SysTenantVo;
|
|||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
import org.dromara.system.mapper.SysClientMapper;
|
import org.dromara.system.mapper.SysClientMapper;
|
||||||
import org.dromara.system.mapper.SysUserMapper;
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
import org.dromara.system.service.ISysSocialService;
|
|
||||||
import org.dromara.system.service.ISysPermissionService;
|
import org.dromara.system.service.ISysPermissionService;
|
||||||
|
import org.dromara.system.service.ISysSocialService;
|
||||||
import org.dromara.system.service.ISysTenantService;
|
import org.dromara.system.service.ISysTenantService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
@ -279,7 +277,7 @@ public class SysLoginService {
|
|||||||
/**
|
/**
|
||||||
* 构建登录用户
|
* 构建登录用户
|
||||||
*/
|
*/
|
||||||
private LoginUser buildLoginUser(SysUserVo user) {
|
public LoginUser buildLoginUser(SysUserVo user) {
|
||||||
LoginUser loginUser = new LoginUser();
|
LoginUser loginUser = new LoginUser();
|
||||||
loginUser.setTenantId(user.getTenantId());
|
loginUser.setTenantId(user.getTenantId());
|
||||||
loginUser.setUserId(user.getUserId());
|
loginUser.setUserId(user.getUserId());
|
||||||
@ -368,18 +366,4 @@ public class SysLoginService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 认证类型校验
|
|
||||||
*/
|
|
||||||
public void checkClientType(String clientId, String grantType) {
|
|
||||||
Long count = clientMapper.selectCount(
|
|
||||||
new LambdaQueryWrapper<SysClient>()
|
|
||||||
.eq(SysClient::getClientId, clientId)
|
|
||||||
.like(SysClient::getGrantType, grantType));
|
|
||||||
if (count == 0) {
|
|
||||||
log.info("客户端id:{} 认证类型:{} 不存在.", clientId, grantType);
|
|
||||||
throw new AuthTypeErrorException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ import org.springframework.stereotype.Service;
|
|||||||
* @author Michelle.Chung
|
* @author Michelle.Chung
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service("email" + IAuthStrategy.BASE_NAME)
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class EmailAuthStrategy implements IAuthStrategy {
|
public class EmailAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
@ -53,8 +53,6 @@ public class EmailAuthStrategy implements IAuthStrategy {
|
|||||||
String email = loginBody.getEmail();
|
String email = loginBody.getEmail();
|
||||||
String emailCode = loginBody.getEmailCode();
|
String emailCode = loginBody.getEmailCode();
|
||||||
|
|
||||||
// 校验租户
|
|
||||||
loginService.checkTenant(tenantId);
|
|
||||||
// 通过邮箱查找用户
|
// 通过邮箱查找用户
|
||||||
SysUserVo user = loadUserByEmail(tenantId, email);
|
SysUserVo user = loadUserByEmail(tenantId, email);
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ import org.springframework.stereotype.Service;
|
|||||||
* @author Michelle.Chung
|
* @author Michelle.Chung
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service("password" + IAuthStrategy.BASE_NAME)
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PasswordAuthStrategy implements IAuthStrategy {
|
public class PasswordAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ import org.springframework.stereotype.Service;
|
|||||||
* @author Michelle.Chung
|
* @author Michelle.Chung
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service("sms" + IAuthStrategy.BASE_NAME)
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SmsAuthStrategy implements IAuthStrategy {
|
public class SmsAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
@ -53,8 +53,6 @@ public class SmsAuthStrategy implements IAuthStrategy {
|
|||||||
String phonenumber = loginBody.getPhonenumber();
|
String phonenumber = loginBody.getPhonenumber();
|
||||||
String smsCode = loginBody.getSmsCode();
|
String smsCode = loginBody.getSmsCode();
|
||||||
|
|
||||||
// 校验租户
|
|
||||||
loginService.checkTenant(tenantId);
|
|
||||||
// 通过手机号查找用户
|
// 通过手机号查找用户
|
||||||
SysUserVo user = loadUserByPhonenumber(tenantId, phonenumber);
|
SysUserVo user = loadUserByPhonenumber(tenantId, phonenumber);
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import org.springframework.stereotype.Service;
|
|||||||
* @author Michelle.Chung
|
* @author Michelle.Chung
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service("xcx" + IAuthStrategy.BASE_NAME)
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class XcxAuthStrategy implements IAuthStrategy {
|
public class XcxAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
@ -45,8 +45,6 @@ public class XcxAuthStrategy implements IAuthStrategy {
|
|||||||
String openid = "";
|
String openid = "";
|
||||||
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||||
SysUserVo user = loadUserByOpenid(openid);
|
SysUserVo user = loadUserByOpenid(openid);
|
||||||
// 校验租户
|
|
||||||
loginService.checkTenant(user.getTenantId());
|
|
||||||
|
|
||||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
XcxLoginUser loginUser = new XcxLoginUser();
|
XcxLoginUser loginUser = new XcxLoginUser();
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
package org.dromara.common.core.exception.user;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 认证权限类型异常类
|
|
||||||
*
|
|
||||||
* @author Michelle.Chung
|
|
||||||
*/
|
|
||||||
public class AuthTypeErrorException extends UserException {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
public AuthTypeErrorException() {
|
|
||||||
super("auth.grant.type.error");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.system.service;
|
package org.dromara.system.service;
|
||||||
|
|
||||||
|
import org.dromara.system.domain.SysClient;
|
||||||
import org.dromara.system.domain.vo.SysClientVo;
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
import org.dromara.system.domain.bo.SysClientBo;
|
import org.dromara.system.domain.bo.SysClientBo;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@ -21,6 +22,11 @@ public interface ISysClientService {
|
|||||||
*/
|
*/
|
||||||
SysClientVo queryById(Long id);
|
SysClientVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询客户端信息基于客户端id
|
||||||
|
*/
|
||||||
|
SysClient queryByClientId(String clientId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询客户端管理列表
|
* 查询客户端管理列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
package org.dromara.system.service.impl;
|
package org.dromara.system.service.impl;
|
||||||
|
|
||||||
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.SecureUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import org.dromara.system.domain.SysClient;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.dromara.system.domain.bo.SysClientBo;
|
import org.dromara.system.domain.bo.SysClientBo;
|
||||||
import org.dromara.system.domain.vo.SysClientVo;
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
import org.dromara.system.domain.SysClient;
|
|
||||||
import org.dromara.system.mapper.SysClientMapper;
|
import org.dromara.system.mapper.SysClientMapper;
|
||||||
import org.dromara.system.service.ISysClientService;
|
import org.dromara.system.service.ISysClientService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户端管理Service业务层处理
|
* 客户端管理Service业务层处理
|
||||||
@ -28,6 +28,7 @@ import java.util.stream.Collectors;
|
|||||||
* @author Michelle.Chung
|
* @author Michelle.Chung
|
||||||
* @date 2023-06-18
|
* @date 2023-06-18
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Service
|
@Service
|
||||||
public class SysClientServiceImpl implements ISysClientService {
|
public class SysClientServiceImpl implements ISysClientService {
|
||||||
@ -44,6 +45,15 @@ public class SysClientServiceImpl implements ISysClientService {
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询客户端管理
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SysClient queryByClientId(String clientId) {
|
||||||
|
return baseMapper.selectOne(new LambdaQueryWrapper<SysClient>().eq(SysClient::getClientId, clientId));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询客户端管理列表
|
* 查询客户端管理列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user