package com.qianwen.smartman.modules.sync.service.impl; import java.time.Duration; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.redis.cache.BladeRedis; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.notify.service.INotifyConfigService; 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.convert.OuterAppConfigConvert; import com.qianwen.smartman.modules.sync.entity.OuterAppConfig; import com.qianwen.smartman.modules.sync.mapper.OuterAppConfigMapper; import com.qianwen.smartman.modules.sync.service.IOuterAppConfigService; import com.qianwen.smartman.modules.sync.vo.OuterAppConfigVO; import com.qianwen.smartman.modules.system.entity.UserOauth; import com.qianwen.smartman.modules.system.service.IUserOauthService; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/sync/service/impl/OuterAppConfigServiceImpl.class */ public class OuterAppConfigServiceImpl extends BaseServiceImpl implements IOuterAppConfigService { private final BladeRedis bladeRedis; private final IUserOauthService userOauthService; private final INotifyConfigService notifyConfigService; public OuterAppConfigServiceImpl(BladeRedis bladeRedis, IUserOauthService userOauthService, @Lazy INotifyConfigService notifyConfigService) { this.bladeRedis = bladeRedis; this.userOauthService = userOauthService; this.notifyConfigService = notifyConfigService; } @Override // org.springblade.modules.sync.service.IOuterAppConfigService public OuterAppConfig getAppConfig(Integer appType) { Object configObj = this.bladeRedis.get(OuterAppConfigConstant.OUTER_APP_CONFIG + appType); if (Func.isNotEmpty(configObj)) { return (OuterAppConfig) Func.convert(configObj, OuterAppConfig.class); } OuterAppConfig dingAppConfig = getOne(Wrappers.lambdaQuery().eq(OuterAppConfig::getAppType, appType)); /* OuterAppConfig dingAppConfig = (OuterAppConfig) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getAppType(); }, appType));*/ this.bladeRedis.setEx(OuterAppConfigConstant.OUTER_APP_CONFIG + appType, dingAppConfig, Duration.ofDays(7L)); return dingAppConfig; } @Override // org.springblade.modules.sync.service.IOuterAppConfigService @Transactional public Boolean unbind(Integer type) { this.bladeRedis.del(OuterAppConfigConstant.OUTER_APP_CONFIG + type); this.userOauthService.update(Wrappers.lambdaUpdate() .eq(UserOauth::getSource, type.equals(OuterAppConfigConstant.QY_WECHAT) ? "WECHAT_ENTERPRISE_WEB" : "DINGTALK_WEB").set(UserOauth::getUserId, null)); /* this.userOauthService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> { return v0.getSource(); }, type.equals(OuterAppConfigConstant.QY_WECHAT) ? QyWechatConstant.QY_SOURCE : DingConstant.DING_AUTH_KEY)).set((v0) -> { return v0.getUserId(); }, (Object) null));*/ return Boolean.valueOf(update(Wrappers.lambdaUpdate().eq(OuterAppConfig::getAppType, type).set(OuterAppConfig::getStatus, CommonConstant.DEACTIVATE))); /* return Boolean.valueOf(update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> { return v0.getAppType(); }, type)).set((v0) -> { return v0.getStatus(); }, CommonConstant.DEACTIVATE)));*/ } @Override // org.springblade.modules.sync.service.IOuterAppConfigService public OuterAppConfigVO submit(OuterAppConfigVO outerAppConfigVO) { OuterAppConfig dingAppConfig = getOne(Wrappers.lambdaQuery().eq(OuterAppConfig::getAppType, outerAppConfigVO.getAppType().equals(OuterAppConfigConstant.QY_WECHAT) ? OuterAppConfigConstant.DING : OuterAppConfigConstant.QY_WECHAT)); /* OuterAppConfig dingAppConfig = (OuterAppConfig) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getAppType(); }, outerAppConfigVO.getAppType().equals(OuterAppConfigConstant.QY_WECHAT) ? OuterAppConfigConstant.DING : OuterAppConfigConstant.QY_WECHAT));*/ if (Func.isNotEmpty(dingAppConfig) && dingAppConfig.getStatus().equals(CommonConstant.ENABLE)) { throw new ServiceException(MessageUtils.message("sys.outer.config.is.bind", new Object[0])); } OuterAppConfig outerAppConfig = OuterAppConfigConvert.INSTANCE.convert(outerAppConfigVO); outerAppConfig.setStatus(CommonConstant.ENABLE); saveOrUpdate(outerAppConfig); this.bladeRedis.del(OuterAppConfigConstant.OUTER_APP_CONFIG + outerAppConfigVO.getAppType()); this.bladeRedis.del(new String[]{QyWechatConstant.TOKEN_KEY + QyWechatConstant.QY_APP_TYPE, QyWechatConstant.TOKEN_KEY + QyWechatConstant.BOOK_TYPE, DingConstant.DING_ACCESSTOKEN_REDIS_CACHE}); this.notifyConfigService.updateServerConfig(outerAppConfig); return OuterAppConfigConvert.INSTANCE.convert(outerAppConfig); } @Override // org.springblade.modules.sync.service.IOuterAppConfigService public List getConfigs(Map params) { List list = list(Condition.getQueryWrapper(params, OuterAppConfig.class)); Map configMap = list.parallelStream().collect(Collectors.toMap((v0) -> { return v0.getId(); }, config -> { return config; })); List configVOS = OuterAppConfigConvert.INSTANCE.convert(list); configVOS.forEach(config2 -> { OuterAppConfig appConfig = (OuterAppConfig) configMap.get(config2.getId()); if (!Objects.isNull(appConfig) && appConfig.getAppType().equals(OuterAppConfigConstant.QY_WECHAT)) { config2.setWxDomain(appConfig.getDomainUrl()); } else if (!Objects.isNull(appConfig) && appConfig.getAppType().equals(OuterAppConfigConstant.DING)) { config2.setDingDomain(appConfig.getDomainUrl()); } }); return configVOS; } }