linwei
2024-01-02 31b6aefacbee9dde61be6afcb7c6dbbf7c6baa7d
src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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;
@@ -28,6 +29,8 @@
import org.springblade.modules.house.excel.HouseHoldExcel;
import org.springblade.modules.house.mapper.HouseholdMapper;
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.house.service.IUserHouseLabelService;
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.system.entity.Dept;
@@ -53,7 +56,7 @@
public class HouseholdServiceImpl extends ServiceImpl<HouseholdMapper, HouseholdEntity> implements IHouseholdService {
   @Autowired
   private IGridService gridService;
   private IUserHouseLabelService userHouseLabelService;
   @Autowired
   private IDictBizService dictBizService;
@@ -143,15 +146,8 @@
    * @return
    */
   @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;
//      }
   @Transactional(rollbackFor = Exception.class)
   public boolean saveOrUpdateHousehold(HouseholdVO household) {
      boolean flag = false;
      household.setUpdateTime(new Date());
      household.setUpdateUser(AuthUtil.getUserId());
@@ -160,6 +156,8 @@
         flag = updateById(household);
         // 更新用户信息
         updateUserInfo(household);
         // 更新标签信息
         updateUserLabelInfo(household);
      } else {
         // 新增
         household.setCreateTime(new Date());
@@ -167,8 +165,28 @@
         flag = save(household);
         // 更新用户信息
         updateUserInfo(household);
         // 更新标签信息
         updateUserLabelInfo(household);
      }
      return flag;
   }
   /**
    * 更新用户标签信息
    * @param household
    */
   public void updateUserLabelInfo(HouseholdVO household) {
      if (household.getHouseholdLabelList().size()>0){
         List<HouseholdLabelVO> householdLabelList = household.getHouseholdLabelList();
         for (HouseholdLabelVO householdLabelVO : householdLabelList) {
            if (!Strings.isBlank(household.getHouseCode())) {
               householdLabelVO.setHouseCode(household.getHouseCode());
            }
            householdLabelVO.setHouseholdId(household.getId());
            // 先删除对应绑定的信息
            userHouseLabelService.saveOrUpdateHouseholdLabel(householdLabelVO);
         }
      }
   }
   /**
@@ -176,25 +194,11 @@
    * @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);
            }
         }
         // 新增用户
         bindUserHandle(household);
      }
   }
@@ -320,4 +324,52 @@
      }
   }
   /**
    * 住户业主信息处理,将业主人员插入到用户表
    * @return
    */
   @Override
   public Object userHandle() {
      // 查询所有未入库的业主信息
      List<HouseholdEntity> householdEntityList = baseMapper.getNotInsertUserHousehold();
      // 批量入用户库
      for (HouseholdEntity householdEntity : householdEntityList) {
         // 根据手机号查询对应账号和手机号的用户信息
         List<User> userList = userService.getUserListByPhoneOrAccount(householdEntity.getPhoneNumber());
         if (userList.size()>0){
            User user = userList.get(0);
            householdEntity.setAssociatedUserId(user.getId());
            // 更新
            updateById(householdEntity);
            // 判断用户是否包含了居民角色,不包含则需更新
            if (!user.getRoleId().contains("1717429059648606209")){
               user.setRoleId(user.getRoleId() + ",1717429059648606209");
               //更新
               userService.updateById(user);
            }
         }else {
            // 插入用户信息
            //如果用户不存在,则新增一个用户
            User newUser = new User();
            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);
            // 更新绑定用户信息
            householdEntity.setAssociatedUserId(newUser.getId());
            // 更新
            updateById(householdEntity);
         }
      }
      return null;
   }
}