package com.qianwen.smartman.modules.system.controller; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.lang.invoke.SerializedLambda; import java.util.Date; import java.util.List; import java.util.Map; import javax.validation.Valid; import org.smartboot.license.client.LicenseException; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.LicenseUtil; 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.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.BladeUser; import com.qianwen.core.tenant.annotation.NonDS; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.support.Kv; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.system.entity.Tenant; import com.qianwen.smartman.modules.system.service.ITenantService; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @Api(value = "租户管理", tags = {"租户管理"}) @RestController @ApiResource({"blade-system/tenant"}) @NonDS /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/TenantController.class */ public class TenantController extends BladeController { private final ITenantService tenantService; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -1899877813: if (implMethodName.equals("getTenantName")) { z = false; break; } break; case 340463286: if (implMethodName.equals("getDatasourceId")) { z = true; break; } break; case 771206363: if (implMethodName.equals("getTenantId")) { 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/system/entity/Tenant") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getTenantName(); }; } 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/system/entity/Tenant") && 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/modules/system/entity/Tenant") && 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/modules/system/entity/Tenant") && 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/modules/system/entity/Tenant") && 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/modules/system/entity/Tenant") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getDatasourceId(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public TenantController(final ITenantService tenantService) { this.tenantService = tenantService; } @ApiOperationSupport(order = 1) @GetResource({"/detail"}) @ApiOperation(value = "详情", notes = "传入tenant") public R detail(Tenant tenant) { Tenant detail = (Tenant) this.tenantService.getOne(Condition.getQueryWrapper(tenant)); return R.data(detail); } @ApiOperationSupport(order = 2) @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "参数名称", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "tenantName", value = "角色别名", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "contactNumber", value = "联系电话", paramType = "query", dataType = "string")}) @GetResource({"/list"}) @ApiOperation(value = "分页", notes = "传入tenant") public R> list(@RequestParam @ApiIgnore Map tenant, Query query, BladeUser bladeUser) { Wrapper queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class); IPage pages = this.tenantService.page(Condition.getPage(query), !bladeUser.getTenantId().equals("000000") ? (Wrapper) queryWrapper.lambda().eq((v0) -> { return v0.getTenantId(); }, bladeUser.getTenantId()) : queryWrapper); return R.data(pages); } @ApiOperationSupport(order = 3) @GetResource({"/select"}) @ApiOperation(value = "下拉数据源", notes = "传入tenant") public R> select(Tenant tenant, BladeUser bladeUser) { Wrapper queryWrapper = Condition.getQueryWrapper(tenant); List list = this.tenantService.list(!bladeUser.getTenantId().equals("000000") ? (Wrapper) queryWrapper.lambda().eq((v0) -> { return v0.getTenantId(); }, bladeUser.getTenantId()) : queryWrapper); return R.data(list); } @ApiOperationSupport(order = 4) @GetResource({"/page"}) @ApiOperation(value = "分页", notes = "传入tenant") public R> page(Tenant tenant, Query query) { IPage pages = this.tenantService.selectTenantPage(Condition.getPage(query), tenant); return R.data(pages); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/submit"}) @ApiOperation(value = "新增或修改", notes = "传入tenant") public R submit(@Valid @RequestBody Tenant tenant) { return R.status(this.tenantService.submitTenant(tenant)); } @ApiOperationSupport(order = 6) @PostResource({"/remove"}) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids) { return R.status(this.tenantService.removeTenant(Func.toLongList(ids))); } @ApiOperationSupport(order = 7) @PostResource({"/setting"}) @ApiOperation(value = "授权配置", notes = "传入ids,accountNumber,expireTime") public R setting(@RequestParam @ApiParam(value = "主键集合", required = true) String ids, @ApiParam("账号额度") Integer accountNumber, @ApiParam("过期时间") Date expireTime) { return R.status(this.tenantService.setting(accountNumber, expireTime, ids)); } @ApiOperationSupport(order = 8) @PostResource({"datasource"}) @ApiOperation(value = "数据源配置", notes = "传入datasource_id") public R datasource(@RequestParam @ApiParam(value = "租户ID", required = true) String tenantId, @RequestParam @ApiParam(value = "数据源ID", required = true) Long datasourceId) { CacheUtil.evict("blade:datasource", "tenant:exist:", tenantId, Boolean.FALSE); return R.status(this.tenantService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().set((v0) -> { return v0.getDatasourceId(); }, datasourceId)).eq((v0) -> { return v0.getTenantId(); }, tenantId))); } @ApiOperationSupport(order = 9) @GetResource({"/find-by-name"}) @ApiOperation(value = "详情", notes = "传入tenant") public R> findByName(String name) { List list = this.tenantService.list((Wrapper) Wrappers.query().lambda().like((v0) -> { return v0.getTenantName(); }, name)); return R.data(list); } @ApiOperationSupport(order = 10) @GetResource({"/info"}) @ApiOperation(value = "配置信息", notes = "传入domain") public R info(String domain) { Tenant tenant = (Tenant) this.tenantService.getOne(Lambda.eq((v0) -> { return v0.getTenantId(); }, "000000")); Kv kv = Kv.create(); if (tenant != null) { kv.set("tenantId", tenant.getTenantId()).set("domain", tenant.getDomainName()).set("backgroundUrl", tenant.getBackgroundUrl()).set("identify", LicenseUtil.getMac()); } try { LicenseUtil.loadLicense("000000"); kv.set("license", true); } catch (LicenseException e) { kv.set("license", false); } return R.data(kv); } }