package com.labelsys.backend.controller; import org.springdoc.core.annotations.ParameterObject; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.labelsys.backend.common.Result; import com.labelsys.backend.context.UserContext; import com.labelsys.backend.dto.common.PageResult; import com.labelsys.backend.dto.request.SaveSysConfigRequest; import com.labelsys.backend.dto.request.SysConfigPageQuery; import com.labelsys.backend.dto.request.UpdateSysConfigRequest; import com.labelsys.backend.dto.response.SysConfigResponse; import com.labelsys.backend.service.SysConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @Tag(name = "系统配置管理") @RestController @RequestMapping("/api/sys-configs") @RequiredArgsConstructor public class SysConfigController { private final SysConfigService sysConfigService; @Operation(summary = "创建系统配置") // @RequirePosition(UserPosition.ADMIN) @PostMapping public Result create(@Valid @RequestBody SaveSysConfigRequest request) { return Result .success(sysConfigService.toResponse(sysConfigService.saveConfig(UserContext.requireUser(), request))); } @Operation(summary = "更新系统配置") // @RequirePosition(UserPosition.ADMIN) @PutMapping("/{id}") public Result update( @Parameter(description = "配置ID", example = "191000000000000501") @PathVariable Long id, @Valid @RequestBody UpdateSysConfigRequest request) { return Result.success( sysConfigService.toResponse(sysConfigService.updateConfig(UserContext.requireUser(), id, request))); } @Operation(summary = "分页查询系统配置") @GetMapping public Result> page(@ParameterObject SysConfigPageQuery query) { return Result.success(sysConfigService.pageConfigs(UserContext.requireUser(), query)); } @Operation(summary = "查询系统配置详情") @GetMapping("/{id}") public Result detail(@Parameter(description = "配置ID", example = "191000000000000501") @PathVariable Long id) { return Result.success(sysConfigService.getConfig(UserContext.requireUser(), id)); } }