linwei
2024-02-22 7bcd0d2d7510cb2ba67099cd768e1b2b6d047dc2
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -17,6 +17,7 @@
package org.springblade.modules.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -148,8 +149,23 @@
    * @param user
    */
   public void updateGridBind(User user) {
      // 先删除原有区域的绑定
      QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("is_deleted",0).like("police_user_id",user.getId());
      // 删除掉之前已绑定的
      List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
      // 遍历
      for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
         List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
         arrayList.remove(user.getId().toString());
         // 更新
         policeAffairsGridEntity.setPoliceUserId(String.join(",",arrayList));
         // 解决更新报错
         policeAffairsGridEntity.setGeom(null);
         SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
      }
      // 判断机构类型
      List<String> deptIds = Arrays.asList(user.getDeptId().split(","));
      List<String> deptIds = new ArrayList<>(Arrays.asList(user.getDeptId().split(",")));
      for (String deptId : deptIds) {
         // 查询对应的机构
         Dept dept = SpringUtil.getBean(IDeptService.class).getById(deptId);
@@ -197,9 +213,9 @@
   }
   @Override
   public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
      if (null == deptId && !AuthUtil.isAdministrator()) {
         deptId = Long.parseLong(AuthUtil.getDeptId());
   public IPage<User> selectUserPage(IPage<User> page, User user, String deptId, String tenantId) {
      if (Strings.isBlank(deptId) && !AuthUtil.isAdministrator() && !AuthUtil.isAdmin()) {
         deptId = AuthUtil.getDeptId();
      }
      List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
      return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
@@ -356,7 +372,39 @@
      if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
         throw new ServiceException("不能删除本账号!");
      }
      return deleteLogic(Func.toLongList(userIds));
      boolean deleteLogic = deleteLogic(Func.toLongList(userIds));
      if (deleteLogic){
         // 删除警格绑定
         removePoliceGridBind(userIds);
      }
      return deleteLogic;
   }
   /**
    * 删除警格绑定
    * @param userIds
    */
   public void removePoliceGridBind(String userIds) {
      List<String> userIdList = new ArrayList<>(Arrays.asList(userIds.split(",")));
      for (String userId : userIdList) {
         // 先删除原有区域的绑定
         QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted",0).like("police_user_id",userId);
         // 删除掉之前已绑定的
         List<PoliceAffairsGridEntity> list = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
         if (list.size()>0) {
            // 遍历
            for (PoliceAffairsGridEntity policeAffairsGridEntity : list) {
               List<String> arrayList = new ArrayList<>(Arrays.asList(policeAffairsGridEntity.getPoliceUserId().split(",")));
               arrayList.remove(userId);
               // 更新
               policeAffairsGridEntity.setPoliceUserId(String.join(",", arrayList));
               // 解决更新报错
               policeAffairsGridEntity.setGeom(null);
               SpringUtil.getBean(IPoliceAffairsGridService.class).updateById(policeAffairsGridEntity);
            }
         }
      }
   }
   @Override
@@ -562,6 +610,12 @@
      return baseMapper.getUserInfoByDistrictId(districtId, building);
   }
   @Override
   public List<UserEntity> getUserInfoByDistrictIds(String districtIds) {
      List<String> list = JSON.parseArray(districtIds).toJavaList(String.class);
      return baseMapper.getUserInfoByDistrictIds(list);
   }
   /**
    * 处理漏绑定的user_dept
    */
@@ -701,8 +755,14 @@
               list.remove(deptPcs.getId().toString());
               user.setDeptId(String.join(",",list));
            }
            if (!user.getDeptId().contains(dept.getId().toString())) {
               user.setDeptId(user.getDeptId() + "," + dept.getId());
            // 删完后可能就没了
            if (!Strings.isBlank(user.getDeptId())) {
               if (!user.getDeptId().contains(dept.getId().toString())) {
                  user.setDeptId(user.getDeptId() + "," + dept.getId());
               }
            }else {
               // 删完后的
               user.setDeptId(dept.getId().toString());
            }
         }else {
            if (!user.getDeptId().contains(dept.getId().toString())) {