| | |
| | | package com.qianwen.smartman.modules.resource.builder.oss; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import java.lang.invoke.SerializedLambda; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import com.qianwen.smartman.common.constant.ExtCacheConstant; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.qianwen.core.cache.utils.CacheUtil; |
| | | import com.qianwen.core.log.exception.ServiceException; |
| | | import com.qianwen.core.oss.OssTemplate; |
| | |
| | | import com.qianwen.core.oss.rule.BladeOssRule; |
| | | import com.qianwen.core.oss.rule.OssRule; |
| | | import com.qianwen.core.redis.cache.BladeRedis; |
| | | import com.qianwen.core.tenant.mp.TenantEntity; |
| | | import com.qianwen.core.tool.utils.Func; |
| | | import com.qianwen.core.tool.utils.SpringUtil; |
| | | import com.qianwen.core.tool.utils.StringUtil; |
| | | import com.qianwen.core.tool.utils.WebUtil; |
| | | import com.qianwen.smartman.common.constant.ExtCacheConstant; |
| | | import com.qianwen.smartman.modules.resource.entity.Oss; |
| | | import com.qianwen.smartman.modules.resource.enums.BucketEnum; |
| | | import com.qianwen.smartman.modules.resource.service.IOssService; |
| | |
| | | private final OssProperties ossProperties; |
| | | private final IOssService ossService; |
| | | private final Map<String, OssTemplate> templatePool = new ConcurrentHashMap(); |
| | | private final Map<String, Oss> ossPool = new ConcurrentHashMap(); |
| | | |
| | | private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { |
| | | String implMethodName = lambda.getImplMethodName(); |
| | | boolean z = true; |
| | | switch (implMethodName.hashCode()) { |
| | | case -128783002: |
| | | if (implMethodName.equals("getOssCode")) { |
| | | z = false; |
| | | break; |
| | | } |
| | | break; |
| | | case 771206363: |
| | | if (implMethodName.equals("getTenantId")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case 803533544: |
| | | if (implMethodName.equals("getStatus")) { |
| | | z = true; |
| | | 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/resource/entity/Oss") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getOssCode(); |
| | | }; |
| | | } |
| | | 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(); |
| | | }; |
| | | } |
| | | 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.getStatus(); |
| | | }; |
| | | } |
| | | break; |
| | | } |
| | | throw new IllegalArgumentException("Invalid lambda deserialization"); |
| | | } |
| | | private final Map<String, Oss> ossPool = new ConcurrentHashMap<>(); |
| | | |
| | | public OssBuilder(OssProperties ossProperties, IOssService ossService) { |
| | | this.ossProperties = ossProperties; |
| | |
| | | |
| | | public Oss getOss(String tenantId, String code) { |
| | | String key = Func.isBlank(tenantId) ? "000000" : tenantId; |
| | | LambdaQueryWrapper<Oss> lqw = Wrappers.<Oss>query().lambda().eq(Oss::getTenantId, tenantId); |
| | | /* |
| | | Wrapper wrapper = (LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { |
| | | return v0.getTenantId(); |
| | | }, tenantId); |
| | | }, tenantId);*/ |
| | | String ossCode = StringUtil.isBlank(code) ? WebUtil.getParameter("code") : code; |
| | | if (StringUtil.isNotBlank(ossCode)) { |
| | | key = key.concat("-").concat(ossCode); |
| | | |
| | | lqw.eq(Oss::getOssCode, ossCode); |
| | | /* |
| | | wrapper.eq((v0) -> { |
| | | return v0.getOssCode(); |
| | | }, ossCode); |
| | | }, ossCode);*/ |
| | | } else { |
| | | lqw.eq(Oss::getStatus, Integer.valueOf(OssStatusEnum.ENABLE.getNum())); |
| | | /* |
| | | wrapper.eq((v0) -> { |
| | | return v0.getStatus(); |
| | | }, Integer.valueOf(OssStatusEnum.ENABLE.getNum())); |
| | | }, Integer.valueOf(OssStatusEnum.ENABLE.getNum()));*/ |
| | | } |
| | | Oss oss = (Oss) CacheUtil.get("blade:resource", OSS_CODE, key, ExtCacheConstant.TENANT_MODE); |
| | | if (Func.isEmpty(oss)) { |
| | | oss = (Oss) this.ossService.getOne(wrapper); |
| | | oss = this.ossService.getOne(lqw); |
| | | String redisKey = "blade:resource".concat("::").concat(OSS_CODE).concat(tenantId); |
| | | getBladeRedis().setEx(redisKey, oss, ExtCacheConstant.FIVE_MINUTES_EXPIRE_TIME); |
| | | } |