| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | 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.constant.CommonConstant; |
| | | import org.springblade.common.param.CommonParamSet; |
| | |
| | | import org.springblade.modules.house.vo.HouseholdVO; |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.system.vo.UserVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | |
| | | phoneList.add(e.getPhoneNumber()); |
| | | }); |
| | | try { |
| | | // 查询租户是否网格员身份的,给网格员设置居民角色 |
| | | // 查询租户是否有居民角色,没有则添加居民角色 |
| | | IUserService bean = SpringUtils.getBean(IUserService.class); |
| | | String str = "1717429261910528001"; |
| | | List<User> list = bean.list(Wrappers.<User>lambdaQuery() |
| | | .in(User::getPhone, phoneList) |
| | | .like(User::getRoleId, str)); |
| | | .eq(User::getIsDeleted, 0)); |
| | | for (User user : list) { |
| | | boolean contains = user.getRoleId().contains("1717429059648606209"); |
| | | if (contains) { |
| | | continue; |
| | | if (StringUtils.isNoneBlank(user.getRoleId())) { |
| | | boolean contains = user.getRoleId().contains("1717429059648606209"); |
| | | if (contains) { |
| | | continue; |
| | | } |
| | | user.setRoleId(user.getRoleId() + ",1717429059648606209"); |
| | | } else { |
| | | user.setRoleId("1717429059648606209"); |
| | | } |
| | | user.setRoleId(user.getRoleId() + ",1717429059648606209"); |
| | | } |
| | | bean.updateBatchById(list); |
| | | } catch (Exception e) { |
| | |
| | | List<HouseholdEntity> addList = new ArrayList<>(); |
| | | List<HouseholdEntity> updateList = new ArrayList<>(); |
| | | List<HouseholdEntity> removeList = new ArrayList<>(); |
| | | List<User> addUserList = new ArrayList<>(); |
| | | // List<User> updateUserList = new ArrayList<>(); |
| | | // List<User> removeUserList = new ArrayList<>(); |
| | | // 找出需要新增的,否则组成新集合进行比对 |
| | | List<String> phoneList = new ArrayList<>(); |
| | | IUserService userService = SpringUtils.getBean(IUserService.class); |
| | | for (HouseholdEntity householdEntity : list) { |
| | | if (null == householdEntity.getId()) { |
| | | // 新增用戶 |
| | | User user = new User(); |
| | | user.setAccount(householdEntity.getPhoneNumber()); |
| | | user.setUserType(1); |
| | | user.setRealName(householdEntity.getName()); |
| | | user.setName(householdEntity.getName()); |
| | | user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD)); |
| | | user.setRoleId("1717429059648606209"); |
| | | boolean save = userService.save(user); |
| | | // 新增或更新用户 |
| | | boolean save = isSave(userService, householdEntity, user); |
| | | // 新增住户 |
| | | householdEntity.setHouseCode(houseRental.getHouseCode()); |
| | | householdEntity.setHousingRentalId(houseRental.getId()); |
| | | householdEntity.setRelationship(18); |
| | | householdEntity.setResidentialStatus(1); |
| | | // householdEntity.setIdCard(houseRental.getid); |
| | | householdEntity.setRoleType(2); |
| | | // householdEntity.setName(); |
| | | if (save) { |
| | | householdEntity.setAssociatedUserId(user.getId()); |
| | | } |
| | | addList.add(householdEntity); |
| | | // 添加手机号 |
| | | phoneList.add(householdEntity.getPhoneNumber()); |
| | | } else { |
| | | newList.add(householdEntity); |
| | |
| | | // 取旧数据和新提交数据差集--删除 |
| | | removeList = oldList.stream().filter(vo -> !newList.stream().map(e -> |
| | | e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList()); |
| | | |
| | | // 取旧数据和新提交数据交集--更新 |
| | | updateList = newList.stream().filter(vo -> oldList.stream().map(e -> |
| | | e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList()); |
| | |
| | | } |
| | | // 批量修改 |
| | | if (updateList.size() > 0) { |
| | | updateFlag = iHouseholdService.updateBatchById(updateList); |
| | | for (HouseholdEntity householdEntity : updateList) { |
| | | phoneList.add(householdEntity.getPhoneNumber()); |
| | | User user = new User(); |
| | | // 修改用户,用户存在则更新用户,不存在则新增用户 |
| | | boolean save = isSave(userService, householdEntity, user); |
| | | if (save) { |
| | | householdEntity.setAssociatedUserId(user.getId()); |
| | | } |
| | | } |
| | | updateFlag = iHouseholdService.updateBatchById(updateList); |
| | | } |
| | | // 批量删除 |
| | | if (removeList.size() > 0) { |
| | | removeFlag = iHouseholdService.removeBatchByIds(removeList); |
| | | } |
| | | try { |
| | | // 查询租户是否网格员身份的,给网格员设置居民角色 |
| | | IUserService bean = SpringUtils.getBean(IUserService.class); |
| | | String str = "1717429261910528001"; |
| | | List<User> list2 = bean.list(Wrappers.<User>lambdaQuery() |
| | | .in(User::getPhone, phoneList) |
| | | .like(User::getRoleId, str)); |
| | | for (User user : list2) { |
| | | boolean contains = user.getRoleId().contains("1717429059648606209"); |
| | | if (contains) { |
| | | continue; |
| | | // 删除用户。判断用户是否有其他角色, |
| | | for (HouseholdEntity householdEntity : removeList) { |
| | | if (householdEntity.getAssociatedUserId() != null) { |
| | | UserVO userVO = userService.getuserById(householdEntity.getAssociatedUserId()); |
| | | if (userVO.getRoleId().contains("1717429059648606209")) { |
| | | List<String> stringList = Arrays.asList(userVO.getRoleId().split(",")); |
| | | // 有其他角色 |
| | | if (stringList.size() >= 2) { |
| | | List<String> collect = stringList.stream().filter(item -> !item.equals("1717429059648606209")).collect(Collectors.toList()); |
| | | userVO.setRoleId(StringUtils.join(collect, ",")); |
| | | userService.updateById(userVO); |
| | | } else { |
| | | // 没有其他角色 |
| | | userService.removeById(userVO.getId()); |
| | | } |
| | | } |
| | | } |
| | | user.setRoleId(user.getRoleId() + ",1717429059648606209"); |
| | | } |
| | | bean.updateBatchById(list2); |
| | | } catch (Exception e) { |
| | | log.error("保存用户角色为居民:", e); |
| | | } |
| | | // 返回 |
| | | return update && addFlag && updateFlag && removeFlag; |
| | | } |
| | | |
| | | /** |
| | | * 保存或更新用户 |
| | | * @param userService |
| | | * @param householdEntity |
| | | * @param user |
| | | * @return |
| | | */ |
| | | private boolean isSave(IUserService userService, HouseholdEntity householdEntity, User user) { |
| | | boolean save; |
| | | // 查询该住户是否有账号 |
| | | IUserService userService1 = SpringUtils.getBean(IUserService.class); |
| | | User user1 = userService1.getOne(Wrappers.<User>lambdaQuery() |
| | | .eq(User::getPhone, householdEntity.getPhoneNumber()) |
| | | .eq(User::getIsDeleted, 0).last("limit 1")); |
| | | if (user1 != null) { |
| | | user = user1; |
| | | user.setName(householdEntity.getName()); |
| | | if (StringUtils.isNoneBlank(user.getRoleId())) { |
| | | boolean contains = user.getRoleId().contains("1717429059648606209"); |
| | | if (!contains) { |
| | | user.setRoleId(user.getRoleId() + ",1717429059648606209"); |
| | | } |
| | | } else { |
| | | user.setRoleId("1717429059648606209"); |
| | | } |
| | | // 更新用户 |
| | | save = userService.updateById(user); |
| | | return save; |
| | | } |
| | | // 新增用户 |
| | | user.setAccount(householdEntity.getPhoneNumber()); |
| | | user.setUserType(1); |
| | | user.setPhone(householdEntity.getPhoneNumber()); |
| | | user.setRealName(householdEntity.getName()); |
| | | user.setName(householdEntity.getName()); |
| | | user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD)); |
| | | user.setRoleId("1717429059648606209"); |
| | | save = userService.save(user); |
| | | return save; |
| | | } |
| | | |
| | | /** |
| | | * 获取统计数据 |
| | | * |
| | | * @return |