From b74c296ce3c58de5803b2cfea0f41efccb7b89cd Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 20 Dec 2021 14:06:50 +0800
Subject: [PATCH] 根据字典类型获取字典数据列表

---
 screen-api/src/main/java/com/moral/api/service/SysDictDataService.java          |    4 ++
 screen-api/src/main/java/com/moral/api/controller/SysDictController.java        |   41 ++++++++++++++++++++
 screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java |   29 ++++++++++++++
 3 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/SysDictController.java b/screen-api/src/main/java/com/moral/api/controller/SysDictController.java
new file mode 100644
index 0000000..022b40a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/SysDictController.java
@@ -0,0 +1,41 @@
+package com.moral.api.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+import com.moral.api.service.SysDictDataService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+
+@Slf4j
+@Api(tags = {"������������"})
+@RestController
+@RequestMapping("/sysDict")
+public class SysDictController {
+
+    @Autowired
+    private SysDictDataService sysDictDataService;
+
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "������������������", required = true, paramType = "query", dataType = "String")
+    })
+    @GetMapping(value = "getSysDictDataByDictType")
+    public ResultMessage getSysDictDataByDictType(String type) {
+        if (ObjectUtils.isEmpty(type)) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        Map<String, Object> response = sysDictDataService.getSysDictDataByDictType(type);
+        return ResultMessage.ok(response);
+    }
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/SysDictDataService.java b/screen-api/src/main/java/com/moral/api/service/SysDictDataService.java
index 6d56402..8d4d345 100644
--- a/screen-api/src/main/java/com/moral/api/service/SysDictDataService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SysDictDataService.java
@@ -1,5 +1,7 @@
 package com.moral.api.service;
 
+import java.util.Map;
+
 import com.moral.api.entity.SysDictData;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +15,6 @@
  */
 public interface SysDictDataService extends IService<SysDictData> {
 
+    Map<String, Object> getSysDictDataByDictType(String type);
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
index 4eba4ad..6ba48cc 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -1,10 +1,19 @@
 package com.moral.api.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
 import com.moral.api.mapper.SysDictDataMapper;
+import com.moral.api.mapper.SysDictTypeMapper;
 import com.moral.api.service.SysDictDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +26,24 @@
 @Service
 public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements SysDictDataService {
 
+    @Autowired
+    private SysDictDataMapper sysDictDataMapper;
+
+    @Autowired
+    private SysDictTypeMapper sysDictTypeMapper;
+
+    @Override
+    public Map<String, Object> getSysDictDataByDictType(String type) {
+        //������������������������������������������id
+        QueryWrapper<SysDictType> sysDictTypeQueryWrapper = new QueryWrapper<>();
+        sysDictTypeQueryWrapper.select("id").eq("name", type);
+        SysDictType sysDictType = sysDictTypeMapper.selectOne(sysDictTypeQueryWrapper);
+
+        //������������������id������������������������
+        QueryWrapper<SysDictData> sysDictDataQueryWrapper = new QueryWrapper<>();
+        sysDictDataQueryWrapper.select("dataKey", "dataValue").eq("dict_type_id", sysDictType.getId());
+        List<SysDictData> sysDictData = sysDictDataMapper.selectList(sysDictDataQueryWrapper);
+
+        return sysDictData.stream().collect(Collectors.toMap(SysDictData::getDataKey, SysDictData::getDataValue, (a, b) -> b));
+    }
 }

--
Gitblit v1.8.0