Bläddra i källkod

Merge remote-tracking branch 'origin/master'

gt 2 år sedan
förälder
incheckning
f82ee6693c

+ 15 - 2
chuanyi_server/src/main/java/com/judong/chuanyiserver/controller/DictController.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("dict")
@@ -64,8 +65,8 @@ public class DictController {
         if (Blank.isEmpty(parentId)){
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "父id不能为空");
         }
-        List<Dict> dicts = dictService.queryByParentId(parentId);
-        return Result.ok(dicts);
+        Map<String, Dict> stringDictMap = dictService.queryByParentId(parentId);
+        return Result.ok(stringDictMap);
     }
 
     /**
@@ -92,6 +93,18 @@ public class DictController {
         return dictService.deleteByid(ids);
     }
 
+    /**
+     * 根据key批量查询
+     */
+    @GetMapping("queryByDictKey")
+    public Result queryByDictKey(@RequestParam("dictKeys") List<String> dictKeys){
+        if (dictKeys.size()<=0){
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "参数错误");
+        }
+        Map<String, Object> map = dictService.queryByDictKey(dictKeys);
+        return Result.ok(map);
+    }
+
 
 
 }

+ 9 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/dao/DictDao.java

@@ -60,6 +60,15 @@ public interface DictDao {
 
     Dict queryById(Integer id);
 
+    /**
+     * 判断key是否重复
+     */
+    Dict queryByDictKeyIsExist(String dictKey);
+
+    /**
+     * 根据key批量查询
+     */
+    List<Dict> queryByDictKey(@Param("dictKeys") List<String> dictKeys);
 
 
 }

+ 4 - 2
chuanyi_server/src/main/java/com/judong/chuanyiserver/entity/Dict.java

@@ -3,7 +3,9 @@ package com.judong.chuanyiserver.entity;
 import lombok.Data;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Data
 public class Dict {
@@ -39,8 +41,8 @@ public class Dict {
     private String createTime;
 
     /**
-     * 子节点
+     * 子节点    private List<Dict> children=new ArrayList<>();
      */
-    private List<Dict> children=new ArrayList<>();
+    private Map<String, Dict> children=new HashMap<>();
 
 }

+ 4 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/DictService.java

@@ -4,6 +4,7 @@ import com.judong.chuanyiserver.entity.Dict;
 import com.judong.chuanyiserver.util.Result;
 
 import java.util.List;
+import java.util.Map;
 
 public interface DictService {
     /**
@@ -30,7 +31,7 @@ public interface DictService {
      * 根据父id查子节点信息 树结构
      * param parentId
      */
-    List<Dict> queryByParentId(Integer parentId);
+    Map<String, Dict> queryByParentId(Integer parentId);
 
     /**
      * 新增
@@ -46,4 +47,6 @@ public interface DictService {
      * 根据id删除(批量)
      */
     Result deleteByid( List<Integer> ids);
+
+    Map<String, Object> queryByDictKey(List<String> dictKeys);
 }

+ 26 - 6
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/DictServiceImpl.java

@@ -11,8 +11,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 @Service
@@ -60,17 +61,17 @@ public class DictServiceImpl implements DictService {
     }
 
     @Override
-    public List<Dict> queryByParentId(Integer parentId) {
+    public Map<String, Dict> queryByParentId(Integer parentId) {
         //存放节点数据
-        List<Dict> dictAll = new ArrayList<>();
+        Map<String, Dict> map = new HashMap<>();
         //根据父节点获取子节点对象
         List<Dict> dictSon = dictDao.queryByParentId(parentId);
         //判断子节点是否为其他节点的父节点
-        for (Dict d : dictSon){
+        for (Dict d:dictSon){
             d.setChildren(queryByParentId(d.getId()));
-            dictAll.add(d);
+            map.put(d.getDictKey(),d);
         }
-        return dictAll;
+        return map;
     }
 
     @Override
@@ -78,6 +79,9 @@ public class DictServiceImpl implements DictService {
         if (Blank.isEmpty(dict.getParentId(),dict.getDictKey(),dict.getDictValue(),dict.getSortNum())){
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "父id,字典key,字典值以及序号不能为空");
         }
+        if (Blank.isNotEmpty(dictDao.queryByDictKeyIsExist(dict.getDictKey()))){
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "字典key已存在");
+        }
         dictDao.addDict(dict);
         return Result.ok("新增成功");
     }
@@ -92,6 +96,10 @@ public class DictServiceImpl implements DictService {
         if (dictShow==null){
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
         }
+        //判断key是否重复
+        if (Blank.isNotEmpty(dictDao.queryByDictKeyIsExist(dict.getDictKey()))){
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "key已存在,修改失败");
+        }
         if (dictDao.updataById(dict)<=0){
             throw new ClassCastException("修改失败");
         }
@@ -106,4 +114,16 @@ public class DictServiceImpl implements DictService {
         Integer integer = dictDao.deleteByid(ids);
         return Result.ok(integer);
     }
+
+    @Override
+    public Map<String, Object> queryByDictKey(List<String> dictKeys) {
+        //存储数据
+        Map<String, Object> map = new HashMap<>();
+        List<Dict> dicts = dictDao.queryByDictKey(dictKeys);
+        for (Dict d:dicts){
+            d.setChildren(queryByParentId(d.getId()));
+            map.put(d.getDictKey(),d);
+        }
+        return map;
+    }
 }

+ 15 - 0
chuanyi_server/src/main/resources/mapper/DictDao.xml

@@ -74,6 +74,12 @@
         INSERT INTO sys_dict VALUES (DEFAULT,#{dict.parentId},#{dict.dictKey},#{dict.dictValue},#{dict.sortNum},NOW())
     </insert>
 
+    <!--判断key是否重复-->
+    <select id="queryByDictKeyIsExist" resultType="com.judong.chuanyiserver.entity.Dict">
+        SELECT id,parent_id,dict_key,dict_value,sort_num,create_time FROM sys_dict
+        where dict_key=#{dictKey}
+    </select>
+
     <!--修改-->
     <update id="updataById">
         UPDATE sys_dict SET
@@ -98,4 +104,13 @@
         where id=#{id}
     </select>
 
+    <!--根据key批量查询-->
+    <select id="queryByDictKey" resultType="com.judong.chuanyiserver.entity.Dict">
+        SELECT id,parent_id,dict_key,dict_value,sort_num,create_time FROM sys_dict
+        where dict_key in
+        <foreach collection="dictKeys" item="dictKey" separator="," open="(" close=")">
+            #{dictKey}
+        </foreach>
+    </select>
+
 </mapper>