diff --git a/ruoyi-ui/src/api/system/dict/data.js b/ruoyi-ui/src/api/system/dict/data.js index c29b2f81..00e614b1 100644 --- a/ruoyi-ui/src/api/system/dict/data.js +++ b/ruoyi-ui/src/api/system/dict/data.js @@ -38,7 +38,7 @@ export function addData(data) { export function updateData(data) { return request({ url: '/system/dict-data/update', - method: 'post', + method: 'put', data: data }) } @@ -47,7 +47,7 @@ export function updateData(data) { export function delData(dictCode) { return request({ url: '/system/dict-data/delete?id=' + dictCode, - method: 'post' + method: 'delete' }) } diff --git a/ruoyi-ui/src/api/system/dict/type.js b/ruoyi-ui/src/api/system/dict/type.js index a1423f1d..9fe10d41 100644 --- a/ruoyi-ui/src/api/system/dict/type.js +++ b/ruoyi-ui/src/api/system/dict/type.js @@ -30,7 +30,7 @@ export function addType(data) { export function updateType(data) { return request({ url: '/system/dict-type/update', - method: 'post', + method: 'put', data: data }) } @@ -39,7 +39,7 @@ export function updateType(data) { export function delType(dictId) { return request({ url: '/system/dict-type/delete?id=' + dictId, - method: 'post' + method: 'delete' }) } diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index 262ea31b..13d26230 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -3,31 +3,15 @@ - + - + - + @@ -38,22 +22,12 @@ - 新增 + 新增 - 导出 + 导出 @@ -72,31 +46,16 @@ - + @@ -115,11 +74,7 @@ - {{dict.label}} + {{dict.label}} diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue index 4f92859a..a730e61b 100644 --- a/ruoyi-ui/src/views/system/dict/index.vue +++ b/ruoyi-ui/src/views/system/dict/index.vue @@ -2,52 +2,19 @@
- + - + - - + + - + 搜索 @@ -57,22 +24,12 @@ - 新增 + 新增 - 导出 + 导出 @@ -96,31 +53,16 @@ - + @@ -133,11 +75,7 @@ - {{dict.label}} + {{dict.label}} diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictDataController.java b/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictDataController.java index baeb6834..cca874d7 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictDataController.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictDataController.java @@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.system.controller.dict; import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; +import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.*; import cn.iocoder.dashboard.modules.system.convert.dict.SysDictDataConvert; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; @@ -10,84 +11,85 @@ import cn.iocoder.dashboard.modules.system.service.dict.SysDictDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; import static cn.iocoder.dashboard.common.pojo.CommonResult.success; +import static cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum.EXPORT; @Api(tags = "字典数据") @RestController @RequestMapping("/system/dict-data") +@Validated public class SysDictDataController { @Resource private SysDictDataService dictDataService; - @ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地") - @GetMapping("/list-all-simple") - // 无需添加权限认证,因为前端全局都需要 - public CommonResult> listSimpleDictDatas() { - List list = dictDataService.getDictDataList(); - return success(SysDictDataConvert.INSTANCE.convertList(list)); - } - - @ApiOperation("/获得字典类型的分页列表") - @GetMapping("/page") -// @PreAuthorize("@ss.hasPermi('system:dict:list')") - public CommonResult> pageDictTypes(@Validated SysDictDataPageReqVO reqVO) { - return success(SysDictDataConvert.INSTANCE.convertPage(dictDataService.getDictDataPage(reqVO))); - } - - @ApiOperation("/查询字典数据详细") - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) - @GetMapping(value = "/get") -// @PreAuthorize("@ss.hasPermi('system:dict:query')") - public CommonResult getDictData(@RequestParam("id") Long id) { - return success(SysDictDataConvert.INSTANCE.convert(dictDataService.getDictData(id))); - } - - @ApiOperation("新增字典数据") @PostMapping("/create") -// @PreAuthorize("@ss.hasPermi('system:dict:add')") -// @Log(title = "字典数据", businessData = BusinessData.INSERT) - public CommonResult createDictData(@Validated @RequestBody SysDictDataCreateReqVO reqVO) { + @ApiOperation("新增字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:create')") + public CommonResult createDictData(@Valid @RequestBody SysDictDataCreateReqVO reqVO) { Long dictDataId = dictDataService.createDictData(reqVO); return success(dictDataId); } + @PutMapping("update") @ApiOperation("修改字典数据") - @PostMapping("update") -// @PreAuthorize("@ss.hasPermi('system:dict:edit')") -// @Log(title = "字典数据", businessData = BusinessData.UPDATE) - public CommonResult updateDictData(@Validated @RequestBody SysDictDataUpdateReqVO reqVO) { + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictData(@Valid @RequestBody SysDictDataUpdateReqVO reqVO) { dictDataService.updateDictData(reqVO); return success(true); } + @DeleteMapping("/delete") @ApiOperation("删除字典数据") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) - @PostMapping("/delete") -// @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @PreAuthorize("@ss.hasPermission('system:dict:delete')") public CommonResult deleteDictData(Long id) { dictDataService.deleteDictData(id); return success(true); } - @ApiOperation("导出字典数据") + @GetMapping("/list-all-simple") + @ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地") + // 无需添加权限认证,因为前端全局都需要 + public CommonResult> getSimpleDictDatas() { + List list = dictDataService.getDictDatas(); + return success(SysDictDataConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @ApiOperation("/获得字典类型的分页列表") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult> getDictTypePage(@Valid SysDictDataPageReqVO reqVO) { + return success(SysDictDataConvert.INSTANCE.convertPage(dictDataService.getDictDataPage(reqVO))); + } + + @GetMapping(value = "/get") + @ApiOperation("/查询字典数据详细") + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult getDictData(@RequestParam("id") Long id) { + return success(SysDictDataConvert.INSTANCE.convert(dictDataService.getDictData(id))); + } + @GetMapping("/export") -// @Log(title = "字典类型", businessType = BusinessType.EXPORT) -// @PreAuthorize("@ss.hasPermi('system:dict:export')") - public void export(HttpServletResponse response, @Validated SysDictDataExportReqVO reqVO) throws IOException { - List list = dictDataService.getDictDataList(reqVO); - List excelDataList = SysDictDataConvert.INSTANCE.convertList02(list); + @ApiOperation("导出字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:export')") + @OperateLog(type = EXPORT) + public void export(HttpServletResponse response, @Valid SysDictDataExportReqVO reqVO) throws IOException { + List list = dictDataService.getDictDatas(reqVO); + List data = SysDictDataConvert.INSTANCE.convertList02(list); // 输出 - ExcelUtils.write(response, "字典数据.xls", "数据列表", - SysDictDataExcelVO.class, excelDataList); + ExcelUtils.write(response, "字典数据.xls", "数据列表", SysDictDataExcelVO.class, data); } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictTypeController.java b/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictTypeController.java index d75059fb..cc53d7c5 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictTypeController.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictTypeController.java @@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.system.controller.dict; import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; +import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; import cn.iocoder.dashboard.modules.system.controller.dict.vo.type.*; import cn.iocoder.dashboard.modules.system.convert.dict.SysDictTypeConvert; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO; @@ -10,67 +11,68 @@ import cn.iocoder.dashboard.modules.system.service.dict.SysDictTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; import static cn.iocoder.dashboard.common.pojo.CommonResult.success; +import static cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum.EXPORT; @Api(tags = "字典类型") @RestController @RequestMapping("/system/dict-type") +@Validated public class SysDictTypeController { @Resource private SysDictTypeService dictTypeService; + @PostMapping("/create") + @ApiOperation("创建字典类型") + @PreAuthorize("@ss.hasPermission('system:dict:create')") + public CommonResult createDictType(@Valid @RequestBody SysDictTypeCreateReqVO reqVO) { + Long dictTypeId = dictTypeService.createDictType(reqVO); + return success(dictTypeId); + } + + @PostMapping("update") + @ApiOperation("修改字典类型") + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictType(@Valid @RequestBody SysDictTypeUpdateReqVO reqVO) { + dictTypeService.updateDictType(reqVO); + return success(true); + } + + @DeleteMapping("/delete") + @ApiOperation("删除字典类型") + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) + @PreAuthorize("@ss.hasPermission('system:dict:delete')") + public CommonResult deleteDictType(Long id) { + dictTypeService.deleteDictType(id); + return success(true); + } + @ApiOperation("/获得字典类型的分页列表") @GetMapping("/page") -// @PreAuthorize("@ss.hasPermi('system:dict:list')") - public CommonResult> pageDictTypes(@Validated SysDictTypePageReqVO reqVO) { + @PreAuthorize("@ss.hasPermission('system:dict:quey')") + public CommonResult> pageDictTypes(@Valid SysDictTypePageReqVO reqVO) { return success(SysDictTypeConvert.INSTANCE.convertPage(dictTypeService.getDictTypePage(reqVO))); } @ApiOperation("/查询字典类型详细") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) @GetMapping(value = "/get") -// @PreAuthorize("@ss.hasPermi('system:dict:query')") + @PreAuthorize("@ss.hasPermission('system:dict:quey')") public CommonResult getDictType(@RequestParam("id") Long id) { return success(SysDictTypeConvert.INSTANCE.convert(dictTypeService.getDictType(id))); } - @ApiOperation("新增字典类型") - @PostMapping("/create") -// @PreAuthorize("@ss.hasPermi('system:dict:add')") -// @Log(title = "字典类型", businessType = BusinessType.INSERT) - public CommonResult createDictType(@Validated @RequestBody SysDictTypeCreateReqVO reqVO) { - Long dictTypeId = dictTypeService.createDictType(reqVO); - return success(dictTypeId); - } - - @ApiOperation("修改字典类型") - @PostMapping("update") -// @PreAuthorize("@ss.hasPermi('system:dict:edit')") -// @Log(title = "字典类型", businessType = BusinessType.UPDATE) - public CommonResult updateDictType(@Validated @RequestBody SysDictTypeUpdateReqVO reqVO) { - dictTypeService.updateDictType(reqVO); - return success(true); - } - - @ApiOperation("删除字典类型") - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) - @PostMapping("/delete") -// @PreAuthorize("@ss.hasPermi('system:dict:remove')") - public CommonResult deleteDictType(Long id) { - dictTypeService.deleteDictType(id); - return success(true); - } - - @GetMapping("/list-all-simple") @ApiOperation(value = "获得全部字典类型列表", notes = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项") // 无需添加权限认证,因为前端全局都需要 @@ -81,14 +83,13 @@ public class SysDictTypeController { @ApiOperation("导出数据类型") @GetMapping("/export") -// @Log(title = "字典类型", businessType = BusinessType.EXPORT) -// @PreAuthorize("@ss.hasPermi('system:dict:export')") - public void export(HttpServletResponse response, @Validated SysDictTypeExportReqVO reqVO) throws IOException { + @PreAuthorize("@ss.hasPermission('system:dict:quey')") + @OperateLog(type = EXPORT) + public void export(HttpServletResponse response, @Valid SysDictTypeExportReqVO reqVO) throws IOException { List list = dictTypeService.getDictTypeList(reqVO); - List excelTypeList = SysDictTypeConvert.INSTANCE.convertList02(list); + List data = SysDictTypeConvert.INSTANCE.convertList02(list); // 输出 - ExcelUtils.write(response, "字典类型.xls", "类型列表", - SysDictTypeExcelVO.class, excelTypeList); + ExcelUtils.write(response, "字典类型.xls", "类型列表", SysDictTypeExcelVO.class, data); } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataService.java index 3969e420..ffbd66d1 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataService.java @@ -22,37 +22,6 @@ public interface SysDictDataService extends DictDataFrameworkService { */ void initLocalCache(); - /** - * 获得字典数据列表 - * - * @return 字典数据全列表 - */ - List getDictDataList(); - - /** - * 获得字典数据分页列表 - * - * @param reqVO 分页请求 - * @return 字典数据分页列表 - */ - PageResult getDictDataPage(SysDictDataPageReqVO reqVO); - - /** - * 获得字典数据列表 - * - * @param reqVO 列表请求 - * @return 字典数据列表 - */ - List getDictDataList(SysDictDataExportReqVO reqVO); - - /** - * 获得字典数据详情 - * - * @param id 字典数据编号 - * @return 字典数据 - */ - SysDictDataDO getDictData(Long id); - /** * 创建字典数据 * @@ -75,6 +44,37 @@ public interface SysDictDataService extends DictDataFrameworkService { */ void deleteDictData(Long id); + /** + * 获得字典数据列表 + * + * @return 字典数据全列表 + */ + List getDictDatas(); + + /** + * 获得字典数据分页列表 + * + * @param reqVO 分页请求 + * @return 字典数据分页列表 + */ + PageResult getDictDataPage(SysDictDataPageReqVO reqVO); + + /** + * 获得字典数据列表 + * + * @param reqVO 列表请求 + * @return 字典数据列表 + */ + List getDictDatas(SysDictDataExportReqVO reqVO); + + /** + * 获得字典数据详情 + * + * @param id 字典数据编号 + * @return 字典数据 + */ + SysDictDataDO getDictData(Long id); + /** * 获得指定字典类型的数据数量 * diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictTypeService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictTypeService.java index 14fe9f7c..1d2fbe94 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictTypeService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictTypeService.java @@ -16,6 +16,28 @@ import java.util.List; */ public interface SysDictTypeService { + /** + * 创建字典类型 + * + * @param reqVO 字典类型信息 + * @return 字典类型编号 + */ + Long createDictType(SysDictTypeCreateReqVO reqVO); + + /** + * 更新字典类型 + * + * @param reqVO 字典类型信息 + */ + void updateDictType(SysDictTypeUpdateReqVO reqVO); + + /** + * 删除字典类型 + * + * @param id 字典类型编号 + */ + void deleteDictType(Long id); + /** * 获得字典类型分页列表 * @@ -48,28 +70,6 @@ public interface SysDictTypeService { */ SysDictTypeDO getDictType(String type); - /** - * 创建字典类型 - * - * @param reqVO 字典类型信息 - * @return 字典类型编号 - */ - Long createDictType(SysDictTypeCreateReqVO reqVO); - - /** - * 更新字典类型 - * - * @param reqVO 字典类型信息 - */ - void updateDictType(SysDictTypeUpdateReqVO reqVO); - - /** - * 删除字典类型 - * - * @param id 字典类型编号 - */ - void deleteDictType(Long id); - /** * 获得全部字典类型列表 * diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java index 603a9933..7f24cbff 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java @@ -131,7 +131,7 @@ public class SysDictDataServiceImpl implements SysDictDataService { } @Override - public List getDictDataList() { + public List getDictDatas() { List list = dictDataMapper.selectList(); list.sort(COMPARATOR_TYPE_AND_SORT); return list; @@ -143,7 +143,7 @@ public class SysDictDataServiceImpl implements SysDictDataService { } @Override - public List getDictDataList(SysDictDataExportReqVO reqVO) { + public List getDictDatas(SysDictDataExportReqVO reqVO) { List list = dictDataMapper.selectList(reqVO); list.sort(COMPARATOR_TYPE_AND_SORT); return list; diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java index 79c89518..2874285e 100644 --- a/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java @@ -133,7 +133,7 @@ public class SysDictDataServiceTest extends BaseDbUnitTest { reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 调用 - List list = dictDataService.getDictDataList(reqVO); + List list = dictDataService.getDictDatas(reqVO); // 断言 assertEquals(1, list.size()); assertPojoEquals(dbDictData, list.get(0));