From 48c2fece0e18e43fec9e661f852df70f8765abc1 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 07 Feb 2024 10:58:33 +0800
Subject: [PATCH] 场所详情查询过滤
---
src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml | 62 +++++++++++++++++++++++++++----
src/main/java/org/springblade/modules/place/service/impl/PlaceExtServiceImpl.java | 41 ++++++++++++++++----
src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.java | 3 +
3 files changed, 88 insertions(+), 18 deletions(-)
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.java
index 78ce4f0..27816f6 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.java
@@ -43,7 +43,8 @@
@Param("placeExt") PlaceExtVO placeExt,
@Param("houseCodeList") List<String> houseCodeList,
@Param("regionChildCodesList") List<String> regionChildCodesList,
- @Param("isAdministrator") Integer isAdministrator);
+ @Param("isAdministrator") Integer isAdministrator,
+ @Param("gridCodeList") List<String> gridCodeList);
/**
* 场所详情表 自定义详情
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
index becd568..c7da4f1 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
@@ -19,25 +19,71 @@
jczz_place_ext jpe
LEFT JOIN jczz_place jp ON jpe.place_id = jp.id AND jp.is_deleted = 0
LEFT JOIN jczz_grid jg ON jp.grid_code = jg.grid_code AND jg.is_deleted = 0
- WHERE
- jpe.is_deleted = 0
+ LEFT JOIN jczz_police_affairs_grid jpag ON jp.jw_grid_code = jpag.jw_grid_code AND jpag.is_deleted = 0
+ WHERE jpe.is_deleted = 0
and jp.place_name != ''
<if test="isAdministrator==2">
<choose>
- <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
- and jg.community_code in
- <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
- #{code}
- </foreach>
+ <when test="placeExt.roleName != null and placeExt.roleName != ''">
+ <if test="placeExt.roleName=='wgy'">
+ <choose>
+ <when test="gridCodeList !=null and gridCodeList.size()>0">
+ and jp.grid_code in
+ <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ </when>
+ <otherwise>
+ and jp.grid_code in ('')
+ </otherwise>
+ </choose>
+ </if>
+ <if test="placeExt.roleName=='mj'">
+ <choose>
+ <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+ and jpag.community_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ </when>
+ <otherwise>
+ and jpag.community_code in ('')
+ </otherwise>
+ </choose>
+ </if>
</when>
<otherwise>
- and jg.community_code in ('')
+ <choose>
+ <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+ and
+ (
+ jg.grid_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ or
+ jpag.community_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ )
+ </when>
+ <otherwise>
+ and
+ (
+ jg.grid_code in ('') or jpag.community_code in in ('')
+ )
+ </otherwise>
+ </choose>
</otherwise>
</choose>
</if>
<if test="placeExt.placeName != null and placeExt.placeName != ''">
and jp.place_name like concat('%',#{placeExt.placeName},'%')
</if>
+ <if test="placeExt.communityCode != null and placeExt.communityCode != ''">
+ and jpag.community_code like concat('%',#{placeExt.communityCode},'%')
+ </if>
<if test="placeExt.placeId != null">
and jp.id = #{placeExt.placeId}
</if>
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceExtServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceExtServiceImpl.java
index 6a9e2ab..40196cb 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceExtServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceExtServiceImpl.java
@@ -21,7 +21,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.SysCache;
+import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.place.entity.PlaceEntity;
import org.springblade.modules.place.entity.PlaceExtEntity;
@@ -31,8 +33,9 @@
import org.springblade.modules.place.service.IPlacePractitionerService;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.place.vo.PlaceExtVO;
-import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRegionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -73,22 +76,42 @@
@Override
public IPage<PlaceExtVO> selectPlaceExtPage(IPage<PlaceExtVO> page, PlaceExtVO placeExt) {
List<String> list = new ArrayList<>();
- if (null != placeExt.getRoleName() && !placeExt.getRoleName().equals("")) {
- if (placeExt.getRoleName().equals("网格员")) {
- // 查询对应的房屋地址code
- list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
- }
- if (!placeExt.getRoleName().equals("系统管理员")) {
- placeExt.setCreateUser(AuthUtil.getUserId());
+// if (null != placeExt.getRoleName() && !placeExt.getRoleName().equals("")) {
+// if (placeExt.getRoleName().equals("网格员")) {
+// // 查询对应的房屋地址code
+// list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+// }
+// if (!placeExt.getRoleName().equals("系统管理员")) {
+// placeExt.setCreateUser(AuthUtil.getUserId());
+// }
+// }
+ String roleName = SpringUtils.getRequestParam("roleName");
+ String communityCode = SpringUtils.getRequestParam("communityCode");
+ if (!Strings.isBlank(communityCode)){
+ // 校验社区编号是否合规
+ if(null!=SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
+ placeExt.setCommunityCode(communityCode);
}
}
List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+ // 网格编号集合
+ List<String> gridCodeList = new ArrayList<>();
+ // 民警角色
+ if (!Strings.isBlank(roleName)){
+ placeExt.setRoleName(roleName);
+ if(roleName.equals("mj")) {
+ regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
+ }
+ if (roleName.equals("wgy")) {
+ gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+ }
+ }
if (AuthUtil.getUserAccount().equals("18879306957")) {
placeExt.setCommunityCode("361102003027");
placeExt.setCreateUser(null);
}
- return page.setRecords(baseMapper.selectPlaceExtPage(page, placeExt, list,regionChildCodesList,isAdministrator));
+ return page.setRecords(baseMapper.selectPlaceExtPage(page, placeExt, list,regionChildCodesList,isAdministrator,gridCodeList));
}
/**
--
Gitblit v1.9.3