mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 20:49:00 +08:00
♻️ Refactoring code. 重构钉钉企业登录,支持后端动态配置应用信息 #5478
This commit is contained in:
1 parent
96278499dc
commit
48fcea9978
4 files changed
+69
-34
No files matched your search
+3
-1
@@ -27,6 +27,8 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
@@ -36,7 +38,7 @@ import java.time.LocalDateTime;
|
||||
* @date 2018-08-16 21:30:41
|
||||
*/
|
||||
@Data
|
||||
@TenantTable
|
||||
@FieldNameConstants
|
||||
@Schema(description = "第三方账号信息")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysSocialDetails extends Model<SysSocialDetails> {
|
||||
|
||||
+10
@@ -65,6 +65,16 @@ public class SysSocialDetailsController {
|
||||
return R.ok(sysSocialDetailsService.page(page, Wrappers.query(sysSocialDetails)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前租户的三方登录列表
|
||||
* @return R List
|
||||
*/
|
||||
@Inner(value = false)
|
||||
@GetMapping("/getLoginAppList")
|
||||
public R getLoginAppList(){
|
||||
return R.ok(sysSocialDetailsService.selectList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 信息
|
||||
* @param type 类型
|
||||
|
||||
+3
@@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统社交登录账号表
|
||||
*
|
||||
@@ -44,4 +46,5 @@ public interface SysSocialDetailsService extends IService<SysSocialDetails> {
|
||||
*/
|
||||
UserInfo getUserInfo(String inStr);
|
||||
|
||||
List<SysSocialDetails> selectList();
|
||||
}
|
||||
+53
-33
@@ -18,6 +18,7 @@
|
||||
package com.pig4cloud.pigx.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.pig4cloud.pigx.admin.api.dto.UserInfo;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails;
|
||||
@@ -30,10 +31,13 @@ import com.pig4cloud.pigx.common.core.constant.CacheConstants;
|
||||
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author lengleng
|
||||
@@ -43,44 +47,60 @@ import java.util.Map;
|
||||
@AllArgsConstructor
|
||||
@Service("sysSocialDetailsService")
|
||||
public class SysSocialDetailsServiceImpl extends ServiceImpl<SysSocialDetailsMapper, SysSocialDetails>
|
||||
implements SysSocialDetailsService {
|
||||
implements SysSocialDetailsService {
|
||||
|
||||
private final Map<String, LoginHandler> loginHandlerMap;
|
||||
private final Map<String, LoginHandler> loginHandlerMap;
|
||||
|
||||
private final CacheManager cacheManager;
|
||||
private final CacheManager cacheManager;
|
||||
|
||||
private final SysUserMapper sysUserMapper;
|
||||
private final SysUserMapper sysUserMapper;
|
||||
|
||||
/**
|
||||
* 绑定社交账号
|
||||
* @param type type
|
||||
* @param code code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean bindSocial(String type, String code) {
|
||||
LoginHandler loginHandler = loginHandlerMap.get(type);
|
||||
// 绑定逻辑
|
||||
String identify = loginHandler.identify(code);
|
||||
SysUser sysUser = sysUserMapper.selectById(SecurityUtils.getUser().getId());
|
||||
loginHandler.bind(sysUser, identify);
|
||||
/**
|
||||
* 绑定社交账号
|
||||
*
|
||||
* @param type type
|
||||
* @param code code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean bindSocial(String type, String code) {
|
||||
LoginHandler loginHandler = loginHandlerMap.get(type);
|
||||
// 绑定逻辑
|
||||
String identify = loginHandler.identify(code);
|
||||
SysUser sysUser = sysUserMapper.selectById(SecurityUtils.getUser().getId());
|
||||
loginHandler.bind(sysUser, identify);
|
||||
|
||||
// 更新緩存
|
||||
cacheManager.getCache(CacheConstants.USER_DETAILS).evict(sysUser.getUsername());
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
// 更新緩存
|
||||
cacheManager.getCache(CacheConstants.USER_DETAILS).evict(sysUser.getUsername());
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据入参查询用户信息
|
||||
* @param inStr TYPE@code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public UserInfo getUserInfo(String inStr) {
|
||||
String[] inStrs = inStr.split(StringPool.AT);
|
||||
String type = inStrs[0];
|
||||
String loginStr = inStr.substring(type.length() + 1);
|
||||
return loginHandlerMap.get(type).handle(loginStr);
|
||||
}
|
||||
/**
|
||||
* 根据入参查询用户信息
|
||||
*
|
||||
* @param inStr TYPE@code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public UserInfo getUserInfo(String inStr) {
|
||||
String[] inStrs = inStr.split(StringPool.AT);
|
||||
String type = inStrs[0];
|
||||
String loginStr = inStr.substring(type.length() + 1);
|
||||
return loginHandlerMap.get(type).handle(loginStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前租户下的三方应用信息 ,脱敏 appSecret
|
||||
*
|
||||
* @return List<SysSocialDetails>
|
||||
*/
|
||||
@Override
|
||||
public List<SysSocialDetails> selectList() {
|
||||
List<SysSocialDetails> sysSocialDetailsList = baseMapper.selectList(Wrappers.query());
|
||||
return sysSocialDetailsList.stream().map(sysSocialDetails -> {
|
||||
SysSocialDetails newSysSocialDetails = new SysSocialDetails();
|
||||
BeanUtils.copyProperties(sysSocialDetails, newSysSocialDetails, SysSocialDetails.Fields.appSecret);
|
||||
return newSysSocialDetails;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user