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.metadata.IPage;
|
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.mp.support.Condition;
|
import com.qianwen.core.mp.support.Query;
|
import com.qianwen.core.notify.template.TemplateProvider;
|
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.core.tool.tuple.NameValue;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.notify.convert.NotifyTemplateConvert;
|
import com.qianwen.smartman.modules.notify.dto.NotifyTemplateDTO;
|
import com.qianwen.smartman.modules.notify.dto.NotifyTemplateQueryDTO;
|
import com.qianwen.smartman.modules.notify.dto.NotifyTemplateResponseDTO;
|
import com.qianwen.smartman.modules.notify.entity.NotifyConfigEntity;
|
import com.qianwen.smartman.modules.notify.entity.NotifyTemplateEntity;
|
import com.qianwen.smartman.modules.notify.service.INotifyConfigService;
|
import com.qianwen.smartman.modules.notify.service.INotifyTemplateService;
|
import com.qianwen.smartman.modules.notify.wrapper.NotifyTemplateWrapper;
|
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/template"})
|
@Api(value = "消息通知模版", tags = {"消息通知模版"})
|
@RestController
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/controller/NotifierTemplateController.class */
|
public class NotifierTemplateController extends BladeController {
|
private final INotifyTemplateService templateService;
|
private final INotifyConfigService notifyConfigService;
|
private final List<TemplateProvider> 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 931069238:
|
if (implMethodName.equals("getBusiness")) {
|
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/NotifyTemplateEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getName();
|
};
|
}
|
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/NotifyTemplateEntity") && 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/NotifyTemplateEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getType();
|
};
|
}
|
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/NotifyTemplateEntity") && 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/NotifyTemplateEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getBusiness();
|
};
|
}
|
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/NotifyTemplateEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getBusiness();
|
};
|
}
|
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/NotifyTemplateEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getProvider();
|
};
|
}
|
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/NotifyTemplateEntity") && 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 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/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;
|
}
|
throw new IllegalArgumentException("Invalid lambda deserialization");
|
}
|
|
public NotifierTemplateController(final INotifyTemplateService templateService, final INotifyConfigService notifyConfigService, final List<TemplateProvider> providers) {
|
this.templateService = templateService;
|
this.notifyConfigService = notifyConfigService;
|
this.providers = providers;
|
}
|
|
@ApiOperationSupport(order = 1)
|
@GetResource({"/{type}/{provider}/config/metadata"})
|
@ApiOperation("获取指定类型和服务商所需模版配置定义")
|
public R<ConfigMetadata> getAllTypes(@PathVariable("type") String type, @PathVariable("provider") String provider) {
|
return R.data(this.templateService.getAllTypes(type, provider, this.providers));
|
}
|
|
@ApiOperationSupport(order = 2)
|
@PutResource
|
@ApiOperation(value = "新增或修改", notes = "传入模板信息")
|
public R<NotifyTemplateEntity> submit(@Valid @RequestBody NotifyTemplateDTO notifyTemplateDTO, BladeUser bladeUser) {
|
if (Func.isNotEmpty(notifyTemplateDTO.getId())) {
|
CacheUtil.evict("blade:notify", "template:id:", notifyTemplateDTO.getId(), false);
|
}
|
NotifyTemplateEntity notifyTemplateEntity = NotifyTemplateConvert.INSTANCE.convertToEntity(notifyTemplateDTO.setTenantId(bladeUser.getTenantId()));
|
this.templateService.saveOrUpdate(notifyTemplateEntity);
|
return R.data(notifyTemplateEntity);
|
}
|
|
@ApiOperationSupport(order = 3)
|
@DeleteResource({"/{id}"})
|
@ApiOperation(value = "删除", notes = "传入id")
|
public R<String> remove(@PathVariable("id") @ApiParam(value = "主键", required = true) String id, BladeUser bladeUser) {
|
CacheUtil.evict("blade:notify", "template:id:", id, false);
|
this.templateService.checkUsedByBusinessNotify(id);
|
return R.status(this.templateService.remove((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> {
|
return v0.getId();
|
}, id)).eq((v0) -> {
|
return v0.getTenantId();
|
}, bladeUser.getTenantId())));
|
}
|
|
@ApiOperationSupport(order = 4)
|
@GetResource({"/list"})
|
@ApiOperation(value = "通知模板列表", notes = "传入模板")
|
public R<IPage<NotifyTemplateResponseDTO>> configPageList(NotifyTemplateQueryDTO notifyTemplateQueryDTO, Query query, BladeUser bladeUser) {
|
Wrapper wrapper = (LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getTenantId();
|
}, bladeUser.getTenantId());
|
if (Func.isNotEmpty(notifyTemplateQueryDTO)) {
|
wrapper.like(Func.isNotEmpty(notifyTemplateQueryDTO.getName()), (v0) -> {
|
return v0.getName();
|
}, notifyTemplateQueryDTO.getName()).in(Func.isNotEmpty(notifyTemplateQueryDTO.getType()), (v0) -> {
|
return v0.getType();
|
}, Arrays.asList(notifyTemplateQueryDTO.getType().split(","))).eq(Func.isNotEmpty(notifyTemplateQueryDTO.getBusinessKey()), (v0) -> {
|
return v0.getBusiness();
|
}, notifyTemplateQueryDTO.getBusinessKey()).eq(Func.isNotEmpty(notifyTemplateQueryDTO.getProvider()), (v0) -> {
|
return v0.getProvider();
|
}, notifyTemplateQueryDTO.getProvider());
|
}
|
IPage<NotifyTemplateEntity> list = this.templateService.page(Condition.getPage(query), wrapper);
|
return R.data(NotifyTemplateWrapper.build().pageVO(NotifyTemplateConvert.INSTANCE.convertToPage(list)));
|
}
|
|
@ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
|
@GetResource({"/detail/{templateId}"})
|
@ApiOperation(value = "详情", notes = "传入模板配置Id")
|
public R<NotifyTemplateDTO> detail(@PathVariable("templateId") String templateId) {
|
NotifyTemplateEntity detail = (NotifyTemplateEntity) this.templateService.getById(templateId);
|
return R.data(NotifyTemplateConvert.INSTANCE.convertToDto(detail));
|
}
|
|
@ApiOperationSupport(order = 6)
|
@GetResource({"/select"})
|
@ApiOperation(value = "业务通知可用的通知模板", notes = "传入通知类型")
|
public R<List<NameValue<String>>> getCanUseNotifyConfig(@RequestParam(value = "notifyId", required = true) String notifyId, @RequestParam(value = "businessKey", required = true) String businessKey, BladeUser bladeUser) {
|
List<NameValue<String>> result = new ArrayList<>();
|
NotifyConfigEntity notifyConfigEntity = (NotifyConfigEntity) this.notifyConfigService.getById(notifyId);
|
if (Func.isNotEmpty(notifyConfigEntity)) {
|
result = (List) this.templateService.list(((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getTenantId();
|
}, Arrays.asList(bladeUser.getTenantId(), "000000"))).eq((v0) -> {
|
return v0.getType();
|
}, notifyConfigEntity.getType())).eq((v0) -> {
|
return v0.getBusiness();
|
}, businessKey)).eq((v0) -> {
|
return v0.getProvider();
|
}, notifyConfigEntity.getProvider())).select(new SFunction[]{(v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getName();
|
}})).stream().map(x -> {
|
return new NameValue(x.getName(), x.getId().toString());
|
}).collect(Collectors.toList());
|
}
|
return R.data(result);
|
}
|
}
|