|
|
@@ -31,11 +31,11 @@ import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
|
|
import cn.iocoder.yudao.module.system.service.iscs.IscsService;
|
|
|
-import cn.iocoder.yudao.module.system.service.iscs.IscsServiceImpl;
|
|
|
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
|
|
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
|
|
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
|
|
import cn.iocoder.yudao.module.system.service.userworkstation.UserWorkstationService;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
|
@@ -56,6 +56,7 @@ import java.util.*;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
|
|
|
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
import static cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants.OAUTH2_ACCESS_TOKEN;
|
|
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
|
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
|
|
|
@@ -621,4 +622,47 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|
|
return userMapper.selectByIds(userIds);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Boolean updateDeviceId(DeviceIdReqVO reqVO) {
|
|
|
+ // 检测一下传参
|
|
|
+ Assert.notNull(reqVO.getType(), "type不可为空!");
|
|
|
+ Assert.notBlank(reqVO.getDeviceId(), "deviceId不可为空!");
|
|
|
+ Long loginUserId = getLoginUserId();
|
|
|
+ AdminUserDO user = getUser(loginUserId);
|
|
|
+ // 开始执行新增
|
|
|
+ if (reqVO.getType().equals(0)) {
|
|
|
+ // 新增
|
|
|
+ if (StringUtils.isBlank(user.getDeviceId())) {
|
|
|
+ // 如果本来没数据,直接新增
|
|
|
+ update(Wrappers.<AdminUserDO>lambdaUpdate().eq(AdminUserDO::getId, loginUserId).set(AdminUserDO::getDeviceId, reqVO.getDeviceId()));
|
|
|
+ } else {
|
|
|
+ // 如果原先有数据,则解析原先数据,还需要检测重复
|
|
|
+ List<String> oldDeviceIds = new ArrayList<>(Arrays.asList(user.getDeviceId().split(",")));
|
|
|
+ oldDeviceIds.add(reqVO.getDeviceId());
|
|
|
+ // 转成set去重
|
|
|
+ Set<String> deviceIdSet = new TreeSet<>(oldDeviceIds);
|
|
|
+ String newDeviceIds = String.join(",", deviceIdSet);
|
|
|
+ update(Wrappers.<AdminUserDO>lambdaUpdate().eq(AdminUserDO::getId, loginUserId).set(AdminUserDO::getDeviceId, newDeviceIds));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 开始执行移除
|
|
|
+ if (reqVO.getType().equals(1)) {
|
|
|
+ if (StringUtils.isBlank(user.getDeviceId())) {
|
|
|
+ // 如果本来没数据,直接ruturn
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ // 如果原先有数据,则解析原先数据,在移除
|
|
|
+ List<String> oldDeviceIds = new ArrayList<>(Arrays.asList(user.getDeviceId().split(",")));
|
|
|
+ oldDeviceIds.removeIf(o -> o.equals(reqVO.getDeviceId()));
|
|
|
+ String newDeviceIds = String.join(",", oldDeviceIds);
|
|
|
+ update(Wrappers.<AdminUserDO>lambdaUpdate().eq(AdminUserDO::getId, loginUserId).set(AdminUserDO::getDeviceId, newDeviceIds));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
}
|