// package com.xiaoniu.subsystem.system.controller;
//
// import com.xiaoniu.common.core.utils.poi.ExcelUtil;
// import com.xiaoniu.common.core.web.controller.BaseController;
// import com.xiaoniu.common.core.web.domain.AjaxResult;
// import com.xiaoniu.common.core.web.page.TableDataInfo;
// import com.xiaoniu.common.log.annotation.Log;
// import com.xiaoniu.common.log.enums.BusinessType;
// import com.xiaoniu.common.security.utils.SecurityUtils;
// import com.xiaoniu.subsystem.system.service.ISysDictTypeService;
// import com.xiaoniu.system.api.domain.SysDictType;
// import io.swagger.v3.oas.annotations.Operation;
// import io.swagger.v3.oas.annotations.tags.Tag;
// import jakarta.servlet.http.HttpServletResponse;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.validation.annotation.Validated;
// import org.springframework.web.bind.annotation.*;
//
// import java.util.List;
//
// /**
//  * 数据字典信息
//  *
//  * @author xiaoniu
//  */
// @RestController
// @RequestMapping("/dict/type")
// @Tag(name = "数据字典信息", description = "数据字典信息接口")
// public class SysDictTypeController extends BaseController {
//     @Autowired
//     private ISysDictTypeService dictTypeService;
//
//     //@RequiresPermissions("system:dict:list")
//     @GetMapping("/list")
//     @Operation(summary = "列表")
//     public TableDataInfo list(SysDictType dictType) {
//         startPage();
//         List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
//         return getDataTable(list);
//     }
//
//     @Log(title = "字典类型", businessType = BusinessType.EXPORT)
//     //@RequiresPermissions("system:dict:export")
//     @PostMapping("/export")
//     @Operation(summary = "导出")
//     public void export(HttpServletResponse response, SysDictType dictType) {
//         List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
//         ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
//         util.exportExcel(response, list, "字典类型");
//     }
//
//     /**
//      * 查询字典类型详细
//      */
//     //@RequiresPermissions("system:dict:query")
//     @GetMapping(value = "/{dictId}")
//     @Operation(summary = "查询字典类型详细")
//     public AjaxResult getInfo(@PathVariable Long dictId) {
//         return success(dictTypeService.selectDictTypeById(dictId));
//     }
//
//     /**
//      * 新增字典类型
//      */
//     //@RequiresPermissions("system:dict:add")
//     @Operation(summary = "新增字典类型")
//     @Log(title = "字典类型", businessType = BusinessType.INSERT)
//     @PostMapping
//     public AjaxResult add(@Validated @RequestBody SysDictType dict) {
//         if (!dictTypeService.checkDictTypeUnique(dict)) {
//             return error("新增字典'" + dict.getDictName() + "'失败，字典类型已存在");
//         }
//         dict.setCreateBy(SecurityUtils.getUsername());
//         return toAjax(dictTypeService.insertDictType(dict));
//     }
//
//     /**
//      * 修改字典类型
//      */
//     //@RequiresPermissions("system:dict:edit")
//     @Operation(summary = "修改字典类型")
//     @Log(title = "字典类型", businessType = BusinessType.UPDATE)
//     @PutMapping
//     public AjaxResult edit(@Validated @RequestBody SysDictType dict) {
//         if (!dictTypeService.checkDictTypeUnique(dict)) {
//             return error("修改字典'" + dict.getDictName() + "'失败，字典类型已存在");
//         }
//         dict.setUpdateBy(SecurityUtils.getUsername());
//         return toAjax(dictTypeService.updateDictType(dict));
//     }
//
//     /**
//      * 删除字典类型
//      */
//     //@RequiresPermissions("system:dict:remove")
//     @Operation(summary = "删除字典类型")
//     @Log(title = "字典类型", businessType = BusinessType.DELETE)
//     @DeleteMapping("/{dictIds}")
//     public AjaxResult remove(@PathVariable Long[] dictIds) {
//         dictTypeService.deleteDictTypeByIds(dictIds);
//         return success();
//     }
//
//     /**
//      * 刷新字典缓存
//      */
//     //@RequiresPermissions("system:dict:remove")
//     @Operation(summary = "刷新字典缓存")
//     @Log(title = "字典类型", businessType = BusinessType.CLEAN)
//     @DeleteMapping("/refreshCache")
//     public AjaxResult refreshCache() {
//         dictTypeService.resetDictCache();
//         return success();
//     }
//
//     /**
//      * 获取字典选择框列表
//      */
//     @GetMapping("/optionselect")
//     @Operation(summary = "获取字典选择框列表")
//     public AjaxResult optionselect() {
//         List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
//         return success(dictTypes);
//     }
// }
