zhongrj
2023-12-23 44818d04b507839a8bb254e70797e44d88352fe7
住户信息修改调整
1 files modified
105 ■■■■ changed files
src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java 105 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -16,11 +16,13 @@
 */
package org.springblade.modules.house.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.modules.grid.service.IGridService;
@@ -31,8 +33,11 @@
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.house.vo.HouseholdOtherVO;
import org.springblade.modules.house.vo.HouseholdVO;
import org.springblade.modules.place.vo.PlaceVO;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IDictBizService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +58,9 @@
    @Autowired
    private IDictBizService dictBizService;
    @Autowired
    private IUserService userService;
    @Override
    public IPage<HouseholdVO> selectHouseholdPage(IPage<HouseholdVO> page, HouseholdVO household) {
@@ -125,34 +133,107 @@
    @Override
    public boolean saveOrUpdateHousehold(HouseholdEntity household) {
        // 判断添加人是否房屋业主
        Long count = count(Wrappers.<HouseholdEntity>lambdaQuery()
            .eq(HouseholdEntity::getHouseCode, household.getHouseCode())
            .eq(HouseholdEntity::getAssociatedUserId, AuthUtil.getUserId())
            .eq(HouseholdEntity::getRelationship, 1));
        if (count == 0) {
            return false;
        }
//        Long count = count(Wrappers.<HouseholdEntity>lambdaQuery()
//            .eq(HouseholdEntity::getHouseCode, household.getHouseCode())
//            .eq(HouseholdEntity::getAssociatedUserId, AuthUtil.getUserId())
//            .eq(HouseholdEntity::getRelationship, 1));
//        if (count == 0) {
//            return false;
//        }
        boolean flag = false;
        household.setUpdateTime(new Date());
        household.setUpdateUser(AuthUtil.getUserId());
        if (null != household.getId()) {
            // 更新
            flag = updateById(household);
            // 更新用户信息
            updateUserInfo(household);
        } else {
            // 往用户表中插入数据
            // 通过手机号判断
            if (!Strings.isBlank(household.getPhoneNumber())) {
                //判断用户是否存在
            }
            // 新增
            household.setCreateTime(new Date());
            household.setCreateUser(AuthUtil.getUserId());
            flag = save(household);
            // 更新用户信息
            updateUserInfo(household);
        }
        return flag;
    }
    /**
     * 更新用户信息
     * @param household
     */
    public void updateUserInfo(HouseholdEntity household) {
        // 判断用户是否为业主,如果是业主,判断该房屋是否已有业主,如果有则提示已有业主,无法设置为业主,不是业主则不操作
        if (null!=household.getRelationship() && household.getRelationship()==1){
            // 如果为业主
            // 查询当前房屋是否已有业主
            QueryWrapper<HouseholdEntity> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("is_deleted",0)
                .eq("house_code",household.getHouseCode())
                .eq("relationship",1);
            List<HouseholdEntity> list = list(queryWrapper);
            if (list.size()==0){
                // 新增用户
                bindUserHandle(household);
            }else {
                HouseholdEntity householdEntity = list.get(0);
                if (null == householdEntity.getAssociatedUserId()){
                    // 新增用户
                    bindUserHandle(household);
                }
            }
        }
    }
    /**
     * 业主和用户绑定
     * @param
     */
    public User bindUserHandle(HouseholdEntity householdEntity) {
        User newUser = new User();
        if (null!=householdEntity.getPhoneNumber() && !householdEntity.getPhoneNumber().equals("")) {
            //根据手机号查询库里的数据
            User userParams = new User();
            userParams.setPhone(householdEntity.getPhoneNumber());
            User user = userService.getOne(Condition.getQueryWrapper(userParams));
            if (null!=user) {
                //如果用户存在,则该用户id绑定场所
                householdEntity.setAssociatedUserId(user.getId());
                //更新住户信息
                updateById(householdEntity);
                newUser = user;
                // 判断用户是否包含了居民角色,不包含则需更新
                if (!user.getRoleId().contains("1717429059648606209")){
                    user.setRoleId(user.getRoleId() + ",1717429059648606209");
                    //更新
                    userService.updateById(user);
                }
            } else {
                //如果用户不存在,则新增一个用户
                newUser.setAccount(householdEntity.getPhoneNumber());
                newUser.setPhone(householdEntity.getPhoneNumber());
                newUser.setName(householdEntity.getName());
                newUser.setRealName(householdEntity.getName());
                // 社区群众部门
                newUser.setDeptId("1727979636479037441");
                // 目前暂定居民角色,
                newUser.setRoleId("1717429059648606209");
                //默认密码为 123456
                newUser.setPassword("123456");
                // 设置机构
                // 用户新增
                boolean submit = userService.submit(newUser);
                //绑定id
                householdEntity.setAssociatedUserId(newUser.getId());
                //更新住户信息
                updateById(householdEntity);
            }
        }
        return newUser;
    }
    /**
     * 住户 自定义查询详情
     * @param household
     * @return