zhongrj
2024-03-21 2cde81761ea06c696457f7d1341f28cee3a50dad
src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java
@@ -25,6 +25,7 @@
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.param.CommonParamSet;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DigestUtil;
import org.springblade.modules.grid.service.IGridService;
@@ -144,10 +145,12 @@
         // 待审核
         houseRentalVO.setAuditStatus(0);
      }
      //保存自身
      //保存自身(租赁)
      flag = save(houseRentalVO);
      //保存到住户
      flag = saveHousehold(houseRentalVO, flag);
      if (flag){
         flag = saveHousehold(houseRentalVO, flag);
      }
      return flag;
   }
@@ -159,42 +162,79 @@
    * @return
    */
   public boolean saveHousehold(HouseRentalVO houseRentalVO, boolean flag) {
      if (flag && houseRentalVO.getHouseholdVOList().size() > 0) {
         List<String> phoneList = new ArrayList<>();
         List<HouseholdEntity> householdEntityList = new ArrayList<>();
      if (houseRentalVO.getHouseholdVOList().size() > 0) {
         houseRentalVO.getHouseholdVOList().forEach(e -> {
            e.setHouseCode(houseRentalVO.getHouseCode());
            e.setHousingRentalId(houseRentalVO.getId());
            e.setRelationship(18);
            e.setResidentialStatus(1);
            e.setRoleType(2);
            householdEntityList.add(e);
            phoneList.add(e.getPhoneNumber());
         });
         try {
            // 查询租户是否有居民角色,没有则添加居民角色
            IUserService bean = SpringUtils.getBean(IUserService.class);
            List<User> list = bean.list(Wrappers.<User>lambdaQuery()
               .in(User::getPhone, phoneList)
               .eq(User::getIsDeleted, 0));
            for (User user : list) {
               if (StringUtils.isNoneBlank(user.getRoleId())) {
                  boolean contains = user.getRoleId().contains("1717429059648606209");
                  if (contains) {
                     continue;
                  }
                  user.setRoleId(user.getRoleId() + ",1717429059648606209");
               } else {
                  user.setRoleId("1717429059648606209");
               }
            if (!Strings.isBlank(e.getIdCard())){
               e.setCardType(111);
            }
            bean.updateBatchById(list);
         } catch (Exception e) {
            log.error("保存用户角色为居民:", e);
         }
         flag = iHouseholdService.saveBatch(householdEntityList);
            e.setRoleType(2);
            // 添加住户
            iHouseholdService.save(e);
            // 绑定用户
            bindUserHandle(e);
         });
      }
      return flag;
   }
   /**
    * 租客和用户绑定
    *
    * @param
    */
   public User bindUserHandle(HouseholdEntity householdEntity) {
      IUserService userService = SpringUtils.getBean(IUserService.class);
      IHouseholdService householdService = SpringUtils.getBean(IHouseholdService.class);
      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) {
            User userParams1 = new User();
            userParams1.setAccount(householdEntity.getPhoneNumber());
            userParams1.setIsDeleted(0);
            user = userService.getOne(Condition.getQueryWrapper(userParams1));
         }
         if (null != user) {
            //如果用户存在,则该用户id绑定场所
            householdEntity.setAssociatedUserId(user.getId());
            //更新住户信息
            householdService.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());
            //更新住户信息
            householdService.updateById(householdEntity);
         }
      }
      return newUser;
   }
   /**
@@ -229,6 +269,13 @@
      boolean removeFlag = true;
      houseRental.setUpdateUser(AuthUtil.getUserId());
      houseRental.setUpdateTime(new Date());
      // 获取请求头中的角色别名
      String roleName = SpringUtils.getRequestParam("roleName");
      // 居民
      if (!Strings.isBlank(roleName) && roleName.equals("inhabitant")) {
         // 待审核
         houseRental.setAuditStatus(0);
      }
      //更新自身
      boolean update = updateById(houseRental);
      // 查询对应已存在的租户
@@ -255,6 +302,9 @@
            householdEntity.setRelationship(18);
            householdEntity.setResidentialStatus(1);
            householdEntity.setRoleType(2);
            if (!Strings.isBlank(householdEntity.getIdCard())){
               householdEntity.setCardType(111);
            }
            if (user.getId() != null) {
               householdEntity.setAssociatedUserId(user.getId());
            }