From 1215c74cb4a89d0f54da614ba5c7f4b9d6d2acb5 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 17 Jul 2021 11:42:40 +0800
Subject: [PATCH] 处警员树接口修改
---
src/main/java/org/springblade/modules/catalog/service/catalogService.java | 3
src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.xml | 110 ++++++++++++++++++++-------
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java | 4 +
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml | 37 +++++++++
src/main/java/org/springblade/modules/system/controller/DeptController.java | 12 +++
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 10 ++
src/main/java/org/springblade/modules/system/service/IDeptService.java | 5 +
src/main/java/org/springblade/modules/catalog/controller/catalogController.java | 5
src/main/java/org/springblade/modules/catalog/service/impl/CatalogServiceImpl.java | 3
src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.java | 5 +
10 files changed, 159 insertions(+), 35 deletions(-)
diff --git a/src/main/java/org/springblade/modules/catalog/controller/catalogController.java b/src/main/java/org/springblade/modules/catalog/controller/catalogController.java
index f1296d6..657de8e 100644
--- a/src/main/java/org/springblade/modules/catalog/controller/catalogController.java
+++ b/src/main/java/org/springblade/modules/catalog/controller/catalogController.java
@@ -37,6 +37,7 @@
import org.springblade.modules.parcel.service.ParcelService;
import org.springblade.modules.parcel.vo.ConditionVo;
import org.springblade.modules.suser.service.ISuserService;
+import org.springblade.modules.system.vo.DeptVO;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -369,8 +370,8 @@
* @return
*/
@GetMapping("/getBigTree")
- public R<List<catalogVO>> getBigTree() {
- List<catalogVO> tree = catalogService.getBigTree();
+ public R<List<DeptVO>> getBigTree() {
+ List<DeptVO> tree = catalogService.getBigTree();
return R.data(tree);
}
diff --git a/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.java b/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.java
index 0a98edd..4c6b33f 100644
--- a/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.java
+++ b/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.java
@@ -16,9 +16,11 @@
*/
package org.springblade.modules.catalog.mapper;
+import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.catalog.entitly.catalog;
import org.springblade.modules.catalog.vo.catalogVO;
+import org.springblade.modules.system.vo.DeptVO;
import java.util.List;
import java.util.Map;
@@ -48,5 +50,6 @@
* 获取行政区--》客户--》部门机构 --》安保人员 树形数据
* @return
*/
- List<catalogVO> getBigTree();
+ @SqlParser(filter=true)
+ List<DeptVO> getBigTree();
}
diff --git a/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.xml b/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.xml
index 1c1944f..509643d 100644
--- a/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.xml
+++ b/src/main/java/org/springblade/modules/catalog/mapper/catalogMapper.xml
@@ -126,42 +126,92 @@
</insert>
<!--获取行政区-》客户-》部门机构 -》安保人员 树形数据-->
+<!-- <select id="getBigTree" resultMap="treeNodeResultMap">-->
+<!-- (-->
+<!-- SELECT-->
+<!-- id,-->
+<!-- pId as parent_id,-->
+<!-- name AS title,-->
+<!-- id AS "value",-->
+<!-- id AS "key"-->
+<!-- FROM-->
+<!-- sys_catalog-->
+<!-- )-->
+
+<!-- union all-->
+
+<!-- (-->
+<!-- select-->
+<!-- bu.id,-->
+<!-- sc.id as parent_id,-->
+<!-- bu.real_name AS title,-->
+<!-- bu.id AS "value",-->
+<!-- bu.id AS "key"-->
+<!-- from-->
+<!-- blade_user bu-->
+<!-- left join-->
+<!-- sys_catalog sc-->
+<!-- on-->
+<!-- sc.dept_id = SUBSTRING(bu.dept_id,-19)-->
+<!-- left join-->
+<!-- blade_role br-->
+<!-- on-->
+<!-- bu.role_id = br.id-->
+<!-- where-->
+<!-- br.role_alias = '处警员'-->
+<!-- and-->
+<!-- bu.is_deleted=0-->
+<!-- )-->
+<!-- </select>-->
+
+
+ <!--获取行政区-》客户-》部门机构 -》安保人员 树形数据-->
<select id="getBigTree" resultMap="treeNodeResultMap">
- (
- SELECT
- id,
- pId as parent_id,
- name AS title,
- id AS "value",
- id AS "key"
- FROM
- sys_catalog
- )
+ select DISTINCT * from (
+ (SELECT
+ dept.id,
+ dept.parent_id,
+ dept.dept_name AS title,
+ dept.id AS "value",
+ dept.id AS "key",
+ (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) AS "has_children"
+ FROM
+ blade_dept dept
+ WHERE
+ dept.is_deleted = 0
+ )
- union all
+ union
- (
- select
+ (select
bu.id,
- sc.id as parent_id,
- bu.real_name AS title,
+ REVERSE(left(REVERSE(dept_id),LOCATE(',',REVERSE('dept_id'))-1)) as parent_id,
+ real_name AS title,
bu.id AS "value",
- bu.id AS "key"
- from
+ bu.id AS "key",
+ 0 as "has_children"
+ from
blade_user bu
- left join
- sys_catalog sc
- on
- sc.dept_id = SUBSTRING(bu.dept_id,-19)
- left join
- blade_role br
- on
- bu.role_id = br.id
- where
- br.role_alias = '处警员'
- and
- bu.is_deleted=0
- )
+ left join
+ blade_role br
+ on
+ bu.role_id = br.id
+ where
+ br.role_alias = 'qfqkdw'
+ and
+ bu.is_deleted=0
+ )
+ )c
</select>
+
+
+
</mapper>
diff --git a/src/main/java/org/springblade/modules/catalog/service/catalogService.java b/src/main/java/org/springblade/modules/catalog/service/catalogService.java
index 526b86b..5b5ada6 100644
--- a/src/main/java/org/springblade/modules/catalog/service/catalogService.java
+++ b/src/main/java/org/springblade/modules/catalog/service/catalogService.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.catalog.entitly.catalog;
import org.springblade.modules.catalog.vo.catalogVO;
+import org.springblade.modules.system.vo.DeptVO;
import java.util.List;
import java.util.Map;
@@ -46,5 +47,5 @@
* 获取行政区--》客户--》部门机构 --》安保人员 树形数据
* @return
*/
- List<catalogVO> getBigTree();
+ List<DeptVO> getBigTree();
}
diff --git a/src/main/java/org/springblade/modules/catalog/service/impl/CatalogServiceImpl.java b/src/main/java/org/springblade/modules/catalog/service/impl/CatalogServiceImpl.java
index b132783..0b544fd 100644
--- a/src/main/java/org/springblade/modules/catalog/service/impl/CatalogServiceImpl.java
+++ b/src/main/java/org/springblade/modules/catalog/service/impl/CatalogServiceImpl.java
@@ -23,6 +23,7 @@
import org.springblade.modules.catalog.mapper.catalogMapper;
import org.springblade.modules.catalog.service.catalogService;
import org.springblade.modules.catalog.vo.catalogVO;
+import org.springblade.modules.system.vo.DeptVO;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -93,7 +94,7 @@
* @return
*/
@Override
- public List<catalogVO> getBigTree() {
+ public List<DeptVO> getBigTree() {
return ForestNodeMerger.merge(baseMapper.getBigTree());
}
}
diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java
index c6cf0e7..193b86f 100644
--- a/src/main/java/org/springblade/modules/system/controller/DeptController.java
+++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -141,6 +141,18 @@
return R.data(tree);
}
+
+ /**
+ * 懒加载获取部门树形结构--关联组织机构(包含保安员信息)
+ */
+ @GetMapping("/lazy-tree-security")
+ @ApiOperationSupport(order = 5)
+ @ApiOperation(value = "懒加载树形结构", notes = "树形结构")
+ public R<List<DeptVO>> lazyTreeSecurity(String tenantId, Long parentId, BladeUser bladeUser) {
+ List<DeptVO> tree = deptService.lazyTreeSecurity(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+ return R.data(tree);
+ }
+
/**
* 懒加载获取部门树形结构
*/
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
index 4ef9f45..a07289e 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -16,6 +16,7 @@
*/
package org.springblade.modules.system.mapper;
+import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.common.vo.DeptVo;
import org.springblade.modules.system.entity.Dept;
@@ -87,4 +88,7 @@
List<DeptVo> selDeptList();
List<DeptVO> selectInfo();
+
+ @SqlParser(filter=true)
+ List<DeptVO> lazyTreeSecurity(String tenantId, Long parentId);
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
index 1a13009..da3d47c 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -99,6 +99,43 @@
ORDER BY dept.sort
</select>
+
+ <select id="lazyTreeSecurity" resultMap="treeNodeResultMap" >
+ select DISTINCT * from (
+ (SELECT
+ dept.id,
+ dept.parent_id,
+ dept.dept_name AS title,
+ dept.id AS "value",
+ dept.id AS "key",
+ (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) AS "has_children"
+ FROM
+ blade_dept dept
+ WHERE
+ dept.is_deleted = 0
+ )
+
+ union
+
+ (select
+ id,
+ dept_id parent_id,
+ real_name AS title,
+ id AS "value",
+ id AS "key",
+ 0 as "has_children"
+ from blade_user
+ )
+ )c
+ </select>
+
<select id="getDeptNames" resultType="java.lang.String">
SELECT
dept_name
diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java
index 817c770..0387ea4 100644
--- a/src/main/java/org/springblade/modules/system/service/IDeptService.java
+++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -129,4 +129,9 @@
* @return
*/
List<DeptVo> selDeptList();
+
+ /**
+ * 懒加载获取部门树形结构--关联组织机构(包含保安员信息)
+ */
+ List<DeptVO> lazyTreeSecurity(String toStrWithEmpty, Long parentId);
}
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index 8fcaa17..cd4f668 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -181,4 +181,14 @@
return baseMapper.selDeptList();
}
+ /**
+ * 懒加载获取部门树形结构--关联组织机构(包含保安员信息)
+ */
+ @Override
+ public List<DeptVO> lazyTreeSecurity(String tenantId, Long parentId) {
+ if (AuthUtil.isAdministrator()) {
+ tenantId = StringPool.EMPTY;
+ }
+ return ForestNodeMerger.merge(baseMapper.lazyTreeSecurity(tenantId, parentId));
+ }
}
--
Gitblit v1.9.3