nidapeng
2024-04-02 4167298accee956c10ed1b5e3d6ce909cad38edd
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -927,13 +927,57 @@
            }
        }
    }
    private   List<Integer>  getRoleIdByParam(Integer[] param, Member member) {
    private    Integer   getRoleIdByParam(Integer[] param, Member member) {
        //添加人员角色关联数据
        member.setRoleId(null);
        if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
        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)&&param.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)
@@ -964,15 +1008,16 @@
                    memberRole.setCreateDate(new Date());
                    memberRole.setMemberId(member.getId());
                    memberRole.setIsdeleted(Constants.ZERO);
                    memberRole.setRoleId(deviceRole.getId().toString());
                    memberRole.setRoleId(deviceRole.getId());
                    memberRoleList.add(memberRole);
                }
                member.setRoleId(ids);
                memberRoleMapper.insertBatchSomeColumn(memberRoleList);
                member.setRoleId(ids);
                return  r;
                return  1;
            }
        }
        return  null;
        return  0;
    }
@@ -992,22 +1037,22 @@
            if(Objects.isNull(member)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,用户信息不存在!");
            }
            List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
            Integer ischange = getRoleIdByParam(param.getRoleIds(),member);
            if(ischange == 0){
                return;//未发现权限变化,直接返回
            }
            if(param.getRoleIds()!=null && param.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,未查询到有效门禁组数据");
            }
            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                .eq(Member::getId,member.getId())
                .set(Member::getRoleId,member.getRoleId())
                .set(Member::getStartTime,param.getValidStartTime())
                .set(Member::getEndTime,param.getValidEndTime())
                .set(Member::getEditDate,new Date()) );
            //重新授权
            HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
       /* memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                    .eq(Member::getId,member.getId())
                    .set(Member::getRoleId,member.getRoleId())
                    .set(Member::getRemark,"待同步安防平台")
                    .set(Member::getStartTime,param.getValidStartTime())
                    .set(Member::getEndTime,param.getValidEndTime())
                    .set(Member::getEditDate,new Date())
                    .set(Member::getHkStatus,Constants.ZERO ));*/
    }