package com.youlai.system.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.youlai.system.common.result.PageResult; import com.youlai.system.common.result.Result; import com.youlai.system.model.vo.DictPageVO; import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit; import com.youlai.system.model.form.DictForm; import com.youlai.system.model.query.DictTypePageQuery; import com.youlai.system.service.SysDictService; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; /** * 字典控制层 * * @author Ray Hao * @since 2.9.0 */ @Tag(name = "06.字典接口") @RestController @RequestMapping("/api/v1/dict") @RequiredArgsConstructor public class SysDictController { private final SysDictService dictService; @Operation(summary = "字典分页列表") @GetMapping("/page") public PageResult getDictPage( DictTypePageQuery 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')") @PreventRepeatSubmit public Result saveDict(@RequestBody DictForm formData) { boolean result = dictService.saveDict(formData); 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 deleteDictionaries( @Parameter(description = "字典ID,多个以英文逗号(,)拼接") @PathVariable String ids ) { boolean result = dictService.deleteDictByIds(ids); return Result.judge(result); } }