From 4adb223d22b8cab23d43424197cafd701a8d7f20 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 05 Jan 2024 11:40:43 +0800
Subject: [PATCH] 住户删除修改
---
src/main/java/org/springblade/modules/house/controller/HouseholdController.java | 23 +++--------
src/main/java/org/springblade/modules/house/service/IHouseholdService.java | 5 ++
src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 91 insertions(+), 17 deletions(-)
diff --git a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
index 1c5c1ff..44d5415 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
@@ -23,6 +23,7 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.util.Strings;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
@@ -39,12 +40,15 @@
import org.springblade.modules.house.service.IUserHouseLabelService;
import org.springblade.modules.house.vo.HouseholdVO;
import org.springblade.modules.house.wrapper.HouseholdWrapper;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
+import java.util.Arrays;
import java.util.List;
/**
@@ -60,7 +64,7 @@
public class HouseholdController extends BladeController {
private final IHouseholdService householdService;
- private final IUserHouseLabelService userHouseLabelService;
+
/**
* 住户 详情
@@ -154,25 +158,10 @@
@ApiOperation(value = "逻辑删除", notes = "传入ids")
@Transactional(rollbackFor = Exception.class)
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
- List<Long> idList = Func.toLongList(ids);
- boolean removeByIds = householdService.removeByIds(idList);
- // 同时删除当前住户对应的标签
- removeHouseholdLabel(idList);
// 返回
- return R.status(removeByIds);
+ return R.status(householdService.removeHousehold(ids));
}
- /**
- * 删除住户标签信息
- * @param idList
- */
- public void removeHouseholdLabel(List<Long> idList) {
- for (Long id : idList) {
- QueryWrapper<UserHouseLabelEntity> wrapper = new QueryWrapper<>();
- wrapper.eq("household_id",id);
- userHouseLabelService.remove(wrapper);
- }
- }
/**
* 住户审核统计
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
index e0fbf3c..4981ef6 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
@@ -90,4 +90,9 @@
* @return
*/
Object userHandle();
+
+ /**
+ * 住户 删除
+ */
+ boolean removeHousehold(String ids);
}
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
index c4de6e3..138196f 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -19,13 +19,16 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.node.TreeStringNode;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.house.entity.HouseholdEntity;
+import org.springblade.modules.house.entity.UserHouseLabelEntity;
import org.springblade.modules.house.excel.HouseHoldExcel;
import org.springblade.modules.house.mapper.HouseholdMapper;
import org.springblade.modules.house.service.IHouseholdService;
@@ -33,6 +36,8 @@
import org.springblade.modules.house.vo.HouseholdLabelVO;
import org.springblade.modules.house.vo.HouseholdOtherVO;
import org.springblade.modules.house.vo.HouseholdVO;
+import org.springblade.modules.place.entity.PlaceEntity;
+import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.entity.User;
@@ -66,6 +71,9 @@
@Autowired
private IDeptService deptService;
+
+ @Autowired
+ private IPlaceService placeService;
@Override
public IPage<HouseholdVO> selectHouseholdPage(IPage<HouseholdVO> page, HouseholdVO household) {
@@ -378,4 +386,76 @@
}
return null;
}
+
+ /**
+ * 住户 删除
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean removeHousehold(String ids) {
+ List<Long> idList = Func.toLongList(ids);
+ // 同时删除当前住户对应的标签
+ removeHouseholdLabel(idList);
+ // 同时删除对应的用户信息
+ removeHouseholdUser(idList);
+ // 删除住户信息
+ boolean removeByIds = removeByIds(idList);
+ // 返回
+ return removeByIds;
+ }
+
+
+ /**
+ * 同时删除对应的用户信息
+ * @param idList
+ */
+ public void removeHouseholdUser(List<Long> idList) {
+ for (Long id : idList) {
+ HouseholdEntity householdEntity = getById(id);
+ // 如果是业主
+ if (householdEntity.getRelationship()==1){
+ // 查询对应的用户
+ User user = userService.getById(householdEntity.getAssociatedUserId());
+ // 判断角色
+ if (!Strings.isBlank(user.getRoleId())){
+ List<String> stringList = Arrays.asList(user.getRoleId().split(","));
+ // 查询场所
+ QueryWrapper<PlaceEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0).eq("principal_user_id",user.getId());
+ List<PlaceEntity> placeEntityList = placeService.list(queryWrapper);
+ if (stringList.size()>1){
+ // 查询是否对应有场所负责人,如果有则不删除,如果没有则删除对应的角色
+ List<String> arrayList = new ArrayList<>();
+ if (placeEntityList.size()==0){
+ for (String roleId : stringList) {
+ if (!roleId.equals("1717429059648606209")){
+ arrayList.add(roleId);
+ }
+ }
+ }
+ user.setRoleId(StringUtils.join(arrayList, ","));
+ // 更新用户
+ userService.updateById(user);
+ }else {
+ // 查询是否对应有场所负责人,如果有则不删除,如果没有则删除对应的用户
+ if (placeEntityList.size()==0){
+ userService.removeById(user.getId());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 删除住户标签信息
+ * @param idList
+ */
+ public void removeHouseholdLabel(List<Long> idList) {
+ for (Long id : idList) {
+ QueryWrapper<UserHouseLabelEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("household_id",id);
+ userHouseLabelService.remove(wrapper);
+ }
+ }
}
--
Gitblit v1.9.3