package com.qianwen.smartman.modules.system.service.impl; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import java.lang.invoke.SerializedLambda; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; import com.qianwen.smartman.common.cache.CacheNames; import com.qianwen.smartman.common.cache.DictCache; import com.qianwen.smartman.common.cache.ParamCache; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.cache.SysCache; import com.qianwen.smartman.common.cache.UserCache; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.constant.DncConstant; import com.qianwen.smartman.common.constant.TenantConstant; import com.qianwen.smartman.common.constant.UserConstant; import com.qianwen.smartman.common.enums.DictEnum; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.base.BaseServiceImpl; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.secure.BladeUser; import com.qianwen.core.secure.utils.AuthUtil; import com.qianwen.core.tenant.BladeTenantProperties; import com.qianwen.core.tool.jackson.JsonUtil; import com.qianwen.core.tool.support.Kv; import com.qianwen.core.tool.utils.BeanUtil; import com.qianwen.core.tool.utils.DateUtil; import com.qianwen.core.tool.utils.DesUtil; import com.qianwen.core.tool.utils.DigestUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.core.tool.utils.ObjectUtil; import com.qianwen.core.tool.utils.StringUtil; import com.qianwen.smartman.modules.auth.enums.UserEnum; import com.qianwen.smartman.modules.cps.entity.Employee; import com.qianwen.smartman.modules.cps.service.IEmployeeService; import com.qianwen.smartman.modules.notify.dto.NotifyUserDTO; import com.qianwen.smartman.modules.sync.constant.DingConstant; import com.qianwen.smartman.modules.sync.constant.OuterAppConfigConstant; import com.qianwen.smartman.modules.sync.constant.QyWechatConstant; import com.qianwen.smartman.modules.sync.entity.OuterAppConfig; import com.qianwen.smartman.modules.sync.service.IOuterAppConfigService; import com.qianwen.smartman.modules.system.entity.Tenant; import com.qianwen.smartman.modules.system.entity.User; import com.qianwen.smartman.modules.system.entity.UserApp; import com.qianwen.smartman.modules.system.entity.UserDept; import com.qianwen.smartman.modules.system.entity.UserInfo; import com.qianwen.smartman.modules.system.entity.UserOauth; import com.qianwen.smartman.modules.system.entity.UserOther; import com.qianwen.smartman.modules.system.entity.UserWeb; import com.qianwen.smartman.modules.system.excel.UserExcel; import com.qianwen.smartman.modules.system.mapper.UserMapper; import com.qianwen.smartman.modules.system.service.IRoleService; import com.qianwen.smartman.modules.system.service.IUserDeptService; import com.qianwen.smartman.modules.system.service.IUserOauthService; import com.qianwen.smartman.modules.system.service.IUserService; import com.qianwen.smartman.modules.system.service.IWorkbenchService; import com.qianwen.smartman.modules.system.vo.QuCreAccBackMessageVO; import com.qianwen.smartman.modules.system.vo.QuCreAccBackUserVO; import com.qianwen.smartman.modules.system.vo.QuickCreationAccountVO; import com.qianwen.smartman.modules.system.vo.QuickCreationUserVO; import com.qianwen.smartman.modules.system.vo.UserAccountVO; import com.qianwen.smartman.modules.system.vo.UserVO; import com.qianwen.smartman.modules.system.wrapper.UserWrapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/service/impl/UserServiceImpl.class */ public class UserServiceImpl extends BaseServiceImpl implements IUserService { private static final String GUEST_NAME = "guest"; private final IUserDeptService userDeptService; private final IUserOauthService userOauthService; private final IRoleService roleService; private final BladeTenantProperties tenantProperties; private final BladeRedis bladeRedis; private final IEmployeeService employeeService; private final IWorkbenchService workbenchService; private final IOuterAppConfigService outerAppConfigService; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -1000081391: if (implMethodName.equals("getPassword")) { z = true; break; } break; case -140458505: if (implMethodName.equals("getAccount")) { z = true; break; } break; case -75080655: if (implMethodName.equals("getUuid")) { z = true; break; } break; case 98245393: if (implMethodName.equals("getId")) { z = true; break; } break; case 360688950: if (implMethodName.equals("getDeptId")) { z = true; break; } break; case 713563345: if (implMethodName.equals("getPostId")) { z = true; break; } break; case 770598695: if (implMethodName.equals("getRoleId")) { z = true; break; } break; case 771206363: if (implMethodName.equals("getTenantId")) { z = true; break; } break; case 799509265: if (implMethodName.equals("getSource")) { z = true; break; } break; case 803533544: if (implMethodName.equals("getStatus")) { z = true; break; } break; case 859984188: if (implMethodName.equals("getUserId")) { z = true; break; } break; case 952316798: if (implMethodName.equals("getPwdUpdateDate")) { z = true; break; } break; case 961079513: if (implMethodName.equals("getIsDeleted")) { z = true; break; } break; case 1952444902: if (implMethodName.equals("getEmail")) { z = true; break; } break; case 1962468280: if (implMethodName.equals("getPhone")) { z = false; break; } break; } switch (z) { case false: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getPhone(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getDeptId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getRoleId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getTenantId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getTenantId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getTenantId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getTenantId(); }; } break; case RegionCache.VILLAGE_LEVEL /* 5 */: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getStatus(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getIsDeleted(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getPassword(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOauth") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getSource(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOauth") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getSource(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getAccount(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getAccount(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getAccount(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getAccount(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOauth") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getUuid(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getPostId(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getEmail(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/User") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) { return (v0) -> { return v0.getPwdUpdateDate(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserDept") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserWeb") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserApp") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOther") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserDept") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserWeb") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserApp") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOther") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserWeb") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserApp") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOther") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/UserOauth") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getUserId(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public UserServiceImpl(final IUserDeptService userDeptService, final IUserOauthService userOauthService, final IRoleService roleService, final BladeTenantProperties tenantProperties, final BladeRedis bladeRedis, final IEmployeeService employeeService, final IWorkbenchService workbenchService, final IOuterAppConfigService outerAppConfigService) { this.userDeptService = userDeptService; this.userOauthService = userOauthService; this.roleService = roleService; this.tenantProperties = tenantProperties; this.bladeRedis = bladeRedis; this.employeeService = employeeService; this.workbenchService = workbenchService; this.outerAppConfigService = outerAppConfigService; } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public boolean submit(User user) { if (StringUtil.isBlank(user.getTenantId())) { user.setTenantId("000000"); } String tenantId = user.getTenantId(); Tenant tenant = SysCache.getTenant(tenantId); if (Func.isNotEmpty(tenant)) { Integer accountNumber = tenant.getAccountNumber(); if (this.tenantProperties.getLicense().booleanValue()) { String licenseKey = tenant.getLicenseKey(); String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY); accountNumber = ((Tenant) JsonUtil.parse(decrypt, Tenant.class)).getAccountNumber(); } Long tenantCount = ((UserMapper) this.baseMapper).selectCount((Wrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getTenantId(); }, tenantId)); if (accountNumber != null && accountNumber.intValue() > 0 && accountNumber.intValue() <= tenantCount.longValue()) { throw new ServiceException("当前租户已到最大账号额度!"); } } String securityLevelSetting = ParamCache.getValue("account.passwordModifySecurityLevel"); Integer securityLevel = (Integer) Convert.convert(Integer.class, securityLevelSetting, 0); Boolean isAdd = false; if (user.getId() == null) { if (!meetSecurityLevel(securityLevel.intValue(), user.getPassword())) { throw new ServiceException("密码强度校验不通过,密码强度等级:" + securityLevel); } if (Func.isNotEmpty(user.getPassword())) { user.setPassword(DigestUtil.encrypt(user.getPassword())); } isAdd = true; } Long userCount = ((UserMapper) this.baseMapper).selectCount((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getTenantId(); }, tenantId)).eq((v0) -> { return v0.getAccount(); }, user.getAccount())); if (userCount.longValue() > 0 && Func.isEmpty(user.getId())) { throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", new Object[]{user.getAccount()})); } Long oldEmployeeId = null; if (user.getId() != null) { User userParam = new User(); userParam.setId(user.getId()); User currentUser = detail(userParam); oldEmployeeId = currentUser.getEmployeeId(); } Boolean flag = Boolean.valueOf(saveOrUpdate(user) && submitUserDept(user)); if (isAdd.booleanValue()) { this.workbenchService.initWorkbench(user.getId(), user.getRealName()); } return flag.booleanValue() && this.employeeService.changeUserId(user.getEmployeeId(), oldEmployeeId, user.getId()).booleanValue(); } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public boolean updateUser(User user) { String tenantId = user.getTenantId(); Long userCount = ((UserMapper) this.baseMapper).selectCount((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getTenantId(); }, tenantId)).eq((v0) -> { return v0.getAccount(); }, user.getAccount())).notIn((v0) -> { return v0.getId(); }, new Object[]{user.getId()})); if (userCount.longValue() > 0) { throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", new Object[]{user.getAccount()})); } return updateUserInfo(user) && submitUserDept(user); } @Override // org.springblade.modules.system.service.IUserService public boolean updateUserInfo(User user) { user.setPassword(null); return updateById(user); } private boolean submitUserDept(User user) { List deptIdList = Func.toLongList(user.getDeptId()); List userDeptList = new ArrayList<>(); deptIdList.forEach(deptId -> { UserDept userDept = new UserDept(); userDept.setUserId(user.getId()); userDept.setDeptId(deptId); userDeptList.add(userDept); }); this.userDeptService.remove((Wrapper) Wrappers.update().lambda().eq((v0) -> { return v0.getUserId(); }, user.getId())); return this.userDeptService.saveBatch(userDeptList); } @Override // org.springblade.modules.system.service.IUserService public IPage selectUserPage(IPage page, User user, Long deptId, String tenantId) { List deptIdList = SysCache.getDeptChildIds(deptId); return page.setRecords(((UserMapper) this.baseMapper).selectUserPage(page, user, deptIdList, tenantId)); } @Override // org.springblade.modules.system.service.IUserService public IPage selectUserSearch(UserVO user, Query query) { LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); if (StringUtil.isNotBlank(user.getAccount())) { queryWrapper.likeRight((v0) -> { return v0.getAccount(); }, user.getAccount()); } if (StringUtil.isNotBlank(user.getDeptName())) { String deptIds = SysCache.getDeptIdsByFuzzy(AuthUtil.getTenantId(), user.getDeptName()); if (StringUtil.isNotBlank(deptIds)) { queryWrapper.and(wrapper -> { List ids = Func.toStrList(deptIds); ids.forEach(id -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) wrapper.like((v0) -> { return v0.getDeptId(); }, id)).or(); }); }); } } if (StringUtil.isNotBlank(user.getPostName())) { String postIds = SysCache.getPostIdsByFuzzy(AuthUtil.getTenantId(), user.getPostName()); if (StringUtil.isNotBlank(postIds)) { queryWrapper.and(wrapper2 -> { List ids = Func.toStrList(postIds); ids.forEach(id -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) wrapper2.like((v0) -> { return v0.getPostId(); }, id)).or(); }); }); } } IPage pages = page(Condition.getPage(query), queryWrapper); return UserWrapper.build().pageVO(pages); } @Override // org.springblade.modules.system.service.IUserService public User userByAccount(String tenantId, String account) { return (User) ((UserMapper) this.baseMapper).selectOne((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getTenantId(); }, tenantId)).eq((v0) -> { return v0.getAccount(); }, account)).eq((v0) -> { return v0.getIsDeleted(); }, 0)); } @Override // org.springblade.modules.system.service.IUserService public UserInfo userInfo(Long userId) { User user = (User) ((UserMapper) this.baseMapper).selectById(userId); return buildUserInfo(user); } @Override // org.springblade.modules.system.service.IUserService public UserInfo userInfo(String tenantId, String account, String password) { User user = ((UserMapper) this.baseMapper).getUser(tenantId, account, password); return buildUserInfo(user); } @Override // org.springblade.modules.system.service.IUserService public UserInfo userInfo(String tenantId, String account, String password, UserEnum userEnum) { User user = ((UserMapper) this.baseMapper).getUser(tenantId, account, password); return buildUserInfo(user, userEnum); } @Override // org.springblade.modules.system.service.IUserService public UserInfo buildUserInfo(User user) { return buildUserInfo(user, UserEnum.WEB); } private UserInfo buildUserInfo(User user, UserEnum userEnum) { if (ObjectUtil.isEmpty(user)) { return null; } UserInfo userInfo = new UserInfo(); userInfo.setUser(user); if (Func.isNotEmpty(user)) { List roleAlias = this.roleService.getRoleAliases(user.getRoleId()); userInfo.setRoles(roleAlias); } Kv detail = Kv.create().set("type", userEnum.getName()); if (userEnum == UserEnum.WEB) { UserWeb userWeb = new UserWeb(); UserWeb query = (UserWeb) userWeb.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query)) { detail.set("ext", query.getUserExt()); } } else if (userEnum == UserEnum.APP) { UserApp userApp = new UserApp(); UserApp query2 = (UserApp) userApp.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query2)) { detail.set("ext", query2.getUserExt()); } } else { UserOther userOther = new UserOther(); UserOther query3 = (UserOther) userOther.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query3)) { detail.set("ext", query3.getUserExt()); } } userInfo.setDetail(detail); return userInfo; } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public UserInfo userInfo(UserOauth userOauth) { UserInfo userInfo; UserOauth uo = (UserOauth) this.userOauthService.getOne((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getUuid(); }, userOauth.getUuid())).eq((v0) -> { return v0.getSource(); }, userOauth.getSource())); if (Func.isNotEmpty(uo) && Func.isNotEmpty(uo.getUserId())) { userOauth.setId(uo.getId()); this.userOauthService.updateById(userOauth); userInfo = userInfo(uo.getUserId()); userInfo.setOauthId(Func.toStr(uo.getId())); } else { userInfo = new UserInfo(); if (Func.isEmpty(uo)) { this.userOauthService.save(userOauth); userInfo.setOauthId(Func.toStr(userOauth.getId())); } else { userOauth.setId(uo.getId()); this.userOauthService.updateById(userOauth); userInfo.setOauthId(Func.toStr(uo.getId())); } User user = new User(); user.setAccount(userOauth.getUsername()); user.setTenantId(userOauth.getTenantId()); userInfo.setUser(user); userInfo.setRoles(Collections.singletonList(GUEST_NAME)); } return userInfo; } @Override // org.springblade.modules.system.service.IUserService public boolean grant(String userIds, String roleIds) { User user = new User(); user.setRoleId(roleIds); return update(user, (Wrapper) Wrappers.update().lambda().in((v0) -> { return v0.getId(); }, Func.toLongList(userIds))); } @Override // org.springblade.modules.system.service.IUserService public boolean resetPassword(String userIds) { User user = new User(); user.setPassword(DigestUtil.encrypt(ParamCache.getValue(CommonConstant.DEFAULT_PARAM_PASSWORD))); user.setUpdateTime(DateUtil.now()); user.setPwdUpdateDate(null); return update(user, (Wrapper) Wrappers.update().lambda().in((v0) -> { return v0.getId(); }, Func.toLongList(userIds))); } @Override // org.springblade.modules.system.service.IUserService public boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1) { User user = (User) getById(userId); if (!newPassword.equals(newPassword1)) { throw new ServiceException("请输入正确的确认密码!"); } if (!user.getPassword().equals(DigestUtil.encrypt(oldPassword))) { throw new ServiceException("原密码不正确!"); } if (oldPassword.equals(newPassword)) { throw new ServiceException("新密码不能与原密码相同!"); } String securityLevelSetting = ParamCache.getValue("account.passwordModifySecurityLevel"); Integer securityLevel = (Integer) Convert.convert(Integer.class, securityLevelSetting, 0); if (!meetSecurityLevel(securityLevel.intValue(), newPassword)) { throw new ServiceException("密码强度校验不通过,密码强度等级:" + securityLevel); } return update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().set((v0) -> { return v0.getPassword(); }, DigestUtil.encrypt(newPassword))).set((v0) -> { return v0.getPwdUpdateDate(); }, DateUtil.now())).eq((v0) -> { return v0.getId(); }, userId)); } private boolean meetSecurityLevel(int level, String password) { Boolean result; String passwordLengthRegx = ParamCache.getValue("account.passwordModifyLength"); String levelZero = "^[a-zA-Z0-9\\W]" + passwordLengthRegx + "$"; String levelOne = "^(?![a-z]+$)(?![A-Z]+$)(?![0-9]+$)(?![\\W]+$)[a-zA-Z0-9\\W]" + passwordLengthRegx + "$"; String levelTwo = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W]+$)(?![a-z0-9]+$)(?![a-z\\W]+$)(?![0-9\\W]+$)[a-zA-Z0-9\\W]" + passwordLengthRegx + "$"; String levelThree = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]" + passwordLengthRegx + "$"; switch (level) { case 1: result = Boolean.valueOf(password.matches(levelOne)); break; case 2: result = Boolean.valueOf(password.matches(levelTwo)); break; case 3: result = Boolean.valueOf(password.matches(levelThree)); break; default: result = Boolean.valueOf(password.matches(levelZero)); break; } return result.booleanValue(); } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public boolean removeUser(String userIds) { Long[] ids = Func.toLongArray(userIds); if (Func.contains(ids, AuthUtil.getUserId())) { throw new ServiceException("不能删除本账号!"); } this.employeeService.updateUserIdIsNull(Func.toStrList(userIds)); this.userDeptService.remove(Lambda.in((v0) -> { return v0.getUserId(); }, ids)); return deleteLogic(Func.toLongList(userIds)); } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public void importUser(List data, Boolean isCovered) { data.forEach(userExcel -> { User oldUser; User user = (User) Objects.requireNonNull(BeanUtil.copy(userExcel, User.class)); if (Func.isEmpty(user.getAccount())) { return; } user.setUserType(Integer.valueOf(Func.toInt(DictCache.getKey(DictEnum.USER_TYPE, userExcel.getUserTypeName()), 1))); user.setDeptId(SysCache.getDeptIds("000000", userExcel.getDeptName())); user.setPostId(SysCache.getPostIds("000000", userExcel.getPostName())); user.setRoleId(SysCache.getRoleIds("000000", userExcel.getRoleName())); if (!AuthUtil.isAdministrator() || StringUtil.isBlank(user.getTenantId())) { user.setTenantId(AuthUtil.getTenantId()); } if (isCovered.booleanValue() && (oldUser = UserCache.getUser("000000", userExcel.getAccount())) != null && oldUser.getId() != null) { user.setId(oldUser.getId()); updateUser(user); return; } String initPassword = DigestUtil.encrypt(ParamCache.getValue(CommonConstant.DEFAULT_PARAM_PASSWORD)); user.setPassword(initPassword); submit(user); }); } @Override // org.springblade.modules.system.service.IUserService public List exportUser(Wrapper queryWrapper) { List userList = ((UserMapper) this.baseMapper).exportUser(queryWrapper); userList.forEach(user -> { user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId()))); user.setDeptName(StringUtil.join(SysCache.getDeptNames(user.getDeptId()))); user.setPostName(StringUtil.join(SysCache.getPostNames(user.getPostId()))); }); return userList; } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public boolean registerGuest(User user, Long oauthId) { Tenant tenant = SysCache.getTenant(user.getTenantId()); if (tenant == null || tenant.getId() == null) { throw new ServiceException("租户信息错误!"); } UserOauth userOauth = (UserOauth) this.userOauthService.getById(oauthId); if (userOauth == null || userOauth.getId() == null) { throw new ServiceException("第三方登陆信息错误!"); } user.setRealName(user.getRealName()); user.setAvatar(userOauth.getAvatar()); user.setRoleId(DncConstant.DNC_DEFAULT_PARENT_ID); user.setDeptId(DncConstant.DNC_DEFAULT_PARENT_ID); user.setPostId(DncConstant.DNC_DEFAULT_PARENT_ID); boolean userTemp = submit(user); userOauth.setUserId(user.getId()); userOauth.setTenantId(user.getTenantId()); boolean oauthTemp = this.userOauthService.updateById(userOauth); return userTemp && oauthTemp; } @Override // org.springblade.modules.system.service.IUserService public boolean updatePlatform(Long userId, Integer userType, String userExt) { if (userType.equals(Integer.valueOf(UserEnum.WEB.getCategory()))) { UserWeb userWeb = new UserWeb(); UserWeb query = (UserWeb) userWeb.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, userId)); if (ObjectUtil.isNotEmpty(query)) { userWeb.setId(query.getId()); } userWeb.setUserId(userId); userWeb.setUserExt(userExt); return userWeb.insertOrUpdate(); } else if (userType.equals(Integer.valueOf(UserEnum.APP.getCategory()))) { UserApp userApp = new UserApp(); UserApp query2 = (UserApp) userApp.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, userId)); if (ObjectUtil.isNotEmpty(query2)) { userApp.setId(query2.getId()); } userApp.setUserId(userId); userApp.setUserExt(userExt); return userApp.insertOrUpdate(); } else { UserOther userOther = new UserOther(); UserOther query3 = (UserOther) userOther.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, userId)); if (ObjectUtil.isNotEmpty(query3)) { userOther.setId(query3.getId()); } userOther.setUserId(userId); userOther.setUserExt(userExt); return userOther.insertOrUpdate(); } } @Override // org.springblade.modules.system.service.IUserService public UserVO platformDetail(User user) { User detail = (User) ((UserMapper) this.baseMapper).selectOne(Condition.getQueryWrapper(user)); UserVO userVO = UserWrapper.build().entityVO(detail); if (userVO.getUserType().equals(Integer.valueOf(UserEnum.WEB.getCategory()))) { UserWeb userWeb = new UserWeb(); UserWeb query = (UserWeb) userWeb.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query)) { userVO.setUserExt(query.getUserExt()); } } else if (userVO.getUserType().equals(Integer.valueOf(UserEnum.APP.getCategory()))) { UserApp userApp = new UserApp(); UserApp query2 = (UserApp) userApp.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query2)) { userVO.setUserExt(query2.getUserExt()); } } else { UserOther userOther = new UserOther(); UserOther query3 = (UserOther) userOther.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, user.getId())); if (ObjectUtil.isNotEmpty(query3)) { userVO.setUserExt(query3.getUserExt()); } } return userVO; } @Override // org.springblade.modules.system.service.IUserService public boolean enable(Long id, boolean enable) { Integer value = Integer.valueOf(enable ? 1 : 0); return update((Wrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().set((v0) -> { return v0.getStatus(); }, value)).eq((v0) -> { return v0.getId(); }, id)); } @Override // org.springblade.modules.system.service.IUserService public boolean unlock(Long id) { User user = (User) ((UserMapper) this.baseMapper).selectById(id); String cacheKey = CacheNames.tenantKey(AuthUtil.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount()); if (this.bladeRedis.del(cacheKey).booleanValue()) { return true; } throw new ServiceException("用户不处于锁定状态,无需解锁"); } @Override // org.springblade.modules.system.service.IUserService public List selectRoleUserList(String roleId) { List users = ((UserMapper) this.baseMapper).selectList(Lambda.create().findIn((v0) -> { return v0.getRoleId(); }, roleId, "/")); return users; } @Override // org.springblade.modules.system.service.IUserService public Boolean roleBindUsers(String roleId, List userIds) { StringBuilder stringBuilder = new StringBuilder(roleId); List userList = list((Wrapper) new QueryWrapper().lambda().in((v0) -> { return v0.getId(); }, userIds)); if (Func.isNotEmpty(userList)) { userList.forEach(user -> { String newRoleId = (String) Optional.ofNullable(user.getRoleId()).map(id -> { return !id.contains(roleId) ? stringBuilder.append(",").append(id).toString() : id; }).orElse(roleId); user.setRoleId(newRoleId); }); updateBatchById(userList); } return Boolean.TRUE; } @Override // org.springblade.modules.system.service.IUserService public Boolean roleRemoveUsers(String roleId, List ids) { List userList = list((Wrapper) new QueryWrapper().lambda().in((v0) -> { return v0.getId(); }, ids)); if (Func.isNotEmpty(userList)) { userList.forEach(user -> { String newRoleId = (String) Stream.of((Object[]) user.getRoleId().split(",")).filter(str -> { return !str.equals(roleId); }).collect(Collectors.joining(",")); user.setRoleId(Func.isEmpty(newRoleId) ? null : newRoleId); }); updateBatchById(userList); } return Boolean.TRUE; } @Override // org.springblade.modules.system.service.IUserService public List getUnbindAccountList(Long userId, String tel) { return ((UserMapper) this.baseMapper).getUnbindAccountList(userId, tel); } @Override // org.springblade.modules.system.service.IUserService public Boolean checkUserIsBindEmployee(String userIds) { return this.employeeService.checkUserIsBindEmployee(userIds); } @Override // org.springblade.modules.system.service.IUserService public UserVO detail(User user) { User detail = (User) getOne(Condition.getQueryWrapper(user)); UserVO result = UserWrapper.build().entityVO(detail); Employee employee = this.employeeService.getByUserId(detail.getId()); if (employee != null) { result.setEmployeeId(employee.getId()); result.setEmployeeName(employee.getName()); result.setEmployeeCode(employee.getCode()); } return result; } @Override // org.springblade.modules.system.service.IUserService public UserVO info(BladeUser user) { User detail = (User) getById(user.getUserId()); UserVO result = UserWrapper.build().entityVO(detail); Employee employee = this.employeeService.getByUserId(detail.getId()); if (employee != null) { result.setEmployeeId(employee.getId()); result.setEmployeeName(employee.getName()); List userOauths = this.userOauthService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUserId(); }, employee.getId())).in((v0) -> { return v0.getSource(); }, Arrays.asList(DingConstant.DING_AUTH_KEY, QyWechatConstant.QY_SOURCE))); if (Func.isNotEmpty(userOauths)) { userOauths.forEach(o -> { if (o.getSource().equals(DingConstant.DING_AUTH_KEY)) { result.setBindDingFlag(true); } else if (o.getSource().equals(QyWechatConstant.QY_SOURCE)) { result.setBindQyWechatFlag(true); } }); } } OuterAppConfig outerAppConfigDing = this.outerAppConfigService.getAppConfig(OuterAppConfigConstant.DING); OuterAppConfig outerAppConfigQy = this.outerAppConfigService.getAppConfig(OuterAppConfigConstant.QY_WECHAT); if (Func.isNotEmpty(outerAppConfigDing) && outerAppConfigDing.getStatus().equals(CommonConstant.ENABLE)) { result.setDingStatus(true); } if (Func.isNotEmpty(outerAppConfigQy) && outerAppConfigQy.getStatus().equals(CommonConstant.ENABLE)) { result.setWxStatus(true); } return result; } @Override // org.springblade.modules.system.service.IUserService public List getNotifySubscriberList(List userIds) { return (List) list(((LambdaQueryWrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getId(); }, userIds)).select(new SFunction[]{(v0) -> { return v0.getId(); }, (v0) -> { return v0.getPhone(); }, (v0) -> { return v0.getEmail(); }})).stream().map(user -> { return new NotifyUserDTO(user.getId(), user.getEmail(), user.getPhone(), this.userOauthService.getUserMiniUuid(user.getId())); }).collect(Collectors.toList()); } @Override // org.springblade.modules.system.service.IUserService @Transactional(rollbackFor = {Exception.class}) public QuCreAccBackMessageVO batchCreateAccount(QuickCreationAccountVO quickCreationAccountVO) { QuCreAccBackMessageVO quCreAccBackMessageVO = new QuCreAccBackMessageVO(); List employeeList = this.employeeService.list(); Map employeeMap = (Map) employeeList.stream().filter(s -> { return Func.isNotEmpty(s.getUserId()); }).collect(Collectors.toMap((v0) -> { return v0.getUserId(); }, Function.identity())); List userList = list(); List quickCreationUsers = quickCreationAccountVO.getQuickCreationUsers(); if (Func.isEmpty(quickCreationUsers)) { quCreAccBackMessageVO.setSuccessNums(Integer.valueOf(Integer.parseInt("0"))); quCreAccBackMessageVO.setFailNums(Integer.valueOf(Integer.parseInt("0"))); return quCreAccBackMessageVO; } List accounts = (List) quickCreationUsers.stream().map((v0) -> { return v0.getAccount(); }).collect(Collectors.toList()); String initPassword = ParamCache.getValue(CommonConstant.DEFAULT_PARAM_PASSWORD); String deptIds = quickCreationAccountVO.getDeptId(); String roleIds = quickCreationAccountVO.getRoleId(); if (Func.isNotEmpty(userList)) { List list = new ArrayList<>(); List alreadyExistsUsers = (List) userList.stream().filter(user -> { return accounts.contains(user.getAccount()); }).collect(Collectors.toList()); if (Func.isNotEmpty(alreadyExistsUsers)) { alreadyExistsUsers.forEach(user2 -> { Employee employee = (Employee) employeeMap.get(String.valueOf(user2.getId())); List deptName = SysCache.getDeptNames(user2.getDeptId()); QuCreAccBackUserVO existsUser = new QuCreAccBackUserVO(); if (employee != null) { existsUser.setAccount(employee.getJobNumber()); } existsUser.setAccountUser(user2.getAccount()).setRealName(user2.getRealName()).setEmail(user2.getEmail()).setPhone(user2.getPhone()).setDeptName(Func.join(deptName)).setFailReason(UserConstant.ACCOUNT_REPEAT); list.add(existsUser); }); } if (Func.isNotEmpty(list)) { List exitsAccounts = (List) list.stream().map((v0) -> { return v0.getAccountUser(); }).collect(Collectors.toList()); quCreAccBackMessageVO.setFailNums(Integer.valueOf(list.size())); quCreAccBackMessageVO.setFailList(list); quickCreationUsers = (List) quickCreationUsers.stream().filter(s2 -> { return !exitsAccounts.contains(s2.getAccount()); }).collect(Collectors.toList()); } } if (Func.isNotEmpty(quickCreationUsers)) { quickCreationUsers.forEach(user3 -> { User createUser = new User(); createUser.setRealName(user3.getUsername()); createUser.setAccount(user3.getAccount()); createUser.setDeptId(deptIds); createUser.setRoleId(roleIds); createUser.setPassword(initPassword); createUser.setEmployeeId(Long.valueOf(Func.toLong(user3.getEmployeeId()))); submit(createUser); }); quCreAccBackMessageVO.setSuccessNums(Integer.valueOf(quickCreationUsers.size())); } return quCreAccBackMessageVO; } }