zhongrj
2024-01-05 4adb223d22b8cab23d43424197cafd701a8d7f20
住户删除修改
3 files modified
108 ■■■■ changed files
src/main/java/org/springblade/modules/house/controller/HouseholdController.java 23 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/IHouseholdService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java 80 ●●●●● patch | view | raw | blame | history
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);
        }
    }
    /**
     * 住户审核统计
src/main/java/org/springblade/modules/house/service/IHouseholdService.java
@@ -90,4 +90,9 @@
     * @return
     */
    Object userHandle();
    /**
     * 住户 删除
     */
    boolean removeHousehold(String ids);
}
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);
        }
    }
}