package com.xy.service; import com.xy.annotate.RestMappingController; import com.xy.constants.CacheConstants; import com.xy.dto.SysDict.SysDictDto; import com.xy.dto.SysDict.SysDictItemDto; import com.xy.dto.SysDict.SysDictItemPageDto; import com.xy.dto.SysDict.SysDictPageDto; import com.xy.utils.PageBean; import com.xy.utils.R; import com.xy.vo.SysDictItemVo; import com.xy.vo.SysDictVo; import io.swagger.annotations.ApiOperation; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /*** * 字典表管理 * @author 谭斌 * @date 2022/12/16 13:56 */ @RestMappingController("dict") public interface SysDicApiService { @ApiOperation("通过ID查询字典信息") @GetMapping("{id}") R getById(@PathVariable("id") Long id); @ApiOperation("分页查询字典信息") @GetMapping("page") R> getDictPage(SysDictPageDto page); @ApiOperation("通过字典类型查找字典") @GetMapping("key/{key}") @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#key") R> getDictByKey(@PathVariable String key); @ApiOperation("添加字典") @PostMapping R add(@Valid @RequestBody SysDictDto sysDict); @ApiOperation("删除字典,并且清除字典缓存") @DeleteMapping("{id}") R removeById(@PathVariable("id") Long id); @ApiOperation("修改字典") @PostMapping R updateSysDictById(@Valid @RequestBody SysDictDto sysDict); @ApiOperation("分页查询字典项") @GetMapping("item/page") R> getSysDictItemPage(SysDictItemPageDto pageDto); @ApiOperation("通过id查询字典项") @GetMapping("item/{id}") R getDictItemById(@PathVariable("id") Long id); @ApiOperation("新增字典项") @PostMapping("addItem") @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true) R addItem(@RequestBody SysDictItemDto sysDictItem); @ApiOperation("修改字典项") @PostMapping("updateItem") R updateSysDictItemById(@RequestBody SysDictItemDto sysDictItem); @ApiOperation("通过id删除字典项") @DeleteMapping("item/{id}") R removeDictItemById(@PathVariable("id") Long id); @ApiOperation("清除字典缓存") @DeleteMapping("/cache") R clearDictCache(); }