package com.youlai.system.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.youlai.common.result.PageResult; import com.youlai.common.result.Result; import com.youlai.common.web.annotation.PreventDuplicateResubmit; import com.youlai.system.model.form.DictForm; import com.youlai.system.model.form.DictTypeForm; import com.youlai.system.model.query.DictPageQuery; import com.youlai.system.model.query.DictTypePageQuery; import com.youlai.system.model.vo.DictPageVO; import com.youlai.system.model.vo.DictTypePageVO; import com.youlai.common.web.model.Option; import com.youlai.system.service.SysDictService; import com.youlai.system.service.SysDictTypeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springdoc.core.annotations.ParameterObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; @Tag(name = "05.字典接口") @RestController @RequestMapping("/api/v1/dict") @RequiredArgsConstructor public class SysDictController { private final SysDictService dictService; private final SysDictTypeService dictTypeService; @Operation(summary = "字典分页列表") @GetMapping("/page") public PageResult getDictPage( @ParameterObject DictPageQuery queryParams ) { Page result = dictService.getDictPage(queryParams); return PageResult.success(result); } @Operation(summary = "字典数据表单数据") @GetMapping("/{id}/form") public Result getDictForm( @Parameter(description ="字典ID") @PathVariable Long id ) { DictForm formData = dictService.getDictForm(id); return Result.success(formData); } @Operation(summary = "新增字典") @PostMapping @PreAuthorize("@ss.hasPerm('sys:dict:add')") @PreventDuplicateResubmit public Result saveDict( @RequestBody DictForm DictForm ) { boolean result = dictService.saveDict(DictForm); return Result.judge(result); } @Operation(summary = "修改字典") @PutMapping("/{id}") @PreAuthorize("@ss.hasPerm('sys:dict:edit')") public Result updateDict( @PathVariable Long id, @RequestBody DictForm DictForm ) { boolean status = dictService.updateDict(id, DictForm); return Result.judge(status); } @Operation(summary = "删除字典") @DeleteMapping("/{ids}") @PreAuthorize("@ss.hasPerm('sys:dict:delete')") public Result deleteDict( @Parameter(description ="字典ID,多个以英文逗号(,)拼接") @PathVariable String ids ) { boolean result = dictService.deleteDict(ids); return Result.judge(result); } @Operation(summary = "字典下拉列表") @GetMapping("/options") public Result> listDictOptions( @Parameter(description ="字典类型编码") @RequestParam String typeCode ) { List