From 681ee2816cce98cc5520f980d2e01c587409545c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 20 二月 2025 11:07:51 +0800
Subject: [PATCH] 字典改为树结构

---
 system/src/main/resources/mapper/system/SysDictDataMapper.xml                |    6 +++++-
 start/src/main/java/com/ycl/web/controller/system/SysDictDataController.java |   14 ++++++++++++++
 common/src/main/java/com/ycl/common/core/domain/entity/SysDictData.java      |   14 ++++++++++++--
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/common/src/main/java/com/ycl/common/core/domain/entity/SysDictData.java b/common/src/main/java/com/ycl/common/core/domain/entity/SysDictData.java
index 2273964..b3c4045 100644
--- a/common/src/main/java/com/ycl/common/core/domain/entity/SysDictData.java
+++ b/common/src/main/java/com/ycl/common/core/domain/entity/SysDictData.java
@@ -11,7 +11,7 @@
 
 /**
  * 瀛楀吀鏁版嵁琛� sys_dict_data
- * 
+ *
  * @author ycl
  */
 public class SysDictData extends BaseEntity
@@ -25,6 +25,8 @@
     /** 瀛楀吀鎺掑簭 */
     @Excel(name = "瀛楀吀鎺掑簭", cellType = ColumnType.NUMERIC)
     private Long dictSort;
+
+    private Long parentId;
 
     /** 瀛楀吀鏍囩 */
     @Excel(name = "瀛楀吀鏍囩")
@@ -153,7 +155,15 @@
     {
         this.status = status;
     }
-    
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/start/src/main/java/com/ycl/web/controller/system/SysDictDataController.java b/start/src/main/java/com/ycl/web/controller/system/SysDictDataController.java
index aa2ba0c..97bf97d 100644
--- a/start/src/main/java/com/ycl/web/controller/system/SysDictDataController.java
+++ b/start/src/main/java/com/ycl/web/controller/system/SysDictDataController.java
@@ -97,6 +97,9 @@
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDictData dict) {
+        if (dict.getDictCode().equals(dict.getParentId())) {
+            return error("淇敼瀛楀吀'" + dict.getDictLabel() + "'澶辫触锛屼笂绾у瓧鍏镐笉鑳介�夋嫨鑷繁");
+        }
         dict.setUpdateBy(getUsername());
         return toAjax(dictDataService.updateDictData(dict));
     }
@@ -111,4 +114,15 @@
         dictDataService.deleteDictDataByIds(dictCodes);
         return success();
     }
+
+
+    /**
+     * 鑾峰彇瀛楀吀鍒楄〃锛堜笉鍒嗛〉锛�
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/dataList")
+    public AjaxResult dataList(SysDictData dictData) {
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        return success(list);
+    }
 }
diff --git a/system/src/main/resources/mapper/system/SysDictDataMapper.xml b/system/src/main/resources/mapper/system/SysDictDataMapper.xml
index 1bd884a..8cdd912 100644
--- a/system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -18,10 +18,11 @@
 		<result property="createTime" column="create_time" />
 		<result property="updateBy"   column="update_by"   />
 		<result property="updateTime" column="update_time" />
+		<result property="parentId" column="parent_id" />
 	</resultMap>
 
 	<sql id="selectDictDataVo">
-        select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
+        select dict_code, dict_sort,parent_id, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
 		from sys_dict_data
     </sql>
 
@@ -75,6 +76,7 @@
  		update sys_dict_data
  		<set>
  			<if test="dictSort != null">dict_sort = #{dictSort},</if>
+ 			<if test="parentId != null">parent_id = #{parentId},</if>
  			<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
  			<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
  			<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
@@ -96,6 +98,7 @@
  	<insert id="insertDictData" parameterType="SysDictData">
  		insert into sys_dict_data(
  			<if test="dictSort != null">dict_sort,</if>
+ 			<if test="parentId != null">parent_id,</if>
  			<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
  			<if test="dictValue != null and dictValue != ''">dict_value,</if>
  			<if test="dictType != null and dictType != ''">dict_type,</if>
@@ -108,6 +111,7 @@
  			create_time
  		)values(
  		    <if test="dictSort != null">#{dictSort},</if>
+ 		    <if test="parentId != null">#{parentId},</if>
  		    <if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
  			<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
  			<if test="dictType != null and dictType != ''">#{dictType},</if>

--
Gitblit v1.8.0