From e13f2a82be5ebad924dfc92eb03f0448697624c4 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 05 Feb 2024 16:44:56 +0800
Subject: [PATCH] 用户机构调整,用户删除警格绑定修改
---
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java | 7 +++
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 51 ++++++++++++++++++++++++-
src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java | 10 +++++
src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml | 11 +++++
src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java | 7 +++
5 files changed, 83 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java b/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java
index 46ad6ba..d747c31 100644
--- a/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java
+++ b/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.java
@@ -46,4 +46,11 @@
* @return
*/
List<PoliceAffairsGridEntity> spatialAnalysis(@Param("point") String point);
+
+ /**
+ * 查询对应的社区编号
+ * @param userId
+ * @return
+ */
+ List<String> getCommunityCodeListByUserId(@Param("userId") String userId);
}
diff --git a/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml b/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml
index 114b11e..365591c 100644
--- a/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml
+++ b/src/main/java/org/springblade/modules/police/mapper/PoliceAffairsGridMapper.xml
@@ -31,7 +31,16 @@
<!--判断该点在哪个警务网格-->
<select id="spatialAnalysis" resultType="org.springblade.modules.police.entity.PoliceAffairsGridEntity">
- SELECT * FROM jczz_police_affairs_grid WHERE ST_Intersects(geom, ST_GeomFromText(${point},0))
+ SELECT * FROM jczz_police_affairs_grid
+ WHERE is_deleted = 0
+ and ST_Intersects(geom, ST_GeomFromText(${point},0))
+ </select>
+
+ <!--判断该点在哪个警务网格-->
+ <select id="getCommunityCodeListByUserId" resultType="java.lang.String">
+ SELECT community_code FROM jczz_police_affairs_grid
+ WHERE is_deleted = 0
+ and police_user_id like concat('%',#{userId},'%')
</select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java b/src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java
index 1ecd84f..682bdbd 100644
--- a/src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java
+++ b/src/main/java/org/springblade/modules/police/service/IPoliceAffairsGridService.java
@@ -39,4 +39,11 @@
* @return
*/
List<PoliceAffairsGridEntity> spatialAnalysis(String point);
+
+ /**
+ * 查询对应的社区编号
+ * @param userId
+ * @return
+ */
+ List<String> getCommunityCodeListByUserId(Long userId);
}
diff --git a/src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java b/src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java
index a480ea7..6774fad 100644
--- a/src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java
+++ b/src/main/java/org/springblade/modules/police/service/impl/PoliceAffairsGridServiceImpl.java
@@ -70,4 +70,14 @@
public List<PoliceAffairsGridEntity> spatialAnalysis(String point) {
return baseMapper.spatialAnalysis(point);
}
+
+ /**
+ * 查询对应的社区编号
+ * @param userId
+ * @return
+ */
+ @Override
+ public List<String> getCommunityCodeListByUserId(Long userId) {
+ return baseMapper.getCommunityCodeListByUserId(userId.toString());
+ }
}
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 59bb6f0..e309a8a 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
@@ -148,8 +148,23 @@
* @param user
*/
public void updateGridBind(User user) {
+ // 先删除原有区域的绑定
+ QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0).like("police_user_id",user.getId());
+ // 删除掉之前已绑定的
+ List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
+ // 遍历
+ for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
+ List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
+ arrayList.remove(user.getId().toString());
+ // 更新
+ policeAffairsGridEntity.setPoliceUserId(String.join(",",arrayList));
+ // 解决更新报错
+ policeAffairsGridEntity.setGeom(null);
+ SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
+ }
// 判断机构类型
- List<String> deptIds = Arrays.asList(user.getDeptId().split(","));
+ List<String> deptIds = new ArrayList<>(Arrays.asList(user.getDeptId().split(",")));
for (String deptId : deptIds) {
// 查询对应的机构
Dept dept = SpringUtil.getBean(IDeptService.class).getById(deptId);
@@ -356,7 +371,39 @@
if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
throw new ServiceException("不能删除本账号!");
}
- return deleteLogic(Func.toLongList(userIds));
+ boolean deleteLogic = deleteLogic(Func.toLongList(userIds));
+ if (deleteLogic){
+ // 删除警格绑定
+ removePoliceGridBind(userIds);
+ }
+ return deleteLogic;
+ }
+
+ /**
+ * 删除警格绑定
+ * @param userIds
+ */
+ public void removePoliceGridBind(String userIds) {
+ List<String> userIdList = new ArrayList<>(Arrays.asList(userIds.split(",")));
+ for (String userId : userIdList) {
+ // 先删除原有区域的绑定
+ QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0).like("police_user_id",userId);
+ // 删除掉之前已绑定的
+ List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
+ if (list.size()>0) {
+ // 遍历
+ for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
+ List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
+ arrayList.remove(userId);
+ // 更新
+ policeAffairsGridEntity.setPoliceUserId(String.join(",", arrayList));
+ // 解决更新报错
+ policeAffairsGridEntity.setGeom(null);
+ SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
+ }
+ }
+ }
}
@Override
--
Gitblit v1.9.3