package com.bruce.common.controller; import com.bruce.common.domain.model.RequestResult; import com.bruce.common.dto.request.SysEnumBatchSaveRequest; import com.bruce.common.dto.request.SysEnumManageQueryRequest; import com.bruce.common.dto.request.SysEnumQueryRequest; import com.bruce.common.dto.request.SysEnumSaveRequest; import com.bruce.common.dto.response.SysEnumResponse; import com.bruce.common.service.ISysEnumService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Tag(name = "系统枚举管理") @Slf4j @RestController @RequestMapping("/api/sys-enum") public class SysEnumController { @Autowired private ISysEnumService sysEnumService; @Operation(summary = "查询全部系统枚举") @PostMapping("/list") public RequestResult> list() { log.info("SysEnumController.list start"); List responses = sysEnumService.listResponses(); log.info("SysEnumController.list success, count={}", responses.size()); return RequestResult.success(responses); } @Operation(summary = "根据模块和类型查询系统枚举") @PostMapping("/query") public RequestResult> queryByCatalogAndType(@RequestBody SysEnumQueryRequest request) { log.info("SysEnumController.queryByCatalogAndType start, request={}", request); List responses = sysEnumService.listByCatalogAndTypeResponses(request); log.info("SysEnumController.queryByCatalogAndType success, count={}", responses.size()); return RequestResult.success(responses); } @Operation(summary = "管理端查询系统枚举") @PostMapping("/queryForManagement") public RequestResult> queryForManagement(@RequestBody(required = false) SysEnumManageQueryRequest request) { log.info("SysEnumController.queryForManagement start, request={}", request); List responses = sysEnumService.listForManagement(request); log.info("SysEnumController.queryForManagement success, count={}", responses.size()); return RequestResult.success(responses); } @Operation(summary = "查询系统枚举详情") @GetMapping("/detail") public RequestResult getById(@RequestParam("id") Long id) { log.info("SysEnumController.getById start, id={}", id); SysEnumResponse response = sysEnumService.getResponseById(id); log.info("SysEnumController.getById success, id={}, found={}", id, response != null); return RequestResult.success(response); } @Operation(summary = "新增或修改系统枚举") @PostMapping("/save") public RequestResult saveOrUpdate(@RequestBody SysEnumSaveRequest request) { log.info("SysEnumController.saveOrUpdate start, request={}", request); Boolean result = sysEnumService.saveOrUpdate(request); log.info("SysEnumController.saveOrUpdate success, id={}, catalog={}, type={}, value={}, result={}", request.getId(), request.getCatalog(), request.getType(), request.getValue(), result); return RequestResult.success(result); } @Operation(summary = "批量新增系统枚举") @PostMapping("/batchSave") public RequestResult batchSave(@RequestBody SysEnumBatchSaveRequest request) { log.info("SysEnumController.batchSave start, request={}", request); Boolean result = sysEnumService.batchSave(request); log.info("SysEnumController.batchSave success, catalog={}, type={}, itemCount={}, result={}", request.getCatalog(), request.getType(), request.getItems() == null ? 0 : request.getItems().size(), result); return RequestResult.success(result); } @Operation(summary = "删除系统枚举") @PostMapping("/delete") public RequestResult deleteById(@RequestParam("id") Long id) { log.info("SysEnumController.deleteById start, id={}", id); Boolean result = sysEnumService.removeById(id); log.info("SysEnumController.deleteById success, id={}, result={}", id, result); return RequestResult.success(result); } }