package com.qianwen.smartman.modules.sync.service.impl; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.StringJoiner; import java.util.concurrent.Callable; import java.util.stream.Collectors; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.messaging.support.MessageBuilder; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.DefaultTransactionDefinition; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jeecg.qywx.api.department.vo.Department; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.constant.DateConstant; import com.qianwen.smartman.common.enums.CommonGroupTypeEnum; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.cps.entity.CommonGroup; import com.qianwen.smartman.modules.cps.entity.CommonGroupOfItem; import com.qianwen.smartman.modules.cps.entity.Employee; import com.qianwen.smartman.modules.cps.entity.EmployeePost; import com.qianwen.smartman.modules.cps.mapper.CommonGroupMapper; import com.qianwen.smartman.modules.cps.service.ICommonGroupOfItemService; import com.qianwen.smartman.modules.cps.service.ICommonGroupService; import com.qianwen.smartman.modules.cps.service.IEmployeePostService; import com.qianwen.smartman.modules.cps.service.IEmployeeService; import com.qianwen.smartman.modules.report.utils.ThreadPoolUtil; import com.qianwen.smartman.modules.sync.api.QyWechatApi; import com.qianwen.smartman.modules.sync.constant.OuterAppConfigConstant; import com.qianwen.smartman.modules.sync.constant.QyWechatApiConstant; import com.qianwen.smartman.modules.sync.constant.QyWechatConstant; import com.qianwen.smartman.modules.sync.entity.OuterAppConfig; import com.qianwen.smartman.modules.sync.entity.QyTag; import com.qianwen.smartman.modules.sync.entity.QyUser; import com.qianwen.smartman.modules.sync.entity.QyUserTicket; import com.qianwen.smartman.modules.sync.enums.SseEventEnum; import com.qianwen.smartman.modules.sync.enums.WechatResponseEnum; import com.qianwen.smartman.modules.sync.message.sse.SseEmitterServer; import com.qianwen.smartman.modules.sync.service.IWechatSyncService; import com.qianwen.smartman.modules.sync.util.CodeUtil; import com.qianwen.smartman.modules.sync.vo.SyncResultVO; import com.qianwen.smartman.modules.system.entity.Post; import com.qianwen.smartman.modules.system.entity.UserOauth; import com.qianwen.smartman.modules.system.mapper.PostMapper; import com.qianwen.smartman.modules.system.service.IParamService; import com.qianwen.smartman.modules.system.service.IPostService; import com.qianwen.smartman.modules.system.service.IUserOauthService; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/sync/service/impl/WechatSyncServiceImpl.class */ public class WechatSyncServiceImpl implements IWechatSyncService { private static final Logger log = LoggerFactory.getLogger(WechatSyncServiceImpl.class); private final IPostService iPostService; private final PostMapper postMapper; private final ICommonGroupService commonGroupService; private final ICommonGroupOfItemService commonGroupOfItemService; private final IEmployeeService iEmployeeService; private final IUserOauthService userOauthService; private final CommonGroupMapper commonGroupMapper; private final IEmployeePostService employeePostService; private final DataSourceTransactionManager dataSourceTransactionManager; private final RocketMQTemplate rocketMQTemplate; private final OuterAppConfigServiceImpl outerAppConfigService; private final SseEmitterServer sseEmitterServer; private final BladeRedis bladeRedis; private final IParamService paramService; private List departments; private final Map syncMethod = new HashMap<>(); /* JADX INFO: Access modifiers changed from: package-private */ @FunctionalInterface interface QyWechatSync { void sync() throws Exception; } public WechatSyncServiceImpl(final IPostService iPostService, final PostMapper postMapper, final ICommonGroupService commonGroupService, final ICommonGroupOfItemService commonGroupOfItemService, final IEmployeeService iEmployeeService, final IUserOauthService userOauthService, final CommonGroupMapper commonGroupMapper, final IEmployeePostService employeePostService, final DataSourceTransactionManager dataSourceTransactionManager, final RocketMQTemplate rocketMQTemplate, final OuterAppConfigServiceImpl outerAppConfigService, final SseEmitterServer sseEmitterServer, final BladeRedis bladeRedis, final IParamService paramService, final List departments) { this.syncMethod.put(WechatResponseEnum.EMP, this::syncUser); this.syncMethod.put(WechatResponseEnum.DEPT, this::syncDeptData); this.syncMethod.put(WechatResponseEnum.POST, this::syncPosition); this.iPostService = iPostService; this.postMapper = postMapper; this.commonGroupService = commonGroupService; this.commonGroupOfItemService = commonGroupOfItemService; this.iEmployeeService = iEmployeeService; this.userOauthService = userOauthService; this.commonGroupMapper = commonGroupMapper; this.employeePostService = employeePostService; this.dataSourceTransactionManager = dataSourceTransactionManager; this.rocketMQTemplate = rocketMQTemplate; this.outerAppConfigService = outerAppConfigService; this.sseEmitterServer = sseEmitterServer; this.bladeRedis = bladeRedis; this.paramService = paramService; this.departments = departments; } private Boolean execSync() { WechatResponseEnum[] values; WechatResponseEnum.clean(); boolean isExecSuccess = true; for (WechatResponseEnum responseEnum : WechatResponseEnum.values()) { QyWechatSync qyWechatSync = this.syncMethod.get(responseEnum); if (!Objects.isNull(qyWechatSync)) { try { qyWechatSync.sync(); responseEnum.accept(""); } catch (Exception e) { responseEnum.accept(getErrMsg(responseEnum.getDesc(), e)); isExecSuccess = false; } } } return Boolean.valueOf(isExecSuccess); } @Override // org.springblade.modules.sync.service.IWechatSyncService public SyncResultVO syncOrganization() { TimeInterval timer = DateUtil.timer(); log.info("[企业微信同步组织架构].[syncOrganization start ....]"); DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition(); TransactionStatus transStatus = this.dataSourceTransactionManager.getTransaction(transDefinition); try { try { Boolean isExecSuccess = execSync(); if (isExecSuccess.booleanValue()) { this.outerAppConfigService.update(Wrappers.lambdaUpdate() .eq(OuterAppConfig::getAppType, OuterAppConfigConstant.QY_WECHAT) .set(OuterAppConfig::getLastSyncTime, new Date())); /* this.outerAppConfigService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> { return v0.getAppType(); }, OuterAppConfigConstant.QY_WECHAT)).set((v0) -> { return v0.getLastSyncTime(); }, new Date()));*/ this.dataSourceTransactionManager.commit(transStatus); log.info("[企业微信同步组织架构].[syncOrganization success consuming={}秒]", Long.valueOf(timer.intervalSecond())); } else { this.dataSourceTransactionManager.rollback(transStatus); log.error("[企业微信同步组织架构].[syncOrganization error]"); } this.departments.clear(); } catch (Exception e) { this.dataSourceTransactionManager.rollback(transStatus); log.error("[企业微信同步组织架构].[syncOrganization error]"); this.departments.clear(); } return WechatResponseEnum.getSyncResult(); } catch (Throwable th) { this.departments.clear(); throw th; } } private String getErrMsg(String desc, Exception e) { String methodName = ArrayUtil.isEmpty(e.getStackTrace()) ? "API" : e.getStackTrace()[0].getMethodName(); return StrUtil.format("[企业微信同步{}].[{} error errMsg={}]", new Object[]{desc, methodName, e.getMessage()}); } private void syncUser() { List userList = getUserList(); if (CollectionUtil.isEmpty(userList)) { if (!WechatResponseEnum.getSyncResult().getGroupResult().booleanValue()) { throw new ServiceException("部门获取失败,无法拉取到用户信息"); } return; } List oauthList = getUserOauthByUuid(userList); Map oauthMap = oauthList.parallelStream().collect(Collectors.toMap((v0) -> { return v0.getUuid(); }, user -> { return user; }, (old, newVal) -> { return old; })); initEmpData(oauthList); List empIds = oauthList.stream().map((v0) -> { return v0.getUserId(); }).collect(Collectors.toList()); List employeeList = this.iEmployeeService.list(Wrappers.lambdaQuery().in(CollectionUtil.isNotEmpty(empIds), Employee::getId, empIds)); /* List employeeList = this.iEmployeeService.list(Wrappers.lambdaQuery().in(CollectionUtil.isNotEmpty(empIds), (v0) -> { return v0.getId(); }, empIds));*/ Map syncEmp = convertEmpToMap(oauthList, employeeList); List userOauthList = new ArrayList<>(); userList.forEach(userDept -> { Employee employee = setEmpAttribute(userDept, (Employee) syncEmp.get(userDept.getUserid())); syncEmp.put(userDept.getUserid(), employee); UserOauth userOauth = (UserOauth) oauthMap.get(userDept.getUserid()); if (Objects.isNull(userOauth)) { userOauth = new UserOauth(); userOauth.setUuid(userDept.getUserid()); userOauth.setSource(QyWechatConstant.QY_SOURCE); } userOauth.setUsername(userDept.getName()); userOauthList.add(userOauth); }); this.iEmployeeService.saveOrUpdateBatch(syncEmp.values()); for (UserOauth userOauth : userOauthList) { Employee employee = syncEmp.get(userOauth.getUuid()); if (!Objects.isNull(employee)) { userOauth.setUserId(employee.getId()); } } this.userOauthService.saveOrUpdateBatch(userOauthList); syncConcat(syncEmp); log.info("[企业微信同步用户id列表].[syncUserIdList success userOauthList={}]", userOauthList); } private void initEmpData(List userOauthList) { if (CollectionUtil.isEmpty(userOauthList)) { this.iEmployeeService.remove(null); return; } List empIds = userOauthList.stream().map(UserOauth::getUserId).filter(Objects::nonNull).collect(Collectors.toList()); /* List empIds = (List) userOauthList.stream().map((v0) -> { return v0.getUserId(); }).filter((v0) -> { return Objects.nonNull(v0); }).collect(Collectors.toList());*/ if (CollectionUtil.isNotEmpty(empIds)) { this.iEmployeeService.remove(Wrappers.lambdaQuery().notIn(Employee::getId, empIds)); /* this.iEmployeeService.remove((Wrapper) Wrappers.lambdaQuery().notIn((v0) -> { return v0.getId(); }, empIds));*/ } else { this.iEmployeeService.remove(null); } } private List getUserOauthByUuid(List qyUsers) { if (CollectionUtil.isEmpty(qyUsers)) { return new ArrayList<>(); } List qyUserIds = qyUsers.stream().map((v0) -> { return v0.getUserid(); }).collect(Collectors.toList()); return this.userOauthService.list(Wrappers.lambdaQuery().eq(UserOauth::getSource, QyWechatConstant.QY_SOURCE).in(UserOauth::getUuid, qyUserIds)); /* return this.userOauthService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getSource(); }, QyWechatConstant.QY_SOURCE)).in((v0) -> { return v0.getUuid(); }, qyUserIds));*/ } private Map convertEmpToMap(List userOauthList, List employees) { Map result = new HashMap<>(16); if (CollectionUtil.isEmpty(userOauthList) || CollectionUtil.isEmpty(employees)) { return result; } Map oauthMap = userOauthList.stream().collect(Collectors.toMap((v0) -> { return v0.getUserId(); }, ua -> { return ua; }, (old, newVal) -> { return old; })); for (Employee employee : employees) { UserOauth userOauth = oauthMap.get(employee.getId()); if (!Objects.isNull(userOauth)) { result.put(userOauth.getUuid(), employee); } } return result; } private void syncConcat(Map employeeMap) { List commonGroupOfItems = new ArrayList<>(); List employeePosts = new ArrayList<>(); Map userTagMap = QyWechatApi.getUserTagMap(); employeeMap.forEach((userId, employee) -> { CommonGroupOfItem commonGroupOfItem = setItem(employee.getId(), Long.valueOf(employee.getOrganizationId())); commonGroupOfItems.add(commonGroupOfItem); employeePosts.addAll(employeePosts(employee, userId, userTagMap)); }); if (CollectionUtil.isNotEmpty(employeePosts)) { this.employeePostService.saveBatch(employeePosts); this.iEmployeeService.updateBatchById(employeeMap.values()); } this.commonGroupOfItemService.saveBatch(commonGroupOfItems); } private List getUserList() { List>> taskList = new ArrayList<>(); this.departments.forEach(d -> { taskList.add(() -> { return QyWechatApi.getUsersByDepartId(d.getId()); }); }); List userList = ThreadPoolUtil.createTaskList(taskList); HashSet result = new HashSet<>(userList); return new ArrayList<>(result); } @Override // org.springblade.modules.sync.service.IWechatSyncService public R scanCodeBind(String code, String clientId, String empId) { if (CodeUtil.verifyBindCodeExpire(clientId, Long.valueOf(empId)).booleanValue()) { String codeFailMessage = MessageUtils.message("sync.qy.login.code.failure", new Object[0]); this.sseEmitterServer.sendMsg(clientId, codeFailMessage, SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(codeFailMessage); } else if (StrUtil.isEmpty(code)) { String appUserMsg = MessageUtils.message("sys.outer.user.not.exist", new Object[0]); this.sseEmitterServer.sendMsg(clientId, appUserMsg, SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(appUserMsg); } else { QyUser qyUser = getScanUser(code, clientId); singleUserBind(qyUser, Long.valueOf(empId), clientId); this.sseEmitterServer.sendMsg(clientId, Boolean.TRUE, SseEventEnum.BIND_SUCCESS.getEventId()); String cacheKey = CodeUtil.getBindCodeCacheKey(clientId, Long.valueOf(empId)); CodeUtil.failureCode(cacheKey); return R.data(Boolean.TRUE); } } public QyUser getScanUser(String code, String clientId) { try { QyUserTicket userTicket = QyWechatApi.getUserTicketByCode(code); QyUser qyUser = QyWechatApi.getUserDetailByTicket(userTicket.getUser_ticket()); QyUser baseUserInfo = QyWechatApi.getUserById(qyUser.getUserid()); qyUser.setName(baseUserInfo.getName()); qyUser.setDepartment(baseUserInfo.getDepartment()); qyUser.setMain_department(baseUserInfo.getMain_department()); log.info("[企业微信扫码].[员工信息 username={},userId={},avatar={},email={}]", new Object[]{qyUser.getName(), qyUser.getUserid(), qyUser.getAvatar(), qyUser.getBiz_mail()}); return qyUser; } catch (ServiceException e) { this.sseEmitterServer.sendMsg(clientId, e.getMessage(), SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(e.getResultCode()); } } @Override // org.springblade.modules.sync.service.IWechatSyncService public JSONObject generateCode(String clientId, Integer type, Long empId) { JSONObject result = new JSONObject(); try { String cacheKey = type.equals(QyWechatConstant.QY_CODE_LOGIN_TYPE) ? CodeUtil.getLoginCodeCacheKey(clientId) : CodeUtil.getBindCodeCacheKey(clientId, empId); Object cacheObj = this.bladeRedis.get(cacheKey); if (!Objects.isNull(cacheObj)) { File codeFile = CodeUtil.generateCode((String) Convert.convert(String.class, cacheObj), CodeUtil.getCodeLocalFilePath(clientId)); result.put("link", QyWechatConstant.BASE64_PREFIX + CodeUtil.codeFileToBase64(codeFile)); FileUtil.del(CodeUtil.getCodeLocalFilePath(clientId)); return result; } File tempDir = new File(QyWechatConstant.TEMP_PATH); if (!tempDir.exists()) { FileUtil.mkdir(QyWechatConstant.TEMP_PATH); } String authLink = buildAuthLink(clientId, type, empId); File codeFile2 = CodeUtil.generateCode(authLink, CodeUtil.getCodeLocalFilePath(clientId)); JSONObject message = new JSONObject(); message.put("clientId", clientId); message.put("type", type); message.put("empId", empId); SendResult sendResult = this.rocketMQTemplate.syncSend(QyWechatConstant.WECHAT_TOPIC, MessageBuilder.withPayload(message).build(), 3000L, 5); Logger logger = log; Object[] objArr = new Object[3]; objArr[0] = Objects.equals(type, QyWechatConstant.QY_CODE_LOGIN_TYPE) ? "登录" : "绑定"; objArr[1] = DateUtil.format(new Date(), DateConstant.PATTERN_DATE_TIME); objArr[2] = sendResult; logger.info("[生成企业微信{}二维码].[发送延时消息,时间:{}].[generateCode sendResult={}]", objArr); this.bladeRedis.setEx(cacheKey, authLink, 120L); result.put("link", QyWechatConstant.BASE64_PREFIX + CodeUtil.codeFileToBase64(codeFile2)); FileUtil.del(CodeUtil.getCodeLocalFilePath(clientId)); return result; } catch (Throwable th) { FileUtil.del(CodeUtil.getCodeLocalFilePath(clientId)); throw th; } } private String buildAuthLink(String clientId, Integer type, Long empId) { String callbackApi; String state = ""; OuterAppConfig appConfig = this.outerAppConfigService.getAppConfig(OuterAppConfigConstant.QY_WECHAT); if (Objects.isNull(appConfig) || !appConfig.getStatus().equals(CommonConstant.ENABLE)) { throw new ServiceException(MessageUtils.message("sync.qy.config.not.exist", new Object[0])); } String callbackApi2 = appConfig.getDomainUrl() + "{}?clientId={}"; if (type.equals(QyWechatConstant.QY_CODE_LOGIN_TYPE)) { callbackApi = StrUtil.format(callbackApi2, new Object[]{"/scanLogin", clientId}); } else { state = String.valueOf(empId); callbackApi = StrUtil.format(callbackApi2, new Object[]{"/scanBind", clientId}); } return QyWechatApi.parseRequestUrl(QyWechatApiConstant.AUTH_URL, appConfig.getWxCorpId(), callbackApi, state, appConfig.getWxAgentId()); } private Employee setEmpAttribute(QyUser user, Employee employee) { if (Objects.isNull(employee)) { employee = new Employee(); } employee.setName(user.getName()); employee.setEmail(user.getBiz_mail()); employee.setTel(user.getMobile()); employee.setHireDate(new Date()); employee.setAvatar(user.getAvatar()); employee.setPinCode(StrUtil.isEmpty(employee.getPinCode()) ? this.paramService.getValue("employee.default.pin") : employee.getPinCode()); employee.setOrganizationId(user.getDepartment()[0].intValue() == 1 ? "3" : QyWechatConstant.ID_SALT + user.getDepartment()[0]); employee.setStatus(1); return employee; } private UserOauth setOauth(QyUser user, Employee employee, UserOauth userOauth) { if (Objects.isNull(userOauth)) { userOauth = new UserOauth(); } userOauth.setEmail(user.getBiz_mail()); userOauth.setUserId(employee.getId()); userOauth.setUsername(employee.getName()); userOauth.setSource(QyWechatConstant.QY_SOURCE); userOauth.setUuid(user.getUserid()); userOauth.setAvatar(user.getAvatar()); return userOauth; } public CommonGroupOfItem setItem(Long empId, Long deptId) { CommonGroupOfItem commonGroupOfItem = new CommonGroupOfItem(); commonGroupOfItem.setGroupType(CommonGroupTypeEnum.ORGANIZATION.getName()); commonGroupOfItem.setGroupCategory(1); commonGroupOfItem.setItemId(empId); commonGroupOfItem.setGroupId(deptId); return commonGroupOfItem; } private void syncPosition() { this.postMapper.removePost(); this.employeePostService.remove(null); List tags = QyWechatApi.getTags(); if (CollectionUtil.isEmpty(tags)) { return; } List posts = (List) tags.parallelStream().map(t -> { return setPost(t.getTagname(), t.getTagid()); }).collect(Collectors.toList()); this.iPostService.saveBatch(posts); log.info("[企业微信同步岗位].[syncPosition success,data={}]", tags); } public Post setPost(String postName, String postId) { Post post = new Post(); post.setPostName(postName); post.setPostCode(IdUtil.simpleUUID()); post.setId(Long.valueOf(postId)); post.setStatus(1); return post; } private void syncDeptData() { this.commonGroupMapper.removeOrg(); this.commonGroupMapper.removeOrgContact(); List deptList = QyWechatApi.getDepartmentAll(); this.departments = deptList; if (CollectionUtil.isEmpty(deptList)) { return; } for (Department department : deptList) { CommonGroup commonGroup = setCommonGroup(department); this.commonGroupService.insert(commonGroup); } log.info("[企业微信同步部门].[syncDeptData success depts={}]", deptList.parallelStream().map((v0) -> { return v0.getName(); }).collect(Collectors.toList())); } public CommonGroup setCommonGroup(Department department) { CommonGroup commonGroup = new CommonGroup(); if (Integer.parseInt(department.getId()) == 1) { commonGroup.setId(3L); commonGroup.setParentId(0L); } else if (Integer.parseInt(department.getParentid()) == 1) { commonGroup.setId(Long.valueOf(QyWechatConstant.ID_SALT + department.getId())); commonGroup.setParentId(3L); } else { commonGroup.setId(Long.valueOf(QyWechatConstant.ID_SALT + department.getId())); commonGroup.setParentId(Long.valueOf(QyWechatConstant.ID_SALT + department.getParentid())); } commonGroup.setName(department.getName()); commonGroup.setGroupCategory(1); commonGroup.setGroupType(CommonGroupTypeEnum.ORGANIZATION.getName()); return commonGroup; } @Transactional public void singleUserBind(QyUser user, Long empId, String clientId) { UserOauth userOauth = this.userOauthService.getOne(Wrappers.lambdaQuery().eq(UserOauth::getUuid, user.getUserid()).eq(UserOauth::getSource, QyWechatConstant.QY_SOURCE), Boolean.TRUE.booleanValue()); /* UserOauth userOauth = (UserOauth) this.userOauthService.getOne((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getUuid(); }, user.getUserid())).eq((v0) -> { return v0.getSource(); }, QyWechatConstant.QY_SOURCE), Boolean.TRUE.booleanValue());*/ if (Objects.isNull(userOauth)) { this.sseEmitterServer.sendMsg(clientId, MessageUtils.message("sys.outer.user.not.exist", new Object[0]), SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(MessageUtils.message("sys.outer.user.not.exist", new Object[0])); } Employee employee = this.iEmployeeService.getOne(Wrappers.lambdaQuery().eq(Employee::getTel, user.getMobile()).eq(Employee::getId, empId)); /* Employee employee = (Employee) this.iEmployeeService.getOne((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getTel(); }, user.getMobile())).eq((v0) -> { return v0.getId(); }, empId));*/ if (Objects.isNull(employee)) { this.sseEmitterServer.sendMsg(clientId, MessageUtils.message("cps.employee.outer.app.not.have.mobile", new Object[0]), SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(MessageUtils.message("cps.employee.outer.app.not.have.mobile", new Object[0])); } else if (!employee.getTel().equals(user.getMobile())) { String message = MessageUtils.message("cps.employee.not.current.scan.user", new Object[0]); this.sseEmitterServer.sendMsg(clientId, message, SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(message); } else if (userOauth.getUserId() == null) { userOauth.setUserId(employee.getId()); this.userOauthService.updateById(userOauth); } else { this.sseEmitterServer.sendMsg(clientId, MessageUtils.message("cps.employee.already.bind", new Object[0]), SseEventEnum.ERROR_MSG_ID.getEventId()); throw new ServiceException(MessageUtils.message("cps.employee.already.bind", new Object[0])); } } public Employee createOrModifyEmployee(QyUser qyUser, UserOauth userOauth) { Employee employee = null; if (!Objects.isNull(userOauth)) { employee = this.iEmployeeService.getOne(Wrappers.lambdaQuery().eq(Employee::getId, userOauth.getUserId())); /* employee = (Employee) this.iEmployeeService.getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getId(); }, userOauth.getUserId()));*/ } if (Objects.isNull(employee)) { employee = this.iEmployeeService.getOne(Wrappers.lambdaQuery().eq(Employee::getTel, qyUser.getMobile()), true); /* employee = (Employee) this.iEmployeeService.getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getTel(); }, qyUser.getMobile()), Boolean.TRUE.booleanValue());*/ } Employee employee2 = setEmpAttribute(qyUser, employee); this.iEmployeeService.saveOrUpdate(employee2); bindConcat(qyUser, employee2); this.userOauthService.saveOrUpdate(setOauth(qyUser, employee2, userOauth)); return employee2; } private void bindConcat(QyUser user, Employee employee) { CommonGroupOfItem commonGroupOfItem = setItem(employee.getId(), Long.valueOf(employee.getOrganizationId())); this.commonGroupOfItemService.save(commonGroupOfItem); Map userTagMap = QyWechatApi.getUserTagMap(); List employeePosts = employeePosts(employee, user.getUserid(), userTagMap); if (CollectionUtil.isNotEmpty(employeePosts)) { this.employeePostService.saveBatch(employeePosts); this.iEmployeeService.updateById(employee); } } private List employeePosts(Employee employee, String userId, Map userTagMap) { List result = new ArrayList<>(); if (CollectionUtil.isEmpty(userTagMap)) { return new ArrayList<>(); } StringJoiner postIdJoiner = userTagMap.get(userId); if (Objects.isNull(postIdJoiner)) { return new ArrayList<>(); } employee.setPostId(postIdJoiner.toString()); String[] postIds = postIdJoiner.toString().split(","); Arrays.stream(postIds).forEach(id -> { EmployeePost employeePost = setEmployeePost(id, String.valueOf(employee.getId())); result.add(employeePost); }); return result; } /* JADX INFO: Access modifiers changed from: protected */ public EmployeePost setEmployeePost(String postId, String empId) { EmployeePost employeePost = new EmployeePost(); employeePost.setEmployeeId(Long.valueOf(empId)); employeePost.setPostId(Long.valueOf(postId)); return employeePost; } }