mirror of
https://gitee.com/xiaonuobase/snowy.git
synced 2026-10-06 06:52:58 +08:00
【底座】针对 #IJVOA5 完善C端用户编辑接口“client/user/edit”更新C端用户登录信息
This commit is contained in:
+27
-1
@@ -12,15 +12,19 @@
|
||||
*/
|
||||
package vip.xiaonuo.client.modular.user.provider;
|
||||
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import vip.xiaonuo.auth.api.SaBaseLoginUserApi;
|
||||
import vip.xiaonuo.auth.core.pojo.SaBaseClientLoginUser;
|
||||
import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
|
||||
import vip.xiaonuo.auth.core.util.StpClientUtil;
|
||||
import vip.xiaonuo.client.modular.user.entity.ClientUser;
|
||||
import vip.xiaonuo.client.modular.user.result.ClientLoginUser;
|
||||
import vip.xiaonuo.client.modular.user.service.ClientUserService;
|
||||
@@ -34,6 +38,7 @@ import java.util.stream.Collectors;
|
||||
* @author xuyuxiang
|
||||
* @date 2022/4/29 13:36
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("clientLoginUserApi")
|
||||
public class ClientLoginUserApiProvider implements SaBaseLoginUserApi {
|
||||
|
||||
@@ -239,6 +244,27 @@ public class ClientLoginUserApiProvider implements SaBaseLoginUserApi {
|
||||
|
||||
@Override
|
||||
public void refreshOnlineUserPermission(String userId) {
|
||||
// C端用户暂无数据权限机制,无需刷新
|
||||
// 获取该用户所有在线token
|
||||
List<String> tokenList = StpClientUtil.getTokenValueListByLoginId(userId);
|
||||
if (ObjectUtil.isEmpty(tokenList)) {
|
||||
return;
|
||||
}
|
||||
// 获取用户基本信息
|
||||
SaBaseClientLoginUser saBaseClientLoginUser = this.getClientUserById(userId);
|
||||
if (ObjectUtil.isEmpty(saBaseClientLoginUser)) {
|
||||
return;
|
||||
}
|
||||
// 写入该用户的所有TokenSession
|
||||
for (String token : tokenList) {
|
||||
try {
|
||||
SaSession session = StpClientUtil.getTokenSessionByToken(token);
|
||||
if (session != null) {
|
||||
session.set("loginUser", saBaseClientLoginUser);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn(">>> 刷新C端用户权限缓存时跳过无效token,userId:{},token:{}", userId, token);
|
||||
}
|
||||
}
|
||||
log.info(">>> 已刷新C端在线用户权限缓存,userId:{},token数:{}", userId, tokenList.size());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -38,6 +38,7 @@ import org.dromara.trans.service.impl.TransService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import vip.xiaonuo.auth.api.SaBaseLoginUserApi;
|
||||
import vip.xiaonuo.auth.core.pojo.SaBaseClientLoginUser;
|
||||
import vip.xiaonuo.auth.core.util.StpClientUtil;
|
||||
import vip.xiaonuo.auth.core.util.StpClientLoginUserUtil;
|
||||
@@ -160,6 +161,9 @@ public class ClientUserServiceImpl extends ServiceImpl<ClientUserMapper, ClientU
|
||||
@Resource
|
||||
private AuthApi authApi;
|
||||
|
||||
@Resource(name = "clientLoginUserApi")
|
||||
private SaBaseLoginUserApi loginUserApi;
|
||||
|
||||
@Override
|
||||
public ClientLoginUser getUserById(String id) {
|
||||
ClientUser clientUser = this.getById(id);
|
||||
@@ -273,6 +277,9 @@ public class ClientUserServiceImpl extends ServiceImpl<ClientUserMapper, ClientU
|
||||
checkParam(clientUserEditParam);
|
||||
BeanUtil.copyProperties(clientUserEditParam, clientUser);
|
||||
this.updateById(clientUser);
|
||||
|
||||
// 刷新该用户的在线缓存信息
|
||||
loginUserApi.refreshOnlineUserPermission(clientUserEditParam.getId());
|
||||
}
|
||||
|
||||
private void checkParam(ClientUserEditParam clientUserEditParam) {
|
||||
|
||||
Reference in New Issue
Block a user