diff --git a/src/main/java/com/youlai/boot/common/result/ResultCode.java b/src/main/java/com/youlai/boot/common/result/ResultCode.java
index 4f046f6e..7491e913 100644
--- a/src/main/java/com/youlai/boot/common/result/ResultCode.java
+++ b/src/main/java/com/youlai/boot/common/result/ResultCode.java
@@ -9,6 +9,10 @@ import java.io.Serializable;
* 响应码枚举
*
* 参考阿里巴巴开发手册响应码规范
+ * 00000 正常
+ * A**** 用户端错误
+ * B**** 系统执行出错
+ * C**** 调用第三方服务出错
*
* @author Ray.Hao
* @since 2020/6/23
@@ -57,6 +61,7 @@ public enum ResultCode implements IResultCode, Serializable {
USER_PASSWORD_ERROR("A0210", "用户名或密码错误"),
USER_INPUT_PASSWORD_ERROR_LIMIT_EXCEEDED("A0211", "用户输入密码错误次数超限"),
+ USER_NOT_EXIST("A0212", "用户不存在"),
USER_IDENTITY_VERIFICATION_FAILED("A0220", "用户身份校验失败"),
USER_FINGERPRINT_RECOGNITION_FAILED("A0221", "用户指纹识别失败"),
diff --git a/src/main/java/com/youlai/boot/system/controller/DictController.java b/src/main/java/com/youlai/boot/system/controller/DictController.java
index 8cf20f75..5009f3a2 100644
--- a/src/main/java/com/youlai/boot/system/controller/DictController.java
+++ b/src/main/java/com/youlai/boot/system/controller/DictController.java
@@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.result.PageResult;
import com.youlai.boot.common.result.Result;
import com.youlai.boot.common.enums.LogModuleEnum;
+import com.youlai.boot.system.model.form.DictItemForm;
+import com.youlai.boot.system.model.query.DictItemPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery;
+import com.youlai.boot.system.model.vo.DictItemOptionVO;
+import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.common.annotation.Log;
-import com.youlai.boot.system.model.vo.DictVO;
+import com.youlai.boot.system.service.DictItemService;
import com.youlai.boot.system.service.DictService;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -25,17 +29,23 @@ import java.util.List;
/**
* 字典控制层
*
- * @author Ray
+ * @author Ray.Hao
* @since 2.9.0
*/
@Tag(name = "06.字典接口")
@RestController
-@RequestMapping("/api/v1/dict")
+@SuppressWarnings("SpellCheckingInspection")
+@RequestMapping("/api/v1/dicts")
@RequiredArgsConstructor
public class DictController {
private final DictService dictService;
+ private final DictItemService dictItemService;
+
+ //---------------------------------------------------
+ // 字典相关接口
+ //---------------------------------------------------
@Operation(summary = "字典分页列表")
@GetMapping("/page")
@Log( value = "字典分页列表",module = LogModuleEnum.DICT)
@@ -46,14 +56,7 @@ public class DictController {
return PageResult.success(result);
}
- @Operation(summary = "所有字典列表")
- @GetMapping("/list")
- public Result> getAllDictWithData() {
- List list = dictService.getAllDictWithData();
- return Result.success(list);
- }
-
- @Operation(summary = "字典表单")
+ @Operation(summary = "字典表单数据")
@GetMapping("/{id}/form")
public Result getDictForm(
@Parameter(description = "字典ID") @PathVariable Long id
@@ -92,4 +95,76 @@ public class DictController {
return Result.success();
}
+
+ //---------------------------------------------------
+ // 字典项相关接口
+ //---------------------------------------------------
+ @Operation(summary = "字典项分页")
+ @GetMapping("/{dictCode}/items/page")
+ public PageResult getDictItemPage(
+ @PathVariable String dictCode,
+ DictItemPageQuery queryParams
+ ) {
+ queryParams.setDictCode(dictCode);
+ Page result = dictItemService.getDictItemPage(queryParams);
+ return PageResult.success(result);
+ }
+
+ @Operation(summary = "字典项列表")
+ @GetMapping("/{dictCode}/items")
+ public Result> getDictItems(
+ @Parameter(description = "字典编码") @PathVariable String dictCode
+ ) {
+ List list = dictService.getDictItems(dictCode);
+ return Result.success(list);
+ }
+
+ @Operation(summary = "新增字典项")
+ @PostMapping("/{dictCode}/items")
+ @PreAuthorize("@ss.hasPerm('sys:dict-item:add')")
+ @RepeatSubmit
+ public Result saveDictItem(
+ @PathVariable String dictCode,
+ @Valid @RequestBody DictItemForm formData
+ ) {
+ formData.setDictCode(dictCode);
+ boolean result = dictItemService.saveDictItem(formData);
+ return Result.judge(result);
+ }
+
+ @Operation(summary = "字典项表单数据")
+ @GetMapping("/{dictCode}/items/{itemId}/form")
+ public Result getDictItemForm(
+ @PathVariable String dictCode,
+ @Parameter(description = "字典项ID") @PathVariable Long itemId
+ ) {
+ DictItemForm formData = dictItemService.getDictItemForm(dictCode,itemId);
+ return Result.success(formData);
+ }
+
+ @Operation(summary = "修改字典项")
+ @PutMapping("/{dictCode}/items/{itemId}")
+ @PreAuthorize("@ss.hasPerm('sys:dict-item:edit')")
+ @RepeatSubmit
+ public Result> updateDictItem(
+ @PathVariable String dictCode,
+ @PathVariable Long itemId,
+ @RequestBody DictItemForm formData
+ ) {
+ formData.setId(itemId);
+ formData.setDictCode(dictCode);
+ boolean status = dictItemService.updateDictItem(formData);
+ return Result.judge(status);
+ }
+
+ @Operation(summary = "删除字典项")
+ @DeleteMapping("/{dictCode}/items/{itemIds}")
+ @PreAuthorize("@ss.hasPerm('sys:dict-item:delete')")
+ public Result deleteDictItems(
+ @Parameter(description = "字典ID,多个以英文逗号(,)拼接") @PathVariable String ids
+ ) {
+ dictItemService.deleteDictItemByIds(ids);
+ return Result.success();
+ }
+
}
diff --git a/src/main/java/com/youlai/boot/system/controller/DictDataController.java b/src/main/java/com/youlai/boot/system/controller/DictDataController.java
deleted file mode 100644
index f99c8256..00000000
--- a/src/main/java/com/youlai/boot/system/controller/DictDataController.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.youlai.boot.system.controller;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.youlai.boot.common.annotation.Log;
-import com.youlai.boot.common.annotation.RepeatSubmit;
-import com.youlai.boot.common.enums.LogModuleEnum;
-import com.youlai.boot.common.model.Option;
-import com.youlai.boot.common.result.PageResult;
-import com.youlai.boot.common.result.Result;
-import com.youlai.boot.system.model.form.DictDataForm;
-import com.youlai.boot.system.model.query.DictDataPageQuery;
-import com.youlai.boot.system.model.vo.DictDataPageVO;
-import com.youlai.boot.system.service.DictDataService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.validation.Valid;
-import lombok.RequiredArgsConstructor;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 字典数据控制层
- *
- * @author Ray
- * @since 2.9.0
- */
-@Tag(name = "07.字典数据接口")
-@RestController
-@RequestMapping("/api/v1/dict-data")
-@RequiredArgsConstructor
-public class DictDataController {
-
- private final DictDataService dictDataService;
-
- @Operation(summary = "字典数据分页列表")
- @GetMapping("/page")
- @Log( value = "字典数据分页列表",module = LogModuleEnum.DICT)
- public PageResult getDictDataPage(
- DictDataPageQuery queryParams
- ) {
- Page result = dictDataService.getDictDataPage(queryParams);
- return PageResult.success(result);
- }
-
- @Operation(summary = "获取字典数据表单")
- @GetMapping("/{id}/form")
- public Result getDictDataForm(
- @Parameter(description = "字典数据ID") @PathVariable Long id
- ) {
- DictDataForm formData = dictDataService.getDictDataForm(id);
- return Result.success(formData);
- }
-
- @Operation(summary = "新增字典数据")
- @PostMapping
- @PreAuthorize("@ss.hasPerm('sys:dict-data:add')")
- @RepeatSubmit
- public Result saveDictData(@Valid @RequestBody DictDataForm formData) {
- boolean result = dictDataService.saveDictData(formData);
- return Result.judge(result);
- }
-
- @Operation(summary = "修改字典数据")
- @PutMapping("/{id}")
- @PreAuthorize("@ss.hasPerm('sys:dict-data:edit')")
- public Result> updateDictData(
- @PathVariable Long id,
- @RequestBody DictDataForm formData
- ) {
- boolean status = dictDataService.updateDictData(formData);
- return Result.judge(status);
- }
-
- @Operation(summary = "删除字典数据")
- @DeleteMapping("/{ids}")
- @PreAuthorize("@ss.hasPerm('sys:dict-data:delete')")
- public Result deleteDictionaries(
- @Parameter(description = "字典ID,多个以英文逗号(,)拼接") @PathVariable String ids
- ) {
- dictDataService.deleteDictDataByIds(ids);
- return Result.success();
- }
-
- @Operation(summary = "字典数据列表")
- @GetMapping("/{dictCode}/options")
- public Result>> getDictDataList(
- @Parameter(description = "字典编码") @PathVariable String dictCode
- ) {
- List