package com.qianwen.smartman.modules.system.controller; import java.util.List; import javax.validation.Valid; 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.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.model.ResourceDefinition; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tenant.annotation.NonDS; 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.common.constant.ExtCacheConstant; import com.qianwen.smartman.modules.system.entity.ApiScope; import com.qianwen.smartman.modules.system.mapper.ResourceDefinitionMapper; import com.qianwen.smartman.modules.system.service.IApiScopeService; import com.qianwen.smartman.modules.system.vo.ApiScopeVO; import com.qianwen.smartman.modules.system.wrapper.ApiScopeWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "接口权限", tags = {"接口权限"}) @RestController @ApiResource({"blade-system/api-scope"}) @NonDS /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/ApiScopeController.class */ public class ApiScopeController extends BladeController { private final IApiScopeService apiScopeService; private final ResourceDefinitionMapper resourceDefinitionMapper; public ApiScopeController(final IApiScopeService apiScopeService, final ResourceDefinitionMapper resourceDefinitionMapper) { this.apiScopeService = apiScopeService; this.resourceDefinitionMapper = resourceDefinitionMapper; } @ApiOperationSupport(order = 1) @GetResource({"/detail"}) @ApiOperation(value = "详情", notes = "传入dataScope") public R detail(ApiScope dataScope) { ApiScope detail = (ApiScope) this.apiScopeService.getOne(Condition.getQueryWrapper(dataScope)); return R.data(detail); } @ApiOperationSupport(order = 2) @GetResource({"/list"}) @ApiOperation(value = "分页", notes = "传入dataScope") @PreAuth public R> list(ApiScope dataScope, Query query) { IPage pages = this.apiScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope)); /* IPage pages = this.apiScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope));*/ IPage data = ApiScopeWrapper.build().pageVO(pages); data.getRecords().forEach(apiScopeVO -> { ResourceDefinition resourceDefinition = this.resourceDefinitionMapper.selectOne(Wrappers.lambdaQuery() .eq(ResourceDefinition::getCode, apiScopeVO.getResourceCode())); /* ResourceDefinition resourceDefinition = (ResourceDefinition) this.resourceDefinitionMapper.selectOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getCode(); }, apiScopeVO.getResourceCode()));*/ if (Func.isNotEmpty(resourceDefinition)) { apiScopeVO.setControllerCode(resourceDefinition.getControllerCode()); apiScopeVO.setModuleCode(resourceDefinition.getModuleCode()); } }); return R.data(data); } @ApiOperationSupport(order = 3) @PostResource({"/save"}) @ApiOperation(value = "新增", notes = "传入dataScope") @PreAuth public R save(@RequestParam String menuId, @RequestParam List resourceCodeList) { CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE); return R.data(this.apiScopeService.insertBatch(Long.valueOf(menuId), resourceCodeList)); } @ApiOperationSupport(order = 4) @PostResource({"/update"}) @ApiOperation(value = "修改", notes = "传入dataScope") public R update(@Valid @RequestBody ApiScope dataScope) { CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE); return R.status(this.apiScopeService.updateById(dataScope)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/submit"}) @ApiOperation(value = "新增或修改", notes = "传入dataScope") public R submit(@Valid @RequestBody ApiScope dataScope) { CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE); return R.status(this.apiScopeService.saveOrUpdate(dataScope)); } @ApiOperationSupport(order = 6) @PostResource({"/remove"}) @ApiOperation(value = "逻辑删除", notes = "传入ids") @PreAuth public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids) { CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE); return R.status(this.apiScopeService.deleteLogic(Func.toLongList(ids))); } }