From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/ownersCommittee/service/impl/OwnersCommitteeServiceImpl.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 105 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/ownersCommittee/service/impl/OwnersCommitteeServiceImpl.java b/src/main/java/org/springblade/modules/ownersCommittee/service/impl/OwnersCommitteeServiceImpl.java
index 98fe896..af3be18 100644
--- a/src/main/java/org/springblade/modules/ownersCommittee/service/impl/OwnersCommitteeServiceImpl.java
+++ b/src/main/java/org/springblade/modules/ownersCommittee/service/impl/OwnersCommitteeServiceImpl.java
@@ -16,17 +16,28 @@
  */
 package org.springblade.modules.ownersCommittee.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
+import org.springblade.common.cache.SysCache;
+import org.springblade.common.utils.SpringUtils;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.district.entity.DistrictEntity;
+import org.springblade.modules.district.service.IDistrictService;
 import org.springblade.modules.ownersCommittee.dto.OwnersCommitteeDTO;
 import org.springblade.modules.ownersCommittee.entity.OwnersCommitteeEntity;
-import org.springblade.modules.ownersCommittee.vo.OwnersCommitteeVO;
 import org.springblade.modules.ownersCommittee.mapper.OwnersCommitteeMapper;
 import org.springblade.modules.ownersCommittee.service.IOwnersCommitteeService;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.ownersCommittee.vo.OwnersCommitteeVO;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 业委会表 服务实现类
@@ -39,6 +50,16 @@
 
 	@Override
 	public IPage<OwnersCommitteeVO> selectOwnersCommitteePage(IPage<OwnersCommitteeVO> page, OwnersCommitteeVO ownersCommittee) {
+		String userRole = AuthUtil.getUserRole();
+		// 街道身份,只查找该街道下面的业委会
+		if (userRole.contains("jdgly")) {
+			List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
+			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());
+			ownersCommittee.setAreaIdList(fieldValues);
+		}
 		return page.setRecords(baseMapper.selectOwnersCommitteePage(page, ownersCommittee));
 	}
 
@@ -49,8 +70,7 @@
 	 * @return 业委会表
 	 */
 	@Override
-	public OwnersCommitteeDTO selectOwnersCommitteeById(Integer id)
-	{
+	public OwnersCommitteeDTO selectOwnersCommitteeById(Integer id) {
 		return this.baseMapper.selectOwnersCommitteeById(id);
 	}
 
@@ -61,9 +81,87 @@
 	 * @return 业委会表集合
 	 */
 	@Override
-	public List<OwnersCommitteeDTO> selectOwnersCommitteeList(OwnersCommitteeDTO ownersCommitteeDTO)
-	{
+	public List<OwnersCommitteeDTO> selectOwnersCommitteeList(OwnersCommitteeDTO ownersCommitteeDTO) {
 		return this.baseMapper.selectOwnersCommitteeList(ownersCommitteeDTO);
 	}
 
+	@Override
+	public Boolean saveOrUpdateOwnersCommittee(OwnersCommitteeEntity ownersCommittee) {
+		boolean b = saveOrUpdate(ownersCommittee);
+		if (b) {
+			// 更新负责人用户角色
+			IUserService bean = SpringUtils.getBean(IUserService.class);
+			User userInfo = bean.getOne(Wrappers.<User>lambdaQuery().eq(User::getId, ownersCommittee.getPrincipalId()));
+			// 判断角色
+			if (!userInfo.getRoleId().contains("1759487358708310017")) {
+				userInfo.setRoleId(userInfo.getRoleId() + ",1759487358708310017");
+			}
+			bean.updateById(userInfo);
+		}
+		//
+		return b;
+	}
+
+	@Override
+	public Boolean updateOwnersCommittee(OwnersCommitteeEntity ownersCommittee) {
+		OwnersCommitteeEntity one = getOne(Wrappers.<OwnersCommitteeEntity>lambdaQuery().eq(OwnersCommitteeEntity::getId, ownersCommittee.getId()));
+		// 负责人没有变化
+		if(one.getPrincipalId().equals(ownersCommittee.getPrincipalId())){
+			// 更新业委会信息
+			return updateById(ownersCommittee);
+		}
+		// 负责人有变化
+		// 1.更新原负责人用户角色
+		IUserService bean = SpringUtils.getBean(IUserService.class);
+		User userInfo = bean.getOne(Wrappers.<User>lambdaQuery().eq(User::getId, one.getPrincipalId()));
+		// 判断角色
+		if (userInfo.getRoleId().contains("1759487358708310017")) {
+			userInfo.setRoleId(userInfo.getRoleId().replace("1759487358708310017", ""));
+		}
+		List<String> stringList = Arrays.asList(userInfo.getRoleId().split(","));
+		// 查询是否对应有业委会负责人,如果有则删除,如果没有则不删除对应的角色
+		List<String> arrayList = new ArrayList<>();
+		for (String roleId : stringList) {
+			if (!roleId.equals("1759487358708310017")) {
+				arrayList.add(roleId);
+			}
+		}
+		userInfo.setRoleId(StringUtils.join(arrayList, ","));
+		bean.updateById(userInfo);
+		// 2.更新现在的负责人
+		User userInfoNew = bean.getOne(Wrappers.<User>lambdaQuery().eq(User::getId, ownersCommittee.getPrincipalId()));
+		// 判断角色
+		if (!userInfoNew.getRoleId().contains("1759487358708310017")) {
+			userInfoNew.setRoleId(userInfo.getRoleId() + ",1759487358708310017");
+		}
+		bean.updateById(userInfoNew);
+		// 3.更新业委会信息
+		return updateById(ownersCommittee);
+	}
+
+	@Override
+	public Boolean removeOwnersCommittee(List<Long> toLongList) {
+		for (Long aLong : toLongList) {
+			OwnersCommitteeEntity ownersCommittee = getOne(Wrappers.<OwnersCommitteeEntity>lambdaQuery().eq(OwnersCommitteeEntity::getId, aLong));
+			// 更新负责人用户角色
+			IUserService bean = SpringUtils.getBean(IUserService.class);
+			User userInfo = bean.getOne(Wrappers.<User>lambdaQuery().eq(User::getId, ownersCommittee.getPrincipalId()));
+			// 判断角色
+			if (userInfo.getRoleId().contains("1759487358708310017")) {
+				userInfo.setRoleId(userInfo.getRoleId().replace("1759487358708310017", ""));
+			}
+			List<String> stringList = Arrays.asList(userInfo.getRoleId().split(","));
+			// 查询是否对应有业委会负责人,如果有则删除,如果没有则不删除对应的角色
+			List<String> arrayList = new ArrayList<>();
+			for (String roleId : stringList) {
+				if (!roleId.equals("1759487358708310017")) {
+					arrayList.add(roleId);
+				}
+			}
+			userInfo.setRoleId(StringUtils.join(arrayList, ","));
+			bean.updateById(userInfo);
+			return removeById(ownersCommittee);
+		}
+		return false;
+	}
 }

--
Gitblit v1.9.3