mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-24 07:19:46 +08:00
update 优化 !pr370 完成三方登录授权功能
This commit is contained in:
@ -3,9 +3,10 @@ package org.dromara.system.controller.system;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.system.domain.vo.SocialUserVo;
|
||||
import org.dromara.system.service.ISocialUserService;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
import org.dromara.system.service.ISysSocialService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -24,18 +25,16 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/social")
|
||||
public class SocialUserController extends BaseController {
|
||||
public class SysSocialController extends BaseController {
|
||||
|
||||
private final ISocialUserService socialUserService;
|
||||
private final ISysSocialService socialUserService;
|
||||
|
||||
/**
|
||||
* 查询社会化关系列表
|
||||
*/
|
||||
// 这里改成用户默认的。只能查看自己的权限更好哦
|
||||
// @SaCheckPermission("system:user:list")
|
||||
@GetMapping("/list")
|
||||
public R<List<SocialUserVo>> list() {
|
||||
return R.ok(socialUserService.queryList());
|
||||
public R<List<SysSocialVo>> list() {
|
||||
return R.ok(socialUserService.queryListByUserId(LoginHelper.getUserId()));
|
||||
}
|
||||
|
||||
|
||||
@ -44,14 +43,10 @@ public class SocialUserController extends BaseController {
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
// 这里改成用户默认的。只能查看自己的权限更好哦
|
||||
// @SaCheckPermission("system:user:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SocialUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
public R<SysSocialVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable String id) {
|
||||
return R.ok(socialUserService.queryById(id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,22 +1,22 @@
|
||||
package org.dromara.system.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 社会化关系对象 social_user
|
||||
* 社会化关系对象 sys_social
|
||||
*
|
||||
* @author thiszhc
|
||||
* @date 2023-06-12
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("social_user")
|
||||
public class SocialUser extends BaseEntity {
|
||||
@TableName("sys_social")
|
||||
public class SysSocial extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
@ -1,25 +1,26 @@
|
||||
package org.dromara.system.domain.bo;
|
||||
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import org.dromara.system.domain.SocialUser;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import org.dromara.system.domain.SysSocial;
|
||||
|
||||
/**
|
||||
* 社会化关系业务对象 social_user
|
||||
* 社会化关系业务对象 sys_social
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-06-12
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = SocialUser.class, reverseConvertGenerate = false)
|
||||
public class SocialUserBo extends TenantEntity {
|
||||
@AutoMapper(target = SysSocial.class, reverseConvertGenerate = false)
|
||||
public class SysSocialBo extends TenantEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
@ -4,23 +4,21 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import org.dromara.system.domain.SocialUser;
|
||||
import org.dromara.system.domain.SysSocial;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 社会化关系视图对象 social_user
|
||||
* 社会化关系视图对象 sys_social
|
||||
*
|
||||
* @author thiszhc
|
||||
* @date 2023-06-12
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = SocialUser.class)
|
||||
public class SocialUserVo extends TenantEntity {
|
||||
@AutoMapper(target = SysSocial.class)
|
||||
public class SysSocialVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -31,6 +29,11 @@ public class SocialUserVo extends TenantEntity {
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 的唯一ID
|
||||
*/
|
@ -1,23 +0,0 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import org.dromara.system.domain.SocialUser;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SocialUserVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 社会化关系Mapper接口
|
||||
*
|
||||
* @author thiszhc
|
||||
* @date 2023-06-12
|
||||
*/
|
||||
public interface SocialUserMapper extends BaseMapperPlus<SocialUser, SocialUserVo> {
|
||||
|
||||
/**
|
||||
* 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象
|
||||
* @param authId 认证ID
|
||||
* @return SocialUser
|
||||
*/
|
||||
SocialUserVo selectSocialUserByAuthId(String authId);
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.system.domain.SysSocial;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
|
||||
/**
|
||||
* 社会化关系Mapper接口
|
||||
*
|
||||
* @author thiszhc
|
||||
*/
|
||||
public interface SysSocialMapper extends BaseMapperPlus<SysSocial, SysSocialVo> {
|
||||
|
||||
/**
|
||||
* 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象
|
||||
*
|
||||
* @param authId 认证ID
|
||||
* @return SysSocial
|
||||
*/
|
||||
SysSocialVo selectByAuthId(String authId);
|
||||
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
package org.dromara.system.service;
|
||||
|
||||
import org.dromara.system.domain.bo.SocialUserBo;
|
||||
import org.dromara.system.domain.vo.SocialUserVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 社会化关系Service接口
|
||||
*
|
||||
* @author thiszhc
|
||||
* @date 2023-06-12
|
||||
*/
|
||||
public interface ISocialUserService {
|
||||
|
||||
|
||||
/**
|
||||
* 查询社会化关系
|
||||
*/
|
||||
SocialUserVo queryById(String id);
|
||||
|
||||
/**
|
||||
* 查询社会化关系列表
|
||||
*/
|
||||
List<SocialUserVo> queryList();
|
||||
|
||||
/**
|
||||
* 新增授权关系
|
||||
*/
|
||||
Boolean insertByBo(SocialUserBo bo);
|
||||
|
||||
|
||||
/**
|
||||
* 删除社会化关系信息
|
||||
*/
|
||||
Boolean deleteWithValidById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象
|
||||
* @param authId 认证ID
|
||||
* @return SocialUser
|
||||
*/
|
||||
SocialUserVo selectSocialUserByAuthId(String authId);
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package org.dromara.system.service;
|
||||
|
||||
import org.dromara.system.domain.bo.SysSocialBo;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 社会化关系Service接口
|
||||
*
|
||||
* @author thiszhc
|
||||
*/
|
||||
public interface ISysSocialService {
|
||||
|
||||
|
||||
/**
|
||||
* 查询社会化关系
|
||||
*/
|
||||
SysSocialVo queryById(String id);
|
||||
|
||||
/**
|
||||
* 查询社会化关系列表
|
||||
*/
|
||||
List<SysSocialVo> queryList();
|
||||
|
||||
/**
|
||||
* 查询社会化关系列表
|
||||
*/
|
||||
List<SysSocialVo> queryListByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 新增授权关系
|
||||
*/
|
||||
Boolean insertByBo(SysSocialBo bo);
|
||||
|
||||
|
||||
/**
|
||||
* 删除社会化关系信息
|
||||
*/
|
||||
Boolean deleteWithValidById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象
|
||||
* @param authId 认证ID
|
||||
* @return SysSocial
|
||||
*/
|
||||
SysSocialVo selectByAuthId(String authId);
|
||||
|
||||
|
||||
}
|
@ -1,12 +1,13 @@
|
||||
package org.dromara.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.system.domain.SocialUser;
|
||||
import org.dromara.system.domain.bo.SocialUserBo;
|
||||
import org.dromara.system.domain.vo.SocialUserVo;
|
||||
import org.dromara.system.mapper.SocialUserMapper;
|
||||
import org.dromara.system.service.ISocialUserService;
|
||||
import org.dromara.system.domain.SysSocial;
|
||||
import org.dromara.system.domain.bo.SysSocialBo;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
import org.dromara.system.mapper.SysSocialMapper;
|
||||
import org.dromara.system.service.ISysSocialService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@ -19,16 +20,16 @@ import java.util.List;
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SocialUserServiceImpl implements ISocialUserService {
|
||||
public class SysSocialServiceImpl implements ISysSocialService {
|
||||
|
||||
private final SocialUserMapper baseMapper;
|
||||
private final SysSocialMapper baseMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 查询社会化关系
|
||||
*/
|
||||
@Override
|
||||
public SocialUserVo queryById(String id){
|
||||
public SysSocialVo queryById(String id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
@ -36,24 +37,28 @@ public class SocialUserServiceImpl implements ISocialUserService {
|
||||
* 授权列表
|
||||
*/
|
||||
@Override
|
||||
public List<SocialUserVo> queryList() {
|
||||
public List<SysSocialVo> queryList() {
|
||||
return baseMapper.selectVoList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysSocialVo> queryListByUserId(Long userId) {
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getUserId, userId));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增社会化关系
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SocialUserBo bo) {
|
||||
SocialUser add = MapstructUtils.convert(bo, SocialUser.class);
|
||||
public Boolean insertByBo(SysSocialBo bo) {
|
||||
SysSocial add = MapstructUtils.convert(bo, SysSocial.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
if (add != null) {
|
||||
bo.setId(add.getId());
|
||||
}else {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -64,7 +69,7 @@ public class SocialUserServiceImpl implements ISocialUserService {
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SocialUser entity) {
|
||||
private void validEntityBeforeSave(SysSocial entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
@ -79,14 +84,14 @@ public class SocialUserServiceImpl implements ISocialUserService {
|
||||
|
||||
|
||||
/**
|
||||
* 根据authId查询用户信息
|
||||
* 根据 authId 查询用户信息
|
||||
*
|
||||
* @param authId 用户id
|
||||
* @return 用户信息
|
||||
*/
|
||||
@Override
|
||||
public SocialUserVo selectSocialUserByAuthId(String authId) {
|
||||
return baseMapper.selectSocialUserByAuthId(authId);
|
||||
public SysSocialVo selectByAuthId(String authId) {
|
||||
return baseMapper.selectByAuthId(authId);
|
||||
}
|
||||
|
||||
}
|
@ -2,21 +2,20 @@
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.system.mapper.SocialUserMapper">
|
||||
<mapper namespace="org.dromara.system.mapper.SysSocialMapper">
|
||||
|
||||
<resultMap type="org.dromara.system.domain.vo.SocialUserVo" id="SocialUserAuthResult">
|
||||
<resultMap type="org.dromara.system.domain.vo.SysSocialVo" id="SysSocialAuthResult">
|
||||
<id property="id" column="id"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象 -->
|
||||
<select id="selectSocialUserByAuthId" parameterType="String" resultMap="SocialUserAuthResult">
|
||||
<select id="selectByAuthId" parameterType="String" resultMap="SysSocialAuthResult">
|
||||
select b.user_id,
|
||||
b.tenant_id,
|
||||
b.user_name,
|
||||
b.password,
|
||||
a.auth_id,
|
||||
a.source
|
||||
from social_user a
|
||||
from sys_social a
|
||||
left join sys_user b on a.user_id = b.user_id
|
||||
where a.auth_id = #{authId}
|
||||
</select>
|
Reference in New Issue
Block a user