From fe8f3e622207c3e848a9140783bb17dd3fbc3616 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 19 Jan 2024 16:47:17 +0800
Subject: [PATCH] 街道身份,只查找该街道下面的公告

---
 src/main/java/org/springblade/modules/article/vo/ArticleVO.java                    |    3 +++
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml             |   13 ++++++++-----
 src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java |   20 ++++++++++++++++----
 3 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
index ed301e5..f16510b 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -183,6 +183,7 @@
     <select id="selectArticlePage" resultType="org.springblade.modules.article.entity.Article">
         select * from jczz_article
         where 1=1
+        and is_deleted = 0
         <if test="article.title!=null and article.title!=''">
             and title like concat('%',#{article.title},'%')
         </if>
@@ -201,16 +202,18 @@
         <if test="article.articleType!=null and article.articleType!=''">
             and article_type like concat('%',#{article.articleType},'%')
         </if>
+        <if test="article.type != null ">and type = #{article.type}</if>
+
         <if test="article.keyword!=null and article.keyword!=''">
             AND CONCAT(title,source_name)
             LIKE CONCAT ('%', #{article.keyword},'%')
         </if>
-        <if test="article.districtId != null and article.districtId != ''">
-            and article_range like concat('%',#{article.districtId},'%')
+        <if test="article.districtIdList != null and article.districtIdList != ''">
+            and (article_range like
+            <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%'
+            </foreach>
+            )
         </if>
-        <if test="article.type != null ">and type = #{article.type}</if>
-
-        and is_deleted = 0
         order by id desc
     </select>
 
diff --git a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
index 73b9de1..f1127ca 100644
--- a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
@@ -3,17 +3,21 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.article.entity.Article;
 import org.springblade.modules.article.mapper.ArticleMapper;
 import org.springblade.modules.article.service.ArticleService;
 import org.springblade.modules.article.vo.ArticleVO;
+import org.springblade.modules.district.entity.DistrictEntity;
+import org.springblade.modules.district.service.IDistrictService;
 import org.springblade.modules.property.entity.PropertyCompanyDistrictEntity;
 import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author zhongrj
@@ -37,11 +41,19 @@
 		// 物业身份,只查询该物业公司下的公告
 		if (userRole.contains("wygly")) {
 			IPropertyCompanyDistrictService bean = SpringUtils.getBean(IPropertyCompanyDistrictService.class);
-			PropertyCompanyDistrictEntity one = bean.getOne(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery()
-				.eq(PropertyCompanyDistrictEntity::getUserId, AuthUtil.getUserId()).last("limit 1"));
-			article.setDistrictId(one.getDistrictId());
+			List<PropertyCompanyDistrictEntity> list = bean.list(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery()
+				.eq(PropertyCompanyDistrictEntity::getUserId, AuthUtil.getUserId()));
+			List<String> collect = list.stream().map(PropertyCompanyDistrictEntity::getDistrictId).collect(Collectors.toList());
+			article.setDistrictIdList(collect);
 		}
-
+		if (userRole.contains("jdgly")) {
+			List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+			IDistrictService bean = SpringUtils.getBean(IDistrictService.class);
+			List<DistrictEntity> list = bean.list(Wrappers.<DistrictEntity>lambdaQuery()
+				.in(DistrictEntity::getCommunityCode, regionChildCodesList));
+			List<String> fieldValues = list.stream().map(DistrictEntity::getId).collect(Collectors.toList());
+			article.setDistrictIdList(fieldValues);
+		}
 		return page.setRecords(baseMapper.selectArticlePage(page, article));
 	}
 
diff --git a/src/main/java/org/springblade/modules/article/vo/ArticleVO.java b/src/main/java/org/springblade/modules/article/vo/ArticleVO.java
index befe258..8818a14 100644
--- a/src/main/java/org/springblade/modules/article/vo/ArticleVO.java
+++ b/src/main/java/org/springblade/modules/article/vo/ArticleVO.java
@@ -4,6 +4,7 @@
 import org.springblade.modules.article.entity.Article;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class ArticleVO extends Article implements Serializable {
@@ -77,4 +78,6 @@
 
 	private String parentId;
 
+	private List<String> districtIdList;
+
 }

--
Gitblit v1.9.3