141 lines
4.9 KiB
Java
141 lines
4.9 KiB
Java
package net.srt.controller;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import lombok.AllArgsConstructor;
|
|
import net.srt.convert.ApiConfigConvert;
|
|
import net.srt.dto.SqlDto;
|
|
import net.srt.entity.ApiConfigEntity;
|
|
import net.srt.framework.common.page.PageResult;
|
|
import net.srt.framework.common.utils.Result;
|
|
import net.srt.query.ApiConfigQuery;
|
|
import net.srt.service.ApiConfigService;
|
|
import net.srt.vo.ApiConfigVo;
|
|
import net.srt.vo.DataServiceApiAuthVo;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import srt.cloud.framework.dbswitch.core.model.JdbcSelectResult;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.validation.Valid;
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("/api-config")
|
|
@AllArgsConstructor
|
|
public class ApiConfigController {
|
|
private final ApiConfigService apiConfigService;
|
|
|
|
@GetMapping("page")
|
|
@Operation(summary = "分页")
|
|
@PreAuthorize("hasAuthority('data-service:api-config:page')")
|
|
public Result<PageResult<ApiConfigVo>> page(@Valid ApiConfigQuery query) {
|
|
PageResult<ApiConfigVo> page = apiConfigService.page(query);
|
|
|
|
return Result.ok(page);
|
|
}
|
|
@GetMapping("page-resource")
|
|
@Operation(summary = "根据resourceId分页获取")
|
|
public Result<PageResult<ApiConfigVo>> pageResource(@Valid ApiConfigQuery query){
|
|
PageResult<ApiConfigVo> page = apiConfigService.pageResource(query);
|
|
|
|
return Result.ok(page);
|
|
}
|
|
|
|
@GetMapping("page-auth")
|
|
public Result<PageResult<ApiConfigVo>> pageAuth(@Valid ApiConfigQuery query) {
|
|
PageResult<ApiConfigVo> page = apiConfigService.page(query);
|
|
|
|
return Result.ok(page);
|
|
}
|
|
|
|
//取消授权
|
|
// @PutMapping("/auth-info")
|
|
// @Operation(summary = "修改授权")
|
|
// public Result<String> upAuth(@RequestBody DataServiceApiAuthVo authVO){
|
|
// apiConfigService.upAuth(authVO);
|
|
// return Result.ok();
|
|
// }
|
|
@Operation(summary = "回显")
|
|
@GetMapping(value = "/auth-info/{authId}")
|
|
public Result<DataServiceApiAuthVo> getAuthId(@PathVariable Long authId){
|
|
return Result.ok(apiConfigService.getAuthInfo(authId));
|
|
}
|
|
|
|
//重置调用次数
|
|
@Operation(summary = "重置调用次数")
|
|
@PutMapping("/reset-requested/{authId}")
|
|
public Result<String > resetRequested(@PathVariable Long authId){
|
|
apiConfigService.resetRequested(authId);
|
|
return Result.ok();
|
|
}
|
|
|
|
|
|
@GetMapping("{id}")
|
|
@Operation(summary = "信息")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:info')")
|
|
public Result<ApiConfigVo> get(@PathVariable("id") Long id){
|
|
ApiConfigEntity entity=apiConfigService.getById(id);
|
|
return Result.ok(ApiConfigConvert.INSTANCE.convert(entity));
|
|
}
|
|
|
|
@PostMapping
|
|
@Operation(summary = "保存")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:save')")
|
|
public Result<String> save(@RequestBody ApiConfigVo vo) {
|
|
apiConfigService.save(vo);
|
|
return Result.ok();
|
|
}
|
|
@PutMapping
|
|
@Operation(summary = "修改")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:update')")
|
|
public Result<String> update(@RequestBody ApiConfigVo vo){
|
|
apiConfigService.update(vo);
|
|
return Result.ok();
|
|
}
|
|
@DeleteMapping
|
|
@Operation(summary = "删除")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:delete')")
|
|
public Result<String> delete(@RequestBody List<Long> idList){
|
|
apiConfigService.delete(idList);
|
|
return Result.ok();
|
|
}
|
|
@GetMapping("getIpPort")
|
|
public Result<String> getIpPort() {
|
|
return Result.ok(apiConfigService.getIpPort());
|
|
}
|
|
@Operation(summary = "获取服务的ip和端口号")
|
|
@GetMapping("/ip-port")
|
|
public Result<String> ipPort() {
|
|
return Result.ok(apiConfigService.ipPort());
|
|
}
|
|
@Operation(summary = "上线")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:online')")
|
|
@PutMapping("/{id}/online")
|
|
public Result<String> online(@PathVariable Long id) {
|
|
apiConfigService.online(id);
|
|
return Result.ok();
|
|
}
|
|
@Operation(summary = "下线")
|
|
@PreAuthorize("hasAnyAuthority('data-service:api-config:offline')")
|
|
@PutMapping("/{id}/offline")
|
|
public Result<String> offline(@PathVariable Long id){
|
|
apiConfigService.offline(id);
|
|
return Result.ok();
|
|
}
|
|
|
|
@Operation(summary = "执行sql")
|
|
@PostMapping("/sql/execute")
|
|
public Result<JdbcSelectResult> sqlExecute(@RequestBody SqlDto dto) {
|
|
return Result.ok(apiConfigService.sqlExecute(dto));
|
|
}
|
|
|
|
@Operation(summary = "导出 api 文档")
|
|
@PostMapping(value = "/export-docs")
|
|
public void exportDocs(@RequestBody List<Long> ids, HttpServletResponse response) {
|
|
apiConfigService.exportDocs(ids, response);
|
|
}
|
|
|
|
|
|
}
|