package com.qianwen.smartman.modules.system.controller; import java.util.List; import java.util.stream.Collectors; import javax.validation.Valid; 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; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.model.ResourceDefinition; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.system.convert.ResourceDefinitionConvert; import com.qianwen.smartman.modules.system.mapper.ResourceDefinitionMapper; import com.qianwen.smartman.modules.system.service.IResourceDefinitionService; import com.qianwen.smartman.modules.system.vo.ResourceDefinitionVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "接口管理", tags = {"接口管理"}) @ApiResource({"blade-system/resource-definition"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/ResourceDefinitionController.class */ public class ResourceDefinitionController extends BladeController { private final IResourceDefinitionService resourceDefinitionService; private final ResourceDefinitionMapper resourceDefinitionMapper; public ResourceDefinitionController(final IResourceDefinitionService resourceDefinitionService, final ResourceDefinitionMapper resourceDefinitionMapper) { this.resourceDefinitionService = resourceDefinitionService; this.resourceDefinitionMapper = resourceDefinitionMapper; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "接口详情", notes = "传入resourceDefinition") public R detail(@PathVariable String id) { ResourceDefinition resourceDefinition = (ResourceDefinition) this.resourceDefinitionMapper.selectById(id); return R.data(ResourceDefinitionConvert.INSTANCE.convert(resourceDefinition)); } @ApiOperationSupport(order = 3) @GetResource({"/page"}) @ApiOperation(value = "接口分页", notes = "传入map") public R> page(@RequestParam(value = "menuId", required = false) String menuId, @RequestParam(value = "moduleCode", required = false) String moduleCode, @RequestParam(value = "controllerCode", required = false) String controllerCode, Query query) { IPage pages = this.resourceDefinitionService.pageByCondition(Condition.getPage(query), Func.isNotEmpty(menuId) ? Long.valueOf(menuId) : null, moduleCode, controllerCode); return R.data(ResourceDefinitionConvert.INSTANCE.convert(pages)); } @ApiOperationSupport(order = 4) @PostResource({"/insert"}) @ApiOperation(value = "接口新增", notes = "传入resourceDefinitionVO") public R insert(@Valid @RequestBody ResourceDefinitionVO resourceDefinitionVO) { ResourceDefinition resourceDefinition = ResourceDefinitionConvert.INSTANCE.convert(resourceDefinitionVO); this.resourceDefinitionMapper.insert(resourceDefinition); return R.data(ResourceDefinitionConvert.INSTANCE.convert(resourceDefinition)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PutResource({"/update"}) @ApiOperation(value = "接口修改", notes = "传入resourceDefinitionVO") public R update(@Valid @RequestBody ResourceDefinitionVO resourceDefinitionVO) { ResourceDefinition resourceDefinition = ResourceDefinitionConvert.INSTANCE.convert(resourceDefinitionVO); this.resourceDefinitionMapper.updateById(resourceDefinition); return R.data(ResourceDefinitionConvert.INSTANCE.convert(resourceDefinition)); } @ApiOperationSupport(order = 6) @DeleteResource({"/remove"}) @ApiOperation(value = "接口删除", notes = "传入ids") public R remove(@ApiParam(value = "主键", required = true) @RequestBody List ids) { if (ids.isEmpty()) { return R.status(false); } this.resourceDefinitionMapper.deleteBatchIds(ids); return R.status(true); } @ApiOperationSupport(order = 7) @GetResource({"/all-controller"}) @ApiOperation("所有接口Controller") public R> allController(@RequestParam String moduleCode) { return R.data(this.resourceDefinitionMapper.selectList(Wrappers.lambdaQuery() .eq(ResourceDefinition::getModuleCode, moduleCode)).stream().map(ResourceDefinition::getControllerCode).distinct().collect(Collectors.toList())); /* return R.data(this.resourceDefinitionMapper.selectList((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getModuleCode(); }, moduleCode)).stream().map((v0) -> { return v0.getControllerCode(); }).distinct().collect(Collectors.toList()));*/ } @ApiOperationSupport(order = 8) @GetResource({"/all-module"}) @ApiOperation("所有接口模块") public R> allModule() { return R.data(this.resourceDefinitionMapper.selectList(Wrappers.lambdaQuery()).stream().map((v0) -> { return v0.getModuleCode(); }).distinct().collect(Collectors.toList())); } }