diff --git a/core/backend/src/main/java/io/dataease/controller/panel/api/ShareApi.java b/core/backend/src/main/java/io/dataease/controller/panel/api/ShareApi.java index 04869d81c0..0d2177e13d 100644 --- a/core/backend/src/main/java/io/dataease/controller/panel/api/ShareApi.java +++ b/core/backend/src/main/java/io/dataease/controller/panel/api/ShareApi.java @@ -2,16 +2,14 @@ package io.dataease.controller.panel.api; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.auth.annotation.DePermission; -import io.dataease.auth.annotation.SqlInjectValidator; -import io.dataease.plugins.common.base.domain.PanelShare; import io.dataease.commons.constants.DePermissionType; import io.dataease.controller.request.panel.PanelShareFineDto; import io.dataease.controller.request.panel.PanelShareRemoveRequest; import io.dataease.controller.request.panel.PanelShareSearchRequest; -import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.dto.panel.PanelShareDto; import io.dataease.dto.panel.PanelShareOutDTO; import io.dataease.dto.panel.PanelSharePo; +import io.dataease.plugins.common.base.domain.PanelShare; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; diff --git a/core/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java b/core/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java index ff73c6d280..3e7755db05 100644 --- a/core/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java +++ b/core/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java @@ -3,10 +3,10 @@ package io.dataease.controller.sys; import io.dataease.auth.annotation.SqlInjectValidator; import io.dataease.commons.utils.BeanUtils; import io.dataease.controller.ResultHolder; -import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.response.DeptNodeResponse; import io.dataease.controller.sys.response.DeptTreeNode; import io.dataease.plugins.common.base.domain.SysDept; +import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest; import io.dataease.service.sys.DeptService; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; @@ -42,7 +42,7 @@ public class SysDeptController extends ResultHolder { @PostMapping("/search") @SqlInjectValidator({"name"}) - public List search(@RequestBody BaseGridRequest request){ + public List search(@RequestBody XpackDeptGridRequest request){ List nodes = deptService.nodesTreeByCondition(request); List nodeResponses = nodes.stream().map(node -> { DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node); diff --git a/core/backend/src/main/java/io/dataease/controller/sys/SysMenuController.java b/core/backend/src/main/java/io/dataease/controller/sys/SysMenuController.java index 3b57b3f283..f36d52a077 100644 --- a/core/backend/src/main/java/io/dataease/controller/sys/SysMenuController.java +++ b/core/backend/src/main/java/io/dataease/controller/sys/SysMenuController.java @@ -1,15 +1,12 @@ package io.dataease.controller.sys; -import io.dataease.plugins.common.base.domain.SysMenu; -import io.dataease.commons.utils.BeanUtils; - import io.dataease.controller.handler.annotation.I18n; -import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.MenuCreateRequest; import io.dataease.controller.sys.request.MenuDeleteRequest; import io.dataease.controller.sys.response.MenuNodeResponse; import io.dataease.controller.sys.response.MenuTreeNode; +import io.dataease.plugins.common.base.domain.SysMenu; import io.dataease.service.sys.MenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -21,6 +18,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Set; import java.util.stream.Collectors; + @ApiIgnore @RestController @RequiredArgsConstructor @@ -34,61 +32,44 @@ public class SysMenuController { @ApiOperation("查询跟节点菜单") @I18n @PostMapping("/childNodes/{pid}") - public List childNodes(@PathVariable("pid") Long pid){ + public List childNodes(@PathVariable("pid") Long pid) { List nodes = menuService.nodesByPid(pid); nodes = nodes.stream().filter(node -> !node.getHidden()).collect(Collectors.toList()); return menuService.convert(nodes); } - @ApiOperation("搜索菜单树") - @I18n - @PostMapping("/search") - public List search(@RequestBody BaseGridRequest request) { - List nodes = menuService.nodesTreeByCondition(request); - List nodeResponses = nodes.stream().map(node -> { - MenuNodeResponse menuNodeResponse = BeanUtils.copyBean(new MenuNodeResponse(), node); - menuNodeResponse.setHasChildren(node.getSubCount() > 0); - menuNodeResponse.setTop(node.getPid() == menuService.MENU_ROOT_PID); - return menuNodeResponse; - }).collect(Collectors.toList()); - return nodeResponses; - } - - @ApiOperation("新增菜单") @PostMapping("/create") - public void create(@RequestBody MenuCreateRequest request){ + public void create(@RequestBody MenuCreateRequest request) { menuService.add(request); } @ApiOperation("删除菜单") @PostMapping("/delete") - public void delete(@RequestBody MenuDeleteRequest request){ + public void delete(@RequestBody MenuDeleteRequest request) { menuService.delete(request); } @ApiOperation("更新菜单") @PostMapping("/update") - public void update(@RequestBody MenuCreateRequest menu){ + public void update(@RequestBody MenuCreateRequest menu) { menuService.update(menu); } - @PostMapping("/childMenus/{pid}") - public Set childMenus(@PathVariable Long pid){ + public Set childMenus(@PathVariable Long pid) { List children = menuService.children(pid); Set sets = children.stream().map(MenuNodeResponse::getMenuId).collect(Collectors.toSet()); sets.add(pid); return sets; } + @PostMapping("/nodesByMenuId/{menuId}") public List nodesByMenuId(@PathVariable("menuId") Long menuId) { - return menuService.searchTree(menuId); + return menuService.searchTree(menuId); } - - } diff --git a/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.java b/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.java index 3d5551c254..b511bc09bd 100644 --- a/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.java +++ b/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.java @@ -1,10 +1,13 @@ package io.dataease.ext; -import io.dataease.ext.query.GridExample; import io.dataease.controller.request.BaseTreeRequest; import io.dataease.controller.sys.request.SimpleTreeNode; import io.dataease.dto.SysDeptDTO; -import org.apache.ibatis.annotations.*; +import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -27,7 +30,7 @@ public interface ExtDeptMapper { List allNodes(); - List nodesByExample(GridExample example); + List nodesByExample(XpackDeptGridRequest request); List searchTree(BaseTreeRequest request); diff --git a/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.xml b/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.xml index 93fcda9306..cfacf1c99b 100644 --- a/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.xml +++ b/core/backend/src/main/java/io/dataease/ext/ExtDeptMapper.xml @@ -13,8 +13,13 @@ diff --git a/core/backend/src/main/java/io/dataease/service/sys/DeptService.java b/core/backend/src/main/java/io/dataease/service/sys/DeptService.java index b5458528a1..3e33b186d3 100644 --- a/core/backend/src/main/java/io/dataease/service/sys/DeptService.java +++ b/core/backend/src/main/java/io/dataease/service/sys/DeptService.java @@ -1,23 +1,25 @@ package io.dataease.service.sys; -import io.dataease.ext.*; -import io.dataease.ext.query.GridExample; import io.dataease.commons.utils.BeanUtils; -import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.DeptCreateRequest; import io.dataease.controller.sys.request.DeptDeleteRequest; import io.dataease.controller.sys.request.DeptStatusRequest; import io.dataease.controller.sys.request.SimpleTreeNode; import io.dataease.controller.sys.response.DeptTreeNode; +import io.dataease.ext.ExtDeptMapper; import io.dataease.plugins.common.base.domain.SysDept; import io.dataease.plugins.common.base.domain.SysDeptExample; import io.dataease.plugins.common.base.mapper.SysDeptMapper; +import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -31,12 +33,12 @@ public class DeptService { @Autowired(required = false) private ExtDeptMapper extDeptMapper; - public List nodesByPid(Long pid){ + public List nodesByPid(Long pid) { SysDeptExample example = new SysDeptExample(); SysDeptExample.Criteria criteria = example.createCriteria(); - if (ObjectUtils.isEmpty(pid)){ + if (ObjectUtils.isEmpty(pid)) { criteria.andPidEqualTo(0L); - }else { + } else { criteria.andPidEqualTo(pid); } example.setOrderByClause("dept_sort"); @@ -44,10 +46,10 @@ public class DeptService { } @Transactional - public boolean add(DeptCreateRequest deptCreateRequest){ + public boolean add(DeptCreateRequest deptCreateRequest) { SysDept sysDept = BeanUtils.copyBean(new SysDept(), deptCreateRequest); - if (deptCreateRequest.isTop()){ + if (deptCreateRequest.isTop()) { sysDept.setPid(DEPT_ROOT_PID); } long now = System.currentTimeMillis(); @@ -59,24 +61,24 @@ public class DeptService { try { int insert = sysDeptMapper.insert(sysDept); Long pid; - if (!(pid = sysDept.getPid()).equals(DEPT_ROOT_PID)){ + if (!(pid = sysDept.getPid()).equals(DEPT_ROOT_PID)) { //这里需要更新上级节点SubCount extDeptMapper.incrementalSubcount(pid); } - if (insert == 1){ + if (insert == 1) { return true; } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return false; } @Transactional - public int batchDelete(List requests){ + public int batchDelete(List requests) { List ids = requests.stream().map(request -> { Long pid = request.getPid(); - if (!pid.equals(DEPT_ROOT_PID)){ + if (!pid.equals(DEPT_ROOT_PID)) { extDeptMapper.decreasingSubcount(pid); } return request.getDeptId(); @@ -85,9 +87,9 @@ public class DeptService { } @Transactional - public int update(DeptCreateRequest deptCreateRequest){ + public int update(DeptCreateRequest deptCreateRequest) { SysDept sysDept = BeanUtils.copyBean(new SysDept(), deptCreateRequest); - if (deptCreateRequest.isTop()){ + if (deptCreateRequest.isTop()) { sysDept.setPid(DEPT_ROOT_PID); } sysDept.setUpdateTime(System.currentTimeMillis()); @@ -97,34 +99,34 @@ public class DeptService { //如果PID发生了改变 //判断oldPid是否是跟节点PID ? nothing : parent.subcount-1 //判断newPid是否是跟节点PID ? nothing : parent.subcount+1 - if (!sysDept.getPid().equals(dept_old.getPid())){ + if (!sysDept.getPid().equals(dept_old.getPid())) { Long oldPid = dept_old.getPid(); - if (!oldPid.equals(DEPT_ROOT_PID)){ + if (!oldPid.equals(DEPT_ROOT_PID)) { extDeptMapper.decreasingSubcount(oldPid); } - if (!sysDept.getPid().equals(DEPT_ROOT_PID)){ + if (!sysDept.getPid().equals(DEPT_ROOT_PID)) { extDeptMapper.incrementalSubcount(sysDept.getPid()); } } return sysDeptMapper.updateByPrimaryKeySelective(sysDept); } - public int updateStatus(DeptStatusRequest request){ + public int updateStatus(DeptStatusRequest request) { Long deptId = request.getDeptId(); SysDept sysDept = new SysDept(); sysDept.setDeptId(deptId); return sysDeptMapper.updateByPrimaryKeySelective(sysDept); } - public List nodesTreeByCondition(BaseGridRequest request){ + public List nodesTreeByCondition(XpackDeptGridRequest request) { List allNodes = allNodes(); List targetNodes = nodeByCondition(request); - if(CollectionUtils.isEmpty(targetNodes)){ + if (CollectionUtils.isEmpty(targetNodes)) { return new ArrayList<>(); } List ids = upTree(allNodes, targetNodes); SysDeptExample example = new SysDeptExample(); - if (CollectionUtils.isNotEmpty(ids)){ + if (CollectionUtils.isNotEmpty(ids)) { SysDeptExample.Criteria criteria = example.createCriteria(); criteria.andDeptIdIn(ids); } @@ -132,14 +134,15 @@ public class DeptService { return sysDeptMapper.selectByExample(example); } - public List searchTree(Long deptId){ + public List searchTree(Long deptId) { List roots = nodesByPid(0L); if (deptId.equals(DEPT_ROOT_PID)) return roots.stream().map(this::format).collect(Collectors.toList()); SysDept sysDept = sysDeptMapper.selectByPrimaryKey(deptId); - if (roots.stream().anyMatch(node -> node.getDeptId().equals(deptId))) return roots.stream().map(this::format).collect(Collectors.toList()); + if (roots.stream().anyMatch(node -> node.getDeptId().equals(deptId))) + return roots.stream().map(this::format).collect(Collectors.toList()); SysDept current = sysDept; DeptTreeNode currentNode = format(sysDept); - while (!current.getPid().equals(DEPT_ROOT_PID)){ + while (!current.getPid().equals(DEPT_ROOT_PID)) { SysDept parent = sysDeptMapper.selectByPrimaryKey(current.getPid()); //pid上有索引 所以效率不会太差 DeptTreeNode parentNode = format(parent); parentNode.setChildren(currentNode.toList()); @@ -151,7 +154,7 @@ public class DeptService { return roots.stream().map(node -> node.getDeptId().equals(targetRootNode.getId()) ? targetRootNode : format(node)).collect(Collectors.toList()); } - private DeptTreeNode format(SysDept sysDept){ + private DeptTreeNode format(SysDept sysDept) { DeptTreeNode deptTreeNode = new DeptTreeNode(); deptTreeNode.setId(sysDept.getDeptId()); deptTreeNode.setLabel(sysDept.getName()); @@ -159,22 +162,23 @@ public class DeptService { return deptTreeNode; } - private List allNodes(){ + private List allNodes() { return extDeptMapper.allNodes(); } - private List nodeByCondition(BaseGridRequest request){ - GridExample gridExample = request.convertExample(); - return extDeptMapper.nodesByExample(gridExample); + private List nodeByCondition(XpackDeptGridRequest request) { + + return extDeptMapper.nodesByExample(request); } /** * 找出目标节点所在路径上的所有节点 向上找 - * @param allNodes 所有节点 + * + * @param allNodes 所有节点 * @param targetNodes 目标节点 * @return */ - private List upTree(List allNodes, List targetNodes){ + private List upTree(List allNodes, List targetNodes) { final Map map = allNodes.stream().collect(Collectors.toMap(SimpleTreeNode::getId, node -> node)); return targetNodes.parallelStream().flatMap(targetNode -> { //向上逐级找爹 diff --git a/core/backend/src/main/java/io/dataease/service/sys/MenuService.java b/core/backend/src/main/java/io/dataease/service/sys/MenuService.java index d9f93b80c1..7ced1cf59c 100644 --- a/core/backend/src/main/java/io/dataease/service/sys/MenuService.java +++ b/core/backend/src/main/java/io/dataease/service/sys/MenuService.java @@ -1,7 +1,6 @@ package io.dataease.service.sys; import io.dataease.commons.utils.BeanUtils; -import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.MenuCreateRequest; import io.dataease.controller.sys.request.MenuDeleteRequest; import io.dataease.controller.sys.request.SimpleTreeNode; @@ -168,28 +167,10 @@ public class MenuService { } - public List nodesTreeByCondition(BaseGridRequest request) { - List allNodes = allNodes(); - List targetNodes = nodeByCondition(request); - if (org.apache.commons.collections.CollectionUtils.isEmpty(targetNodes)) { - return new ArrayList<>(); - } - List ids = upTree(allNodes, targetNodes); - SysMenuExample example = new SysMenuExample(); - if (org.apache.commons.collections.CollectionUtils.isNotEmpty(ids)) { - SysMenuExample.Criteria criteria = example.createCriteria(); - criteria.andMenuIdIn(ids); - } - return sysMenuMapper.selectByExample(example); - } - public List allNodes() { return extSysMenuMapper.allNodes(); } - public List nodeByCondition(BaseGridRequest request) { - return extSysMenuMapper.nodesByExample(request.convertExample()); - } /** * 找出目标节点所在路径上的所有节点 向上找 diff --git a/core/frontend/src/api/system/menu.js b/core/frontend/src/api/system/menu.js index b7df138446..2aef84616e 100644 --- a/core/frontend/src/api/system/menu.js +++ b/core/frontend/src/api/system/menu.js @@ -53,12 +53,4 @@ export function treeByMenuId(menuId) { }) } -export function queryCondition(data) { - return request({ - url: '/api/menu/search', - method: 'post', - data - }) -} - -export default { addMenu, editMenu, delMenu, getMenusTree, getChild, treeByMenuId, queryCondition } +export default { addMenu, editMenu, delMenu, getMenusTree, getChild, treeByMenuId } diff --git a/core/frontend/src/views/panel/grantAuth/dept/index.vue b/core/frontend/src/views/panel/grantAuth/dept/index.vue index 9d2c42cc6b..d3b455240f 100644 --- a/core/frontend/src/views/panel/grantAuth/dept/index.vue +++ b/core/frontend/src/views/panel/grantAuth/dept/index.vue @@ -94,12 +94,7 @@ export default { searchWithKey(index) { this.timeMachine = setTimeout(() => { if (index === this.changeIndex) { - const condition = { - field: 'name', - operator: 'like', - value: this.keyWord - } - this.search(condition) + this.search() } this.destroyTimeMachine() }, 1500) @@ -124,25 +119,25 @@ export default { }, // 加载表格数据 - search(condition) { + search() { this.treeData = [] let param = {} - if (condition && condition.value) { - param = { conditions: [condition] } + if (this.keyWord) { + param = { keyword: this.keyWord } } else { - param = { conditions: [this.defaultCondition] } + param = { pid: 0 } } if (!this.sharesLoad) { this.queryShareNodeIds(() => { this.sharesLoad = true - this.loadTreeData(param, condition) + this.loadTreeData(param) }) } else { - this.loadTreeData(param, condition) + this.loadTreeData(param) } }, - loadTreeData(param, condition) { + loadTreeData(param) { loadTable(param).then(res => { let data = res.data data = data.map(obj => { @@ -154,7 +149,7 @@ export default { this.setCheckExpandNodes(data) this.expandNodeIds = [] - if (condition && condition.value) { + if (this.keyWord) { this.treeData = this.buildTree(data) this.$nextTick(() => { this.expandResult(this.treeData)