package com.qianwen.smartman.modules.notify.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import java.lang.invoke.SerializedLambda;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import javax.validation.Valid;
|
import com.qianwen.smartman.common.cache.RegionCache;
|
import com.qianwen.core.boot.ctrl.BladeController;
|
import com.qianwen.core.cache.utils.CacheUtil;
|
import com.qianwen.core.notify.notifier.NotifierProvider;
|
import com.qianwen.core.scanner.modular.annotation.DeleteResource;
|
import com.qianwen.core.scanner.modular.annotation.GetResource;
|
import com.qianwen.core.scanner.modular.annotation.PutResource;
|
import com.qianwen.core.scanner.modular.stereotype.ApiResource;
|
import com.qianwen.core.secure.BladeUser;
|
import com.qianwen.core.tool.api.R;
|
import com.qianwen.core.tool.metadata.ConfigMetadata;
|
import com.qianwen.smartman.modules.notify.convert.NotifyConfigConvert;
|
import com.qianwen.smartman.modules.notify.dto.NotifyConfigDTO;
|
import com.qianwen.smartman.modules.notify.dto.NotifyTypeInfo;
|
import com.qianwen.smartman.modules.notify.dto.ProviderInfo;
|
import com.qianwen.smartman.modules.notify.entity.NotifyConfigEntity;
|
import com.qianwen.smartman.modules.notify.service.INotifyConfigService;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@ApiResource({"blade-notify/notifier/config"})
|
@Api(value = "通知配置管理", tags = {"通知配置管理"})
|
@RestController
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/controller/NotifierConfigController.class */
|
public class NotifierConfigController extends BladeController {
|
private final INotifyConfigService notifyConfigService;
|
private final List<NotifierProvider> providers;
|
|
private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
|
String implMethodName = lambda.getImplMethodName();
|
boolean z = true;
|
switch (implMethodName.hashCode()) {
|
case -75308287:
|
if (implMethodName.equals("getName")) {
|
z = false;
|
break;
|
}
|
break;
|
case -75106384:
|
if (implMethodName.equals("getType")) {
|
z = true;
|
break;
|
}
|
break;
|
case 98245393:
|
if (implMethodName.equals("getId")) {
|
z = true;
|
break;
|
}
|
break;
|
case 771206363:
|
if (implMethodName.equals("getTenantId")) {
|
z = true;
|
break;
|
}
|
break;
|
case 1090405223:
|
if (implMethodName.equals("getProvider")) {
|
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/notify/entity/NotifyConfigEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getName();
|
};
|
}
|
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/notify/entity/NotifyConfigEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getType();
|
};
|
}
|
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/notify/entity/NotifyConfigEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getProvider();
|
};
|
}
|
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();
|
};
|
}
|
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();
|
};
|
}
|
break;
|
}
|
throw new IllegalArgumentException("Invalid lambda deserialization");
|
}
|
|
public NotifierConfigController(final INotifyConfigService notifyConfigService, final List<NotifierProvider> providers) {
|
this.notifyConfigService = notifyConfigService;
|
this.providers = providers;
|
}
|
|
@ApiOperationSupport(order = 1)
|
@GetResource({"/{type}/{provider}/metadata"})
|
@ApiOperation(value = "获取指定类型和服务商所需配置定义", notes = "获取指定类型和服务商所需配置定义")
|
public R<ConfigMetadata> getAllTypes(@PathVariable("type") @ApiParam(value = "通知类型ID", required = true) String type, @PathVariable("provider") @ApiParam(value = "服务商ID", required = true) String provider) {
|
return R.data(this.notifyConfigService.getMetadataByTypeAndProvider(type, provider));
|
}
|
|
@ApiOperationSupport(order = 2)
|
@GetResource({"/types"})
|
@ApiOperation("获取平台支持的通知类型")
|
public R<List<NotifyTypeInfo>> getAllNotifyTypes() {
|
return R.data(this.notifyConfigService.getAllNotifyType());
|
}
|
|
@ApiOperationSupport(order = 3)
|
@GetResource({"/type/{type}/providers"})
|
@ApiOperation("获取支持的服务商")
|
public R<List<ProviderInfo>> getTypeProviders(@PathVariable("type") @ApiParam(value = "通知类型ID类型标识", required = true) String type) {
|
return R.data(this.providers.stream().filter(provider -> {
|
return provider.getType().getId().equals(type);
|
}).map(ProviderInfo::of).collect(Collectors.toList()));
|
}
|
|
@ApiOperationSupport(order = 4)
|
@PutResource
|
@ApiOperation(value = "新增或修改", notes = "传入通知配置")
|
public R<NotifyConfigEntity> submit(@Valid @RequestBody NotifyConfigDTO notifyConfigDTO, BladeUser bladeUser) {
|
return R.data(this.notifyConfigService.saveOrUpdateConfig(NotifyConfigConvert.INSTANCE.convertToEntity(notifyConfigDTO.setTenantId(bladeUser.getTenantId()))));
|
}
|
|
@ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
|
@DeleteResource({"/{id}"})
|
@ApiOperation(value = "删除", notes = "传入id,只允许租户所有的配置删除")
|
public R<String> remove(@PathVariable("id") @ApiParam(value = "主键", required = true) String id, BladeUser bladeUser) {
|
CacheUtil.evict("blade:notify", "notifier:id:", id, false);
|
this.notifyConfigService.checkUsedByBusinessNotify(id);
|
return R.status(this.notifyConfigService.remove((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> {
|
return v0.getId();
|
}, id)).eq((v0) -> {
|
return v0.getTenantId();
|
}, bladeUser.getTenantId())));
|
}
|
|
@ApiOperationSupport(order = 7)
|
@GetResource({"/available"})
|
@ApiOperation(value = "业务通知可选的通知配置", notes = "传入通知类型")
|
public R<List<NotifyConfigDTO>> getAvailableNotifyConfig(@RequestParam String notifyType, BladeUser bladeUser) {
|
List<String> tenantIds = new ArrayList<>(Arrays.asList(bladeUser.getTenantId()));
|
List<NotifyConfigEntity> result = this.notifyConfigService.list(((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getTenantId();
|
}, tenantIds)).eq((v0) -> {
|
return v0.getType();
|
}, notifyType)).select(new SFunction[]{(v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getName();
|
}, (v0) -> {
|
return v0.getProvider();
|
}}));
|
return R.data(NotifyConfigConvert.INSTANCE.convertToDTOList(result));
|
}
|
|
@ApiOperationSupport(order = 8)
|
@GetResource({"/detail/{configId}"})
|
@ApiOperation(value = "详情", notes = "传入通知配置Id")
|
public R<NotifyConfigDTO> detail(@PathVariable("configId") String configId) {
|
NotifyConfigEntity detail = (NotifyConfigEntity) this.notifyConfigService.getById(configId);
|
return R.data(NotifyConfigConvert.INSTANCE.convertToDto(detail));
|
}
|
|
@ApiOperationSupport(order = 10)
|
@GetMapping({"/service-list"})
|
@ApiOperation("服务配置列表")
|
public R<List<NotifyTypeInfo>> getServiceList() {
|
return R.data(this.notifyConfigService.getServiceList());
|
}
|
}
|