From f74ec909ba37cb1e1d981f541096a402fafd10da Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Wed, 03 Apr 2024 16:27:59 +0800
Subject: [PATCH] 修复部门的用户导出的是全部的数据

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml             |   27 ++++++++++++++++++++++++++-
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java |    9 +++++++--
 src/main/java/org/springblade/modules/system/controller/UserController.java    |   12 ++++++------
 src/main/java/org/springblade/modules/system/mapper/UserMapper.java            |    2 +-
 src/main/java/org/springblade/modules/system/service/IUserService.java         |    2 +-
 5 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 819f1d2..95a148e 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -48,7 +48,6 @@
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.excel.PoliceUserExcel;
 import org.springblade.modules.system.excel.PoliceUserImporter;
@@ -268,7 +267,7 @@
 	public R updatePassword(BladeUser user, @ApiParam(value = "旧密码", required = true) @RequestParam String oldPassword,
 							@ApiParam(value = "新密码", required = true) @RequestParam String newPassword,
 							@ApiParam(value = "新密码", required = true) @RequestParam String newPassword1) {
-		bladeLogger.info("修改密码", JsonUtil.toJson(ToObject.toMap("oldPassword:" + oldPassword,"newPassword:" + newPassword,"newPassword1:" + newPassword1)));
+		bladeLogger.info("修改密码", JsonUtil.toJson(ToObject.toMap("oldPassword:" + oldPassword, "newPassword:" + newPassword, "newPassword1:" + newPassword1)));
 		boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1);
 		return R.status(temp);
 	}
@@ -320,12 +319,15 @@
 	@ApiOperation(value = "导出用户", notes = "传入user")
 	public void exportUser(@ApiIgnore @RequestParam Map<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
 		bladeLogger.info("导出用户", JsonUtil.toJson(bladeUser));
+		String deptId = (String) user.get("deptId");
+		// 置空
+		user.put("deptId", "");
 		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
 		if (!AuthUtil.isAdministrator()) {
 			queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId());
 		}
 		queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED);
-		List<UserExcel> list = userService.exportUser(queryWrapper);
+		List<UserExcel> list = userService.exportUser(queryWrapper, deptId);
 		ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class);
 	}
 
@@ -438,8 +440,6 @@
 	}
 
 
-
-
 	/**
 	 * 通过机构查询物业公司人员
 	 */
@@ -485,7 +485,7 @@
 	@ApiLog("通过经纬度查询最近的民警人员")
 	@ApiOperation(value = "通过经纬度查询最近的民警人员")
 	public R getPoliceUser(@RequestParam("longitude") String longitude, @RequestParam(value = "latitude") String latitude, @RequestParam(value = "houseCode", required = false) String houseCode) {
-		bladeLogger.info("通过经纬度查询最近的民警人员", JsonUtil.toJson(ToObject.toMap("longitude:" + longitude,"latitude:" + latitude,"houseCode:" + houseCode)));
+		bladeLogger.info("通过经纬度查询最近的民警人员", JsonUtil.toJson(ToObject.toMap("longitude:" + longitude, "latitude:" + latitude, "houseCode:" + houseCode)));
 		return R.data(userService.getPoliceUser(longitude, latitude, houseCode));
 	}
 
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
index ce9ceb1..af293dc 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -63,7 +63,7 @@
 	 * @param queryWrapper
 	 * @return
 	 */
-	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
+	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper,@Param("deptIdList") List<Long> deptIdList);
 
 	/**
 	 * 按条件查询用户信息
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index efcb04d..b4bd4a0 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -74,7 +74,32 @@
     </select>
 
     <select id="exportUser" resultType="org.springblade.modules.system.excel.UserExcel">
-        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment}
+        SELECT id,
+               tenant_id,
+               user_type,
+               account,
+               name,
+               real_name,
+               email,
+               phone,
+               birthday,
+               role_id,
+               dept_id,
+               post_id
+        FROM blade_user ${ew.customSqlSegment}
+        <if test="deptIdList!=null and deptIdList.size>0">
+            and id in (
+            SELECT
+            user_id
+            FROM
+            blade_user_dept
+            WHERE
+            dept_id IN
+            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
     </select>
 
     <!--按条件查询用户信息-->
diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java
index 68f52ed..7f61797 100644
--- a/src/main/java/org/springblade/modules/system/service/IUserService.java
+++ b/src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -182,7 +182,7 @@
 	 * @param queryWrapper
 	 * @return
 	 */
-	List<UserExcel> exportUser(Wrapper<User> queryWrapper);
+	List<UserExcel> exportUser(Wrapper<User> queryWrapper, String tenantId);
 
 	/**
 	 * 注册用户
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index 80adbba..871e434 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -25,6 +25,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.apache.logging.log4j.util.Strings;
 import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
 import org.springblade.common.cache.DictCache;
@@ -446,8 +447,12 @@
 	}
 
 	@Override
-	public List<UserExcel> exportUser(Wrapper<User> queryWrapper) {
-		List<UserExcel> userList = baseMapper.exportUser(queryWrapper);
+	public List<UserExcel> exportUser(Wrapper<User> queryWrapper, String deptId) {
+		if (Strings.isBlank(deptId) && !AuthUtil.isAdministrator() && !AuthUtil.isAdmin()) {
+			deptId = AuthUtil.getDeptId();
+		}
+		List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
+		List<UserExcel> userList = baseMapper.exportUser(queryWrapper, deptIdList);
 		userList.forEach(user -> {
 			user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
 			user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId())));

--
Gitblit v1.9.3