AdminSysDataDictController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package cc.uncarbon.module.api.web.sys;
  2. import cc.uncarbon.framework.core.constant.HelioConstant;
  3. import cc.uncarbon.framework.core.page.PageParam;
  4. import cc.uncarbon.framework.core.page.PageResult;
  5. import cc.uncarbon.framework.web.model.request.IdsDTO;
  6. import cc.uncarbon.framework.web.model.response.ApiResult;
  7. import cc.uncarbon.module.api.constant.AdminApiConstant;
  8. import cc.uncarbon.module.api.util.CrmAdminStpUtil;
  9. import cc.uncarbon.module.sys.annotation.SysLog;
  10. import cc.uncarbon.module.sys.model.request.AdminSysDataDictClassifiedInsertOrUpdateDTO;
  11. import cc.uncarbon.module.sys.model.request.AdminSysDataDictClassifiedListDTO;
  12. import cc.uncarbon.module.sys.model.request.AdminSysDataDictItemInsertOrUpdateDTO;
  13. import cc.uncarbon.module.sys.model.request.AdminSysDataDictItemListDTO;
  14. import cc.uncarbon.module.sys.model.response.SysDataDictClassifiedBO;
  15. import cc.uncarbon.module.sys.model.response.SysDataDictItemBO;
  16. import cc.uncarbon.module.sys.service.SysDataDictService;
  17. import cn.dev33.satoken.annotation.SaCheckLogin;
  18. import cn.dev33.satoken.annotation.SaCheckPermission;
  19. import io.swagger.v3.oas.annotations.Operation;
  20. import io.swagger.v3.oas.annotations.tags.Tag;
  21. import jakarta.validation.Valid;
  22. import lombok.RequiredArgsConstructor;
  23. import lombok.extern.slf4j.Slf4j;
  24. import org.springframework.web.bind.annotation.*;
  25. @SaCheckLogin(type = CrmAdminStpUtil.TYPE)
  26. @Tag(name = "数据字典管理接口")
  27. @RequestMapping(value = AdminApiConstant.HTTP_API_URL_PREFIX + "/api/v1")
  28. @RequiredArgsConstructor
  29. @RestController
  30. @Slf4j
  31. public class AdminSysDataDictController {
  32. private static final String PERMISSION_PREFIX = "SysDataDict:";
  33. private final SysDataDictService sysDataDictService;
  34. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
  35. @Operation(summary = "分页列表数据字典分类")
  36. @GetMapping(value = "/sys/data-dict/classifieds")
  37. public ApiResult<PageResult<SysDataDictClassifiedBO>> list(PageParam pageParam, AdminSysDataDictClassifiedListDTO dto) {
  38. return ApiResult.data(sysDataDictService.adminListClassified(pageParam, dto));
  39. }
  40. @SysLog(value = "新增数据字典分类")
  41. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
  42. @Operation(summary = "新增数据字典分类")
  43. @PostMapping(value = "/sys/data-dict/classifieds")
  44. public ApiResult<Void> insert(@RequestBody @Valid AdminSysDataDictClassifiedInsertOrUpdateDTO dto) {
  45. sysDataDictService.adminInsertClassified(dto);
  46. return ApiResult.success();
  47. }
  48. @SysLog(value = "编辑数据字典分类")
  49. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
  50. @Operation(summary = "编辑数据字典分类")
  51. @PutMapping(value = "/sys/data-dict/classifieds/{id}")
  52. public ApiResult<Void> update(@PathVariable Long id, @RequestBody @Valid AdminSysDataDictClassifiedInsertOrUpdateDTO dto) {
  53. dto.setId(id);
  54. sysDataDictService.adminUpdateClassified(dto);
  55. return ApiResult.success();
  56. }
  57. @SysLog(value = "删除数据字典分类")
  58. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
  59. @Operation(summary = "删除数据字典分类")
  60. @DeleteMapping(value = "/sys/data-dict/classifieds")
  61. public ApiResult<Void> deleteClassified(@RequestBody @Valid IdsDTO<Long> dto) {
  62. sysDataDictService.adminDeleteClassified(dto.getIds());
  63. return ApiResult.success();
  64. }
  65. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.RETRIEVE)
  66. @Operation(summary = "分页列表数据字典分类下的字典项")
  67. @GetMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
  68. public ApiResult<PageResult<SysDataDictItemBO>> list(@PathVariable Long classifiedId, PageParam pageParam, AdminSysDataDictItemListDTO dto) {
  69. dto.setClassifiedId(classifiedId);
  70. return ApiResult.data(sysDataDictService.adminListItem(pageParam, dto));
  71. }
  72. @SysLog(value = "新增数据字典项")
  73. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.CREATE)
  74. @Operation(summary = "新增数据字典项")
  75. @PostMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
  76. public ApiResult<Void> insert(@PathVariable Long classifiedId, @RequestBody @Valid AdminSysDataDictItemInsertOrUpdateDTO dto) {
  77. dto.setClassifiedId(classifiedId);
  78. sysDataDictService.adminInsertItem(dto);
  79. return ApiResult.success();
  80. }
  81. @SysLog(value = "编辑数据字典项")
  82. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.UPDATE)
  83. @Operation(summary = "编辑数据字典项")
  84. @PutMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items/{id}")
  85. public ApiResult<Void> update(@PathVariable Long classifiedId, @PathVariable Long id, @RequestBody @Valid AdminSysDataDictItemInsertOrUpdateDTO dto) {
  86. dto
  87. .setId(id)
  88. .setClassifiedId(classifiedId);
  89. sysDataDictService.adminUpdateItem(dto);
  90. return ApiResult.success();
  91. }
  92. @SysLog(value = "删除数据字典项")
  93. @SaCheckPermission(type = CrmAdminStpUtil.TYPE, value = PERMISSION_PREFIX + HelioConstant.Permission.DELETE)
  94. @Operation(summary = "删除数据字典项")
  95. @DeleteMapping(value = "/sys/data-dict/classifieds/{classifiedId}/items")
  96. public ApiResult<Void> deleteItem(@PathVariable Long classifiedId, @RequestBody @Valid IdsDTO<Long> dto) {
  97. sysDataDictService.adminDeleteItem(dto.getIds(), classifiedId);
  98. return ApiResult.success();
  99. }
  100. }