mirror of
https://github.com/mfish-qf/mfish-nocode.git
synced 2026-09-24 15:45:53 +08:00
feat: 增加获取当前租户信息接口
This commit is contained in:
@@ -45,9 +45,6 @@ public class UserInfo extends BaseEntity<String> {
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("组织名称")
|
||||
private String orgName;
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("组织ID")
|
||||
private List<String> orgIds;
|
||||
@TableField(exist = false)
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ public class OauthUtils {
|
||||
}
|
||||
Set<String> set = list.stream().map(UserRole::getRoleCode).collect(Collectors.toSet());
|
||||
//如果用户为超户,直接返回
|
||||
if (null != set && set.contains(SerConstant.SUPER_ROLE)) {
|
||||
if (set.contains(SerConstant.SUPER_ROLE)) {
|
||||
return true;
|
||||
}
|
||||
return checkValue(requiresRoles.logical(), requiresRoles.value(), set);
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ public class InnerUserAspect {
|
||||
if (RPCConstants.INNER.equals(source) && !innerUser.validateUser()) {
|
||||
return point.proceed();
|
||||
}
|
||||
Result result = tokenValidator.validator(request);
|
||||
Result<?> result = tokenValidator.validator(request);
|
||||
if (!result.isSuccess()) {
|
||||
throw new OAuthValidateException(result.getMsg());
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public class AuthFilter implements GlobalFilter, Ordered {
|
||||
ServerHttpRequest.Builder mutate = request.mutate();
|
||||
// 内部请求来源参数清除
|
||||
GatewayUtils.removeHeader(mutate, RPCConstants.REQ_ORIGIN);
|
||||
Result result = tokenValidator.validator(request);
|
||||
Result<?> result = tokenValidator.validator(request);
|
||||
if (!result.isSuccess()) {
|
||||
// 如果校验不成功,但该页面在白名单内则直接跳过
|
||||
if (StringUtils.matches(url, ignoreWhiteProperties.getWhites())) {
|
||||
|
||||
@@ -51,10 +51,10 @@ public class LoginController {
|
||||
if (!autoCreateUser && !ssoUserService.isAccountExist(phone, null)) {
|
||||
return Result.fail("错误:手机号不存在");
|
||||
}
|
||||
Long codeTime = loginService.getSmsCodeTime(phone);
|
||||
long codeTime = loginService.getSmsCodeTime(phone);
|
||||
//一分钟内返回code倒计时剩余时间
|
||||
if (codeTime > 0) {
|
||||
return Result.fail(codeTime.toString(), "一分钟内不允许重复发送");
|
||||
return Result.fail(Long.toString(codeTime), "一分钟内不允许重复发送");
|
||||
}
|
||||
String code = loginService.getSmsCode(phone);
|
||||
//如果5分钟内不重新生成code
|
||||
|
||||
@@ -82,6 +82,16 @@ public class SsoTenantController {
|
||||
return ssoTenantService.queryList(reqSsoTenant, reqPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前租户信息
|
||||
* @return 租户信息
|
||||
*/
|
||||
@ApiOperation(value = "获取当前租户信息", notes = "获取当前租户信息")
|
||||
@GetMapping("/info")
|
||||
public Result<TenantVo> queryTenantInfo() {
|
||||
return Result.ok(ssoTenantService.queryInfo(AuthInfoUtils.getCurrentTenantId()), "租户信息-查询成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
|
||||
@@ -18,6 +18,8 @@ import java.util.List;
|
||||
public interface SsoTenantMapper extends BaseMapper<SsoTenant> {
|
||||
List<TenantVo> queryList(@Param("reqSsoTenant") ReqSsoTenant reqSsoTenant);
|
||||
|
||||
TenantVo queryInfo(String id);
|
||||
|
||||
/**
|
||||
* 是否租户管理员
|
||||
*
|
||||
|
||||
@@ -81,6 +81,6 @@ public interface SsoUserMapper extends BaseMapper<SsoUser> {
|
||||
|
||||
int insertUserOrg(@Param("userId") String userId, @Param("orgList") List<String> orgList);
|
||||
|
||||
int deleteUserOrg(@Param("userId") String userId, @Param("orgId") String orgId);
|
||||
int deleteUserOrg(@Param("userId") String userId, @Param("orgList") List<String> orgList);
|
||||
|
||||
}
|
||||
|
||||
@@ -5,13 +5,16 @@
|
||||
<result property="roleIds" column="roleIds"
|
||||
typeHandler="cn.com.mfish.oauth.handler.StrToListTypeHandler"/>
|
||||
</resultMap>
|
||||
<select id="queryList" resultMap="tenantMap">
|
||||
select t.*, u.account,u.nickname,u.phone,1 master,GROUP_CONCAT(DISTINCT r.id) roleIds
|
||||
<sql id="selectTenant">
|
||||
select t.*, u.account, u.nickname, u.phone, 1 master, GROUP_CONCAT(DISTINCT r.id) roleIds
|
||||
from sso_tenant t
|
||||
left join sso_user u on t.user_id = u.id
|
||||
left join sso_org o on o.tenant_id = t.id and o.`status` = 0 and o.del_flag = 0
|
||||
left join sso_org_role sor on sor.org_id = o.id
|
||||
left join sso_role r on r.id = sor.role_id and r.`status` = 0 and r.del_flag = 0
|
||||
left join sso_user u on t.user_id = u.id
|
||||
left join sso_org o on o.tenant_id = t.id and o.`status` = 0 and o.del_flag = 0
|
||||
left join sso_org_role sor on sor.org_id = o.id
|
||||
left join sso_role r on r.id = sor.role_id and r.`status` = 0 and r.del_flag = 0
|
||||
</sql>
|
||||
<select id="queryList" resultMap="tenantMap">
|
||||
<include refid="selectTenant"/>
|
||||
<where>
|
||||
t.del_flag = 0
|
||||
<if test="reqSsoTenant.tenantType!=null">and t.tenant_type = #{reqSsoTenant.tenantType}</if>
|
||||
@@ -21,6 +24,12 @@
|
||||
group by t.id
|
||||
order by create_time desc
|
||||
</select>
|
||||
<select id="queryInfo" resultMap="tenantMap">
|
||||
<include refid="selectTenant"/>
|
||||
<where>
|
||||
t.del_flag = 0 and t.id = #{id}
|
||||
</where>
|
||||
</select>
|
||||
<select id="getTenantUser" resultType="java.lang.String">
|
||||
SELECT u.id
|
||||
FROM sso_user u
|
||||
@@ -43,7 +52,7 @@
|
||||
)
|
||||
</select>
|
||||
<select id="getTenantByRoleCode" resultType="cn.com.mfish.common.oauth.api.vo.TenantVo">
|
||||
select t.*, u.account,u.nickname,u.phone, IF(u.id is null, 0, 1) master, o.org_name
|
||||
select t.*, u.account, u.nickname, u.phone, IF(u.id is null, 0, 1) master
|
||||
from sso_tenant t
|
||||
INNER JOIN sso_user u on u.id = t.user_id
|
||||
inner join sso_org o on o.tenant_id = t.id and o.status = 0 and o.del_flag = 0
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
</resultMap>
|
||||
<sql id="selectUser">
|
||||
select u.*, GROUP_CONCAT(DISTINCT role_id) roleIds, GROUP_CONCAT(DISTINCT org_id) orgIds
|
||||
from (select u.*, o.org_name, ou.org_id, ur.role_id
|
||||
from (select u.*, ou.org_id, ur.role_id
|
||||
from sso_user u
|
||||
join sso_org_user ou on ou.user_id = u.id
|
||||
join sso_org o on o.id = ou.org_id
|
||||
@@ -127,7 +127,7 @@
|
||||
left join sso_user_role ur on u.id = ur.user_id
|
||||
left join sso_role r on r.id = ur.role_id and r.del_flag = 0 and r.status = 0
|
||||
union
|
||||
select u.*, o.org_name, ou.org_id, sor.role_id
|
||||
select u.*, ou.org_id, sor.role_id
|
||||
from sso_user u
|
||||
join sso_org_user ou on ou.user_id = u.id
|
||||
join sso_org o on o.id = ou.org_id
|
||||
@@ -184,8 +184,11 @@
|
||||
delete from sso_org_user
|
||||
<where>
|
||||
user_id = #{userId}
|
||||
<if test="orgId != null and orgId != ''">
|
||||
and org_id = #{orgId}
|
||||
<if test="orgList != null and orgList.size() > 0">
|
||||
and org_id in
|
||||
<foreach collection="orgList" item="orgId" separator="," open="(" close=")">
|
||||
#{orgId}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</delete>
|
||||
|
||||
@@ -18,6 +18,8 @@ import java.util.List;
|
||||
public interface SsoTenantService extends IService<SsoTenant> {
|
||||
List<TenantVo> queryList(ReqSsoTenant reqSsoTenant, ReqPage reqPage);
|
||||
|
||||
TenantVo queryInfo(String id);
|
||||
|
||||
Result<SsoTenant> insertTenant(SsoTenant ssoTenant);
|
||||
|
||||
Result<SsoTenant> updateTenant(SsoTenant ssoTenant);
|
||||
|
||||
@@ -70,8 +70,8 @@ public interface SsoUserService extends IService<SsoUser> {
|
||||
* @param orgList
|
||||
* @return
|
||||
*/
|
||||
int insertUserOrg(String userId, String... orgList);
|
||||
int insertUserOrg(String userId, List<String> orgList);
|
||||
|
||||
int deleteUserOrg(String userId, String orgId);
|
||||
int deleteUserOrg(String userId, String... orgList);
|
||||
|
||||
}
|
||||
|
||||
@@ -54,6 +54,11 @@ public class SsoTenantServiceImpl extends ServiceImpl<SsoTenantMapper, SsoTenant
|
||||
return baseMapper.queryList(reqSsoTenant);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TenantVo queryInfo(String id) {
|
||||
return baseMapper.queryInfo(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Result<SsoTenant> insertTenant(SsoTenant ssoTenant) {
|
||||
@@ -71,7 +76,8 @@ public class SsoTenantServiceImpl extends ServiceImpl<SsoTenantMapper, SsoTenant
|
||||
if (!result.isSuccess()) {
|
||||
throw new MyRuntimeException(result.getMsg());
|
||||
}
|
||||
if (StringUtils.isEmpty(ssoTenant.getUserId()) || ssoUserService.insertUserOrg(ssoTenant.getUserId(), org.getId()) > 0) {
|
||||
ssoUserService.deleteUserOrg(ssoTenant.getUserId(), org.getId());
|
||||
if (StringUtils.isEmpty(ssoTenant.getUserId()) || ssoUserService.insertUserOrg(ssoTenant.getUserId(), Collections.singletonList(org.getId())) > 0) {
|
||||
ssoOrgService.insertOrgRole(org.getId(), ssoTenant.getRoleIds());
|
||||
return Result.ok(ssoTenant, "租户信息-添加成功!");
|
||||
}
|
||||
@@ -148,7 +154,7 @@ public class SsoTenantServiceImpl extends ServiceImpl<SsoTenantMapper, SsoTenant
|
||||
return Result.ok(ssoTenant, "租户信息-编辑成功!");
|
||||
}
|
||||
ssoUserService.deleteUserOrg(oldTenant.getUserId(), org.getId());
|
||||
if (ssoUserService.insertUserOrg(ssoTenant.getUserId(), org.getId()) > 0) {
|
||||
if (ssoUserService.insertUserOrg(ssoTenant.getUserId(), Collections.singletonList(org.getId())) > 0) {
|
||||
clearCache.removeUserAuthCache(Collections.singletonList(oldTenant.getUserId()));
|
||||
return Result.ok(ssoTenant, "租户信息-编辑成功!");
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
|
||||
}
|
||||
int res = baseMapper.insert(user);
|
||||
if (res > 0) {
|
||||
insertUserOrg(user.getId(), user.getOrgIds().toArray(new String[0]));
|
||||
insertUserOrg(user.getId(), user.getOrgIds());
|
||||
insertUserRole(user.getId(), user.getRoleIds());
|
||||
userTempCache.updateCacheInfo(user, user.getId());
|
||||
return Result.ok(user, "用户信息-新增成功");
|
||||
@@ -197,7 +197,7 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
|
||||
user.setAccount(account);
|
||||
if (null != user.getOrgIds()) {
|
||||
log.info(MessageFormat.format("删除用户组织数量:{0}条", baseMapper.deleteUserOrg(user.getId(), null)));
|
||||
insertUserOrg(user.getId(), user.getOrgIds().toArray(new String[0]));
|
||||
insertUserOrg(user.getId(), user.getOrgIds());
|
||||
}
|
||||
if (null != user.getRoleIds()) {
|
||||
log.info(MessageFormat.format("删除用户角色数量:{0}条", baseMapper.deleteUserRole(user.getId())));
|
||||
@@ -213,7 +213,7 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
|
||||
/**
|
||||
* 校验用户帐号 账号,手机,email均不允许重复
|
||||
*
|
||||
* @param user 用户
|
||||
* @param user 用户
|
||||
* @param operate 操作
|
||||
*/
|
||||
private void validateUser(SsoUser user, String operate) {
|
||||
@@ -312,11 +312,11 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertUserOrg(String userId, String... orgList) {
|
||||
if (orgList == null || orgList.length == 0) {
|
||||
public int insertUserOrg(String userId, List<String> orgList) {
|
||||
if (orgList == null || orgList.size() == 0) {
|
||||
return 0;
|
||||
}
|
||||
int count = baseMapper.insertUserOrg(userId, Arrays.asList(orgList));
|
||||
int count = baseMapper.insertUserOrg(userId, orgList);
|
||||
if (count > 0) {
|
||||
return count;
|
||||
}
|
||||
@@ -324,7 +324,7 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteUserOrg(String userId, String orgId) {
|
||||
return baseMapper.deleteUserOrg(userId, orgId);
|
||||
public int deleteUserOrg(String userId, String... orgList) {
|
||||
return baseMapper.deleteUserOrg(userId, Arrays.asList(orgList));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user