From 1126edb3c02c7ea2df978a2aceb39a42dea09d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E5=BE=B7=E4=BA=91?= Date: Wed, 5 Mar 2025 03:26:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=91=E5=BD=A2=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysTreeDictController.java | 74 +++---------------- .../com/ruoyi/system/domain/SysTreeDict.java | 24 +----- .../system/mapper/SysTreeDictMapper.java | 2 +- .../system/service/ISysTreeDictService.java | 2 +- .../service/impl/SysTreeDictServiceImpl.java | 2 +- 5 files changed, 16 insertions(+), 88 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysTreeDictController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysTreeDictController.java index 75c6df7..209bb6c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysTreeDictController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysTreeDictController.java @@ -1,13 +1,7 @@ package com.ruoyi.system.controller; - -import java.util.ArrayList; -import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; - - import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -25,39 +19,35 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.SysTreeDict; import com.ruoyi.system.service.ISysTreeDictService; import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; /** * 树形字典Controller * * @author ruoyi - * @date 2025-02-03 + * @date 2025-03-05 */ @RestController -@RequestMapping("/system/dict") +@RequestMapping("/system/treeDict") public class SysTreeDictController extends BaseController { @Autowired private ISysTreeDictService sysTreeDictService; - @Autowired - private SysUnitConvertController sysUnitConvertController; /** * 查询树形字典列表 */ - @PreAuthorize("@ss.hasPermi('system:dict:list')") + @PreAuthorize("@ss.hasPermi('system:treeDict:list')") @GetMapping("/list") - public TableDataInfo list(SysTreeDict sysTreeDict) + public AjaxResult list(SysTreeDict sysTreeDict) { - startPage(); List list = sysTreeDictService.selectSysTreeDictList(sysTreeDict); - return getDataTable(list); + return success(list); } /** * 导出树形字典列表 */ - @PreAuthorize("@ss.hasPermi('system:dict:export')") + @PreAuthorize("@ss.hasPermi('system:treeDict:export')") @Log(title = "树形字典", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SysTreeDict sysTreeDict) @@ -67,12 +57,10 @@ public class SysTreeDictController extends BaseController util.exportExcel(response, list, "树形字典数据"); } - - /** * 获取树形字典详细信息 */ - @PreAuthorize("@ss.hasPermi('system:dict:query')") + @PreAuthorize("@ss.hasPermi('system:treeDict:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -82,7 +70,7 @@ public class SysTreeDictController extends BaseController /** * 新增树形字典 */ - @PreAuthorize("@ss.hasPermi('system:dict:add')") + @PreAuthorize("@ss.hasPermi('system:treeDict:add')") @Log(title = "树形字典", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody SysTreeDict sysTreeDict) @@ -93,7 +81,7 @@ public class SysTreeDictController extends BaseController /** * 修改树形字典 */ - @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @PreAuthorize("@ss.hasPermi('system:treeDict:edit')") @Log(title = "树形字典", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysTreeDict sysTreeDict) @@ -104,53 +92,11 @@ public class SysTreeDictController extends BaseController /** * 删除树形字典 */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @PreAuthorize("@ss.hasPermi('system:treeDict:remove')") @Log(title = "树形字典", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(sysTreeDictService.deleteSysTreeDictByIds(ids)); } - - //生成树形菜单的形式 - - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "树形字典", businessType = BusinessType.DELETE) - @GetMapping("/getTree") - public List buildDictTree(List list) { - List returnList = new ArrayList<>(); - List tempList = list.stream().map(SysTreeDict::getId).collect(Collectors.toList()); - for (SysTreeDict dict : list) { - if (!tempList.contains(dict.getPid())) { - recursionFn(list, dict); - returnList.add(dict); - } - } - if (returnList.isEmpty()) { - returnList = list; - } - return returnList; - } - - private void recursionFn(List list, SysTreeDict dict) { - List childList = getChildList(list, dict); - dict.setChildren(childList); - for (SysTreeDict child : childList) { - if (hasChild(list, child)) { - recursionFn(list, child); - } - } - } - - private List getChildList(List list, SysTreeDict dict) { - return list.stream() - .filter(d -> d.getPid() != null && d.getPid().equals(dict.getId())) - .sorted(Comparator.comparingInt(SysTreeDict::getDictSort)) - .collect(Collectors.toList()); - } - - private boolean hasChild(List list, SysTreeDict dict) { - return list.stream().anyMatch(d -> d.getPid() != null && d.getPid().equals(dict.getId())); - } - } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTreeDict.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTreeDict.java index 6713a61..ce22144 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTreeDict.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTreeDict.java @@ -1,26 +1,17 @@ package com.ruoyi.system.domain; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; -import com.ruoyi.common.core.domain.BaseEntity; - -import java.util.ArrayList; -import java.util.List; +import com.ruoyi.common.core.domain.TreeEntity; /** * 树形字典对象 sys_tree_dict * * @author ruoyi - * @date 2025-02-03 + * @date 2025-03-05 */ - -@Data -@TableName("sys_tree_dict") -public class SysTreeDict extends BaseEntity +public class SysTreeDict extends TreeEntity { private static final long serialVersionUID = 1L; @@ -115,15 +106,6 @@ public class SysTreeDict extends BaseEntity return status; } - @TableField(exist = false) - private List children = new ArrayList<>(); - - // 显式补充 children 的 setter 方法 - public void setChildren(List children) { - this.children = children; - } - - @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTreeDictMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTreeDictMapper.java index d15f294..04c5f84 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTreeDictMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTreeDictMapper.java @@ -7,7 +7,7 @@ import com.ruoyi.system.domain.SysTreeDict; * 树形字典Mapper接口 * * @author ruoyi - * @date 2025-02-03 + * @date 2025-03-05 */ public interface SysTreeDictMapper { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTreeDictService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTreeDictService.java index baacdd7..9234548 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTreeDictService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTreeDictService.java @@ -7,7 +7,7 @@ import com.ruoyi.system.domain.SysTreeDict; * 树形字典Service接口 * * @author ruoyi - * @date 2025-02-03 + * @date 2025-03-05 */ public interface ISysTreeDictService { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTreeDictServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTreeDictServiceImpl.java index 989d756..0837cde 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTreeDictServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTreeDictServiceImpl.java @@ -12,7 +12,7 @@ import com.ruoyi.system.service.ISysTreeDictService; * 树形字典Service业务层处理 * * @author ruoyi - * @date 2025-02-03 + * @date 2025-03-05 */ @Service public class SysTreeDictServiceImpl implements ISysTreeDictService