|  |  | 
 |  |  | import com.doumee.dao.business.model.*; | 
 |  |  | import com.doumee.service.business.ext.ERPSyncService; | 
 |  |  | import com.doumee.service.business.InterfaceLogService; | 
 |  |  | import com.doumee.service.business.impl.MemberServiceImpl; | 
 |  |  | import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; | 
 |  |  | import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
 |  |  | import lombok.Synchronized; | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     private    Integer   getRoleIdByParam(Integer[] param, Member member) { | 
 |  |  |         //添加人员角色关联数据 | 
 |  |  |         member.setRoleId(null); | 
 |  |  |         List<MemberRole> roleList = memberRoleMapper.selectList( new QueryWrapper<MemberRole>().lambda() | 
 |  |  |                .eq(MemberRole::getIsdeleted,Constants.ZERO) | 
 |  |  |                .eq(MemberRole::getMemberId,member.getId())); | 
 |  |  |        if((param == null || param.length==0 ) &&( roleList==null || roleList.size()==0)){ | 
 |  |  |            //检查用户权限是否发现变化 | 
 |  |  |             return  0; | 
 |  |  |        } | 
 |  |  |         if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){ | 
 |  |  |             //如果原来有权限,接口进行权限删除 | 
 |  |  |             memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); | 
 |  |  |             return 1; | 
 |  |  |         } | 
 |  |  |         if(!Objects.isNull(param)&¶m.length>Constants.ZERO){ | 
 |  |  |             if(roleList!=null && roleList.size()>0) { | 
 |  |  |                 //和原有权限进行对比,看是否权限发生变化 | 
 |  |  |                 boolean ischange1=false; | 
 |  |  |                 for (MemberRole role : roleList) { | 
 |  |  |                     ischange1=false; | 
 |  |  |                     for (int j = 0; j < param.length; j++) { | 
 |  |  |                         if(Constants.equalsInteger(role.getRoleId(),param[j])){ | 
 |  |  |                             ischange1=true; | 
 |  |  |                            break; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if(!ischange1){ | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 boolean ischange2 =false; | 
 |  |  |                 for (int j = 0; j < param.length; j++) { | 
 |  |  |                     ischange2=false; | 
 |  |  |                     for (MemberRole role : roleList) { | 
 |  |  |                         if(Constants.equalsInteger(role.getRoleId(),param[j])){ | 
 |  |  |                             ischange2=true; | 
 |  |  |                             break; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if(!ischange2){ | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if(ischange2 && ischange1){ | 
 |  |  |                     return 0;//权限未发生改变 | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             //如果原来有权限,接口进行权限删除 | 
 |  |  |             memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); | 
 |  |  |             //查询数据库存在的权限 | 
 |  |  |             List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() | 
 |  |  |                     .eq(DeviceRole::getType,Constants.TWO) | 
 |  |  |                     .in(DeviceRole::getId,param)); | 
 |  |  |             if(CollectionUtils.isNotEmpty(deviceRoleList)){ | 
 |  |  |                 List<MemberRole> memberRoleList = new ArrayList<>(); | 
 |  |  |                 String ids = ""; | 
 |  |  |                 List<Integer> r = new ArrayList<>(); | 
 |  |  |                 for (int i = 0; i < deviceRoleList.size(); i++) { | 
 |  |  |                     DeviceRole deviceRole =deviceRoleList.get(i); | 
 |  |  |                     if(i>0){ | 
 |  |  |                         ids += ","; | 
 |  |  |                     } | 
 |  |  |                     Integer id =deviceRole.getId(); | 
 |  |  |                     ids += "["+id+"]"; | 
 |  |  |                     String doorids =deviceRole.getDoorIds(); | 
 |  |  |                     if(StringUtils.isNotBlank(doorids)){ | 
 |  |  |                         String[] ss = doorids.split(","); | 
 |  |  |                         try { | 
 |  |  |                             for(String s :ss){ | 
 |  |  |                                 r.add(Integer.parseInt(s)); | 
 |  |  |                             } | 
 |  |  |                         }catch (Exception e){ | 
 |  |  |                             //脏数据不处理 | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     MemberRole memberRole = new MemberRole(); | 
 |  |  |                     memberRole.setCreateDate(new Date()); | 
 |  |  |                     memberRole.setMemberId(member.getId()); | 
 |  |  |                     memberRole.setIsdeleted(Constants.ZERO); | 
 |  |  |                     memberRole.setRoleId(deviceRole.getId()); | 
 |  |  |                     memberRoleList.add(memberRole); | 
 |  |  |                 } | 
 |  |  |                 member.setRoleId(ids); | 
 |  |  |                 memberRoleMapper.insertBatchSomeColumn(memberRoleList); | 
 |  |  |                 member.setRoleId(ids); | 
 |  |  |             } | 
 |  |  |             return  1; | 
 |  |  |         } | 
 |  |  |         return  0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |             if(Objects.isNull(member)){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,用户信息不存在!"); | 
 |  |  |             } | 
 |  |  |             Integer ischange = getRoleIdByParam(param.getRoleIds(),member); | 
 |  |  |             Integer ischange = MemberServiceImpl.getRoleIdByParam(param.getRoleIds(),member,memberRoleMapper,deviceRoleMapper); | 
 |  |  |             if(ischange == 0){ | 
 |  |  |                 return;//未发现权限变化,直接返回 | 
 |  |  |             } |